/* ============================================================
   BRANDING BOARD — HK Clearway Global Forwarding Services Co., Ltd.
   Entidad de Hong Kong del grupo Clearway (marca madre: clearway.com.mx).
   Paleta cliente "Industrial Steel" armonizada con la identidad de marca
   (negro #1C1C1B + acento cian #0097B2). Tipografia: Montserrat (cliente)
   + Archivo Expanded (wordmark ancho/tech) + IBM Plex Mono (datos).
   Cambiar este archivo re-skinea toda la web sin tocar los bloques.
   ============================================================ */
/* Fuentes self-host (no Google Fonts: clave en China). */
@import url('fonts.css');

:root{
  /* Paleta del cliente: Industrial Steel + cian de marca */
  --brand-1:oklch(0.21 0.006 264);   /* casi-negro carbon (nav/footer/hero/bandas) */
  --brand-2:oklch(0.36 0.028 262);   /* slate #373F51 */
  --brand-3:oklch(0.66 0.07 212);    /* steel-teal #58A4B0 */
  --brand-4:oklch(0.79 0.03 250);    /* steel claro #A9BCD0 */
  --brand-5:oklch(0.90 0.008 262);   /* gris claro #D8DBE2 */

  /* Acento cian Clearway */
  --accent:oklch(0.68 0.108 214);    /* cian brillante para rellenos/botones */
  --accent-ink:oklch(0.19 0.012 250);/* texto sobre el cian (casi negro) */
  --accent-text:oklch(0.52 0.10 218);/* teal mas oscuro para texto chico sobre claro (AA >=4.5) */

  /* Roles derivados */
  --ink:oklch(0.25 0.006 264);
  --ink-soft:oklch(0.46 0.012 262);
  --ink-faint:oklch(0.58 0.010 262);
  --surface:oklch(0.992 0.002 255);
  --surface-2:oklch(0.965 0.004 255);
  --card:oklch(1 0 0);
  --line:oklch(0.90 0.006 255);

  /* Personalidad — sobria, tecnica, sharp */
  --font-display:'Montserrat','PingFang SC','Microsoft YaHei','Noto Sans SC',system-ui,sans-serif;
  --font-body:'Montserrat','PingFang SC','Microsoft YaHei','Noto Sans SC',system-ui,sans-serif;
  --font-wordmark:'Archivo',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
  --radius:4px;                       /* sharp / tecnico (no el 16px uniforme de slop) */
  --maxw:1200px;
  --shadow:0 20px 52px -26px oklch(0.21 0.02 264 / 0.55);
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ---- Overrides de marca: contraste AA del cian sobre claro ---- */
.eyebrow{color:var(--accent-text)}
.statc__c .delta{color:var(--accent-text)}
.tl span{color:var(--accent-text)}
/* datos en mono */
.statc__c b,.stats b,.hero__meta b,.lanes__price,.trk__code{font-family:var(--font-mono);letter-spacing:-0.02em}

/* ============================================================ NAV (logo wordmark) */
.nav__logo{gap:0;letter-spacing:.01em}
.nav__logo .wm{font-family:var(--font-wordmark);font-weight:900;font-stretch:125%;font-size:19px;letter-spacing:.02em;line-height:1}
.nav__logo .wm i{color:var(--accent);font-style:normal}
/* el hero de Clearway es OSCURO en todas las paginas (brand-1), el nav blanco contrasta bien */
/* header movil: CTA y selector de idioma compactos para no saturar (logo + idioma + CTA + burger) */
@media(max-width:860px){
  .nav__cta{gap:8px}
  .nav__cta .btn--primary{padding:9px 14px;font-size:13px;border-radius:var(--radius)}
  .lang button{padding:4px 7px;font-size:11px}
}
@media(max-width:400px){
  .nav__logo .wm{font-size:16px}
  .nav__cta .btn--primary{padding:8px 11px}
}

/* ============================================================ HERO MANIFIESTO (wordmark Clearway) */
.cwhero{position:relative;background:var(--brand-1);color:#fff;overflow:hidden;
  min-height:100svh;display:flex;align-items:center;padding:98px 0 48px}
.cwhero__bg{position:absolute;inset:0;z-index:0}
.cwhero__bg img{width:100%;height:100%;object-fit:cover;opacity:.5;filter:grayscale(.4) contrast(1.05)}
/* scrim: oscurece izquierda y base para legibilidad del texto, dejando ver la foto a la derecha/arriba */
.cwhero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,var(--brand-1) 30%,color-mix(in oklab,var(--brand-1),transparent 45%) 100%),
             linear-gradient(180deg,transparent 40%,var(--brand-1) 100%)}
.cwhero__in{position:relative;z-index:2;width:100%}
.cwhero .eyebrow{color:var(--brand-4)}
.cwhero__mark{font-family:var(--font-wordmark);font-weight:900;font-stretch:125%;
  font-size:clamp(2.6rem,11vw,8rem);line-height:.9;letter-spacing:.01em;
  margin:12px 0 2px;color:#fff;display:block}
.cwhero__h1{font-size:clamp(1.2rem,2.4vw,1.9rem);font-weight:700;line-height:1.2;
  letter-spacing:-0.01em;color:#fff;max-width:30ch;margin:6px 0 0}
.cwhero__tag{display:block;font-family:var(--font-wordmark);font-weight:700;font-stretch:110%;
  font-size:clamp(.95rem,1.7vw,1.25rem);letter-spacing:.02em;color:var(--accent);margin-top:14px}
.cwhero p,.cwhero__sub{font-size:clamp(1rem,1.6vw,1.15rem);color:rgba(255,255,255,.86);
  max-width:52ch;margin:16px 0 0}
/* fila de contenido bajo el wordmark: izq texto + der panel (ancla la columna derecha en anchos grandes) */
.cwhero__row{display:grid;gap:clamp(26px,4vw,54px);align-items:start;margin-top:18px}
@media(min-width:980px){.cwhero__row{grid-template-columns:1.05fr .82fr;align-items:center}}
.cwhero__lead{min-width:0}
.cwhero__panel{border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);
  padding:clamp(20px,2.4vw,28px);background:color-mix(in oklab,var(--brand-1),transparent 16%)}
.cwhero__panel-t{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-4);margin-bottom:8px}
.cwhero__stat{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-top:1px solid rgba(255,255,255,.12)}
.cwhero__stat:first-of-type{border-top:none}
.cwhero__stat b{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;color:#fff;min-width:76px}
.cwhero__stat span{font-size:13px;color:rgba(255,255,255,.74);line-height:1.4}
.cwhero__route{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--font-mono);font-size:12.5px;color:var(--accent);letter-spacing:.01em}
.cwhero__cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.cwhero__meta{display:flex;gap:34px;margin-top:40px;flex-wrap:wrap}
.cwhero__meta b{font-family:var(--font-mono);font-size:1.7rem;font-weight:600;display:block;color:#fff}
.cwhero__meta span{font-size:13px;color:rgba(255,255,255,.7);letter-spacing:.01em}
@media(max-width:640px){.cwhero__meta{gap:22px}.cwhero__meta b{font-size:1.4rem}}

/* ============================================================ ROUTES MAP (corredor Asia -> MX/USA) */
.routes{background:var(--brand-1);color:#fff}
.routes__map{position:relative;margin-top:30px;border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius);background:
    radial-gradient(120% 140% at 15% 20%,color-mix(in oklab,var(--brand-2),transparent 40%),transparent 60%),
    var(--brand-1);overflow:hidden}
.routes__map svg{display:block;width:100%;height:auto}
.routes__legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;font-size:13.5px;color:rgba(255,255,255,.8)}
.routes__legend i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:middle}
.rt-node{fill:var(--accent)}
.rt-node--air{fill:var(--brand-4)}
.rt-line{stroke:var(--accent);stroke-width:2;fill:none;opacity:.9;stroke-dasharray:6 6;
  animation:rtflow 1.6s linear infinite}
.rt-line--air{stroke:var(--brand-4);opacity:.75;stroke-dasharray:2 7}
.rt-label{fill:rgba(255,255,255,.92);font-family:var(--font-mono);font-size:12px;font-weight:500}
.rt-col{fill:var(--brand-4);font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.14em}
@keyframes rtflow{to{stroke-dashoffset:-20}}
@media(prefers-reduced-motion:reduce){.rt-line{animation:none}}

/* ============================================================ LANES PANEL (tarifas/lead-time por carril) */
.lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.lane{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 20px;
  transition:border-color .2s,transform .2s var(--ease)}
.lane:hover{border-color:var(--accent);transform:translateY(-3px)}
.lane__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lane__route{font-family:var(--font-mono);font-weight:600;font-size:14px;color:var(--ink)}
.lane__mode{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}
.lane__price{font-family:var(--font-mono);font-size:1.7rem;font-weight:600;margin-top:14px;color:var(--ink);letter-spacing:-0.02em}
.lane__unit{font-size:12.5px;color:var(--ink-faint);font-weight:500}
.lane__meta{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-soft)}
.lane__meta b{font-family:var(--font-mono);font-weight:600;color:var(--ink)}
.lanes__note{margin-top:14px;font-size:12.5px;color:var(--ink-faint)}
@media(max-width:820px){.lanes{grid-template-columns:1fr}}

/* ============================================================ TRACKER (estado de envio — funcion de servicio) */
.trk{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,3vw,34px);box-shadow:var(--shadow);margin-top:40px}
.trk__top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:26px}
.trk__code{font-size:14px;font-weight:600;color:var(--ink)}
.trk__code span{color:var(--ink-faint);font-weight:500}
.trk__badge{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent-ink);background:var(--accent);padding:5px 11px;border-radius:30px}
.trk__bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.trk__step{position:relative;padding-top:30px;text-align:center}
.trk__step::before{content:"";position:absolute;top:9px;left:0;right:0;height:2px;background:var(--line)}
.trk__step:first-child::before{left:50%}
.trk__step:last-child::before{right:50%}
.trk__step .dot{position:absolute;top:2px;left:50%;transform:translateX(-50%);width:16px;height:16px;
  border-radius:50%;background:var(--surface);border:2px solid var(--line);z-index:2}
.trk__step.done::before{background:var(--accent)}
.trk__step.done .dot{background:var(--accent);border-color:var(--accent)}
.trk__step.now .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in oklab,var(--accent),transparent 78%)}
.trk__step b{display:block;font-size:13.5px;color:var(--ink);font-weight:600}
.trk__step span{display:block;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);margin-top:3px}
@media(max-width:560px){
  .trk__bar{grid-template-columns:1fr;gap:0}
  .trk__step{padding:0 0 22px 30px;text-align:left}
  .trk__step::before{top:0;bottom:0;left:7px;right:auto;width:2px;height:auto}
  .trk__step:first-child::before{top:50%}
  .trk__step:last-child::before{bottom:50%}
  .trk__step .dot{top:0;left:0;transform:none}
}
/* --- Motion: el tracker "avanza" paso a paso cuando entra en pantalla (JS agrega .trk--play) --- */
/* Con JS: arranca apagado y se ilumina en secuencia. Sin JS: queda en su estado final (done/now). */
.js .trk--anim .trk__step::before{background:var(--line);transition:background .45s var(--ease,ease-out)}
.js .trk--anim .trk__step .dot{background:var(--surface);border-color:var(--line);box-shadow:none;
  transition:background .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.js .trk--anim.trk--play .trk__step.done::before{background:var(--accent)}
.js .trk--anim.trk--play .trk__step.done .dot{background:var(--accent);border-color:var(--accent)}
.js .trk--anim.trk--play .trk__step.now .dot{background:var(--accent);border-color:var(--accent);
  box-shadow:0 0 0 5px color-mix(in oklab,var(--accent),transparent 78%)}
/* stagger: cada paso entra 220ms después del anterior (lectura natural izq→der) */
.js .trk--anim.trk--play .trk__step:nth-child(1) .dot,.js .trk--anim.trk--play .trk__step:nth-child(1)::before{transition-delay:0ms}
.js .trk--anim.trk--play .trk__step:nth-child(2) .dot,.js .trk--anim.trk--play .trk__step:nth-child(2)::before{transition-delay:.22s}
.js .trk--anim.trk--play .trk__step:nth-child(3) .dot,.js .trk--anim.trk--play .trk__step:nth-child(3)::before{transition-delay:.44s}
.js .trk--anim.trk--play .trk__step:nth-child(4) .dot,.js .trk--anim.trk--play .trk__step:nth-child(4)::before{transition-delay:.66s}
@media(prefers-reduced-motion:reduce){
  .js .trk--anim .trk__step::before,.js .trk--anim .trk__step .dot{transition:none!important}
  .js .trk--anim .trk__step.done::before{background:var(--accent)}
  .js .trk--anim .trk__step.done .dot,.js .trk--anim .trk__step.now .dot{background:var(--accent);border-color:var(--accent)}
}

/* ============================================================ WeChat / contacto extra */
.wechat{display:flex;gap:14px;align-items:center;margin-top:18px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius)}
.wechat img{width:74px;height:74px;border-radius:6px;background:#fff;padding:5px;flex:0 0 auto}
.wechat b{display:block;font-size:14px;color:#fff}
.wechat span{font-size:12.5px;color:rgba(255,255,255,.7)}

/* offices grid (cobertura/nosotros) */
.offices{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:42px}
.office{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:var(--card)}
.office .flag{font-size:22px}
.office b{display:block;margin-top:10px;font-size:15px}
.office span{display:block;color:var(--ink-soft);font-size:13.5px;margin-top:6px;line-height:1.55}
.office .role{color:var(--accent-text);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;margin-top:8px}
@media(max-width:820px){.offices{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.offices{grid-template-columns:1fr}}

/* ports list (cobertura) */
.ports{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 26px;margin-top:30px;list-style:none}
.ports li{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.ports .pc{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--accent-text);flex:0 0 46px}
.ports b{font-weight:600}
.ports span{display:block;color:var(--ink-soft);font-size:13px}
@media(max-width:820px){.ports{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ports{grid-template-columns:1fr}}

/* legal pages (escaneables) */
.legal{display:grid;grid-template-columns:230px 1fr;gap:clamp(28px,5vw,56px);align-items:start}
.legal__toc{position:sticky;top:96px;font-size:14px}
.legal__toc a{display:block;padding:7px 0;color:var(--ink-soft);border-left:2px solid var(--line);padding-left:14px;transition:color .2s,border-color .2s}
.legal__toc a:hover{color:var(--accent-text);border-color:var(--accent)}
.legal__body h2{font-size:1.3rem;margin:34px 0 10px;scroll-margin-top:96px}
.legal__body h2:first-child{margin-top:0}
.legal__body p,.legal__body li{color:var(--ink-soft);font-size:15px;margin-top:10px}
.legal__body ul{margin-left:20px}
.legal__meta{font-size:13.5px;color:var(--ink-faint);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:8px}
@media(max-width:760px){.legal{grid-template-columns:1fr}.legal__toc{position:static}}

/* foco visible reforzado en el formulario (el :focus base solo cambiaba el borde) */
.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
