  :root{
    --ink:#141619;--ink-2:#1E2128;--ink-3:#2A2F38;
    --red:#E43018;--red-bright:#FF4326;--silver:#C0C0C0;
    --paper:#F5F6F8;--paper-2:#ECEEF1;--line:#DCDFE5;
    --text:#141619;--muted:#6A7280;--on-dark:#EEF0F3;--on-dark-muted:#A7AEB8;--white:#FFF;
    --radius:16px;--shadow:0 18px 44px -20px rgba(0,0,0,.5);--shadow-sm:0 8px 22px -12px rgba(10,12,16,.3);
    --wrap:1180px;
    --grad-red:linear-gradient(135deg,#E43018,#FF5A2A);
    --orange:#FF6A00;--grad-orange:linear-gradient(135deg,#FF6A00,#FF9100);
    /* El naranja de marca, un paso mas arriba: sobre negro el #FF6A00 se apaga.
       Es el acento electrico que pidio el cliente, y el mismo que usa el
       contorno de la pieza encendida en la seccion 3D. */
    --elec:#FF8A1F;
    /* 🔑 UN SOLO FONDO para toda la pagina. Antes alternaba entre papel claro,
       `--ink`, `--ink-2` y un radial gris: cada seccion parecia de un sitio
       distinto. Las secciones ya no traen fondo propio; lo que las separa es
       el aire y un filo de 1px, no un cambio de color. */
    --noche:#07080A;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--noche);color:var(--on-dark);font-family:"Hanken Grotesk",system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:"Saira","Hanken Grotesk",sans-serif;line-height:1.05;margin:0;letter-spacing:-.01em}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
  .eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
  .section{padding:88px 0;border-top:1px solid rgba(255,255,255,.07)}
  .section:first-of-type{border-top:0}
  @media(max-width:720px){.section{padding:58px 0}}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:600;font-size:1rem;padding:14px 26px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;font-family:inherit;transition:transform .15s,box-shadow .2s}
  .btn:hover{transform:translateY(-2px)}
  .btn-red{background:var(--grad-red);color:#fff;box-shadow:0 10px 24px -14px rgba(0,0,0,.55)}
  .btn-orange{background:var(--grad-orange);color:#fff;box-shadow:0 10px 24px -14px rgba(0,0,0,.55)}
  .btn-ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.4)}
  .btn-ghost:hover{border-color:var(--red);color:var(--red-bright)}
  .btn-lg{padding:16px 32px;font-size:1.05rem}
  .btn-block{width:100%}

  .demobar{background:rgba(0,0,0,.6);backdrop-filter:blur(16px);color:var(--on-dark-muted);font-size:.78rem;text-align:center;padding:7px 12px}
  .demobar strong{color:var(--red-bright)}

  .util{background:rgba(7,8,10,.72);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);color:var(--on-dark-muted);font-size:.82rem;border-bottom:1px solid rgba(255,255,255,.07)}
  .util .wrap{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:8px 20px;flex-wrap:wrap}
  .util span{display:inline-flex;align-items:center;gap:7px}
  .util svg{width:15px;height:15px;stroke:var(--elec);fill:none}

  /* Header NEGRO con el nav en naranja fosforescente. El vidrio blanco era lo
     ultimo que quedaba del tema claro y partia la pagina en dos mundos: ahora
     flota sobre el mismo negro que todo lo demas. El filo inferior es naranja
     muy bajo — a tope de opacidad se convierte en una raya, no en un borde. */
  header.nav{position:sticky;top:0;z-index:50;background:rgba(7,8,10,.74);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);border-bottom:1px solid rgba(255,138,31,.22);
             transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1)}
  /* Mientras dura la experiencia el header SE RETIRA: la barra blanca se come
     el titulo del render —«La experiencia PARK N WASH · Cada pieza que lavamos»—
     justo cuando empieza a leerse. Vuelve al salir de la seccion. */
  header.nav.replegado{opacity:0;transform:translateY(-100%);pointer-events:none}
  .demobar,.util{transition:opacity .5s cubic-bezier(.16,1,.3,1)}
  body.en-experiencia .demobar,body.en-experiencia .util{opacity:0;pointer-events:none}
  .nav .wrap{display:flex;align-items:center;gap:24px;padding:14px 20px}
  /* El logo es el vector del cliente (`logo.svg`, trazado desde su PNG HD con
     scripts/vectorizar_logo.py), en sus colores: rojo y gris plata. Sin halo:
     el naranja alrededor de un logo rojo lo ensuciaba. */
  .logo-img{height:46px;width:auto;display:block}
  nav.menu{margin-left:auto;display:flex;gap:26px}
  /* Fosforescente: el color solido ya resalta sobre negro; el halo corto es lo
     que lo hace parecer encendido en vez de pintado. Al pasar el raton sube a
     blanco, que es mas brillante que el propio acento. */
  nav.menu a{color:var(--elec);font-size:.95rem;font-weight:600;letter-spacing:.01em;
             text-shadow:0 0 14px rgba(255,138,31,.45);transition:color .2s,text-shadow .2s}
  nav.menu a:hover{color:#FFF3E6;text-shadow:0 0 18px rgba(255,170,80,.75)}
  nav.menu a:focus-visible{outline:2px solid var(--elec);outline-offset:4px;border-radius:4px}
  .menu .menu-cta{display:none}
  .burger{display:none;background:rgba(255,138,31,.08);border:1px solid rgba(255,138,31,.34);
          border-radius:10px;width:44px;height:44px;cursor:pointer;padding:0;place-items:center}
  .burger svg{width:24px;height:24px;stroke:var(--elec);fill:none}
  @media(max-width:900px){
    .nav .wrap{justify-content:space-between;gap:12px}
    .nav-cta{display:none}
    .burger{display:grid}
    /* El desplegable tambien va en negro: abierto sobre fondo claro era una
       lamina blanca encima de una pagina oscura. */
    nav.menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
             background:rgba(7,8,10,.96);backdrop-filter:blur(18px);
             border-bottom:1px solid rgba(255,138,31,.22);padding:8px 20px 16px;
             display:none}
    header.nav.open nav.menu{display:flex}
    nav.menu a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-size:1.02rem;opacity:1}
    .menu .menu-cta{display:block;margin-top:12px;border-bottom:0;background:var(--grad-orange);
                    color:#140B02;text-align:center;border-radius:999px;padding:14px;font-weight:700;
                    text-shadow:none}
  }

  /* HERO con foto */
  /* HERO — negro, sin fotografia.
     La foto de stock contradecia el mundo que acaba de establecer la seccion 3D,
     que es un showroom oscuro. El hero hereda ese mundo: negro, la luz naranja
     entrando desde un lado y nada mas. La profundidad la dan tres planos a
     distinta distancia, no una imagen. */
  .hero{position:relative;min-height:100vh;display:flex;align-items:center;color:#fff;
        overflow:hidden;background:#07080A;isolation:isolate}
  /* Plano 1 — el resplandor que entra por la derecha, de donde venia el coche. */
  .hero .bg{position:absolute;inset:-20% -10%;
            background:radial-gradient(70% 72% at 50% 46%, rgba(255,138,31,.30) 0%, rgba(255,106,0,.11) 34%, transparent 68%),
                       radial-gradient(45% 55% at 12% 88%, rgba(228,48,24,.16) 0%, transparent 62%);
            filter:blur(14px)}
  /* Plano 2 — oscurece SOLO el lado del texto y la base.
     ⚠️ Cubriendo también el lado derecho, el resplandor del plano 1 desaparecía
     por completo: el hero quedaba negro liso y la profundidad se perdía. */
  .hero .scrim{position:absolute;inset:0;
               background:radial-gradient(78% 68% at 50% 50%, transparent 24%, rgba(7,8,10,.80) 78%),
                          linear-gradient(0deg, rgba(7,8,10,.97) 0%, transparent 44%)}
  /* Plano 3 — las tiras del showroom, continuadas.
     La sección de arriba termina en una nave con LED en diagonal; el hero las
     deja entrar al fondo para que los dos planos sean el mismo sitio. */
  .hero .leds{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.5}
  .hero .leds i{position:absolute;top:-22%;height:144%;width:2px;transform:rotate(14deg);
                background:linear-gradient(180deg, transparent, rgba(255,255,255,.62) 24%,
                           rgba(255,255,255,.62) 74%, transparent)}
  .hero .leds i:nth-child(1){left:14%;opacity:.42}
  .hero .leds i:nth-child(2){left:80%;opacity:.42}
  .hero .leds i:nth-child(3){left:92%;opacity:.26}
  /* Plano 4 — la viñeta, que cierra el cuadro y empuja el texto al frente. */
  .hero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
               background:radial-gradient(120% 100% at 50% 50%, transparent 42%, rgba(0,0,0,.66) 100%)}
  /* contenido recargado a la izquierda, alineado a la izquierda */
  /* Centrado: el hero ya no reparte el cuadro entre texto a un lado y foto al
     otro —la foto se fue—, asi que el titular manda desde el eje. */
  .hero .wrap{position:relative;max-width:900px;margin:0 auto;text-align:center;
              padding:64px 20px 70px clamp(20px,6vw,110px);}
  .hero .eyebrow,.hero p.lead,.hero .actions,.hero .seals{margin-left:auto;margin-right:auto}
  .hero h1{font-size:clamp(2.1rem,4.4vw,3.5rem);max-width:19ch;text-transform:uppercase;
           font-weight:800;margin:0 auto;letter-spacing:-.022em;text-wrap:balance}
  /* El acento es el naranja ELECTRICO, en color solido: sobre negro el peso y el
     tono bastan, y un degradado en el texto solo le quitaria filo. El halo es
     corto y del mismo tono — es luz, no una sombra de profundidad. */
  .hero h1 .hl{color:var(--elec);text-shadow:0 0 22px rgba(255,138,31,.38),0 0 5px rgba(255,138,31,.22)}
  .hero p.lead{font-size:1.04rem;color:#C9D0D9;max-width:52ch;margin:20px auto 32px}
  .hero .actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
  .hero .seals{display:flex;gap:14px;margin-top:40px;flex-wrap:wrap;justify-content:center}

  /* APARICIÓN AL BAJAR — un solo gesto, no un efecto por bloque.
     Las palabras del titular entran escalonadas desde abajo, desenfocadas, y se
     van enfocando: así el titular se "arma" mientras bajas en vez de aparecer
     de golpe. El resto del hero sigue el mismo gesto, más tenue y más tarde, de
     modo que lee como UN movimiento y no como cinco animaciones sueltas.
     La curva es un ease-out exponencial: casi todo el recorrido ocurre al
     principio, que es lo que lo hace sentir suave y no mecánico. */
  /* ⚠️ El `display` lo ponen SOLO los spans de palabra. Aplicado a `.rev` en
     general, un `h2` o un `div.actions` pasaban a inline-block y se salían de
     su flujo: en la sección de cierre el titular y su párrafo acabaron uno al
     lado del otro en vez de apilados. */
  span.rev{display:inline-block}
  .rev{opacity:0;transform:translateY(.52em);filter:blur(9px);
       transition:opacity .9s cubic-bezier(.16,1,.3,1),
                  transform .9s cubic-bezier(.16,1,.3,1),
                  filter .9s cubic-bezier(.16,1,.3,1);
       transition-delay:var(--d,0ms);will-change:opacity,transform,filter}
  .visible .rev{opacity:1;transform:none;filter:blur(0)}
  /* Sin el estado inicial, un lector sin JS se queda con el texto invisible. */
  .no-js .rev{opacity:1;transform:none;filter:none}
  @media(prefers-reduced-motion:reduce){
    .rev{transition:none;opacity:1;transform:none;filter:none}
  }
  .seal{display:flex;align-items:center;gap:10px;font-size:.85rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:10px 16px;border-radius:999px}
  .seal svg{width:18px;height:18px;stroke:var(--red-bright);fill:none;flex:0 0 auto}

  /* servicios (tarjetas oscuras, tipo referencia) */
  .services{background:transparent;color:var(--on-dark)}
  .shead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:38px;flex-wrap:wrap}
  .shead h2{color:#fff;font-size:clamp(1.5rem,2.8vw,2.1rem);text-transform:uppercase}
  .shead a{color:var(--red-bright);font-weight:600;font-size:.95rem}
  /* paquetes: tarjetas metálicas con elevación real */
  .tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;align-items:stretch}
  @media(max-width:960px){.tiers{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.tiers{grid-template-columns:1fr}}
  .tier{--metal1:#E9ECF1;--metal2:#A9AFB9;position:relative;display:flex;flex-direction:column;
        background:linear-gradient(180deg,#22262E 0%, #171A20 100%);
        border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:30px 26px 28px;
        box-shadow:0 26px 50px -30px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.06);
        transition:transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s}
  .tier:hover{transform:translateY(-8px);box-shadow:0 40px 70px -34px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.09)}
  /* filo metálico superior — la firma de profundidad de cada nivel */
  .tier .edge{position:absolute;top:0;left:26px;right:26px;height:4px;border-radius:0 0 4px 4px;
              background:linear-gradient(90deg,var(--metal2),var(--metal1),var(--metal2))}
  .tier .metal{font-family:"Saira";font-weight:800;font-size:1.5rem;text-transform:uppercase;letter-spacing:.02em;
               background:linear-gradient(180deg,var(--metal1),var(--metal2));
               -webkit-background-clip:text;background-clip:text;color:transparent;
               filter:drop-shadow(0 1px 0 rgba(0,0,0,.5))}
  .tier .washes{color:var(--on-dark-muted);font-size:.92rem;margin-top:2px}
  .tier .price{font-family:"Saira";font-weight:700;font-size:2.6rem;color:#fff;line-height:1;margin-top:18px}
  .tier .price small{font-size:.85rem;color:var(--on-dark-muted);font-weight:500;font-family:"Hanken Grotesk";margin-left:4px}
  .tier .perwash{color:var(--red-bright);font-weight:600;font-size:.85rem;margin-top:6px}
  .tier ul{list-style:none;padding:0;margin:20px 0 24px;display:grid;gap:10px;flex-grow:1}
  .tier li{display:flex;gap:10px;font-size:.9rem;color:var(--on-dark)}
  .tier li svg{width:18px;height:18px;stroke:var(--red-bright);fill:none;flex:0 0 auto;margin-top:3px}
  .tier .btn{margin-top:auto}
  /* nivel destacado: más elevado y con luz ambiental detrás */
  .tier.pop{background:linear-gradient(180deg,#2A2018 0%, #1A1613 100%);border-color:rgba(212,175,55,.5);
            transform:translateY(-10px);box-shadow:0 48px 84px -30px rgba(0,0,0,.95), inset 0 1px 0 rgba(246,218,132,.14)}
  .tier.pop:hover{transform:translateY(-16px)}
  .tier .flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);white-space:nowrap;
              background:linear-gradient(180deg,#F4D67A,#C79A2E);color:#3a2a05;font-size:.72rem;font-weight:800;
              letter-spacing:.06em;padding:6px 14px;border-radius:999px;text-transform:uppercase;box-shadow:0 6px 16px -6px rgba(0,0,0,.6)}
  /* paletas por metal */
  .tier-bronce{--metal1:#F0B685;--metal2:#9C6432}
  .tier-plata {--metal1:#EDEFF3;--metal2:#9AA1AC}
  .tier-oro   {--metal1:#F6DA84;--metal2:#C79A2E}
  .tier-titanio{--metal1:#D4DAE2;--metal2:#767C87}

  /* franja "más que un lavado" + membresía */
  .why{background:transparent;color:var(--on-dark)}
  .why h2{color:#fff;font-size:clamp(1.4rem,2.5vw,1.9rem);text-transform:uppercase;margin-bottom:24px}
  .why .feats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px}
  @media(max-width:820px){.why .feats{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.why .feats{grid-template-columns:1fr}}
  .why .feat{display:flex;gap:12px;align-items:flex-start}
  .why .feat svg{width:24px;height:24px;stroke:var(--red-bright);fill:none;flex:0 0 auto;margin-top:2px}
  .why .feat b{color:#fff;display:block;font-size:.98rem}
  .why .feat span{color:var(--on-dark-muted);font-size:.85rem}

  /* 3 pasos */
  .steps-s .head{text-align:center;max-width:600px;margin:0 auto 44px}
  .steps-s .head h2{font-size:clamp(1.5rem,2.8vw,2.1rem);text-transform:uppercase;margin:12px 0}
  .steps-s .head p{color:var(--on-dark-muted)}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  @media(max-width:760px){.steps{grid-template-columns:1fr}}
  /* ⚠️ Eran tarjetas BLANCAS, lo último del tema claro: con el texto claro de
     la página encima, el titular no se leía. Van como las tarjetas de misión. */
  .step{background:linear-gradient(180deg,#1E2128,#171A20);border:1px solid rgba(255,255,255,.08);
        border-radius:var(--radius);padding:32px 28px;box-shadow:0 26px 50px -32px rgba(0,0,0,.9)}
  .step .n{font-family:"Saira";font-weight:700;color:#fff;width:44px;height:44px;border-radius:12px;background:var(--grad-red);display:grid;place-items:center;font-size:1.2rem;margin-bottom:16px}
  .step h3{font-size:1.2rem;text-transform:uppercase;margin-bottom:8px}
  .step p{color:var(--on-dark-muted);margin:0;font-size:.95rem}

  /* misión + métricas */
  .about{background:transparent;color:var(--on-dark)}
  .about .grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  @media(max-width:820px){.about .grid{grid-template-columns:1fr;gap:32px}}
  .about h2{font-size:clamp(1.45rem,2.6vw,1.95rem);text-transform:uppercase;margin:12px 0 16px}
  .about p{color:var(--on-dark-muted);font-size:1rem}
  .about .sign{margin-top:20px;font-family:"Saira";font-weight:700;color:#fff}
  .about .sign small{display:block;color:var(--on-dark-muted);font-weight:400;font-family:"Hanken Grotesk";font-size:.85rem}
  .metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .metric{background:linear-gradient(180deg,#1E2128,#171A20);border:1px solid rgba(255,255,255,.08);
          color:#fff;border-radius:var(--radius);padding:28px;text-align:center}
  .metric .num{font-family:"Saira";font-weight:700;font-size:2.1rem;color:var(--red-bright);line-height:1}
  .metric small{color:var(--on-dark-muted);font-size:.85rem}

  /* experiencia: image-sequence scrubbing + rótulos ligados a la pieza */
  /* La seccion es OSCURA: el coche negro necesita contra que recortarse, y el
     fondo del canvas es un ciclorama de estudio, no un color plano. */
  /* Altura = cuánto scroll CUESTA el recorrido. Eran 1360vh: trece pantallas y
     media para ocho capítulos, y avanzar se sentía como empujar el coche a mano.
     Ahora son ~85vh por capítulo: una pantalla de scroll por pieza. */
  .exp{position:relative;height:680vh;background:#0b0c0e}
  .exp-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
  .exp-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}
  .exp-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
  .exp-head{position:absolute;top:24px;left:0;right:0;text-align:center;z-index:3;pointer-events:none;padding:0 20px}
  .exp-head .eyebrow{color:var(--red-bright)}
  .exp-head h2{color:var(--on-dark);font-size:clamp(1.1rem,2.1vw,1.55rem);text-transform:uppercase;margin-top:6px;opacity:.9}
  /* rótulo editorial a un lado, ligado por línea a la pieza */
  .exp-ann{position:absolute;z-index:4;top:50%;width:min(34vw,380px);
           opacity:0;transform:translateY(-44%);transition:opacity .4s ease, transform .4s ease;pointer-events:none}
  .exp-ann.side-left{left:5.5vw;text-align:left}
  .exp-ann.side-right{left:auto;right:5.5vw;text-align:right}
  .exp-ann.on{opacity:1;transform:translateY(-50%)}
  /* El rotulo cae sobre el coche, y el coche cambia de claro a oscuro cuando la
     pieza se enciende: un halo detras del texto lo sostiene en los dos casos.
     Va difuminado hasta cero para que no se lea como una caja encima. */
  .exp-ann::before{content:"";position:absolute;inset:-12vh -7vw -12vh -9vw;z-index:-1;
                   background:radial-gradient(ellipse at center,
                     rgba(8,9,11,.86) 0%, rgba(8,9,11,.55) 42%, rgba(8,9,11,0) 74%);
                   pointer-events:none}
  .exp-ann .k{display:block;font-family:"Saira";font-weight:800;letter-spacing:.2em;text-transform:uppercase;
              font-size:.82rem;color:var(--red-bright);margin-bottom:6px}
  .exp-ann h3{color:var(--on-dark);font-family:"Saira";font-weight:800;font-size:clamp(1.55rem,3.2vw,2.4rem);
              text-transform:uppercase;margin:0 0 10px;line-height:.95;letter-spacing:-.01em}
  .exp-ann p{color:var(--on-dark-muted);font-size:.96rem;line-height:1.5;max-width:34ch;margin:0}
  .exp-ann.side-right p{margin-left:auto}
  .exp-progress{position:absolute;left:6vw;right:6vw;bottom:26px;height:3px;border-radius:999px;
                background:rgba(255,255,255,.14);z-index:3}
  .exp-progress i{display:block;height:100%;width:0;background:var(--grad-red);border-radius:999px}
  .exp-hint{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:3;
            color:var(--on-dark-muted);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;transition:opacity .4s}
  @media(max-width:760px){
    .exp{height:540vh}
    .exp-ann,.exp-ann.side-left,.exp-ann.side-right{left:18px;right:18px;width:auto;top:auto;bottom:80px;transform:translateY(16px);text-align:left}
    .exp-ann.side-right p{margin-left:0}
    .exp-ann.on{transform:none}
    .exp-ann h3{font-size:clamp(1.35rem,6.2vw,1.8rem)}
  }
  @media(prefers-reduced-motion:reduce){
    .exp{height:auto}
    .exp-sticky{position:static;height:72vh}
    .exp-hint{display:none}
  }

  /* misión y visión */
  .mv{background:transparent;color:var(--on-dark)}
  .mv .head{text-align:center;max-width:560px;margin:0 auto 36px}
  .mv .head h2{color:#fff;font-size:clamp(1.5rem,2.8vw,2.1rem);text-transform:uppercase;margin:12px 0}
  .mv .grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  @media(max-width:760px){.mv .grid{grid-template-columns:1fr}}
  .mv .card2{background:linear-gradient(180deg,#1E2128,#171A20);border:1px solid rgba(255,255,255,.08);
             border-radius:18px;padding:36px;box-shadow:0 26px 50px -32px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05)}
  .mv .ic{width:54px;height:54px;border-radius:14px;background:rgba(228,48,24,.14);display:grid;place-items:center;margin-bottom:18px}
  .mv .ic svg{width:27px;height:27px;stroke:var(--red-bright);fill:none}
  .mv h3{color:#fff;font-size:1.5rem;text-transform:uppercase;margin-bottom:12px}
  .mv p{color:var(--on-dark-muted);margin:0;font-size:1rem;line-height:1.6}

  /* ubicaciones — mapa con profundidad */
  .loc{background:transparent;color:var(--on-dark);position:relative;overflow:hidden}
  .loc .grid{display:grid;grid-template-columns:1.35fr .9fr;gap:44px;align-items:center}
  @media(max-width:860px){.loc .grid{grid-template-columns:1fr;gap:28px}}
  .loc h2{color:#fff;font-size:clamp(1.5rem,2.8vw,2.1rem);text-transform:uppercase;margin:12px 0 14px}
  .loc p{color:var(--on-dark-muted);max-width:44ch}
  .map-wrap{position:relative}
  /* piso de luz bajo el mapa: da la sensación de que flota sobre la mesa */
  .map-wrap::after{content:"";position:absolute;left:8%;right:8%;bottom:2%;height:42px;border-radius:50%;
                   background:radial-gradient(closest-side, rgba(0,0,0,.6), transparent);filter:blur(6px);z-index:0}
  .map-wrap img{position:relative;z-index:1;width:100%;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6));
                animation:float 7s ease-in-out infinite}
  @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  @media(prefers-reduced-motion:reduce){.map-wrap img{animation:none}}
  .loc-list{display:grid;gap:14px}
  .loc-item{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;
            background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1)}
  .loc-item:hover{transform:translateX(4px);border-color:rgba(228,48,24,.5)}
  .loc-item .pin{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;
                 background:linear-gradient(180deg,#F6DA84,#C79A2E);box-shadow:0 8px 18px -8px rgba(0,0,0,.6)}
  .loc-item .pin svg{width:22px;height:22px;stroke:#2a2005;fill:none}
  .loc-item b{color:#fff;font-family:"Saira";font-weight:700;font-size:1.1rem;text-transform:uppercase;display:block}
  .loc-item span{color:var(--on-dark-muted);font-size:.86rem}

  /* cta final con foto */
  .final{position:relative;color:#fff;text-align:center;overflow:hidden;background:var(--noche)}
  /* «Tu auto merece lo mejor» — blanco con LUZ, no blanco plano.
     La profundidad sale de dos capas: un blanco frio arriba y uno calido abajo
     dentro de la propia letra —asi es como una superficie pulida devuelve la
     luz— y debajo un resplandor amplio que la despega del fondo. El blanco puro
     plano sobre negro se ve recortado; este tiene volumen. */
  .final h2{font-size:clamp(1.75rem,3.6vw,2.8rem);text-transform:uppercase;letter-spacing:-.025em;
            background:linear-gradient(176deg,#FFFFFF 18%,#E8EDF5 44%,#AEB9C9 78%);
            -webkit-background-clip:text;background-clip:text;color:transparent;
            filter:drop-shadow(0 2px 18px rgba(214,228,255,.34))
                   drop-shadow(0 1px 2px rgba(255,255,255,.5));
            text-wrap:balance}
  /* Sin `background-clip` el texto quedaria invisible: se declara el color real. */
  @supports not ((-webkit-background-clip:text) or (background-clip:text)){
    .final h2{color:#fff;background:none}
  }
  .final .bg{position:absolute;inset:0;background:url('../hero-lavado.jpg') center/cover no-repeat;transform:scaleX(-1)}
  .final .scrim{position:absolute;inset:0;background:rgba(10,11,13,.8)}
  .final .wrap{position:relative;padding:88px 20px}
  .final h2{font-size:clamp(1.6rem,3vw,2.1rem);text-transform:uppercase}
  .final p{color:#D6DBE2;max-width:46ch;margin:14px auto 28px}

  footer{background:#0C0D0F;color:var(--on-dark-muted);padding:56px 0 26px}
  .fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:34px}
  @media(max-width:820px){.fgrid{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.fgrid{grid-template-columns:1fr}}
  footer h4{color:#fff;font-family:"Saira";font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 16px}
  footer a{display:block;color:var(--on-dark-muted);font-size:.92rem;padding:5px 0}
  footer a:hover{color:var(--red-bright)}
  footer .about-f{font-size:.92rem;max-width:32ch;margin-top:14px}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem}
  /* ── CATÁLOGO ───────────────────────────────────────────────────────────
     Filas compactas, no trece tarjetas: con tarjetas la sección se vuelve
     kilométrica y todos los servicios pesan lo mismo. El naranja eléctrico se
     reserva para tres cosas —lo seleccionado, el precio activo y los CTA—; si
     tiñe también los títulos deja de señalar nada. */
  .catalogo{background:var(--noche);color:var(--on-dark)}
  .cat-head{max-width:34ch;margin-bottom:38px}
  .cat-head h2{font-size:clamp(1.5rem,2.6vw,2.15rem);text-transform:uppercase;margin-top:10px;
               letter-spacing:-.02em;text-wrap:balance}

  .cat-paso{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;
            flex-wrap:wrap;margin-bottom:30px}
  .cat-paso-txt{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
  /* El dibujo del vehículo: se funde de uno a otro al cambiar de tamaño, en
     vez de saltar, para que se note QUÉ cambió. */
  .veh-fig{margin:0;width:min(300px,100%);text-align:center}
  .veh-dibujos{position:relative;aspect-ratio:240/100}
  .veh-dibujos img{position:absolute;inset:0;width:100%;height:100%;opacity:0;
                   transform:translateX(14px);transition:opacity .35s ease,transform .45s cubic-bezier(.16,1,.3,1)}
  .veh-dibujos img.on{opacity:1;transform:none}
  .veh-fig figcaption{color:var(--on-dark-muted);font-size:.86rem;margin-top:6px}
  @media(prefers-reduced-motion:reduce){.veh-dibujos img{transition:none}}
  .cat-nota{color:var(--on-dark-muted);font-size:.9rem}
  .veh-sel{display:inline-flex;padding:4px;gap:4px;border-radius:999px;
           border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
  .veh{appearance:none;border:0;background:transparent;color:var(--on-dark-muted);
       font:600 .95rem/1 "Hanken Grotesk",system-ui,sans-serif;padding:11px 20px;
       border-radius:999px;cursor:pointer;transition:color .2s,background .25s}
  .veh:hover{color:var(--on-dark)}
  .veh.on{background:var(--elec);color:#140B02}
  .veh:focus-visible{outline:2px solid var(--elec);outline-offset:3px}

  .cat-cuerpo{display:grid;grid-template-columns:1fr 300px;gap:44px;align-items:start}

  .cat-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
  .filtro{appearance:none;background:transparent;color:var(--on-dark-muted);cursor:pointer;
          border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 16px;
          font:600 .85rem/1 "Hanken Grotesk",system-ui,sans-serif;transition:color .2s,border-color .2s}
  .filtro:hover{color:var(--on-dark);border-color:rgba(255,255,255,.3)}
  .filtro.on{color:var(--elec);border-color:var(--elec)}
  .filtro:focus-visible{outline:2px solid var(--elec);outline-offset:3px}

  .cat-lista{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.1)}
  .cat-fila{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:16px;
            padding:17px 6px;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer;
            transition:background .2s;position:relative}
  .cat-fila:hover{background:rgba(255,255,255,.035)}
  .cat-fila:focus-visible{outline:2px solid var(--elec);outline-offset:-2px}
  .cat-marca{width:19px;height:19px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);
             display:grid;place-items:center;transition:border-color .2s,background .2s}
  .cat-marca svg{width:11px;height:11px;stroke:#140B02;stroke-width:3;fill:none;
                 opacity:0;transition:opacity .18s}
  .cat-fila.on .cat-marca{background:var(--elec);border-color:var(--elec)}
  .cat-fila.on .cat-marca svg{opacity:1}
  .cat-nombre{font-weight:600;font-size:.97rem}
  .cat-desc{display:block;color:var(--on-dark-muted);font-size:.88rem;margin-top:2px}
  .cat-precio{font-family:"Saira",sans-serif;font-weight:700;font-size:1.04rem;
              font-variant-numeric:tabular-nums;transition:color .2s}
  .cat-fila.on .cat-precio{color:var(--elec)}

  /* El paquete: la misma rejilla de la lista, pero con aire y un filo encendido. */
  .cat-paquete{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;
               margin-top:30px;padding:30px;border-radius:16px;
               border:1px solid rgba(255,138,31,.34);
               background:linear-gradient(180deg,rgba(255,138,31,.07),rgba(255,138,31,.02))}
  .cat-paquete h3{font-size:1.38rem;text-transform:uppercase;margin:8px 0 8px}
  .cat-paquete p{color:var(--on-dark-muted);margin:0;max-width:46ch}
  .pq-ver{appearance:none;background:transparent;border:0;cursor:pointer;margin-top:14px;padding:0;
          color:var(--elec);font:600 .92rem/1 "Hanken Grotesk",system-ui,sans-serif;
          border-bottom:1px solid currentColor}
  .pq-lista{list-style:none;margin:16px 0 0;padding:0;columns:2;column-gap:28px;
            color:var(--on-dark-muted);font-size:.9rem}
  .pq-lista li{padding:3px 0;break-inside:avoid}
  .pq-precio{text-align:right}
  .pq-num{font-family:"Saira",sans-serif;font-weight:800;font-size:2.05rem;line-height:1;
          font-variant-numeric:tabular-nums}
  .pq-veh{color:var(--on-dark-muted);font-size:.84rem;text-transform:uppercase;
          letter-spacing:.12em;margin:6px 0 16px}
  .cat-paquete.on{border-color:var(--elec);background:linear-gradient(180deg,rgba(255,138,31,.16),rgba(255,138,31,.05))}

  /* El resumen acompaña la lista mientras se recorre. */
  .cat-resumen{position:sticky;top:92px;padding:24px;border-radius:16px;
               border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
  .res-veh{font-family:"Saira",sans-serif;font-weight:700;font-size:1.12rem;margin:8px 0 14px}
  .res-lista{list-style:none;margin:0;padding:0}
  .res-lista li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;
                font-size:.92rem;border-bottom:1px solid rgba(255,255,255,.07)}
  .res-lista b{font-variant-numeric:tabular-nums;font-weight:600}
  .res-vacio{color:var(--on-dark-muted);font-size:.9rem;margin:4px 0 0}
  .res-total{display:flex;justify-content:space-between;align-items:baseline;
             margin:18px 0 18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.16)}
  .res-total b{font-family:"Saira",sans-serif;font-size:1.42rem;color:var(--elec);
               font-variant-numeric:tabular-nums}
  .res-cta{width:100%}
  .res-cta[aria-disabled="true"]{opacity:.42;pointer-events:none}

  .cat-legal{margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);
             color:var(--on-dark-muted);font-size:.88rem}
  .cat-legal .info{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;
                   border:1px solid currentColor;font-size:.68rem;font-weight:700;margin-right:7px;
                   font-family:"Saira",sans-serif}
  .legal-ver{appearance:none;background:transparent;border:0;padding:0;margin-top:10px;cursor:pointer;
             color:var(--on-dark);font:600 .88rem/1 "Hanken Grotesk",system-ui,sans-serif;
             border-bottom:1px solid rgba(255,255,255,.3)}
  .legal-txt{margin-top:16px;max-width:76ch;line-height:1.65}

  /* Rótulo de dato sin confirmar. Existe porque la demo se enseña fuera: lo que
     no está verificado tiene que decirlo donde se lee, no en un comentario. */
  .dato-muestra{display:inline-block;margin:0 0 14px;padding:5px 11px;border-radius:999px;
                border:1px dashed rgba(255,138,31,.5);color:var(--elec);
                font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
  .metrics-wrap .dato-muestra{margin-bottom:12px}

  .res-barra{display:none}

  @media(max-width:1000px){
    .cat-cuerpo{grid-template-columns:1fr;gap:28px}
    /* En un teléfono el panel lateral no cabe: el resumen baja a una barra fija. */
    .cat-resumen{display:none}
    .res-barra{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
               align-items:center;justify-content:space-between;gap:14px;
               padding:12px 18px;background:rgba(10,11,13,.92);
               backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
               border-top:1px solid rgba(255,255,255,.12);color:var(--on-dark)}
    .res-barra span{font-weight:600;font-size:.95rem}
    .cat-paquete{grid-template-columns:1fr;gap:20px}
    .pq-precio{text-align:left}
    .pq-lista{columns:1}
  }
  @media(max-width:560px){
    .cat-paso{gap:12px}
    .cat-paso-txt{width:100%}
    .veh-fig{width:min(260px,80%);margin:0 auto}
    .veh-sel{width:100%}
    .veh{flex:1;padding:11px 8px;font-size:.88rem}
    .cat-fila{grid-template-columns:22px 1fr auto;gap:12px}
  }

  /* ── MARCA DE AGUA DE DEMOSTRACIÓN ──────────────────────────────────────
     Lo que protege un trabajo que se enseña antes de cobrarlo no es un aviso
     en una barra —se recorta en cualquier captura—, sino una trama que viaja
     CON el contenido: sale en la foto de pantalla y en el PDF que alguien
     reenvíe. Va floja a propósito (6%) y por encima de todo salvo del propio
     diálogo del navegador; `pointer-events:none` la deja fuera del camino de
     cualquier clic.
     Se quita borrando este bloque y el sello: ningún otro estilo depende de
     ellos. */
  body::after{content:"";position:fixed;inset:-50%;z-index:9998;pointer-events:none;
              transform:rotate(-28deg);opacity:.034;
              background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='250'%3E%3Ctext x='0' y='40' font-family='Segoe UI,Arial,sans-serif' font-size='30' font-weight='700' letter-spacing='5' fill='%23ffffff'%3EDEMOSTRACI%C3%93N%3C/text%3E%3C/svg%3E")}
  /* El sello: dice de quién es el trabajo y que todavía no es definitivo. */
  .sello-demo{position:fixed;right:16px;bottom:16px;z-index:9999;pointer-events:none;
              display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:999px;
              background:rgba(7,8,10,.82);border:1px solid rgba(255,138,31,.4);
              backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
              font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
              color:var(--on-dark-muted);font-weight:600}
  .sello-demo b{color:var(--elec);font-weight:800;letter-spacing:.12em}
  .sello-demo i{width:7px;height:7px;border-radius:50%;background:var(--elec);
                box-shadow:0 0 9px rgba(255,138,31,.9)}
  @media(max-width:1000px){
    /* En móvil la barra de resumen vive abajo: el sello se aparta. */
    .sello-demo{bottom:70px;right:12px;font-size:.68rem;padding:7px 11px}
  }
  /* Impresa sube: una captura en papel es justo donde mas falta hace. */
  @media print{ body::after{opacity:.13} }

  /* ══ SITIO DE VARIAS PÁGINAS (23-oct-2026) ═════════════════════════════════
     La landing de una sola página se partió en Experiencia · Servicios ·
     Misión y visión · Galería · Facturación · Contacto. Todo lo de abajo es lo
     que solo existe desde entonces. */

  /* El enlace de la página en la que se está. */
  nav.menu a[aria-current="page"]{color:#FFF3E6;text-shadow:0 0 18px rgba(255,170,80,.75)}
  nav.menu a[aria-current="page"]::after{content:"";display:block;height:2px;margin-top:4px;border-radius:2px;
                                         background:var(--elec);box-shadow:0 0 8px rgba(255,138,31,.6)}
  @media(max-width:900px){nav.menu a[aria-current="page"]::after{display:none}}

  /* Cabecera de las páginas interiores: el titular manda, sin foto. */
  .pagina-head{position:relative;padding:72px 0 46px;overflow:hidden;
               background:radial-gradient(60% 120% at 50% 0%, rgba(255,138,31,.14), transparent 70%)}
  .pagina-head h1{font-size:clamp(1.9rem,4vw,3rem);text-transform:uppercase;margin-top:10px;
                  letter-spacing:-.02em;text-wrap:balance}
  .pagina-head p{color:var(--on-dark-muted);max-width:56ch;margin:14px 0 0}

  /* Redes sociales: un icono por red, con su función —abrir el perfil o el chat—. */
  .redes{display:flex;gap:10px;margin-top:18px}
  .redes a{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;padding:0;
           border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);
           transition:border-color .2s,background .2s,transform .2s}
  .redes a:hover{border-color:var(--elec);background:rgba(255,138,31,.1);transform:translateY(-2px)}
  .redes a:focus-visible{outline:2px solid var(--elec);outline-offset:3px}
  .redes svg{width:20px;height:20px;fill:var(--on-dark)}
  .redes a:hover svg{fill:var(--elec)}

  /* Sucursales: tarjeta con dirección y enlace al mapa. */
  .sucursales{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
  @media(max-width:900px){.sucursales{grid-template-columns:1fr}}
  .sucursal{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:16px;
            background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1)}
  .sucursal .pin{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
                 background:linear-gradient(180deg,#FF9A3D,#E86A00)}
  .sucursal .pin svg{width:22px;height:22px;stroke:#140B02;fill:none}
  .sucursal b{font-family:"Saira";font-weight:700;font-size:1.15rem;text-transform:uppercase;color:#fff}
  .sucursal address{font-style:normal;color:var(--on-dark-muted);font-size:.92rem;line-height:1.5}
  .sucursal .mapa{margin-top:auto;color:var(--elec);font-weight:600;font-size:.92rem}
  .sucursal .mapa:hover{color:#FFF3E6}

  /* Galería: collage de alturas distintas. Mientras no haya fotos, cada hueco
     dice que lo es: no se rellena con imágenes de stock. */
  .collage{columns:3 260px;column-gap:16px}
  .collage figure{break-inside:avoid;margin:0 0 16px;border-radius:14px;overflow:hidden;
                  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
  .collage img{width:100%;height:auto}
  .collage .hueco{display:grid;place-items:center;color:var(--on-dark-muted);font-size:.85rem;
                  letter-spacing:.08em;text-transform:uppercase;
                  background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 12px,transparent 12px 24px)}

  /* Formularios (facturación y contacto): el envío es un mensaje de WhatsApp. */
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
  @media(max-width:720px){.form-grid{grid-template-columns:1fr}}
  .campo{display:flex;flex-direction:column;gap:7px}
  .campo.ancho{grid-column:1/-1}
  .campo label{font-weight:600;font-size:.92rem}
  .campo label small{color:var(--on-dark-muted);font-weight:400}
  .campo input,.campo select,.campo textarea{font:500 1rem/1.4 "Hanken Grotesk",system-ui,sans-serif;
        color:var(--on-dark);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);
        border-radius:12px;padding:13px 14px;transition:border-color .2s,background .2s}
  .campo select option{background:#14171C}
  .campo textarea{min-height:120px;resize:vertical}
  .campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--elec);
        background:rgba(255,138,31,.05)}
  .campo input:user-invalid,.campo select:user-invalid{border-color:#FF4326}
  .form-caja{max-width:860px;padding:34px;border-radius:18px;border:1px solid rgba(255,255,255,.1);
             background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015))}
  @media(max-width:720px){.form-caja{padding:22px}}
  .form-aviso{display:flex;gap:12px;align-items:flex-start;margin:24px 0;padding:16px 18px;border-radius:12px;
              border:1px dashed rgba(255,138,31,.45);color:var(--on-dark-muted);font-size:.92rem}
  .form-aviso b{color:var(--on-dark)}
  .form-acciones{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .form-acciones small{color:var(--on-dark-muted)}

  /* Contacto: los canales como tarjetas que ya hacen algo al tocarlas. */
  .canales{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:42px}
  @media(max-width:860px){.canales{grid-template-columns:1fr}}
  .canal{display:flex;gap:14px;align-items:center;padding:20px;border-radius:14px;
         background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);transition:border-color .2s}
  .canal:hover{border-color:var(--elec)}
  .canal svg{width:24px;height:24px;flex:0 0 auto;fill:var(--elec)}
  .canal b{display:block;color:#fff}
  .canal span{color:var(--on-dark-muted);font-size:.9rem}
  /* Red sin enlace todavía: el icono se queda, apagado, para que se vea el
     diseño completo sin mandar a nadie a una página que no existe. */
  .redes a[data-pendiente]{opacity:.4;cursor:not-allowed}
  .redes a[data-pendiente]:hover{transform:none;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.03)}
  .form-aviso .info{display:inline-grid;place-items:center;flex:0 0 auto;width:20px;height:20px;border-radius:50%;
                    border:1px solid var(--elec);color:var(--elec);font:700 .74rem/1 "Saira",sans-serif}
  /* La sección de sucursales ya no lleva mapa: el texto va a todo lo ancho. */
  .loc p{max-width:56ch}
  /* ⚠️ Sin esto el <select> de régimen fiscal —opciones de 70 caracteres— fijaba
     su ancho mínimo al de la opción más larga y empujaba la columna derecha
     fuera de la caja. */
  .form-grid > *{min-width:0}
  .campo input,.campo select,.campo textarea{width:100%;min-width:0}

  /* ── El recorrido en estudio BLANCO (cuadros de Cycles con transparencia) ──
     Solo esta sección es blanca; el texto pasa a oscuro y el rótulo va sin
     halo: sobre blanco el difuminado blanco solo ensuciaba (pedido 23-oct). */
  .exp.exp-blanca{background:#FFFFFF}
  .exp-blanca .exp-sticky{background:#FFFFFF}
  .exp-blanca .exp-head h2{color:#121418}
  .exp-blanca .exp-ann::before{display:none}
  .exp-blanca .exp-ann h3{color:#121418}
  .exp-blanca .exp-ann p{color:#5B626D}
  .exp-blanca .exp-hint{color:#5B626D}
  .exp-blanca .exp-progress{background:rgba(0,0,0,.1)}
  .exp-blanca .exp-progress i{background:var(--elec)}
  /* El vidrio oscuro del encabezado está pensado para pasar sobre negro: sobre
     la sección blanca se volvía una banda gris. En la página que la tiene, el
     encabezado va negro sólido. */
  body:has(.exp-blanca) header.nav{background:#07080A;backdrop-filter:none;-webkit-backdrop-filter:none}
  /* El titular de la sección quedaba debajo del encabezado al entrar (antes de
     que este se retire): baja lo que mide el encabezado. */
  .exp-blanca .exp-head{top:104px}
  @media(max-width:900px){.exp-blanca .exp-head{top:86px}}

  /* ══ TEMA BLANCO (23-oct-2026) ══════════════════════════════════════════════
     Todo el sitio pasa a blanco para que el recorrido —estudio infinito blanco—
     no se corte contra secciones negras. Lo pidió el cliente:
       · fondo blanco en todas las páginas;
       · titulares NEGROS con un resplandor de neón ROJO, el rojo del isotipo;
       · encabezado blanco, menú en rojo neón (antes naranja).
     Va como un bloque de reemplazos al final, no reescribiendo cada regla de
     arriba: así el tema oscuro sigue legible arriba por si hay que volver. */
  :root{
    --noche:#FFFFFF;
    --on-dark:#16181C;            /* el texto principal ya no va sobre oscuro */
    --on-dark-muted:#5B626D;
    --rojo:#E10600;               /* el rojo del isotipo, un punto más hondo para texto */
    --rojo-neon:rgba(252,1,2,.38);
    --elec:var(--rojo);           /* el acento de selección, totales y enlaces */
    --red:var(--rojo);--red-bright:var(--rojo);
    --grad-orange:linear-gradient(135deg,#E10600,#FF2A1F);
    --grad-red:linear-gradient(135deg,#C40500,#FF2A1F);
    /* El neón de los titulares: un filo rojo pegado a la letra y un halo amplio
       y tenue. Con más intensidad sobre blanco se lee como letra borrosa. */
    --neon-texto:0 0 1px rgba(252,1,2,.55),0 0 14px rgba(252,1,2,.28);
  }
  body{background:#FFFFFF;color:var(--on-dark)}
  h1,h2,h3{color:#0B0B0D;text-shadow:var(--neon-texto)}
  .section{border-top-color:rgba(0,0,0,.07)}
  .btn-red,.btn-orange{color:#fff;box-shadow:0 12px 26px -14px rgba(225,6,0,.6)}
  .btn-ghost{background:#fff;color:#16181C;border-color:rgba(0,0,0,.22)}
  .btn-ghost:hover{border-color:var(--rojo);color:var(--rojo)}

  /* Barras de arriba */
  .demobar{background:#F3F4F6;color:#5B626D}
  .util{background:#FFFFFF;color:#5B626D;border-bottom-color:rgba(0,0,0,.07);backdrop-filter:none;-webkit-backdrop-filter:none}
  .util svg{stroke:var(--rojo)}

  /* Encabezado blanco con el menú en rojo neón */
  header.nav,body:has(.exp-blanca) header.nav{background:rgba(255,255,255,.94);
        backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
        border-bottom:1px solid rgba(225,6,0,.16)}
  nav.menu a{color:var(--rojo);text-shadow:0 0 12px var(--rojo-neon)}
  nav.menu a:hover{color:#0B0B0D;text-shadow:var(--neon-texto)}
  nav.menu a[aria-current="page"]{color:#0B0B0D;text-shadow:var(--neon-texto)}
  nav.menu a[aria-current="page"]::after{background:var(--rojo);box-shadow:0 0 8px var(--rojo-neon)}
  .burger{background:rgba(225,6,0,.06);border-color:rgba(225,6,0,.3)}
  .burger svg{stroke:var(--rojo)}
  @media(max-width:900px){
    nav.menu{background:rgba(255,255,255,.98);border-bottom-color:rgba(225,6,0,.16)}
    nav.menu a{border-bottom-color:rgba(0,0,0,.07)}
    .menu .menu-cta{color:#fff}
  }

  /* Hero: blanco, con el resplandor rojo tenue donde antes entraba el naranja */
  .hero{background:#FFFFFF;color:#16181C}
  .hero .bg{background:radial-gradient(70% 72% at 50% 46%, rgba(252,1,2,.10) 0%, rgba(252,1,2,.04) 34%, transparent 68%)}
  .hero .scrim{background:radial-gradient(78% 68% at 50% 50%, transparent 30%, rgba(255,255,255,.7) 80%)}
  .hero .leds{opacity:.18}
  .hero .leds i{background:linear-gradient(180deg, transparent, rgba(0,0,0,.5) 24%, rgba(0,0,0,.5) 74%, transparent)}
  .hero::after{display:none}
  .hero h1 .hl{color:var(--rojo);text-shadow:0 0 18px var(--rojo-neon)}
  .hero p.lead{color:#3D434C}
  .seal{background:#fff;border-color:rgba(0,0,0,.1)}

  /* Tarjetas: blancas con sombra suave en vez de degradado carbón */
  .step,.metric,.mv .card2{background:#FFFFFF;border:1px solid rgba(0,0,0,.08);
        box-shadow:0 22px 44px -30px rgba(16,18,22,.35)}
  .why h2,.why .feat b,.shead h2,.mv .head h2,.mv h3,.loc h2,.loc-item b,.sucursal b,.canal b,
  .about .sign,.tier .price{color:#0B0B0D}
  .mv .ic{background:rgba(225,6,0,.08)}
  .sucursal,.loc-item,.canal{background:#FFFFFF;border-color:rgba(0,0,0,.1);
        box-shadow:0 16px 34px -28px rgba(16,18,22,.4)}
  .sucursal .pin{background:var(--grad-orange)}
  .sucursal .pin svg{stroke:#fff}
  .sucursal .mapa:hover{color:#0B0B0D}

  /* Cierre: la foto queda, bajo un velo blanco; el titular deja el degradado
     plateado (pensado para negro) y toma el mismo neón que los demás. */
  .final{background:#FFFFFF}
  .final .scrim{background:rgba(255,255,255,.86)}
  .final h2{background:none;-webkit-background-clip:border-box;background-clip:border-box;
            color:#0B0B0D;filter:none;text-shadow:var(--neon-texto)}
  .final p{color:#3D434C}

  /* Pie */
  footer{background:#F5F6F8;color:#5B626D;border-top:1px solid rgba(0,0,0,.06)}
  footer h4{color:#0B0B0D}
  footer a{color:#5B626D}
  footer a:hover{color:var(--rojo)}
  .foot-bottom{border-top-color:rgba(0,0,0,.08)}
  .redes a{border-color:rgba(0,0,0,.14);background:#fff}
  .redes svg{fill:#16181C}
  .redes a:hover{border-color:var(--rojo);background:rgba(225,6,0,.06)}
  .redes a:hover svg{fill:var(--rojo)}
  .redes a[data-pendiente]:hover{border-color:rgba(0,0,0,.14);background:#fff}

  /* Catálogo */
  .veh-sel{border-color:rgba(0,0,0,.14);background:#F5F6F8}
  .veh{color:#5B626D}
  .veh:hover{color:#0B0B0D}
  .veh.on{color:#fff}
  .filtro{color:#5B626D;border-color:rgba(0,0,0,.16)}
  .filtro:hover{color:#0B0B0D;border-color:rgba(0,0,0,.3)}
  .cat-lista,.cat-fila{border-color:rgba(0,0,0,.1)}
  .cat-fila:hover{background:rgba(0,0,0,.025)}
  .cat-marca{border-color:rgba(0,0,0,.28)}
  .cat-marca svg{stroke:#fff}
  .cat-paquete{border-color:rgba(225,6,0,.3);background:linear-gradient(180deg,rgba(225,6,0,.05),rgba(225,6,0,.015))}
  .cat-paquete.on{background:linear-gradient(180deg,rgba(225,6,0,.1),rgba(225,6,0,.03))}
  .cat-resumen{border-color:rgba(0,0,0,.1);background:#FFFFFF;box-shadow:0 22px 44px -32px rgba(16,18,22,.4)}
  .res-lista li{border-bottom-color:rgba(0,0,0,.07)}
  .res-total{border-top-color:rgba(0,0,0,.14)}
  .cat-legal{border-top-color:rgba(0,0,0,.1)}
  .legal-ver{color:#16181C;border-bottom-color:rgba(0,0,0,.3)}
  .dato-muestra{border-color:rgba(225,6,0,.45)}
  @media(max-width:1000px){
    .res-barra{background:rgba(255,255,255,.96);border-top-color:rgba(0,0,0,.1);color:#16181C}
  }

  /* Cabecera de páginas interiores, galería y formularios */
  .pagina-head{background:radial-gradient(60% 120% at 50% 0%, rgba(252,1,2,.07), transparent 70%)}
  .collage figure{border-color:rgba(0,0,0,.1);background:#F7F8FA}
  .collage .hueco{background:repeating-linear-gradient(135deg,rgba(0,0,0,.035) 0 12px,transparent 12px 24px)}
  .campo input,.campo select,.campo textarea{color:#16181C;background:#FFFFFF;border-color:rgba(0,0,0,.18)}
  .campo select option{background:#FFFFFF}
  .campo input:focus,.campo select:focus,.campo textarea:focus{background:rgba(225,6,0,.03)}
  .form-caja{border-color:rgba(0,0,0,.1);background:#FFFFFF;box-shadow:0 26px 50px -36px rgba(16,18,22,.4)}
  .form-aviso{border-color:rgba(225,6,0,.4)}

  /* Sello y marca de agua: en tinta oscura, si no desaparecían en el blanco */
  .sello-demo{background:rgba(255,255,255,.92);border-color:rgba(225,6,0,.4);color:#5B626D}
  body::after{opacity:.05;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='250'%3E%3Ctext x='0' y='40' font-family='Segoe UI,Arial,sans-serif' font-size='30' font-weight='700' letter-spacing='5' fill='%23000000'%3EDEMOSTRACI%C3%93N%3C/text%3E%3C/svg%3E")}
  /* A .05 la trama competía con el contenido: en tinta oscura sobre blanco
     basta la mitad que en tinta blanca sobre negro. */
  body::after{opacity:.028}

  /* ══ AJUSTES DEL 23-OCT (noche) ═════════════════════════════════════════ */

  /* La entrada de las letras, más marcada: sobre blanco el desenfoque corto se
     perdía y el efecto pasaba por un simple fundido. */
  .rev{transform:translateY(.7em);filter:blur(10px);
       transition-duration:1.1s,1.1s,1.1s}
  /* Las piezas de debajo del titular (tarjetas, campos, sucursales). */
  .rev-pieza{opacity:0;transform:translateY(26px);
             transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
             transition-delay:var(--d,0ms)}
  .visible > .rev-pieza{opacity:1;transform:none}
  .no-js .rev-pieza{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.rev-pieza{transition:none;opacity:1;transform:none}}

  /* HERO compacto: el bloque ocupaba una pantalla entera con el texto
     centrado y aire por todos lados. Ahora el texto va a la izquierda y los
     sellos llenan la columna derecha. */
  .hero{min-height:0;display:block}
  .hero .wrap{max-width:var(--wrap);text-align:left;padding:84px 20px 76px;
              display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);column-gap:56px;align-items:center}
  .hero .wrap > *:not(.seals){grid-column:1}
  .hero h1{margin:12px 0 0;max-width:17ch}
  .hero p.lead{margin:18px 0 28px}
  .hero .eyebrow,.hero .actions{margin-left:0}
  .hero .actions{justify-content:flex-start}
  .hero .seals{grid-column:2;grid-row:1 / span 4;flex-direction:column;align-items:stretch;
               margin:0;gap:12px}
  .hero .seal{padding:16px 18px;border-radius:14px;font-size:.95rem;
              box-shadow:0 18px 36px -28px rgba(16,18,22,.45)}
  @media(max-width:860px){
    .hero .wrap{grid-template-columns:1fr;padding:56px 20px 48px}
    .hero .seals{grid-column:1;grid-row:auto;margin-top:30px}
  }
  /* Entre el hero y «Sobre PARK N WASH» sobraba una pantalla: el hero ya no
     mide 100vh y la sección siguiente arranca más cerca. */
  .hero + .section{padding-top:56px}

  /* CIERRE con su foto de vuelta: el velo blanco al 86% la borraba entera.
     Ahora el blanco solo cubre el lado del texto y la foto se ve a la derecha. */
  .final .scrim{background:linear-gradient(90deg,#FFFFFF 0%,rgba(255,255,255,.94) 34%,
                rgba(255,255,255,.35) 66%,rgba(255,255,255,0) 100%)}
  .final .wrap{text-align:left;padding:110px 20px}
  .final p{margin:14px 0 28px}
  @media(max-width:720px){
    .final .scrim{background:rgba(255,255,255,.8)}
    .final .wrap{padding:80px 20px}
  }

  /* Sin rastro de la demo: ni banda, ni trama, ni sello. */
  body::after{display:none}

  /* ══ PÁGINA PRINCIPAL EDITORIAL (rediseño definitivo, 23-oct-2026) ════════
     Paleta del documento de rediseño: blanco, gris #F5F5F5, negro #111, gris
     #666, rojo #E60012 con moderación (botones, numeración, líneas, enlaces) y
     bordes #E8E8E8. Aplica a todo el sitio para que las seis páginas hablen
     igual; lo específico de la principal va debajo de la paleta. */
  :root{
    --rojo:#E60012;--rojo-neon:rgba(230,0,18,.32);
    --on-dark:#111111;--on-dark-muted:#666666;
    --gris-fondo:#F5F5F5;--borde:#E8E8E8;
    --grad-orange:linear-gradient(135deg,#D10010,#F2142A);
    --grad-red:linear-gradient(135deg,#C2000F,#F2142A);
    /* El neón de los titulares, más contenido: el documento pide minimalismo y
       el resplandor ancho competía con las fotos. Queda el filo rojo. */
    --neon-texto:0 0 1px rgba(230,0,18,.45),0 0 10px rgba(230,0,18,.16);
  }
  h1,h2,h3{color:#111111}
  .section{border-top-color:var(--borde)}
  footer{background:var(--gris-fondo);border-top-color:var(--borde)}

  /* Ritmo de las secciones de la principal */
  .sec{padding:112px 0}
  @media(max-width:720px){.sec{padding:72px 0}}
  .sec-gris{background:var(--gris-fondo)}
  .sec h2{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.02;letter-spacing:-.025em;text-transform:none;
          font-weight:800;margin-top:12px;text-wrap:balance}
  .sec p{color:#666666;font-size:1.04rem;line-height:1.7}
  .sec-head{max-width:720px;margin-bottom:56px}
  .sec-head p{margin:18px 0 0}
  .sec-head-fila{max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
                 gap:24px 64px;align-items:end}
  .sec-head-fila p{margin:0}
  @media(max-width:860px){.sec-head-fila{grid-template-columns:1fr}}

  /* Las fotos: recorte limpio, sin marco. El hover las acerca apenas. */
  .foto{overflow:hidden;background:#EDEDED;border-radius:6px}
  .foto img{width:100%;height:100%;object-fit:cover;display:block;
            transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
  @media(hover:hover){a:hover .foto img,.detalle:hover .foto img{transform:scale(1.035)}}

  /* Transición desde el recorrido: el render ya termina en blanco, así que el
     paso es un degradado corto al primer contenido, no un cambio de color. */
  #contenido{position:relative}
  #contenido::before{content:"";position:absolute;left:0;right:0;top:-80px;height:80px;pointer-events:none;
                     background:linear-gradient(180deg,rgba(255,255,255,0),#FFFFFF)}

  /* 1 · Filosofía */
  .filo-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:72px;align-items:center}
  .filo-texto p{margin:0 0 18px;max-width:54ch}
  .acento{display:block;width:56px;height:3px;background:var(--rojo);margin:28px 0 30px;border-radius:2px}
  .foto-vertical{margin:0;aspect-ratio:3/4}
  @media(max-width:860px){.filo-grid{grid-template-columns:1fr;gap:44px}}

  /* 2 · Cada detalle importa: 7/5 y 5/7 columnas, alturas alternas */
  .detalle-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 32px}
  .detalle{margin:0}
  .detalle.d-grande{grid-column:span 7}
  .detalle.d-chica{grid-column:span 5}
  .detalle.d-grande .foto{aspect-ratio:4/3}
  .detalle.d-chica .foto{aspect-ratio:1/1}
  .detalle:nth-child(3) .foto{aspect-ratio:4/3}
  .detalle:nth-child(2){padding-top:64px}
  .detalle figcaption{padding-top:20px;max-width:46ch}
  .detalle h3{font-size:1.3rem;text-transform:uppercase;letter-spacing:.02em;text-shadow:none}
  .detalle p{margin:8px 0 0;font-size:.98rem}
  @media(max-width:860px){
    .detalle.d-grande,.detalle.d-chica{grid-column:1 / -1}
    .detalle:nth-child(2){padding-top:0}
  }

  /* 3 · Servicios destacados */
  .serv-lista{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
  @media(max-width:1000px){.serv-lista{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:560px){.serv-lista{grid-template-columns:1fr}}
  .serv{display:flex;flex-direction:column;color:#111111}
  .serv .foto{aspect-ratio:4/3}
  .serv h3{font-size:1.25rem;text-transform:uppercase;margin:20px 0 8px;text-shadow:none}
  .serv p{font-size:.95rem;margin:0 0 16px;flex-grow:1}
  .serv .ver{color:var(--rojo);font-weight:600;font-size:.95rem;border-top:1px solid var(--borde);padding-top:14px}
  .serv .ver i{font-style:normal;display:inline-block;transition:transform .3s}
  .serv:hover .ver i{transform:translateX(4px)}
  .serv:focus-visible{outline:2px solid var(--rojo);outline-offset:6px;border-radius:6px}
  .sec-pie{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
           margin-top:56px;padding-top:32px;border-top:1px solid var(--borde)}
  .sec-pie p{margin:0}
  .sec-pie b{color:#111111}

  /* 4 · Trayectoria: foto a todo lo ancho, texto en dos columnas debajo */
  .sec-trayectoria{padding:0 0 112px}
  .tray-foto{margin:0;border-radius:0;aspect-ratio:12/5;max-height:76vh;width:100%}
  .tray-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 72px;margin-top:64px}
  .tray-texto p{margin:0 0 18px;color:#666666;font-size:1.04rem;line-height:1.7}
  .sec-trayectoria h2{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.02;letter-spacing:-.025em;font-weight:800;
                      margin-top:12px;text-wrap:balance}
  @media(max-width:860px){.tray-grid{grid-template-columns:1fr;margin-top:44px}.tray-foto{aspect-ratio:16/9}
                          .sec-trayectoria{padding-bottom:72px}}

  /* 5 · Línea de tiempo: horizontal en escritorio, vertical en móvil */
  .linea-tiempo{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
                gap:32px;position:relative}
  .linea-tiempo li{position:relative}
  .lt-foto{aspect-ratio:4/3;margin-bottom:22px}
  .lt-num{display:flex;align-items:center;gap:12px;font-family:"Saira";font-weight:700;font-size:.9rem;
          letter-spacing:.14em;color:var(--rojo);margin-bottom:10px}
  .lt-num::after{content:"";flex:1;height:1px;background:#DCDCDC}
  .linea-tiempo h3{font-size:1.15rem;text-transform:uppercase;margin:0 0 8px;text-shadow:none}
  .linea-tiempo p{font-size:.95rem;margin:0}
  @media(max-width:860px){
    .linea-tiempo{grid-template-columns:1fr;gap:0;padding-left:28px;border-left:1px solid #DCDCDC}
    .linea-tiempo li{padding:0 0 40px}
    .linea-tiempo li::before{content:"";position:absolute;left:-34px;top:4px;width:11px;height:11px;
                             border-radius:50%;background:var(--rojo);box-shadow:0 0 0 4px var(--gris-fondo)}
    .lt-foto{max-width:320px}
    .lt-num::after{display:none}
  }

  /* 6 · Resultados (galería) y visor */
  .galeria-vacia{margin:0;padding:48px 0;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);
                 text-align:center;color:#666666}
  .galeria-res.con-fotos,.collage.con-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;columns:auto}
  .gal-item{position:relative;padding:0;border:0;background:#EDEDED;border-radius:6px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3}
  .gal-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
  .gal-item:hover img{transform:scale(1.04)}
  .gal-item:focus-visible{outline:2px solid var(--rojo);outline-offset:3px}
  .gal-etiqueta{position:absolute;left:10px;bottom:10px;background:rgba(17,17,17,.78);color:#fff;font-size:.75rem;
                padding:5px 10px;border-radius:999px;letter-spacing:.04em}
  .visor{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100vh}
  .visor::backdrop{background:rgba(10,10,10,.9)}
  .visor[open]{display:grid;grid-template-columns:64px 1fr 64px;align-items:center}
  .visor-fig{margin:0;display:grid;place-items:center;max-height:86vh}
  .visor-fig img{max-width:100%;max-height:86vh;width:auto;height:auto;border-radius:4px}
  .visor-nav,.visor-cerrar{background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:999px;cursor:pointer;
                           width:48px;height:48px;font-size:1.8rem;line-height:1;justify-self:center}
  .visor-cerrar{position:fixed;top:18px;right:18px}
  .visor-cuenta{position:fixed;bottom:18px;left:0;right:0;text-align:center;color:#ddd;margin:0;font-size:.9rem}
  .comparar{position:relative;max-width:min(90vw,1200px)}
  .comparar img{display:block;width:100%;height:auto}
  .comparar-despues{position:absolute;inset:0;clip-path:inset(0 0 0 var(--corte))}
  .comparar input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}
  .comparar::after{content:"";position:absolute;top:0;bottom:0;left:var(--corte);width:2px;background:#fff;pointer-events:none}
  .comparar-et{position:absolute;top:12px;color:#fff;background:rgba(0,0,0,.55);font-size:.75rem;padding:4px 10px;border-radius:999px}
  .comparar-antes{left:12px}.comparar-desp{right:12px}

  /* 7 · Tu auto, en buenas manos: tipografía y divisores finos */
  .buenas-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px 80px;align-items:start}
  .atributos{margin:0}
  .atributos > div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px 32px;
                   padding:26px 0;border-top:1px solid #DCDCDC}
  .atributos > div:last-child{border-bottom:1px solid #DCDCDC}
  .atributos dt{font-family:"Saira";font-weight:700;font-size:1.15rem;text-transform:uppercase;color:#111111}
  .atributos dt span{display:block;color:var(--rojo);font-size:.8rem;letter-spacing:.14em;margin-bottom:6px}
  .atributos dd{margin:0;color:#666666;line-height:1.65}
  @media(max-width:860px){.buenas-grid{grid-template-columns:1fr}.atributos > div{grid-template-columns:1fr}}

  /* 8 · Cierre: texto y accesos a la izquierda, el auto a la derecha */
  .sec-cierre{background:var(--gris-fondo);overflow:hidden}
  .cierre-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 64px;align-items:center}
  .cierre-texto p{max-width:48ch;margin:18px 0 30px}
  .cierre-texto .actions{display:flex;gap:14px;flex-wrap:wrap}
  .accesos{list-style:none;margin:40px 0 0;padding:0}
  .accesos a{display:flex;gap:16px;align-items:center;padding:16px 0;border-top:1px solid #DCDCDC;color:#111111}
  .accesos li:last-child a{border-bottom:1px solid #DCDCDC}
  .accesos svg{width:22px;height:22px;fill:var(--rojo);flex:0 0 auto}
  .accesos span{color:#666666;font-size:.94rem}
  .accesos b{display:block;color:#111111;font-family:"Saira";text-transform:uppercase;letter-spacing:.04em;font-size:.95rem}
  .accesos a:hover b{color:var(--rojo)}
  .cierre-foto{margin:0 -8vw 0 0}
  .cierre-foto img{width:100%;height:auto}
  @media(max-width:860px){.cierre-grid{grid-template-columns:1fr}.cierre-foto{margin:0}}
  /* «En buenas manos» ya va en gris: el cierre en blanco para que no se
     fundan las dos secciones en un solo bloque. */
  .sec-cierre{background:#FFFFFF;border-top:1px solid var(--borde)}

  /* Galería «Así trabajamos»: imágenes ilustrativas de ~560 px. La cuadrícula
     no las deja crecer más de su tamaño real (sin pixelado) hasta que lleguen
     los originales grandes. */
  .mosaico{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px 22px}
  .mosaico figure{margin:0}
  .mosaico img{width:100%;max-width:560px;aspect-ratio:2/1;object-fit:cover;border-radius:6px;background:#EDEDED;
               transition:transform 1s cubic-bezier(.16,1,.3,1)}
  .mosaico figure:hover img{transform:scale(1.02)}
  .mosaico figcaption{margin-top:12px;font-family:"Saira";font-weight:700;text-transform:uppercase;
                      letter-spacing:.04em;font-size:.92rem;color:#111111}
  .nota-ilustrativa{margin:40px 0 0;font-size:.85rem;color:#666666}
  /* `height:auto`: sin él la altura del atributo HTML (278 px) ganaba a la
     proporción y las imágenes salían estiradas a lo alto. Cinco columnas: diez
     imágenes caben en dos filas completas, sin huérfanas. */
  .mosaico{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 18px}
  .mosaico img{height:auto;aspect-ratio:3/2}
  @media(max-width:1000px){.mosaico{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media(max-width:640px){.mosaico{grid-template-columns:repeat(2,minmax(0,1fr))}}
  .ilustraciones{padding-top:24px}

  /* Íconos de línea del pie (antes emojis: en Windows salían a color y
     rompían el estilo; además un lector de pantalla los leía en voz alta). */
  footer a .ico{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:var(--rojo);stroke-width:1.8;
                stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;margin-right:8px}
  footer a:has(.ico){display:flex;align-items:center}

  /* ÁREAS DE TOQUE en pantallas táctiles: 44 px mínimo (revisión con
     Playwright, 23-oct). Se agranda lo que responde al dedo, no el texto. */
  @media(pointer:coarse),(max-width:720px){
    footer a{padding:10px 0;min-height:44px;display:flex;align-items:center}
    .util a{display:inline-flex;align-items:center;min-height:44px}
    .veh{min-height:44px}
    .filtro{min-height:44px;padding:8px 18px}
    .sucursal .mapa,.serv .ver{display:inline-flex;align-items:center;min-height:44px}
    .legal-ver,.pq-ver{min-height:44px}
    .accesos a{min-height:56px}
  }

  /* ══ NARRATIVA DE LA PRINCIPAL (23-oct-2026, noche) ═══════════════════════
     Impactar (recorrido) → explicar → demostrar → convertir. Composiciones
     asimétricas, fotos de tamaños distintos, nada de filas de tarjetas
     iguales. Lo de arriba de este bloque que ya no se usa (.detalle-grid,
     .serv-lista, .atributos) queda por si se vuelve a ello. */

  /* Enlace con flecha: el mismo gesto en toda la página */
  .enlace-flecha{display:inline-flex;align-items:center;gap:8px;color:var(--rojo);font-weight:600}
  .enlace-flecha i{font-style:normal;transition:transform .3s}
  .enlace-flecha:hover i{transform:translateX(4px)}
  .num{font-family:"Saira";font-weight:700;font-size:.85rem;letter-spacing:.14em;color:var(--rojo)}

  /* 1 · Filosofía: texto estrecho; la foto se sale de la columna hasta el
     borde derecho de la pantalla. */
  .filo-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px}
  .filo-foto{margin:0;aspect-ratio:4/5;max-height:86vh;
             margin-right:calc((min(100vw, var(--wrap)) - 100vw) / 2 - 20px);border-radius:6px 0 0 6px}
  @media(max-width:860px){
    .filo-grid{grid-template-columns:1fr;gap:44px}
    .filo-foto{margin:0 -20px;border-radius:0;aspect-ratio:4/5}
  }

  /* 2 · Diferenciación: foto protagonista a la izquierda, lista numerada a la
     derecha y dos fotos chicas desfasadas bajo la lista. */
  .dif-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;align-items:start}
  .dif-foto-grande{grid-column:1 / 8;grid-row:1 / 3;margin:0;aspect-ratio:4/5}
  .dif-lista{grid-column:8 / 13;grid-row:1;list-style:none;margin:0;padding:0}
  .dif-lista li{padding:22px 0;border-top:1px solid #DCDCDC}
  .dif-lista li:last-child{border-bottom:1px solid #DCDCDC}
  .dif-lista h3{font-size:1.15rem;text-transform:uppercase;margin:6px 0 6px;text-shadow:none}
  .dif-lista p{margin:0;font-size:.97rem}
  .dif-foto-a{grid-column:8 / 11;grid-row:2;margin:0;aspect-ratio:1/1}
  .dif-foto-b{grid-column:10 / 13;grid-row:2;margin:64px 0 0;aspect-ratio:4/3;position:relative;z-index:1;
              box-shadow:0 0 0 8px var(--gris-fondo)}
  @media(max-width:860px){
    .dif-grid{grid-template-columns:1fr 1fr;gap:20px}
    .dif-foto-grande{grid-column:1 / -1;grid-row:auto;aspect-ratio:4/3}
    .dif-lista{grid-column:1 / -1;grid-row:auto}
    .dif-foto-a{grid-column:1;grid-row:auto}
    .dif-foto-b{grid-column:2;grid-row:auto;margin-top:40px}
  }

  /* 3 · Servicios: índice editorial + un visor de foto pegajoso */
  .serv-indice{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:start}
  .serv-filas{list-style:none;margin:0;padding:0}
  .serv-fila{display:grid;grid-template-columns:48px minmax(0,1fr) 32px;gap:8px 18px;align-items:center;
             padding:28px 0;border-top:1px solid var(--borde);color:#111111;transition:padding .35s cubic-bezier(.16,1,.3,1)}
  .serv-filas li:last-child .serv-fila{border-bottom:1px solid var(--borde)}
  .serv-txt b{display:block;font-family:"Saira";font-weight:800;font-size:clamp(1.6rem,3vw,2.4rem);
              text-transform:uppercase;letter-spacing:-.01em;line-height:1;color:#B9B9B9;transition:color .3s}
  .serv-txt span{display:block;color:#666666;font-size:.95rem;margin-top:8px;max-width:46ch}
  .serv-fila .ver{color:var(--rojo);font-size:1.4rem;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s}
  .serv-fila.on .serv-txt b,.serv-fila:focus-visible .serv-txt b{color:#111111}
  .serv-fila.on .ver{opacity:1;transform:none}
  .serv-fila.on{padding-left:8px}
  .serv-fila:focus-visible{outline:2px solid var(--rojo);outline-offset:4px}
  .serv-mini{display:none}
  .serv-visor{position:sticky;top:110px;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:#EDEDED}
  .serv-visor img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
                  transform:scale(1.04);transition:opacity .6s ease,transform 1.2s cubic-bezier(.16,1,.3,1)}
  .serv-visor img.on{opacity:1;transform:none}
  @media(max-width:860px){
    .serv-indice{grid-template-columns:1fr}
    .serv-visor{display:none}
    .serv-fila{grid-template-columns:40px minmax(0,1fr) 92px;padding:20px 0}
    .serv-txt b{color:#111111}
    .serv-fila .ver{display:none}
    .serv-mini{display:block;grid-column:3;grid-row:1;width:92px;height:69px;object-fit:cover;border-radius:4px}
  }

  /* 4 · Trayectoria: el titular en una caja blanca montada sobre la foto */
  .tray-grid{margin-top:0;align-items:start}
  .tray-caja{background:#FFFFFF;padding:44px 48px 8px 0;margin-top:-140px;position:relative;z-index:1}
  .tray-texto{padding-top:56px}
  @media(max-width:860px){.tray-caja{margin-top:-60px;padding:28px 24px 0 0}.tray-texto{padding-top:12px}}

  /* 6 · Galería editorial: mosaico de 12 columnas y filas de 150 px. Las
     ilustraciones (~560 px) nunca pasan de 4 columnas: no se pixelan. */
  .mosaico-ed{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:150px;gap:16px}
  .mosaico-ed figure{margin:0;position:relative}
  .mosaico-ed figcaption{position:absolute;left:12px;bottom:10px;color:#fff;font-family:"Saira";font-weight:700;
                         font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.6)}
  .m-a{grid-column:1 / 7;grid-row:1 / 4}
  .m-b{grid-column:7 / 10;grid-row:1 / 3}
  .m-c{grid-column:10 / 13;grid-row:1 / 2}
  .m-d{grid-column:10 / 13;grid-row:2 / 4}
  .m-e{grid-column:7 / 10;grid-row:3 / 4}
  .m-f{grid-column:1 / 5;grid-row:4 / 6}
  .m-g{grid-column:5 / 9;grid-row:4 / 6}
  .m-texto{grid-column:9 / 13;grid-row:4 / 6;display:flex;flex-direction:column;justify-content:flex-end;padding-left:12px}
  .m-texto h2{margin:10px 0 8px}
  .m-texto p{margin:0 0 18px}
  .m-texto small{display:block;margin-top:22px;color:#888888;font-size:.8rem}
  @media(max-width:860px){
    .mosaico-ed{grid-template-columns:1fr 1fr;grid-auto-rows:130px;gap:12px}
    .m-a{grid-column:1 / -1;grid-row:span 2}
    .m-b,.m-c,.m-d,.m-e,.m-f,.m-g{grid-column:auto;grid-row:span 1}
    .m-texto{grid-column:1 / -1;grid-row:auto;padding:24px 0 0}
  }

  /* 7 · Sucursales y reservación */
  .sec-cierre .cierre-grid{margin-bottom:64px}
  .suc-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .suc-lista li{padding:26px 28px 26px 0;border-top:1px solid #111111;display:flex;flex-direction:column;gap:8px}
  .suc-lista li + li{padding-left:28px;border-left:1px solid var(--borde)}
  .suc-lista b{font-family:"Saira";font-weight:800;font-size:1.25rem;text-transform:uppercase;color:#111111}
  .suc-lista address{font-style:normal;color:#666666;font-size:.94rem;line-height:1.6;flex-grow:1}
  .suc-lista .enlace-flecha{min-height:44px}
  .cierre-nota{margin:32px 0 0;color:#666666;font-size:.95rem}
  .cierre-nota a{color:var(--rojo);font-weight:600;cursor:pointer}
  @media(max-width:860px){
    .suc-lista{grid-template-columns:1fr}
    .suc-lista li + li{padding-left:0;border-left:0}
  }
  /* Filosofía: el tope de alto (86vh) dejaba la foto angosta y no llegaba al
     borde; cuadrada, ocupa su columna y se sale hasta la orilla. */
  .filo-foto{aspect-ratio:1/1;max-height:none}
  @media(max-width:860px){.filo-foto{aspect-ratio:4/5}}
  .m-texto .enlace-flecha{min-height:44px}
  /* Móvil: el bloque de texto del mosaico medía una fila fija (130 px) y, con
     el contenido pegado abajo, se desbordaba hacia arriba sobre las fotos. */
  @media(max-width:860px){
    .m-texto{grid-row:span 3;justify-content:flex-start}
  }

  /* ENCABEZADO EN TRES COLUMNAS (23-oct): logo a la izquierda, menú centrado
     en la página y «Reservar» a la derecha. Las columnas laterales miden lo
     mismo (1fr), así el menú queda en el centro real aunque el logo y el
     botón tengan anchos distintos. En móvil sigue logo + hamburguesa. */
  @media(min-width:901px){
    .nav .wrap{display:grid;grid-template-columns:1fr auto 1fr;gap:24px}
    .nav .wrap > a:first-child{justify-self:start}
    nav.menu{margin-left:0;justify-self:center}
    .nav-cta{justify-self:end}
  }
  /* Las fotos de las etapas son verticales (docs/cuatro_etapas.png). */
  .lt-foto{aspect-ratio:4/5}
  @media(max-width:860px){.lt-foto{max-width:260px}}

  /* «EXPERIENCIA PARK N WASH»: la caja blanca sigue montada entre la foto y el
     texto, pero su contenido va centrado en los dos ejes y con aire de 40 px
     por lado (antes pegado al borde izquierdo). 23-oct. */
  .tray-caja{display:flex;flex-direction:column;align-items:center;justify-content:center;
             text-align:center;padding:40px;min-height:260px;
             box-shadow:0 24px 50px -36px rgba(16,18,22,.35)}
  .tray-caja .eyebrow{margin:0}
  .tray-caja h2{margin:14px 0 0}
  @media(max-width:860px){
    .tray-caja{padding:28px 24px;min-height:0;margin-top:-60px}
  }

  /* Vehículos del catálogo: fotos del cliente (docs/catalogo), recortadas y con
     transparencia. Más anchas que los dibujos de línea (3:1). */
  .veh-fig{width:min(420px,100%)}
  .veh-dibujos{aspect-ratio:3/1}
  .veh-dibujos img{object-fit:contain;filter:drop-shadow(0 14px 14px rgba(0,0,0,.18))}
  @media(max-width:560px){.veh-fig{width:100%}}

  /* El titular del recorrido entra y sale con un fundido corto (recorrido.js
     le pone .oculto fuera de la apertura y el cierre). */
  .exp-head{transition:opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}
  .exp-head.oculto{opacity:0;transform:translateY(-12px)}
  /* Diferenciación con las fotos del cliente: las tres son verticales.
     El rin mide 236 px de ancho: su hueco no pasa de ~240 px para no pixelarse. */
  .dif-foto-grande{aspect-ratio:3/4}
  .dif-foto-a{aspect-ratio:2/3;max-width:240px}
  .dif-foto-b{aspect-ratio:4/5}
  @media(max-width:860px){.dif-foto-grande{aspect-ratio:4/5}.dif-foto-a{max-width:none}}

  /* Recorrido: mientras está fijado, el documento no se desplaza por sí solo
     (recorrido.js mueve la posición parada por parada). El hueco de la barra
     se reserva siempre para que la página no salte de ancho al bloquear. */
  html{scrollbar-gutter:stable}
  html.recorrido-bloqueado{overflow:hidden}
  /* Trayectoria con la SUV roja (3:2): 16:9 sin tope de alto, para que el
     auto entero quepa en el recorte. */
  .tray-foto{aspect-ratio:16/9;max-height:none}
  .tray-foto img{object-position:center 55%}
  /* La foto del desierto ya es 16:9: sin desplazar el encuadre. */
  .tray-foto img{object-position:center}

  /* ══ AJUSTE MÓVIL (24-oct) ═══════════════════════════════════════════════
     Auditoría con Playwright a 360/390/414 px: ningún texto por debajo de
     13 px, márgenes y tipografía un paso más compactos en pantallas chicas. */
  .mosaico-ed figcaption{font-size:.82rem}
  .form-acciones small,.campo label small{font-size:.85rem}
  @media(max-width:560px){
    .wrap{padding:0 18px}
    .sec{padding:60px 0}
    .sec h2,.sec-trayectoria h2{font-size:clamp(1.75rem,8.4vw,2.3rem)}
    .sec-head{margin-bottom:36px}
    .sec p{font-size:1rem}
    .pagina-head{padding:48px 0 30px}
    .pagina-head h1{font-size:clamp(1.7rem,8.6vw,2.3rem)}
    .serv-txt b{font-size:1.45rem}
    .dif-lista li{padding:18px 0}
    .suc-lista li{padding:22px 0}
    .cierre-texto .actions{flex-direction:column;align-items:stretch}
    .cierre-texto .actions .btn{width:100%}
    .tray-caja{padding:24px 20px}
    footer{padding:44px 0 22px}
    .fgrid{gap:22px}
  }
  @media(max-width:560px){
    .filo-foto{margin:0 -18px}          /* igual al margen de .wrap en móvil */
  }
  .cierre-nota a{display:inline-flex;align-items:center;min-height:44px}

  /* ══ TAMAÑOS PARA TODA PANTALLA (24-oct) ════════════════════════════════
     Medido con Playwright: en un monitor de 24" (1920×1080) y en laptops las
     fotos crecían con el ANCHO hasta ocupar 80-113% del alto visible. Regla:
     ninguna foto pasa de ~60% del alto de la pantalla (vh) ni de un tope en
     px; si la caja queda más ancha que la foto, `object-fit:cover` recorta.
     `svh` cuando existe (barra del navegador móvil), `vh` como respaldo. */
  .filo-foto{max-height:min(62vh,640px);max-height:min(62svh,640px)}
  .dif-foto-grande{max-height:min(64vh,660px);max-height:min(64svh,660px)}
  .serv-visor{max-height:min(60vh,560px);max-height:min(60svh,560px)}
  .tray-foto{aspect-ratio:21/9;max-height:min(58vh,620px);max-height:min(58svh,620px)}
  .lt-foto{max-height:min(46vh,360px)}
  .cierre-foto img{max-height:min(52vh,520px);object-fit:contain}
  @media(max-width:860px){
    .tray-foto{aspect-ratio:16/9}
    .filo-foto,.dif-foto-grande{max-height:min(58vh,560px);max-height:min(58svh,560px)}
  }

  /* Titulares: el tope baja de 54 a 46 px; en pantallas grandes seguían
     dominando demasiado junto a fotos ya contenidas. */
  .sec h2,.sec-trayectoria h2{font-size:clamp(1.8rem,3.4vw,2.9rem)}
  .pagina-head h1{font-size:clamp(1.8rem,3.4vw,2.8rem)}
  .serv-txt b{font-size:clamp(1.4rem,2.4vw,2rem)}
  .sec p,.tray-texto p{font-size:clamp(.98rem,.3vw + .9rem,1.06rem)}
