/* Comtramedic, estilos del sitio. Valores visuales desde tokens.css */

/* ---------- Fuentes (Albert Sans, OFL, servidas desde el sitio) ---------- */
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:200;font-display:swap;src:url(../fonts/albert-sans-latin-200-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/albert-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/albert-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/albert-sans-latin-500-normal.woff2) format("woff2")}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--c-fondo);color:var(--c-texto);font-family:var(--f-base);font-weight:var(--fw-normal);font-size:var(--t-16);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
section[id]{scroll-margin-top:var(--h-header)}
.contenedor{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:var(--s-16);top:-60px;z-index:100;background:var(--c-marino);color:var(--c-blanco);padding:var(--s-8) var(--s-16);border-radius:var(--r-mini)}
.saltar:focus{top:var(--s-16)}
:focus-visible{outline:2px solid var(--c-azul);outline-offset:3px}

/* ---------- Titulares ---------- */
.titular-sec{font-size:var(--t-40);font-weight:var(--fw-ligero);line-height:1.06;letter-spacing:-0.03em;max-width:20ch;text-wrap:balance}
.titular-sec.centrado{margin-inline:auto;text-align:center}
.titular-sec.osc{color:var(--c-blanco)}
.js [data-words] .w{display:inline-block;color:var(--c-apagado);transition:color .7s var(--ease);transition-delay:calc(var(--k) * 40ms)}
.js .osc[data-words] .w{color:var(--c-apagado-osc)}
.js [data-words].in .w{color:inherit}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;border-radius:var(--r-pill);font-size:.9375rem;font-weight:var(--fw-medio);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);white-space:nowrap}
.btn-verde{background:var(--c-verde);color:var(--c-marino)}
.btn-verde:hover{background:var(--c-verde-hover)}
.btn-claro{background:rgba(255,255,255,.08);color:var(--c-blanco);border-color:rgba(255,255,255,.35)}
.btn-claro:hover{background:var(--c-blanco);color:var(--c-marino)}
.btn-borde{background:var(--c-blanco);color:var(--c-texto);border-color:var(--c-linea)}
.btn-borde:hover{background:var(--c-marino);color:var(--c-blanco);border-color:var(--c-marino)}
.botones{display:flex;flex-wrap:wrap;gap:var(--s-8)}
.btn-blanco{background:var(--c-blanco);color:var(--c-marino);border-radius:6px;min-height:46px;padding:10px 20px;font-size:var(--t-14)}
.btn-blanco:hover{background:var(--c-verde)}

/* ---------- Grano animado ---------- */
.grano{position:relative;isolation:isolate;overflow:clip}
.grano::after{content:"";position:absolute;inset:-60px;z-index:5;pointer-events:none;opacity:.13;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grano 1.2s steps(5) infinite}
@keyframes grano{0%{transform:translate(0,0)}20%{transform:translate(-22px,14px)}40%{transform:translate(18px,-26px)}60%{transform:translate(-14px,-10px)}80%{transform:translate(26px,20px)}100%{transform:translate(0,0)}}

/* ---------- Menu ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:50;padding:calc(14px + env(safe-area-inset-top, 0px)) max(20px, env(safe-area-inset-right, 0px)) 14px max(20px, env(safe-area-inset-left, 0px));pointer-events:none}
.header-in{display:flex;align-items:center;gap:var(--s-16)}
.header a,.header button{pointer-events:auto}
.logo-box{display:flex;align-items:center;height:48px;padding:0 14px;background:var(--c-marino);border-radius:var(--r-mini);border:1px solid var(--c-linea-osc)}
.logo-box img{height:34px;width:auto}
.nav{pointer-events:auto;display:none;align-items:center;gap:4px;height:48px;padding:0 8px;background:var(--c-blanco);border:1px solid var(--c-linea);border-radius:var(--r-mini);box-shadow:var(--sombra-menu);font-size:var(--t-14);font-weight:var(--fw-normal)}
.nav>a{white-space:nowrap;padding:6px 12px;text-decoration:none;color:var(--c-texto);border-radius:8px;transition:color .3s var(--ease)}
.nav>a:hover{color:var(--c-azul)}
.idioma{display:flex;gap:4px;padding:0 10px 0 14px;margin-left:4px;border-left:1px solid var(--c-linea);color:var(--c-texto-2)}
.idioma a{text-decoration:none}
.idioma a[aria-current]{color:var(--c-texto);font-weight:var(--fw-medio)}
.idioma a[aria-disabled]{opacity:.5;cursor:default}
.header-cta{display:none;margin-left:auto;height:48px}
.menu-btn{margin-left:auto;width:48px;height:48px;border-radius:var(--r-mini);background:var(--c-blanco);border:1px solid var(--c-linea);display:grid;place-content:center;gap:6px;cursor:pointer;box-shadow:var(--sombra-menu)}
.menu-btn span{display:block;width:18px;height:1.5px;background:var(--c-texto);transition:transform .3s var(--ease)}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
.menu-movil{pointer-events:auto;margin-top:var(--s-8);background:var(--c-blanco);border:1px solid var(--c-linea);border-radius:var(--r-card);box-shadow:var(--sombra-menu);padding:var(--s-8) var(--s-16) var(--s-16);display:flex;flex-direction:column}
.menu-movil[hidden]{display:none}
.menu-movil a:not(.btn){padding:14px 4px;border-bottom:1px solid var(--c-linea);text-decoration:none;font-size:var(--t-19)}
.menu-movil .btn{margin-top:var(--s-16)}
@media (min-width:560px){
  .header-cta{display:inline-flex}
  .menu-btn{margin-left:0}
}
@media (min-width:1100px){
  .nav{display:flex}
  .header-cta{display:inline-flex;margin-left:auto}
  .menu-btn,.menu-movil{display:none!important}
}

/* ---------- Hero (estructura de la referencia: titular en dos tiempos + reticula de tres textos cortos) ---------- */
.hero{position:relative;min-height:100svh;min-height:max(100svh,600px);color:var(--c-blanco);background:var(--c-marino);display:flex;--hero-g:max(20px, env(safe-area-inset-left, 0px));--hero-fs:clamp(2.1rem, 3.15vw, 4rem);--sim-h:calc(var(--hero-fs) * 1.95);--col:35%}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-poster,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.js .hero-video{opacity:0;transition:opacity .8s ease}
.js .hero-video.lista{opacity:1}
/* velo parejo: apaga el color del video para que mande el titular */
.hero-velo{position:absolute;inset:0;background:
  linear-gradient(to top, rgba(11,39,64,.4) 0%, rgba(11,39,64,0) 45%),
  linear-gradient(rgba(28,52,74,.46), rgba(28,52,74,.46))}
.hero-in{position:relative;z-index:2;width:100%;padding:calc(var(--h-header) + var(--s-40)) var(--hero-g) var(--s-40);display:flex;flex-direction:column;justify-content:center}
.hero-titulo{display:grid;gap:0;font-size:var(--hero-fs);font-weight:var(--fw-ligero);line-height:1.06;letter-spacing:-0.025em;color:var(--c-blanco)}
.t1{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-24)}
.t-lineas,.t2{display:block}
.hero-simbolo{height:var(--sim-h);width:auto;flex-shrink:0}
.ln{display:block;overflow:hidden;padding-bottom:.06em}
.ln>span{display:block}
.hero-base{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"izq der" "centro centro";column-gap:var(--s-24);margin-top:var(--s-40);padding-top:var(--s-16);border-top:1px solid rgba(255,255,255,.9);font-size:clamp(.95rem,1.15vw,1.125rem);font-weight:var(--fw-normal);line-height:1.35;color:var(--c-blanco)}
.hb-izq{grid-area:izq;max-width:22ch}
.hb-der{grid-area:der;text-align:right;justify-self:end;max-width:30ch}
.hb-centro{grid-area:centro;margin-top:clamp(40px,10svh,120px);max-width:34ch}
.hb-centro .btn{margin-top:var(--s-24)}
@media (min-width:900px){
  .hero-titulo{grid-template-columns:var(--col) 1fr}
  .t1{flex-direction:row;align-items:flex-start;gap:var(--s-24)}
  .hero-simbolo{margin-top:.1em}
  .hero-base{grid-template-columns:var(--col) 1fr 1fr;grid-template-areas:"izq centro der";column-gap:0}
  .hb-centro{margin-top:0;padding-right:var(--s-24)}
}
/* entrada orquestada (solo con JS) */
.js .hero .ln>span{transition:transform 1s var(--ease)}
.js .hero .ln:nth-child(2)>span{transition-delay:.09s}
.js .hero .t2 .ln:nth-child(1)>span{transition-delay:.16s}
.js .hero .t2 .ln:nth-child(2)>span{transition-delay:.25s}
.js .hero:not(.play) .ln>span{transform:translateY(110%)}
.js .hero .hero-base,.js .hero .hero-simbolo{transition:opacity 1s var(--ease) .35s, transform 1s var(--ease) .35s}
.js .hero:not(.play) .hero-base,.js .hero:not(.play) .hero-simbolo{opacity:0;transform:translateY(16px)}

/* ---------- Equipo (marquesina de pictogramas, como la franja de logos de la referencia) ---------- */
.equipo{padding:var(--s-120) 0 var(--s-120)}
.equipo .titular-sec{font-size:clamp(1.5rem,2.3vw,2.1rem);max-width:26ch;line-height:1.2}
.marquesina{margin-top:var(--s-64);overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;width:max-content;animation:mq 55s linear infinite}
.marquesina:hover .mq-track{animation-play-state:paused}
.mq-lista{display:flex;align-items:center;flex-shrink:0}
.mq-lista li{display:flex;align-items:center;gap:12px;padding-right:clamp(48px,6vw,96px);white-space:nowrap;font-size:var(--t-19);font-weight:var(--fw-medio);letter-spacing:-0.01em;color:var(--c-texto)}
.mq-lista svg{flex-shrink:0;fill:none;stroke:var(--c-azul);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- Audiencias: tarjetas de foto (distribuidores manda) ---------- */
.audiencias{padding:var(--s-120) 0;background:var(--c-fondo-2)}
.aud-cards{display:grid;gap:16px;margin-top:var(--s-64)}
.aud-card{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-card);min-height:360px;display:flex;align-items:flex-end;color:var(--c-blanco);background:var(--c-marino)}
.aud-foto{position:absolute;inset:0;z-index:-1}
.aud-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.aud-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(7,26,43,.9) 0%, rgba(7,26,43,.55) 40%, rgba(7,26,43,.05) 75%)}
.aud-txt{padding:var(--s-24)}
.aud-tag{display:inline-block;margin-bottom:var(--s-16);padding:6px 12px;border-radius:var(--r-pill);background:var(--c-verde);color:var(--c-marino);font-size:var(--t-14);font-weight:var(--fw-medio)}
.aud-txt h3{font-size:var(--t-26);font-weight:var(--fw-ligero);letter-spacing:var(--tracking-titular);line-height:1.12}
.aud-txt>p:not(.aud-tag){margin-top:var(--s-8);color:rgba(255,255,255,.86);max-width:38ch}
@media (hover:hover) and (pointer:fine){ .aud-card:hover .aud-foto img{transform:scale(1.045)} }
@media (min-width:900px){
  .aud-cards{grid-template-columns:7fr 5fr;grid-template-rows:repeat(2,minmax(320px,1fr))}
  .aud-principal{grid-row:span 2;min-height:680px}
  .aud-principal .aud-txt h3{font-size:clamp(2rem,3.2vw,3rem)}
  .aud-txt{padding:var(--s-40)}
}

/* ---------- Servicios: la ruta del equipo ---------- */
.servicios{background:var(--c-marino);color:var(--c-blanco);padding:var(--s-120) 0}
.servicios-in{position:relative;z-index:1}
.serv-cabeza{display:grid;gap:var(--s-24);align-items:end}
.serv-cabeza p{color:var(--c-texto-osc);max-width:44ch}
.ruta-foto{display:none}
.ruta{position:relative;margin-top:var(--s-64)}
.ruta-linea{position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--c-linea-osc)}
.ruta-linea span{position:absolute;inset:0 0 auto 0;height:100%;background:var(--c-verde);transform-origin:0 0;transform:scaleY(1)}
.paradas{display:grid;gap:var(--s-40);padding-left:var(--s-40);margin:0;list-style:none}
.parada{position:relative}
.parada-btn{display:flex;align-items:flex-start;gap:var(--s-16);padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:default}
.parada-punto{position:absolute;left:calc(var(--s-40) * -1);top:3px;width:13px;height:13px;border-radius:50%;background:var(--c-verde);border:2px solid var(--c-marino);box-shadow:0 0 0 1px var(--c-verde)}
.parada-et{font-size:var(--t-14);font-weight:var(--fw-medio);color:var(--c-verde)}
.parada-sub{display:block;font-weight:var(--fw-ligero);color:var(--c-texto-osc)}
.parada-foto{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-mini);margin-top:var(--s-16)}
.parada h3{margin-top:var(--s-16);font-size:var(--t-26);font-weight:var(--fw-ligero);letter-spacing:var(--tracking-titular);line-height:1.15}
.parada p{margin-top:var(--s-8);color:var(--c-texto-osc);font-size:var(--t-16);max-width:40ch}
.carril{position:relative;margin-top:var(--s-64);padding:var(--s-24);border:1px dashed rgba(136,192,64,.6);border-radius:var(--r-card);color:var(--c-texto-osc)}
.carril strong{color:var(--c-blanco);font-weight:var(--fw-medio)}
.carril-linea{display:none}
@media (min-width:900px){
  .serv-cabeza{grid-template-columns:7fr 5fr;gap:var(--s-64)}
  .serv-cabeza p{justify-self:end}
  .ruta-foto{display:block;position:relative;margin-top:var(--s-64);aspect-ratio:21/8;border-radius:var(--r-card);overflow:hidden;background:var(--c-marino-2)}
  .rf-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .7s var(--ease),transform 1.4s var(--ease)}
  .rf-img.on{opacity:1;transform:none}
  .ruta{margin-top:var(--s-40)}
  .ruta-linea{left:0;right:0;top:6px;bottom:auto;width:auto;height:1px}
  .ruta-linea span{inset:0;height:auto;width:100%;transform-origin:0 50%;transform:scaleX(var(--avance,1));transition:transform .8s var(--ease)}
  .paradas{grid-template-columns:repeat(4,1fr);gap:var(--s-24);padding-left:0}
  .parada{padding-top:var(--s-40)}
  .parada-btn{cursor:pointer}
  .parada-punto{left:0;top:0}
  .parada-btn .parada-et{display:block}
  .parada-foto{display:none}
  .js .parada{opacity:.45;transition:opacity .4s var(--ease)}
  .js .parada.on,.js .parada:hover{opacity:1}
  .js .parada:not(.on) .parada-punto{background:var(--c-marino);box-shadow:0 0 0 1px rgba(255,255,255,.5)}
  .parada-punto{transition:background-color .4s var(--ease),box-shadow .4s var(--ease)}
  .carril{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--s-24);padding:var(--s-16) var(--s-24)}
  .carril-linea{display:block;width:120px;height:0;border-top:2px dashed var(--c-verde)}
}

/* ---------- Datos: tres cifras con su argumento ---------- */
.datos{background:var(--c-fondo-2);padding:var(--s-120) 0}
.datos-cabeza{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-24)}
.cifras{display:grid;margin-top:var(--s-64);border-top:1px solid var(--c-texto)}
.cifra{display:flex;flex-direction:column;padding:var(--s-24) 0 var(--s-40);border-bottom:1px solid var(--c-linea)}
.cifra-num{display:flex;align-items:baseline;gap:10px;color:var(--c-marino);font-variant-numeric:tabular-nums}
.cuenta{font-size:clamp(4.5rem,9vw,8.5rem);font-weight:var(--fw-fino);line-height:.9;letter-spacing:-0.04em}
.cifra-u{font-size:var(--t-26);font-weight:var(--fw-ligero);letter-spacing:var(--tracking-titular)}
.cifra-et{margin-top:var(--s-16);color:var(--c-texto-2);max-width:30ch}
.cifra-arg{margin-top:var(--s-40);padding-top:var(--s-24);border-top:1px solid var(--c-linea)}
.cifra-arg h3{font-size:var(--t-19);font-weight:var(--fw-medio)}
.cifra-arg p{margin-top:var(--s-8);color:var(--c-texto-2);max-width:32ch}
@media (min-width:900px){
  .cifras{grid-template-columns:repeat(3,1fr)}
  .cifra{padding:var(--s-24) var(--s-40) 0;border-bottom:0;border-left:1px solid var(--c-linea)}
  .cifra:first-child{padding-left:0;border-left:0}
  .cifra-et{min-height:4.8em;margin-bottom:var(--s-40)}
  .cifra-arg{margin-top:0}
}

/* ---------- Como trabajamos: tarjetas apiladas ---------- */
.pasos{padding:0 0 var(--s-120);--h-cabeza:150px}
.pasos-cabeza{background:var(--c-fondo);padding:var(--s-120) 0 var(--s-24)}
.pasos-cabeza-in{display:grid;gap:var(--s-16);align-items:end;padding-inline:var(--gutter)}
.pasos-cabeza-in p{color:var(--c-texto-2);max-width:44ch}
.pasos-cabeza-in .titular-sec{font-size:clamp(2rem,4.4vw,4rem);max-width:none}
.paso{position:sticky;top:var(--h-header);display:grid;grid-template-rows:auto 1fr;background:var(--c-fondo-2);border-top:1px solid var(--c-linea);overflow:hidden;margin-bottom:24svh}
.paso:last-child{margin-bottom:0}
.paso-foto{position:relative;height:38svh;min-height:200px;overflow:hidden;background:var(--c-marino)}
.paso-foto img{width:100%;height:100%;object-fit:cover;filter:brightness(calc(1 - var(--dim,0) * .3));transition:filter .1s linear}
.paso-txt{display:flex;flex-direction:column;gap:var(--s-8);padding:var(--s-24) var(--gutter);background:color-mix(in srgb, var(--c-fondo-2), var(--c-gris-paso) calc(var(--dim,0) * 100%))}
.paso-n{font-size:var(--t-14);color:var(--c-texto-2)}
.paso h3{font-size:clamp(1.75rem,2.9vw,2.75rem);font-weight:var(--fw-ligero);letter-spacing:var(--tracking-titular);line-height:1.12}
.paso-txt>p:not(.paso-n){color:var(--c-texto-2);max-width:40ch;font-size:var(--t-19);line-height:1.5}
.paso-ruta{display:flex;align-items:center;margin-top:var(--s-16);padding-top:var(--s-8)}
.paso-ruta i{width:10px;height:10px;border-radius:50%;border:1px solid var(--c-texto-2);background:transparent;flex-shrink:0}
.paso-ruta i+i{margin-left:28px;position:relative}
.paso-ruta i+i::before{content:"";position:absolute;right:100%;top:50%;width:28px;height:1px;background:var(--c-linea)}
.paso-ruta i.on{background:var(--c-verde);border-color:var(--c-verde)}
@media (min-width:900px){
  .pasos{padding-top:var(--s-40)}
  .pasos-cabeza{position:sticky;top:0;z-index:2;padding:calc(var(--h-header) + var(--s-24)) 0 var(--s-24)}
  .pasos-cabeza-in{grid-template-columns:1fr 1fr}
  .pasos-cabeza-in p{justify-self:end}
  .pasos-cabeza::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:var(--h-header);height:1px;background:var(--c-linea)}
  .paso{top:var(--h-cabeza);grid-template-rows:none;grid-template-columns:3fr 1fr;height:min(calc(100svh - var(--h-cabeza)), 820px);min-height:440px;margin-bottom:30svh;border-top:0}
  .paso-foto{height:auto;min-height:0}
  .paso-txt{padding:var(--s-40) var(--s-40) var(--s-40);justify-content:flex-start;gap:var(--s-16)}
  .paso-ruta{margin-top:auto}
}

/* ---------- Fabricantes: banda de foto a todo lo ancho ---------- */
.fabricantes{position:relative;min-height:min(88svh,860px);display:flex;align-items:flex-end;color:var(--c-blanco);background:var(--c-marino)}
.fab-foto{position:absolute;inset:0;z-index:0}
.fab-foto img{width:100%;height:100%;object-fit:cover}
.fab-foto::after{content:"";position:absolute;inset:0;background:
  linear-gradient(to right, rgba(7,26,43,.9) 0%, rgba(7,26,43,.6) 42%, rgba(7,26,43,.08) 78%),
  linear-gradient(to top, rgba(7,26,43,.7) 0%, rgba(7,26,43,0) 55%)}
.fab-txt{position:relative;z-index:6;padding-block:var(--s-120);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-24)}
.fab-txt .titular-sec{max-width:16ch}
.fab-txt>p{color:rgba(255,255,255,.86);font-size:var(--t-19);max-width:44ch}

/* ---------- Cierre y formulario ---------- */
.cierre{background:var(--c-marino);color:var(--c-blanco);padding:var(--s-120) 0}
.cierre-fondo{position:absolute;inset:0;z-index:-1}
.cierre-fondo img{width:100%;height:100%;object-fit:cover;opacity:.22}
.cierre-fondo::after{content:"";position:absolute;inset:0;background:linear-gradient(to right, var(--c-marino) 20%, rgba(11,39,64,.6))}
.cierre-grid{display:grid;gap:var(--s-40)}
.cierre-txt>p{margin-top:var(--s-24);color:var(--c-texto-osc);max-width:40ch}
.cierre-contacto{margin-top:var(--s-40);display:grid;gap:var(--s-8);font-size:var(--t-19)}
.cierre-contacto a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);transition:border-color .3s var(--ease)}
.cierre-contacto a:hover{border-color:var(--c-verde)}
.form{position:relative;z-index:6;display:grid;gap:var(--s-16);background:var(--c-blanco);color:var(--c-texto);border-radius:var(--r-card);padding:var(--s-24)}
.campo{display:grid;gap:6px}
.campo label{font-size:var(--t-14);font-weight:var(--fw-medio)}
.opc{font-weight:var(--fw-ligero);color:var(--c-texto-2)}
.campo input,.campo select,.campo textarea{width:100%;min-height:48px;padding:12px 14px;font-size:var(--t-16);font-weight:var(--fw-normal);background:var(--c-blanco);border:1px solid var(--c-linea);border-radius:var(--r-mini);transition:border-color .3s var(--ease)}
.campo textarea{resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--c-azul);box-shadow:0 0 0 3px rgba(0,104,168,.15)}
.campo.error input,.campo.error select{border-color:#C0392B}
.form-pie{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-16)}
.form-nota{font-size:var(--t-12);color:var(--c-texto-2)}
.form-msg{font-size:var(--t-14);color:var(--c-marino);background:var(--c-verde-suave);border-radius:var(--r-mini);padding:12px 14px}
.form-wa{margin-top:var(--s-8)}
@media (min-width:640px){
  .form{grid-template-columns:1fr 1fr;padding:var(--s-40)}
  .campo-ancho{grid-column:1/-1}
}
@media (min-width:1000px){
  .cierre-grid{grid-template-columns:5fr 7fr;gap:var(--s-64);align-items:start}
}

/* ---------- Pie ---------- */
.pie{background:var(--c-marino-2);color:var(--c-texto-osc);padding:var(--s-64) 0 var(--s-40);font-size:var(--t-14)}
.pie-grid{display:grid;gap:var(--s-40);grid-template-columns:1fr 1fr}
.pie-col{display:flex;flex-direction:column;gap:6px}
.pie-col a{text-decoration:none;transition:color .3s var(--ease)}
.pie-col a:hover{color:var(--c-blanco)}
.pie-et{color:var(--c-verde);font-weight:var(--fw-medio);margin-bottom:var(--s-8)}
.pie-bloque{grid-column:1/-1;background:var(--c-azul);color:var(--c-blanco);border-radius:var(--r-card);padding:var(--s-24);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--s-24)}
.pie-bloque p{font-size:var(--t-26);font-weight:var(--fw-ligero);line-height:1.2;letter-spacing:var(--tracking-titular);max-width:18ch}
.pie-base{display:flex;flex-direction:column;gap:var(--s-24);margin-top:var(--s-64);padding-top:var(--s-40);border-top:1px solid var(--c-linea-osc)}
.pie-logo{width:clamp(220px,42vw,520px);height:auto}
.pie-base a{text-decoration:underline}
@media (min-width:900px){
  .pie-grid{grid-template-columns:1fr 1fr 1fr 1.4fr}
  .pie-bloque{grid-column:auto;min-height:260px;padding:var(--s-40)}
  .pie-base{flex-direction:row;align-items:flex-end;justify-content:space-between}
}

/* ---------- Revelados (solo con JS) ---------- */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--k,0) * 90ms)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .mq-track{animation-play-state:paused}
  .grano::after{animation:none}
  .js .hero .ln>span{transition-duration:.4s}
  .r-avance{transition-duration:.8s}
}

.audiencias .titular-sec{max-width:26ch}
@media (max-width:899px){.fab-foto::after{background:linear-gradient(to top, rgba(7,26,43,.94) 0%, rgba(7,26,43,.78) 55%, rgba(7,26,43,.45) 100%)}}

/* ====================================================================
   Subida de peso (29 oct): tipografia con cuerpo, hero con manifiesto,
   menu sin cajas, lista de equipo, hoja de datos. Sobreescribe lo de arriba.
   ==================================================================== */

/* ---------- Tipografia con cuerpo (todo el sitio) ---------- */
body{font-size:1.125rem}
.titular-sec{font-size:clamp(2.5rem,5.2vw,5.25rem);font-weight:var(--fw-ligero);line-height:1.02;letter-spacing:-0.04em}
.btn-marino{background:var(--c-marino);color:var(--c-blanco)}
.btn-marino:hover{background:var(--c-azul)}

/* ---------- Hero: titular a escala + renglon de manifiesto ---------- */
.hero-m .hero-video{filter:saturate(.55) contrast(1.05)}
.hero-m .hero-velo{background:
  linear-gradient(to top, rgba(7,26,43,.96) 0%, rgba(7,26,43,.72) 30%, rgba(7,26,43,.15) 62%, rgba(7,26,43,.25) 82%, rgba(7,26,43,.6) 100%)}
.hero-m .hero-in{justify-content:flex-end;padding-bottom:var(--s-24)}
.hm-cuerpo{display:grid;gap:var(--s-40);align-items:end}
.hm-titulo{font-size:clamp(3.1rem,9.4vw,10.5rem);font-weight:var(--fw-ligero);line-height:.92;letter-spacing:-0.055em;color:var(--c-blanco)}
.hm-titulo .ln{padding-bottom:.08em}
.hm-sub{display:block;margin-top:var(--s-24);font-size:clamp(1.15rem,1.6vw,1.6rem);font-weight:var(--fw-normal);line-height:1.25;letter-spacing:-0.01em;color:rgba(255,255,255,.9)}
.hm-lado{max-width:36ch}
.hm-lado p{font-size:clamp(1.05rem,1.25vw,1.25rem);line-height:1.5;color:rgba(255,255,255,.86)}
.hm-lado .botones{margin-top:var(--s-24);align-items:center;gap:var(--s-24)}
.hm-wa{font-weight:var(--fw-medio);font-size:.9375rem;text-decoration:none;color:var(--c-blanco);border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px;transition:border-color .3s var(--ease)}
.hm-wa:hover{border-color:var(--c-verde)}

/* El manifiesto: cinco campos de embarque sobre una ruta */
.manifiesto{position:relative;display:grid;grid-template-columns:1fr 1fr;margin:clamp(40px,7svh,88px) 0 0;border-top:1px solid rgba(255,255,255,.28)}
.mf-c{padding:var(--s-16) var(--s-16) var(--s-16) 0;border-bottom:1px solid rgba(255,255,255,.14)}
.mf-c dt{font-size:var(--t-12);font-weight:var(--fw-medio);letter-spacing:.02em;color:rgba(255,255,255,.55)}
.mf-c dd{margin:6px 0 0;font-size:clamp(1rem,1.35vw,1.3rem);font-weight:var(--fw-normal);line-height:1.25;color:var(--c-blanco)}
.mf-dato dd b{font-weight:var(--fw-medio);font-size:1.5em;letter-spacing:-0.03em;color:var(--c-verde);margin-right:4px;font-variant-numeric:tabular-nums}
.mf-ruta{display:none}
@media (min-width:900px){
  .hm-cuerpo{grid-template-columns:1fr auto;gap:var(--s-64)}
  .hm-lado{padding-bottom:.6em}
  .manifiesto{grid-template-columns:repeat(3,1fr) 1fr 1fr;border-top:0;padding-top:28px}
  .mf-c{border-bottom:0;padding:var(--s-16) var(--s-24) 0 0}
  .mf-c+.mf-c{border-left:1px solid rgba(255,255,255,.14);padding-left:var(--s-24)}
  .mf-dato:first-of-type{border-left-color:rgba(255,255,255,.4)}
  /* la ruta: una carga que recorre los cinco campos y enciende cada punto al pasar */
  .mf-ruta{display:block;position:absolute;left:0;right:0;top:0;height:12px;--ciclo:6.5s}
  .mf-ruta span{position:absolute;left:5px;right:0;top:5px;height:1px;background:rgba(255,255,255,.3);overflow:hidden}
  .mf-ruta b{position:absolute;top:0;bottom:0;left:-22%;width:22%;background:linear-gradient(to right, rgba(136,192,64,0), var(--c-verde))}
  .mf-ruta i{position:absolute;top:0;width:11px;height:11px;border-radius:50%;background:var(--c-marino);border:1px solid rgba(255,255,255,.7);z-index:1}
  .mf-ruta i:nth-of-type(1){left:0;--t:0}
  .mf-ruta i:nth-of-type(2){left:calc(20% + 24px);--t:1}
  .mf-ruta i:nth-of-type(3){left:calc(40% + 24px);--t:2}
  .mf-ruta i:nth-of-type(4){left:calc(60% + 24px);--t:3}
  .mf-ruta i:nth-of-type(5){left:calc(80% + 24px);--t:4}
  .hero-m.play .mf-ruta b{animation:mf-carga var(--ciclo) linear .6s infinite}
  .hero-m.play .mf-ruta i{animation:mf-punto var(--ciclo) linear infinite;animation-delay:calc(.6s + var(--ciclo) * var(--t) * .2 / 1.22)}
}
.js .hero-m .manifiesto,.js .hero-m .hm-lado,.js .hero-m .hm-sub{transition:opacity 1s var(--ease) .35s, transform 1s var(--ease) .35s}
.js .hero-m:not(.play) .manifiesto,.js .hero-m:not(.play) .hm-lado,.js .hero-m:not(.play) .hm-sub{opacity:0;transform:translateY(16px)}

/* ---------- Datos: hoja de embarque (renglones, no tres columnas) ---------- */
.datos-h{background:var(--c-fondo)}
.dh-cabeza{display:grid;gap:var(--s-24);align-items:end}
.dh-cabeza .titular-sec{max-width:14ch}
.dh-lado p{color:var(--c-texto-2);max-width:40ch}
.dh-lado .btn{margin-top:var(--s-24)}
.hoja{margin-top:var(--s-64);border-top:2px solid var(--c-marino)}
.renglon{display:grid;grid-template-columns:1fr;gap:var(--s-16);padding:var(--s-40) 0;border-bottom:1px solid var(--c-linea)}
.rg-concepto{font-size:var(--t-14);font-weight:var(--fw-medio);color:var(--c-azul)}
.rg-num{display:flex;align-items:baseline;gap:12px;color:var(--c-marino);font-variant-numeric:tabular-nums}
.rg-num .cuenta{font-size:clamp(5rem,12vw,11rem);font-weight:var(--fw-ligero);line-height:.82;letter-spacing:-0.06em}
.rg-u{font-size:clamp(1.25rem,1.8vw,1.75rem);font-weight:var(--fw-normal);letter-spacing:-0.02em}
.rg-txt h3{font-size:clamp(1.3rem,1.7vw,1.6rem);font-weight:var(--fw-medio);letter-spacing:-0.02em;line-height:1.2}
.rg-txt p{margin-top:var(--s-8);color:var(--c-texto-2);max-width:38ch}

/* mini graficas: se llenan al entrar en pantalla */
.rg-viz{align-self:center;font-size:var(--t-12);color:var(--c-texto-2)}
.viz-horas{display:grid;grid-template-columns:repeat(24,1fr);grid-template-rows:44px auto;gap:3px;align-items:end}
.viz-horas i{height:22px;background:var(--c-verde);border-radius:1px;transition:background-color .3s;transition-delay:calc(var(--n,0) * 30ms)}
.viz-horas i:nth-child(6n+1){height:44px}
.viz-horas span{grid-column:span 12;padding-top:6px}
.viz-horas span:last-child{text-align:right}
.viz-dias{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.viz-dias i{font-style:normal;text-align:center;padding:10px 0;border-radius:4px;background:var(--c-verde-suave);color:var(--c-marino);font-weight:var(--fw-medio)}
.viz-dias i:nth-child(10){background:var(--c-verde)}
.viz-anos{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}
.viz-anos b{height:6px;border-radius:3px;background:var(--c-verde);transform-origin:0 50%}
.js .rg-viz:not(.in) .viz-horas i,.js .viz-horas:not(.in) i{background:var(--c-linea)}
.js .viz-dias:not(.in) i{background:var(--c-fondo-2)}
.js .viz-anos b{transition:transform 1.4s var(--ease) .2s}
.js .viz-anos:not(.in) b{transform:scaleX(.05)}
.js .rg-viz.reveal{transform:none}

@media (min-width:900px){
  .dh-cabeza{grid-template-columns:1fr auto;gap:var(--s-64)}
  .dh-lado{padding-bottom:.5em}
  .renglon{grid-template-columns:130px minmax(0,1.25fr) minmax(0,1fr) minmax(0,.9fr);gap:var(--s-40);align-items:end;padding:var(--s-40) 0}
  .rg-concepto{align-self:start;padding-top:.6em}
  .rg-txt{padding-bottom:.4em}
  .rg-viz{align-self:end;padding-bottom:.6em}
}

@keyframes mf-carga{from{left:-22%}to{left:100%}}
@keyframes mf-punto{
  0%{background:var(--c-verde);border-color:var(--c-verde);box-shadow:0 0 0 0 rgba(136,192,64,.55)}
  12%{box-shadow:0 0 0 9px rgba(136,192,64,0)}
  14%{background:var(--c-verde);border-color:var(--c-verde)}
  24%,100%{background:var(--c-marino);border-color:rgba(255,255,255,.7);box-shadow:none}}

/* ---------- Menu sin cajas: logo suelto, links en linea ---------- */
.header{pointer-events:auto;background:var(--c-marino);transition:background-color .4s var(--ease),padding .4s var(--ease);border-bottom:1px solid var(--c-linea-osc)}
/* con JS: transparente sobre el hero y solido al salir; sin JS se queda solido y legible */
.js .header:not(.solido){pointer-events:none;background:transparent;border-bottom-color:transparent}
.js .header.solido{pointer-events:auto;background:var(--c-marino);border-bottom-color:var(--c-linea-osc);padding-top:calc(8px + env(safe-area-inset-top, 0px));padding-bottom:8px}
.logo-box{background:none;border:0;padding:0;border-radius:0;height:48px}
.logo-box img{height:44px}
.nav{background:none;border:0;box-shadow:none;margin-left:var(--s-40);color:var(--c-blanco)}
.nav>a{color:rgba(255,255,255,.82);padding:6px 14px}
.nav>a:hover{color:var(--c-blanco)}
.idioma{border-left-color:rgba(255,255,255,.25);color:rgba(255,255,255,.6)}
.idioma a[aria-current]{color:var(--c-blanco)}
.header-cta{min-height:44px;height:44px;padding:10px 22px}
.menu-btn{background:none;border:0;box-shadow:none}
.menu-btn span{background:var(--c-blanco);width:22px}
.menu-movil{background:var(--c-marino);border:1px solid var(--c-linea-osc);box-shadow:none;color:var(--c-blanco)}
.menu-movil a:not(.btn){border-bottom-color:var(--c-linea-osc)}

/* ---------- Equipo: lista tipografica ---------- */
.equipo-l{padding:var(--s-120) 0}
.el-grid{display:grid;gap:var(--s-40)}
.equipo-l .titular-sec{font-size:clamp(2.5rem,5.2vw,5.25rem);line-height:1.02;max-width:12ch}
.el-cabeza p{margin-top:var(--s-24);color:var(--c-texto-2);max-width:34ch}
.el-lista{display:grid;border-top:2px solid var(--c-marino)}
.el-lista li{border-bottom:1px solid var(--c-linea)}
.el-lista a{position:relative;display:block;padding:18px 40px 18px 0;font-size:clamp(1.45rem,2.6vw,2.5rem);font-weight:var(--fw-ligero);line-height:1.15;letter-spacing:-0.025em;color:var(--c-marino);text-decoration:none;transition:transform .45s var(--ease),color .3s var(--ease)}
.el-lista a::after{content:"\2192";position:absolute;right:0;top:50%;font-size:.8em;line-height:1;color:var(--c-azul);opacity:0;transform:translate(-10px,-50%);transition:opacity .35s var(--ease),transform .45s var(--ease)}
.el-lista a:hover,.el-lista a:focus-visible{color:var(--c-azul);transform:translateX(8px)}
.el-lista a:hover::after,.el-lista a:focus-visible::after{opacity:1;transform:translate(0,-50%)}
.el-otro{display:inline-block;margin-top:var(--s-24);font-size:var(--t-16);font-weight:var(--fw-medio);color:var(--c-azul);text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.el-otro:hover{text-decoration-thickness:2px}
@media (min-width:900px){
  .el-grid{grid-template-columns:5fr 7fr;gap:var(--s-64);align-items:start}
  .el-cabeza{position:sticky;top:calc(var(--h-header) + var(--s-40))}
  /* una columna: cada categoria en un solo renglon, todos del mismo alto */
  .el-lista a{padding-top:22px;padding-bottom:22px;white-space:nowrap}
}

@media (prefers-reduced-motion:reduce){
  .hero-m.play .mf-ruta b,.hero-m.play .mf-ruta i{animation:none}
  .mf-ruta span{background:var(--c-verde)}
}

.nav>a[aria-current="page"]{color:var(--c-blanco);box-shadow:inset 0 -1px 0 var(--c-verde)}

/* ---------- Inicio: servicios en corto ---------- */
.serv-corto{background:var(--c-marino);color:var(--c-blanco);padding:var(--s-120) 0}
.serv-corto .contenedor{position:relative;z-index:6}
.sc-cabeza{display:grid;gap:var(--s-24);align-items:end}
.sc-cabeza p{color:var(--c-texto-osc);max-width:40ch}
.sc-lista{margin-top:var(--s-64);border-top:1px solid var(--c-apagado-osc)}
.sc-lista a{display:grid;grid-template-columns:64px 1fr;column-gap:var(--s-16);row-gap:4px;align-items:center;padding:var(--s-24) 0;border-bottom:1px solid var(--c-linea-osc);text-decoration:none;color:inherit}
.sc-lista img{grid-row:span 2;width:64px;height:64px;object-fit:cover;border-radius:var(--r-mini);filter:saturate(.7);transition:filter .4s var(--ease)}
.sc-nombre{font-size:clamp(1.4rem,2.6vw,2.5rem);font-weight:var(--fw-ligero);letter-spacing:-0.03em;line-height:1.1}
.sc-desc{color:var(--c-texto-osc);font-size:var(--t-16);max-width:44ch}
.sc-ver{display:none;font-size:var(--t-14);font-weight:var(--fw-medio);color:var(--c-verde)}
.sc-todos{margin-top:var(--s-40)}
@media (hover:hover) and (pointer:fine){
  .sc-lista a{transition:padding .4s var(--ease)}
  .sc-lista a:hover{padding-left:var(--s-16)}
  .sc-lista a:hover img{filter:none}
}
@media (min-width:900px){
  .sc-cabeza{grid-template-columns:1fr auto;gap:var(--s-64)}
  .sc-lista a{grid-template-columns:96px minmax(0,1.1fr) minmax(0,1fr) auto;column-gap:var(--s-40)}
  .sc-lista img{grid-row:auto;width:96px;height:72px}
  .sc-ver{display:block}
}

/* ---------- Datos: graficas nuevas (contacto y semanas) ---------- */
.datos-h{background:var(--c-fondo-2)}
.viz-contacto{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:var(--t-16)}
.viz-contacto s{color:var(--c-texto-2);text-decoration:line-through 1.5px var(--c-texto-2);transition:text-decoration-color .6s var(--ease);transition-delay:calc(var(--n,0) * 180ms + .2s)}
.viz-contacto b{font-weight:var(--fw-medio);color:var(--c-blanco);background:var(--c-marino);padding:6px 14px;border-radius:var(--r-pill)}
.js .viz-contacto:not(.in) s{text-decoration-color:transparent}
.viz-semanas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.viz-semanas div{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.viz-semanas i{height:26px;border-radius:3px;background:var(--c-linea)}
.viz-semanas i.cr{background:var(--c-verde);transition:background-color .4s var(--ease);transition-delay:calc(var(--n,0) * 90ms)}
.viz-semanas span{grid-column:1/-1;padding-top:6px}
.js .viz-semanas:not(.in) i.cr{background:var(--c-linea)}

/* ---------- Inicio: como funciona en tres tiempos ---------- */
.funciona{padding:var(--s-120) 0}
.fn-pasos{position:relative;display:grid;gap:var(--s-40);margin:var(--s-64) 0 0;padding:0;list-style:none}
.fn-pasos li{position:relative;padding-top:var(--s-24);border-top:1px solid var(--c-linea)}
.fn-pasos li::before{content:"";position:absolute;left:0;top:-6px;width:11px;height:11px;border-radius:50%;background:var(--c-fondo);border:1px solid var(--c-texto-2)}
.fn-pasos li:last-child::before{background:var(--c-verde);border-color:var(--c-verde)}
.fn-t{display:block;font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:var(--fw-ligero);line-height:1.12;letter-spacing:-0.03em;color:var(--c-marino);max-width:14ch}
.fn-pasos p{margin-top:var(--s-16);color:var(--c-texto-2);max-width:30ch}
.fn-mas{display:inline-block;margin-top:var(--s-64);font-weight:var(--fw-medio);color:var(--c-azul);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.fn-mas:hover{color:var(--c-marino)}
@media (min-width:900px){
  .fn-pasos{grid-template-columns:repeat(3,1fr);gap:var(--s-40)}
}

/* ---------- Servicios: cabecera con la ruta y detalle por servicio ---------- */
.cabecera-serv{padding-top:calc(var(--h-header) + var(--s-120))}
.cabecera-serv h1.titular-sec{font-size:clamp(2.75rem,6.4vw,6.5rem);max-width:14ch}
.parada-link{display:block;margin-top:var(--s-16);font-size:var(--t-26);font-weight:var(--fw-ligero);letter-spacing:var(--tracking-titular);line-height:1.15;text-decoration:none;color:inherit}
.parada-link:hover{color:var(--c-verde)}
.carril a{color:var(--c-blanco)}
.detalle{padding:var(--s-120) 0}
.svc{display:grid;gap:var(--s-24);padding:var(--s-64) 0;border-top:1px solid var(--c-linea);scroll-margin-top:var(--h-header)}
.svc:first-child{border-top:2px solid var(--c-marino)}
.svc-foto img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-card)}
.svc-tramo{font-size:var(--t-14);font-weight:var(--fw-medio);color:var(--c-azul)}
.svc h2{margin-top:var(--s-8);font-size:clamp(2.2rem,4.4vw,4.25rem);font-weight:var(--fw-ligero);letter-spacing:-0.04em;line-height:1.02}
.svc-txt>p:not(.svc-tramo){margin-top:var(--s-24);color:var(--c-texto-2);max-width:46ch;font-size:var(--t-19);line-height:1.55}
.svc-txt .btn{margin-top:var(--s-40)}
@media (min-width:900px){
  .svc{grid-template-columns:7fr 5fr;gap:var(--s-64);align-items:center}
  .svc:nth-child(even) .svc-foto{order:2}
  .svc:nth-child(even){grid-template-columns:5fr 7fr}
}

/* ---------- Cierre corto (paginas internas) ---------- */
.cierre-corto .cc-in{position:relative;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-24)}
.cierre-corto .cc-in>p{color:var(--c-texto-osc);max-width:40ch;font-size:var(--t-19)}
.cierre-corto .botones{align-items:center;gap:var(--s-24)}

/* ---------- Como trabajamos: pagina propia ---------- */
.pasos-pagina .pasos-cabeza-in h1.titular-sec{font-size:clamp(2.2rem,4.4vw,4.25rem);max-width:none}
.dudas{padding:var(--s-64) 0;background:var(--c-fondo-2)}
.dudas .contenedor{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-24)}
.dudas p{font-size:clamp(1.3rem,2vw,1.9rem);font-weight:var(--fw-ligero);letter-spacing:-0.02em;line-height:1.2;max-width:30ch}
.rg-num{flex-wrap:wrap}
.rg-num .cuenta{white-space:nowrap}
.rg-num .cuenta-par{font-size:clamp(4rem,8.4vw,8rem)}

/* ---------- Nosotros ---------- */
.cab-nos{position:relative;min-height:min(92svh,900px);display:flex;align-items:flex-end;background:var(--c-marino);color:var(--c-blanco)}
.cab-nos-foto{position:absolute;inset:0;z-index:0}
.cab-nos-foto img{width:100%;height:100%;object-fit:cover;filter:saturate(.55)}
.cab-nos-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(7,26,43,.95) 0%, rgba(7,26,43,.6) 45%, rgba(7,26,43,.35) 80%, rgba(7,26,43,.65) 100%)}
.cab-nos-in{position:relative;z-index:6;padding-top:calc(var(--h-header) + var(--s-120));padding-bottom:var(--s-40)}
.cab-nos h1.titular-sec{font-size:clamp(2.75rem,7vw,7rem);line-height:.96;letter-spacing:-0.05em;max-width:13ch}
.manifiesto-3{margin-top:var(--s-64)}
@media (min-width:900px){
  .manifiesto-3{grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.28);padding-top:0}
}
.historia{padding:var(--s-120) 0}
.hi-grid{display:grid;gap:var(--s-40)}
.hi-txt p{font-size:var(--t-19);line-height:1.6;color:var(--c-texto-2);max-width:46ch}
.hi-txt p+p{margin-top:var(--s-24)}
.hi-txt .fn-mas{margin-top:var(--s-40)}
@media (min-width:900px){
  .hi-grid{grid-template-columns:6fr 5fr;gap:var(--s-64);align-items:start}
  .historia .titular-sec{max-width:12ch}
}

/* ---------- Preguntas frecuentes ---------- */
.faq{padding:calc(var(--h-header) + var(--s-120)) 0 var(--s-120)}
.faq-grid{display:grid;gap:var(--s-64)}
.faq-cabeza p{margin-top:var(--s-24);color:var(--c-texto-2);max-width:32ch}
.hm-wa-osc{display:inline-block;margin-top:var(--s-24);color:var(--c-azul);border-bottom-color:currentColor}
.hm-wa-osc:hover{color:var(--c-marino)}
.faq-lista{border-top:2px solid var(--c-marino)}
.pf{border-bottom:1px solid var(--c-linea)}
.pf summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s-24);padding:var(--s-24) 0;cursor:pointer;list-style:none}
.pf summary::-webkit-details-marker{display:none}
.pf h2{font-size:clamp(1.3rem,2vw,1.85rem);font-weight:var(--fw-ligero);letter-spacing:-0.02em;line-height:1.2;color:var(--c-marino)}
.pf summary:hover h2{color:var(--c-azul)}
.pf-signo{position:relative;flex-shrink:0;width:18px;height:18px}
.pf-signo::before,.pf-signo::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--c-marino);transition:transform .3s var(--ease)}
.pf-signo::after{transform:rotate(90deg)}
.pf[open] .pf-signo::after{transform:rotate(0)}
.pf p{padding:0 0 var(--s-24);color:var(--c-texto-2);max-width:60ch}
@media (min-width:900px){
  .faq-grid{grid-template-columns:4fr 7fr;gap:var(--s-64);align-items:start}
  .faq-cabeza{position:sticky;top:calc(var(--h-header) + var(--s-40))}
}

/* ---------- Cotizar ---------- */
.cab-cotizar{padding-top:calc(var(--h-header) + var(--s-64))}
.cab-cotizar h1.titular-sec{font-size:clamp(2.5rem,5.2vw,5.25rem)}

/* ---------- Pie (29 oct): marca + tres columnas + renglon base; sin bloque azul ni logo gigante ---------- */
.pie{padding:var(--s-120) 0 var(--s-40)}
.pie-grid{grid-template-columns:1fr 1fr;row-gap:var(--s-40)}
.pie-marca{grid-column:1/-1}
.pie-marca .pie-logo{width:auto;height:44px}
.pie-marca p{margin-top:var(--s-24);font-size:clamp(1.25rem,1.8vw,1.6rem);font-weight:var(--fw-ligero);line-height:1.3;letter-spacing:-0.02em;color:var(--c-blanco);max-width:24ch}
.pie-col{gap:10px;font-size:var(--t-16)}
.pie-et{font-size:var(--t-14);margin-bottom:var(--s-8)}
.pie-base{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-16);margin-top:var(--s-64);padding-top:var(--s-24);font-size:var(--t-14)}
.pie-base a{text-decoration:none;transition:color .3s var(--ease)}
.pie-base a:hover{color:var(--c-blanco)}
@media (min-width:900px){
  .pie-grid{grid-template-columns:2fr 1fr 1fr 1fr;column-gap:var(--s-40)}
  .pie-marca{grid-column:auto}
  .pie-base{margin-top:var(--s-120)}
}

/* ============ AVISO DE PRIVACIDAD ============ */
.legal .faq-cabeza p{max-width:none}
.legal .legal-fecha{margin-top:var(--s-8);font-size:var(--t-14)}
.legal-texto{border-top:2px solid var(--c-marino)}
.legal-bloque{padding:var(--s-40) 0;border-bottom:1px solid var(--c-linea)}
.legal-bloque h2{font-size:var(--t-26);font-weight:var(--fw-ligero);letter-spacing:-.02em;line-height:1.2}
.legal-bloque p,.legal-bloque ul{margin-top:var(--s-16);color:var(--c-texto-2);max-width:62ch}
.legal-bloque ul{padding-left:1.1em}
.legal-bloque li+li{margin-top:var(--s-8)}
.legal-bloque a{color:var(--c-azul)}

/* ============ SERVICIOS EN CORTO v2: ruta numerada con una carga que baja (como el manifiesto del hero) ============ */
.serv-corto{position:relative;overflow:hidden}
.sc-cabeza{display:block}
.sc-cabeza .titular-sec{max-width:16ch}
.sc-intro{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-24);margin-top:var(--s-40)}
.sc-intro p{color:var(--c-texto-osc);max-width:46ch}
.sc-lista{position:relative;z-index:2;margin-top:var(--s-64);border-top:0}
.sc-lista::before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--c-apagado-osc)}
.sc-lista a{grid-template-columns:2rem 1fr;column-gap:var(--s-16);row-gap:var(--s-8);align-items:baseline;padding:var(--s-24) 0 var(--s-24) var(--s-40);position:relative}
.sc-lista li:first-child a{border-top:1px solid var(--c-linea-osc)}
.sc-num{position:relative;font-size:var(--t-14);font-weight:var(--fw-medio);color:var(--c-texto-osc);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.sc-num::before{content:"";position:absolute;left:calc(-1 * var(--s-40) + 0px);top:50%;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;background:var(--c-marino);border:1px solid var(--c-apagado-osc);transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.sc-desc{grid-column:2}
.sc-flecha{display:none}
.sc-nombre{transition:transform .5s var(--ease)}
.sc-lista a:focus-visible .sc-num::before{background:var(--c-verde);border-color:var(--c-verde)}
@media (hover:hover) and (pointer:fine){
  .sc-lista a,.sc-lista a:hover{padding-left:var(--s-40)}
  .sc-lista a{transition:opacity .4s var(--ease)}
  .sc-lista:hover a:not(:hover){opacity:.4}
  .sc-lista a:hover .sc-nombre{transform:translateX(var(--s-16))}
  .sc-lista a:hover .sc-num{color:var(--c-blanco)}
  .sc-lista a:hover .sc-num::before{background:var(--c-verde);border-color:var(--c-verde);transform:scale(1.25)}
  .sc-lista a:hover .sc-flecha{opacity:1;transform:none}
}
@media (min-width:900px){
  .sc-lista a{grid-template-columns:72px minmax(0,1.15fr) minmax(0,1fr) 48px;column-gap:var(--s-40);align-items:center;padding-top:var(--s-40);padding-bottom:var(--s-40)}
  .sc-desc{grid-column:auto}
  .sc-flecha{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--c-apagado-osc);color:var(--c-blanco);opacity:0;transform:translateX(-8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
}

/* la carga: baja por la ruta en loop y enciende cada punto al pasar (--p lo pone el JS) */
.sc-recorrido{position:relative;margin-top:var(--s-64);--ciclo:6.5s}
.sc-recorrido .sc-lista{margin-top:0}
.sc-lista::before{display:none}
.sc-ruta{position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--c-apagado-osc);overflow:hidden;z-index:3}
.sc-ruta b{position:absolute;left:0;right:0;top:-25%;height:25%;background:linear-gradient(to bottom, rgba(136,192,64,0), var(--c-verde));opacity:0}
.sc-num::before{z-index:4}
.sc-recorrido.play .sc-ruta b{opacity:1;animation:sc-carga var(--ciclo) linear infinite}
.sc-recorrido.play .sc-num::before{animation:sc-punto var(--ciclo) linear infinite;animation-delay:calc(var(--ciclo) * var(--p,0) / 1.25)}
.sc-recorrido.play .sc-num{animation:sc-numero var(--ciclo) linear infinite;animation-delay:calc(var(--ciclo) * var(--p,0) / 1.25)}
@keyframes sc-carga{from{transform:translateY(0)}to{transform:translateY(500%)}}
@keyframes sc-punto{0%{background:var(--c-verde);border-color:var(--c-verde);transform:scale(1.35)}8%{transform:scale(1)}35%{background:var(--c-verde);border-color:var(--c-verde)}55%,100%{background:var(--c-marino);border-color:var(--c-apagado-osc);transform:scale(1)}}
@keyframes sc-numero{0%,35%{color:var(--c-verde)}55%,100%{color:var(--c-texto-osc)}}

/* Menu centrado: logo a la izquierda, links al centro de la pagina, boton a la derecha */
@media (min-width:1100px){
  .header-in{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s-24)}
  .header-in .logo-box{justify-self:start}
  .header-in .nav{margin-left:0;justify-self:center}
  .header-in .header-cta{margin-left:0;justify-self:end}
}

/* Equipo: solo dos tamanos en la seccion (titular y texto). La lista baja a tamano de texto, como indice */
.el-lista a{font-size:var(--t-19);font-weight:var(--fw-normal);letter-spacing:-0.01em;padding:16px 32px 16px 0}
.el-lista a::after{font-size:1em}
@media (min-width:900px){
  .el-grid{align-items:end}
  .el-cabeza{position:static}
  .el-lista a{padding-top:14px;padding-bottom:14px}
}
.el-cabeza p,.el-otro{font-size:var(--t-19)}

/* Hero en celular: video vertical propio; velo mas parejo porque el texto ocupa casi toda la pantalla */
@media (max-width:767px){
  .hero-m .hero-velo{background:linear-gradient(to top, rgba(7,26,43,.96) 0%, rgba(7,26,43,.82) 32%, rgba(7,26,43,.58) 58%, rgba(7,26,43,.4) 80%, rgba(7,26,43,.6) 100%)}
}
/* Cierre: la foto nueva ya es oscura y tranquila, se puede ver mas */
.cierre-fondo img{opacity:.6}

/* Hero sin botones: el texto va debajo del titular, en una sola columna */
.hm-cuerpo{grid-template-columns:1fr;gap:var(--s-24)}
.hm-lado{max-width:48ch;padding-bottom:0}
.hm-lado p{font-size:clamp(1.05rem,1.35vw,1.35rem);color:rgba(255,255,255,.82)}
.hm-cta{margin-top:var(--s-24)}
@media (min-width:560px){.hm-cta{display:none}}
@media (min-width:900px){.hero-m .hm-cuerpo{grid-template-columns:1fr;gap:var(--s-24)}.hm-lado{padding-bottom:0}}

/* Manifiesto en celular: la misma ruta del escritorio, pero vertical.
   Cinco renglones del mismo alto (dato a la izquierda, valor a la derecha) y una carga verde que baja y enciende cada punto. */
@media (max-width:899px){
  .hero-m .manifiesto{display:block;position:relative;padding-left:28px;border-top:0}
  .hero-m .mf-c{display:flex;align-items:center;justify-content:space-between;gap:var(--s-16);height:46px;padding:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .hero-m .mf-c:last-of-type{border-bottom:0}
  .hero-m .mf-c dd{margin:0;text-align:right;white-space:nowrap;font-size:1rem;line-height:1}
  .hero-m .mf-dato dd b{font-size:1.35em}
  .hero-m .mf-ruta{display:block;position:absolute;left:0;top:0;bottom:0;width:11px;--ciclo:6.5s}
  .hero-m .mf-ruta span{position:absolute;left:5px;top:23px;bottom:23px;width:1px;background:rgba(255,255,255,.3);overflow:hidden}
  .hero-m .mf-ruta b{position:absolute;left:0;right:0;top:-22%;height:22%;background:linear-gradient(to bottom, rgba(136,192,64,0), var(--c-verde))}
  .hero-m .mf-ruta i{position:absolute;left:0;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;background:var(--c-marino);border:1px solid rgba(255,255,255,.7);z-index:1}
  .hero-m .mf-ruta i:nth-of-type(1){top:10%;--t:0}
  .hero-m .mf-ruta i:nth-of-type(2){top:30%;--t:1}
  .hero-m .mf-ruta i:nth-of-type(3){top:50%;--t:2}
  .hero-m .mf-ruta i:nth-of-type(4){top:70%;--t:3}
  .hero-m .mf-ruta i:nth-of-type(5){top:90%;--t:4}
  .hero-m.play .mf-ruta b{animation:mf-carga-v var(--ciclo) linear .6s infinite}
  .hero-m.play .mf-ruta i{animation:mf-punto var(--ciclo) linear infinite;animation-delay:calc(.6s + var(--ciclo) * var(--t) * .25 / 1.22)}
}
@keyframes mf-carga-v{from{top:-22%}to{top:100%}}
@media (max-width:899px) and (prefers-reduced-motion:reduce){
  .hero-m.play .mf-ruta b,.hero-m.play .mf-ruta i{animation:none}
}
@media (max-width:359px){.hero-m .mf-c dd{font-size:.875rem}.hero-m .mf-c{gap:var(--s-8)}}
/* Campo trampa para robots: fuera de la vista y del teclado */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form{position:relative}
