/* =====================================================================
   Pro Racing Park · hoja principal
   Orden: reset · tipografía · layout · header · hero · componentes ·
          secciones · utilidades · accesibilidad
   Regla de movimiento: solo transform y opacity. Nada que dispare layout.
   ===================================================================== */

/* ---------------------------------------------------------------- reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* El `display` de una clase le gana al `hidden` del navegador: sin esto, un
   elemento con clase propia no se oculta al ponerle el atributo. Pasaba con
   el botón de agendar en el calendario de una reserva cancelada. */
[hidden]{display:none !important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--negro);color:var(--texto);
  font-family:var(--cuerpo);font-size:var(--t-cuerpo);line-height:1.55;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img,video{display:block;max-width:100%;height:auto}
button,input,select{font:inherit;color:inherit}
a{color:inherit}

/* ----------------------------------------------------------- tipografía */
/* Evogria tiene las mayúsculas más altas que Barlow: con line-height .86 las
   líneas se tocaban. */
/* Todo lo que usa la display y no es un heading: hereda el tracking del body
   (cero) y queda suelto al lado de los titulos. Se agrupa aca en vez de
   repetir la declaracion en cada bloque. */
.fila .nom,.pasos-lista b,.grupo-campos legend,.casilla .t,.tg-saldo,
.numero b,.tarjeta-wa .t,.dia .num,.opcion-prod .nom,.hv-marco .t{
  letter-spacing:var(--tr-titulo)}

h1,h2,h3,h4{font-family:var(--display);color:var(--blanco);text-transform:uppercase;font-weight:900;letter-spacing:var(--tr-sub);line-height:1}
h1{font-size:var(--t-hero);line-height:.96;letter-spacing:var(--tr-hero)}
h2{font-size:var(--t-h2);letter-spacing:var(--tr-titulo)}
h3{font-size:var(--t-h3);font-weight:700;line-height:1;letter-spacing:var(--tr-titulo)}
h4{font-size:var(--t-h4);font-weight:700;letter-spacing:.02em}
p{max-width:56ch}
.lead{font-size:var(--t-lead);color:var(--texto);font-weight:400;max-width:52ch;line-height:1.5}
/* Los dos tienen margen cero, asi que un h2 seguido de su bajada quedaba
   pegado: cero pixeles entre un titular de 60 px y un parrafo de 18. Se
   arregla en la hoja y no bloque por bloque para que no se pueda volver a
   olvidar en el proximo que se agregue. */
h2 + .lead{margin-top:var(--e-4)}
@media(min-width:760px){h2 + .lead{margin-top:var(--e-5)}}
.micro{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);font-weight:600;
  text-transform:uppercase;color:var(--humo)}
.am{color:var(--amarillo)}
.contorno{color:transparent;-webkit-text-stroke-color:rgba(255,255,255,.62);
  /* El trazo tiene que escalar con la letra: 1,5px fijos a 46px cierran los
     contraojos de la A y la P, y a 150px se ven anemicos. En em sigue al
     tamaño, con tope para que no engorde en el hero grande. */
  -webkit-text-stroke-width:clamp(1px,.022em,2.6px);
  text-shadow:0 2px 22px rgba(0,0,0,.7)}   /* sobre video en movimiento el trazo solo no garantiza contraste */

/* --------------------------------------------------------------- layout */
.seccion{position:relative;z-index:var(--z-contenido);padding:var(--e-9) var(--borde-pagina)}
@media(min-width:900px){.seccion{padding:var(--e-10) var(--borde-pagina)}}
.contenedor{max-width:var(--ancho-max);margin-inline:auto}

/* --------------------------------------------------------------- header */
.progreso{position:fixed;inset:0 0 auto 0;height:2px;z-index:var(--z-progreso);
  transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--amarillo),var(--amarillo-alto))}

/* El botón "Reservar" se comprimía a "RESER" en celular: el menú tiene
   margin-left:auto y crece, y el botón no declaraba flex, así que cedía
   ancho por debajo de su texto y overflow:hidden lo escondía. */
.header{position:fixed;inset:0 0 auto 0;z-index:var(--z-header);display:flex;align-items:center;gap:var(--e-5);
  padding:var(--e-4) var(--borde-pagina);
  transition:background var(--d-media) var(--ease)}
.header>.btn-chico{flex:0 0 auto}
/* Escalera de botones:
     amarillo solido  = reservar, y toda accion primaria de una seccion
     contorno blanco  = alternativa secundaria (las tarjetas de precio no destacadas,
                        y el CTA del header cuando NO es reservar)
   Decision de Juan (2026-09-08): **el boton Reservar va siempre destacado**, en el
   header incluido. Se probo con el header en contorno para que no compitiera con el
   CTA del hero; gana la conversion. Por eso el selector mira el destino y no la
   clase: en /reservar el CTA del header es WhatsApp, y ese si queda en contorno para
   no pelearle a los pasos de la reserva, que son la accion real de esa pagina. */
.header>.btn-chico[href="/reservar"]{
  /* sobre el video el amarillo solo no separa: la sombra lo despega del cuadro */
  box-shadow:0 6px 22px -8px rgba(0,0,0,.85)}
.header>.btn-chico:not([href="/reservar"]){
  background:transparent;color:var(--blanco);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);
  transition:box-shadow var(--d-rapida) var(--ease),color var(--d-rapida) var(--ease),
             background var(--d-rapida) var(--ease)}
.header>.btn-chico:not([href="/reservar"])::before{background:var(--amarillo)}
.header>.btn-chico:not([href="/reservar"]):hover,
.header>.btn-chico:not([href="/reservar"]):focus-visible{color:#000;box-shadow:inset 0 0 0 1px var(--amarillo)}
/* Sobre el video el header no tiene fondo y el menu va en gris (--humo):
   donde el clip se pone claro, "Como llegar" queda ilegible. Se ve solo en
   escritorio, porque en mobile el menu no esta. Un velo que baja del borde
   superior lo resuelve sin ensuciar el hero: se disuelve antes de llegar al
   titular. Va con z-index -1 para quedar detras del logo, del menu y del
   boton, no encima. */
.header:not(.solido)::before{content:"";position:absolute;inset:0 0 auto 0;
  height:190%;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,.26) 52%,transparent)}
.header.solido{background:rgba(5,5,5,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--linea);padding:11px var(--borde-pagina)}
/* El logo es la versión negativa de la carpeta de marca (fondo oscuro),
   nunca el nombre escrito con la tipografía del sitio. */
.logo{display:inline-flex;align-items:center;text-decoration:none;flex:0 0 auto}
.logo img{height:36px;width:auto;display:block}
.header.solido .logo img{height:32px}
.pie .logo img{height:44px}
@media(max-width:420px){
  .header .logo img{height:28px}
  .header{gap:var(--e-3);padding-inline:16px}
  .btn-chico{padding:9px 13px;font-size:13px}
}

.menu{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:var(--tr-medio);text-transform:uppercase}
.menu a{color:var(--humo);text-decoration:none;position:relative;padding-bottom:3px;transition:color var(--d-rapida)}
.menu a::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:var(--amarillo);
  transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease)}
.menu a:hover,.menu a:focus-visible{color:var(--blanco)}
.menu a:hover::after,.menu a:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}
/* La tira que se arrastraba en horizontal se reemplazo por una hamburguesa
   (decision de Juan, 2026-09-08). El problema no era que no entrara: era que
   el corte con degradado del ultimo item no se leia como "esto se arrastra"
   sino como un "ATRACC..." roto, es decir, como un error de maquetado. En un
   header, un item cortado siempre va a parecer un error antes que una
   invitacion a deslizar.

   Lo que queda fijo en mobile es lo que decidio Juan: el logo (la vuelta al
   inicio), Karting (el producto principal, a un toque) y Reservar. El resto
   entra al panel. */
.menu{display:flex;gap:var(--e-5);margin-left:auto;min-width:0}
/* 40px de alto: objetivo táctil cómodo, no el mínimo de 24 de WCAG */
.menu a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;white-space:nowrap}

.atajo,.hamburguesa,.menu-movil{display:none}

@media(max-width:759px){
  .menu{display:none}
  /* Karting a la vista, con el mismo registro que tenia dentro del menu:
     el atajo no es un boton, es el mismo enlace en otro lugar. */
  .atajo{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;
    font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:var(--tr-medio);
    text-transform:uppercase;color:var(--humo);text-decoration:none;white-space:nowrap;
    transition:color var(--d-rapida)}
  .atajo:hover,.atajo:focus-visible{color:var(--blanco)}

  .hamburguesa{display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto;width:44px;height:44px;margin-right:calc(var(--e-3) * -1);
    background:none;border:0;padding:0;cursor:pointer;color:var(--blanco)}
  /* Dos barras y no tres: la X sale de girarlas, sin una tercera que haya
     que desvanecer justo cuando las otras dos estan rotando. */
  .hb-barras{display:block;position:relative;width:20px;height:12px}
  .hb-barras i{position:absolute;left:0;right:0;height:2px;background:currentColor;
    transition:transform var(--d-rapida) var(--ease)}
  .hb-barras i:first-child{top:0}
  .hb-barras i:last-child{bottom:0}
  .hamburguesa[aria-expanded="true"] .hb-barras i:first-child{transform:translateY(5px) rotate(45deg)}
  .hamburguesa[aria-expanded="true"] .hb-barras i:last-child{transform:translateY(-5px) rotate(-45deg)}

  /* El panel baja del header, no tapa la pantalla entera: el logo y Reservar
     tienen que seguir a mano con el menu abierto. */
  /* Opaco, no translucido: a 97,5% de opacidad el video se seguia colando
     detras de los enlaces y el panel parecia mal pintado. La translucidez
     tiene sentido en una barra fija sobre contenido; en un menu que hay que
     leer, no. Y sin `backdrop-filter`, que sobre un fondo opaco es trabajo
     de GPU que no se ve. */
  .menu-movil:not([hidden]){display:block;position:absolute;top:100%;left:0;right:0;
    background:#0A0A0B;
    border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);
    padding:var(--e-3) var(--borde-pagina) var(--e-4)}
  .menu-movil nav{display:grid}
  .menu-movil a{display:flex;align-items:center;min-height:54px;
    font-family:var(--cond);font-size:21px;font-weight:700;text-transform:uppercase;
    letter-spacing:var(--tr-sub);color:var(--blanco);text-decoration:none;
    border-bottom:1px solid var(--linea)}
  .menu-movil a:last-child{border-bottom:0}
  .menu-movil a:active{color:var(--amarillo)}
  /* Con el panel abierto el header tiene que dejar de ser transparente: si no,
     el panel opaco arranca justo debajo de una franja con el video corriendo
     atras, y los dos pedazos no se leen como una sola pieza. */
  .header:has(.hamburguesa[aria-expanded="true"]){
    background:#0A0A0B;backdrop-filter:none}
}
/* Abajo de 360 px los cuatro elementos no entran y el que se cortaba era
   Reservar. Cede el atajo de Karting, que es el unico de los tres que ya
   esta adentro del panel: el logo y Reservar no se tocan nunca. */
@media(max-width:359px){.atajo{display:none}}
@media(max-width:759px) and (prefers-reduced-motion:no-preference){
  .menu-movil:not([hidden]){animation:menuBaja .2s var(--ease)}
  @keyframes menuBaja{from{opacity:0;transform:translateY(-8px)}}
}

/* --------------------------------------------------------------- botones */
.btn{display:inline-block;font-family:var(--cond);font-weight:900;text-transform:uppercase;
  letter-spacing:.05em;text-decoration:none;border:0;cursor:pointer;position:relative;overflow:hidden;
  transition:transform var(--d-media) var(--ease),box-shadow var(--d-media) var(--ease)}
.btn>span{position:relative;z-index:2}
.btn::before{content:"";position:absolute;inset:0;background:var(--amarillo-oscuro);
  transform:translateY(101%);transition:transform .4s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn-pri{background:var(--amarillo);color:#000;font-size:18px;padding:14px 32px;font-style:italic}
.btn-pri:hover{box-shadow:0 14px 40px -14px var(--amarillo-55)}
.btn-chico{background:var(--amarillo);color:#000;font-size:14px;padding:10px 18px;letter-spacing:.06em;font-style:italic}
.btn-fantasma{border:1px solid var(--linea-clara);color:var(--blanco);font-size:15px;padding:13px 26px;
  background:transparent}
.btn-fantasma::before{background:var(--amarillo)}
.btn-fantasma:hover{color:#000;border-color:var(--amarillo)}

/* ------------------------------------------------- formularios (comunes)
   Los usan reservar, grupos y el dashboard. Viven acá y no en la hoja de
   reservas justamente porque son de los tres. */
.entrada{display:grid;gap:6px}
.entrada label{font-family:var(--mono);font-size:11px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo)}
.entrada input[type="text"],.entrada input[type="tel"],
.entrada input[type="email"],.entrada input[type="password"]{
  background:var(--carbon);border:1px solid var(--linea);padding:13px 14px;font-size:18px;
  color:var(--blanco);width:100%;transition:border-color var(--d-rapida)}
.entrada input:focus{border-color:var(--amarillo);outline:none}
.entrada .pista{font-size:13px;color:var(--humo)}
.entrada.error input{border-color:var(--rojo)}
.entrada .msg-error{color:var(--rojo);font-size:13px;display:none}
.entrada.error .msg-error{display:block}

.interruptor{display:flex;gap:var(--e-3);align-items:flex-start;cursor:pointer;
  border:1px solid var(--linea);padding:var(--e-4);transition:border-color var(--d-rapida)}
.interruptor:hover{border-color:var(--linea-clara)}
.interruptor input{width:20px;height:20px;accent-color:var(--amarillo);margin-top:2px;flex:0 0 auto}
.interruptor .t{color:var(--blanco);font-size:16px;display:block}
.interruptor .s{color:var(--humo);font-size:14px;display:block;margin-top:2px}

.cantidad{display:flex;align-items:center;gap:var(--e-4);margin-top:var(--e-6);
  border:1px solid var(--linea);padding:var(--e-4) var(--e-5)}
.cantidad .et{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo)}
.contador{display:flex;align-items:center;gap:var(--e-4);margin-left:auto}
.contador button{width:38px;height:38px;border:1px solid var(--linea-clara);background:transparent;
  color:var(--blanco);font-size:20px;line-height:1;cursor:pointer;flex:0 0 auto;
  transition:border-color var(--d-rapida),color var(--d-rapida)}
.contador button:hover:not(:disabled){border-color:var(--amarillo);color:var(--amarillo)}
.contador button:disabled{opacity:.3;cursor:not-allowed}
.contador output{font-family:var(--mono);font-size:26px;min-width:2ch;text-align:center;color:var(--blanco)}

.aviso-error{border:1px solid var(--rojo);background:rgba(226,58,46,.08);padding:var(--e-4);
  color:#FFC9C4;font-size:15px;margin-bottom:var(--e-4);display:none}
.aviso-error.visible{display:block}

.acciones{display:flex;gap:var(--e-3);margin-top:var(--e-6);flex-wrap:wrap}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn:disabled::before{display:none}

/* ------------------------------------------------------------------ hero */
.hero{position:relative;min-height:100svh;display:grid;align-content:end;
  grid-template-columns:minmax(0,1fr);padding:110px var(--borde-pagina) 0;overflow:hidden}
/* Sin el minmax(0,1fr) un dato largo de la ficha ("420 m por vuelta", que
   no se parte) ensanchaba la columna del grid y corría todo el hero a la
   derecha en un celular. */
.hero>*{min-width:0}
.hero-medio{position:absolute;inset:0;z-index:var(--z-fondo);overflow:hidden}
/* el <picture> recibe el parallax, la <img> el zoom de entrada: dos
   transform independientes que no se pisan */
.hero-medio picture{display:block;width:100%;height:100%;will-change:transform}
.hero-medio img,.hero-medio video{width:100%;height:118%;object-fit:cover;object-position:52% 42%;
  filter:grayscale(1) contrast(1.35) brightness(.52);transform:scale(1.14);opacity:0;will-change:transform}
.cargado .hero-medio img,.cargado .hero-medio video{animation:entrarMedio 2.2s var(--ease) forwards}
@keyframes entrarMedio{to{transform:scale(1);opacity:1}}
/* el amarillo de marca tiñe los negros de la foto sin colorearla entera */
.hero-medio::before{content:"";position:absolute;inset:0;z-index:2;mix-blend-mode:color;
  background:linear-gradient(180deg,rgba(245,197,24,.16),rgba(245,197,24,.05))}
.hero-medio::after{content:"";position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,rgba(5,5,5,.82) 0%,rgba(5,5,5,.30) 32%,rgba(5,5,5,.72) 68%,var(--negro) 100%),
             radial-gradient(ellipse 75% 60% at 70% 40%,transparent,rgba(5,5,5,.75))}

/* hero de página interior: más bajo, el contenido empieza antes */
.hero-interior{min-height:76svh}
/* el cartel de foto pendiente va arriba, no atrás del titular */
.hero-medio .sin-foto{place-items:start center;padding-top:120px}
.hero-interior h1{font-size:clamp(40px,8.5vw,104px)}
.ficha .v{font-family:var(--cond);font-weight:700;font-size:22px;letter-spacing:0;white-space:normal}

.rejilla{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;
  background-image:linear-gradient(var(--linea) 1px,transparent 1px),
                   linear-gradient(90deg,var(--linea) 1px,transparent 1px);
  background-size:100% 64px,64px 100%;
  mask-image:radial-gradient(ellipse 95% 75% at 50% 40%,#000 25%,transparent 100%)}
.cargado .rejilla{animation:aparecer 1.6s .5s ease forwards}
@keyframes aparecer{to{opacity:.55}}

.barrido{position:absolute;inset:0 0 auto 0;height:2px;z-index:5;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,var(--amarillo-55),transparent)}
.cargado .barrido{animation:barrer 1.5s .35s var(--ease) forwards}
@keyframes barrer{0%{opacity:0;transform:translateY(0)}12%{opacity:1}100%{opacity:0;transform:translateY(100svh)}}

.hero-cont{position:relative;z-index:6;display:grid;gap:var(--e-5);padding-bottom:var(--e-5)}
.kicker{max-width:none;font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo);display:flex;align-items:center;gap:10px}
.kicker::before{content:"";width:0;height:1px;background:var(--linea-clara)}
/* Sobre negro macizo el gris alcanza, pero el kicker del hero cae encima del
   video: cuando el cuadro se aclara, --humo se pierde. Ahi sube a --texto y la
   linea al blanco tenue. Antes esto lo tapaba el amarillo, que se leia siempre;
   la solucion no es devolver el acento, es subir la luminancia del neutro. */
.hero-cont .kicker{color:var(--texto);text-shadow:0 1px 12px rgba(0,0,0,.75)}
.hero-cont .kicker::before{background:rgba(255,255,255,.45)}
.cargado .kicker::before{animation:linea .9s .3s var(--ease) forwards}
@keyframes linea{to{width:38px}}
.kicker span{opacity:0}
.cargado .kicker span{animation:fundir .7s .45s ease forwards}
@keyframes fundir{to{opacity:1}}

h1 .ln{display:block;overflow:hidden}
h1 .ln i{display:block;text-wrap:balance;font-style:normal;transform:translateY(105%);will-change:transform}
.cargado h1 .ln i{animation:subirLinea var(--d-entrada) var(--ease) forwards}
.cargado h1 .ln:nth-child(1) i{animation-delay:.42s}
.cargado h1 .ln:nth-child(2) i{animation-delay:.53s}
.cargado h1 .ln:nth-child(3) i{animation-delay:.64s}
@keyframes subirLinea{to{transform:translateY(0)}}

.entra{opacity:0;transform:translateY(16px)}
.cargado .entra{animation:subirSuave .9s var(--ease) forwards}
.cargado .d1{animation-delay:.95s}
.cargado .d2{animation-delay:1.08s}
@keyframes subirSuave{to{opacity:1;transform:none}}

/* ------------------------------------------------------- reserva rápida */
.reserva-rapida{display:grid;gap:10px;grid-template-columns:1fr;max-width:840px}
@media(min-width:700px){.reserva-rapida{grid-template-columns:1.1fr 1fr auto}}
.campo{border:1px solid var(--linea);background:rgba(13,13,14,.72);backdrop-filter:blur(8px);
  padding:11px 14px;cursor:pointer;transition:border-color var(--d-media),background var(--d-media)}
.campo:hover,.campo:focus-within{border-color:var(--amarillo-55);background:rgba(20,20,21,.85)}
.campo .et{display:block;font-family:var(--mono);font-size:11px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo)}
.campo select,.campo input{display:block;width:100%;background:transparent;border:0;outline:0;
  font-size:19px;font-weight:700;color:var(--blanco);margin-top:3px;text-overflow:ellipsis}
.campo select option{background:var(--carbon)}

/* ------------------------------------------------------------ datos vivos */
.datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--linea);
  background:rgba(5,5,5,.55);backdrop-filter:blur(8px);position:relative;z-index:6}
@media(min-width:760px){.datos{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* La ficha de las páginas interiores tiene textos ("Carreras por equipos")
   que no entran en una celda de celular sin partirse. El nowrap es solo
   para la barra de datos vivos de la home. */
.datos.ficha .v{white-space:normal;font-size:clamp(18px,4.6vw,22px)}
/* con cantidad impar de datos la última celda ocupa la fila entera, así la
   grilla no termina en un borde colgando */
.datos.ficha .dato:last-child:nth-child(odd){grid-column:1/-1}
@media(min-width:760px){
  .datos.ficha .dato:last-child:nth-child(odd){grid-column:auto}
  .datos.ficha .dato:last-child:nth-child(4n+1){grid-column:1/-1}
  .datos.ficha .dato:last-child:nth-child(4n+3){grid-column:span 2}
  /* seis datos (karting, paintball): la segunda fila son dos mitades, no dos
     celdas y un hueco */
  .datos.ficha .dato:nth-last-child(2):nth-child(4n+1),
  .datos.ficha .dato:last-child:nth-child(4n+2){grid-column:span 2}
}
.dato{padding:var(--e-4) 18px 14px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);
  opacity:0;transform:translateY(14px)}
/* Antes el ultimo dato terminaba de aparecer a los 2,24 s. Ahi estan el
   precio y la proxima carrera, o sea lo que la persona vino a buscar.
   Ahora cierra a los 0,72 s, con el mismo escalonado. */
.cargado .dato{animation:subirSuave .46s var(--ease) forwards}
.cargado .dato:nth-child(1){animation-delay:.5s}
.cargado .dato:nth-child(2){animation-delay:.555s}
.cargado .dato:nth-child(3){animation-delay:.61s}
.cargado .dato:nth-child(4){animation-delay:.665s}
.dato .k{font-family:var(--mono);font-size:11px;letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo)}
.dato .v{font-family:var(--cuerpo);font-size:var(--t-dato);font-weight:600;line-height:1.1;margin-top:6px;
  font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--blanco)}
.dato .v small{font-size:12px;color:var(--humo);font-weight:400}
.dato.vivo .v{color:var(--amarillo)}
.dato .v.destello{animation:destello .5s ease}
@keyframes destello{0%{color:#fff;text-shadow:0 0 26px rgba(245,197,24,.9)}100%{text-shadow:none}}
.pulso{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amarillo);
  margin-right:7px;vertical-align:middle;animation:latir 1.6s ease-in-out infinite}
@keyframes latir{0%,100%{opacity:1;box-shadow:0 0 0 0 var(--amarillo-55)}
                 50%{opacity:.55;box-shadow:0 0 0 7px rgba(245,197,24,0)}}

/* --------------------------------------------------------- tira de carreras */
.tira{position:relative;z-index:var(--z-contenido);display:flex;overflow-x:auto;cursor:grab;
  border-block:1px solid var(--linea);background:var(--negro);
  scrollbar-width:none;scroll-snap-type:x proximity}
.tira.agarrando{cursor:grabbing}
.tira::-webkit-scrollbar{display:none}
.carrera{flex:0 0 auto;min-width:158px;padding:var(--e-4) 18px;border-right:1px solid var(--linea);
  scroll-snap-align:start;font-family:var(--mono);font-size:12px;color:var(--humo);
  position:relative;overflow:hidden;user-select:none;text-decoration:none;display:block}
.carrera::before{content:"";position:absolute;inset:0;background:var(--carbon);
  transform:translateY(101%);transition:transform .22s var(--ease)}
@media (hover:hover) and (pointer:fine){
  .carrera:hover::before{transform:translateY(0)}
}
.carrera:focus-visible::before{transform:translateY(0)}
/* La tira se arrastra: el scale al presionar confirma que la tarjeta
   recibio el toque y no que se movio la tira entera. */
a.carrera{transition:transform var(--d-presion) var(--ease)}
a.carrera:active{transform:scale(.98)}
.carrera>*{position:relative;z-index:2}
.carrera b{display:block;font-family:var(--cuerpo);font-size:26px;color:var(--blanco);font-weight:600}
.carrera .libre{color:var(--amarillo)}
.carrera .pilotos{display:block;margin-top:6px;font-size:11px;color:var(--humo-tenue);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:175px}
.carrera.llena{opacity:.3;pointer-events:none}
.carrera.llena b{text-decoration:line-through}
/* Estado de carga y salida por si la consulta falla o no queda ninguna
   carrera hoy. Ocupa el mismo lugar que una tarjeta real para que la tira
   no cambie de alto cuando llegan los datos. */
.carrera.invita b{color:var(--blanco)}

/* -------------------------------------------------------------- atracciones */
.mundo{margin-top:var(--e-7)}
.mundo-cab{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--linea);padding-bottom:10px}
.mundo-cab .n{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo-tenue)}

.fila{display:grid;grid-template-columns:44px 1fr auto;gap:var(--e-4);align-items:center;
  padding:22px 4px;border-bottom:1px solid var(--linea);text-decoration:none;color:inherit;
  position:relative;transition:transform var(--d-presion) var(--ease)}
.fila::before{content:"";position:absolute;inset:0;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--amarillo-08),transparent 55%);transition:transform .24s var(--ease)}
.fila>*{position:relative;z-index:2}
.fila .idx{font-family:var(--mono);font-size:var(--t-micro);color:var(--humo)}
.fila .nom{font-size:var(--t-h3);text-transform:uppercase;font-weight:700;line-height:1;
  color:var(--blanco);transition:color .16s var(--ease)}

/* El corrimiento al pasar el mouse se hacia con padding-left, que obliga al
   navegador a recalcular el layout en cada cuadro. Con transform va por GPU
   y ademas se mueve solo el bloque izquierdo: la ficha de la derecha queda
   anclada, que es lo que hace que la fila "se abra" en vez de deslizarse
   entera. */
.fila .idx,.fila .nom{transition:transform .2s var(--ease),color .16s var(--ease)}

@media (hover:hover) and (pointer:fine){
  .fila:hover::before{transform:scaleX(1)}
  .fila:hover .idx,.fila:hover .nom{transform:translateX(14px)}
  .fila:hover .nom{color:var(--amarillo)}
}
.fila:focus-visible::before{transform:scaleX(1)}
.fila:focus-visible .idx,.fila:focus-visible .nom{transform:translateX(14px)}
.fila:focus-visible .nom{color:var(--amarillo)}
.fila:active{transform:scale(.99)}
.fila .meta{font-family:var(--mono);font-size:var(--t-micro);color:var(--humo);text-align:right;letter-spacing:0}
/* mobile: el nombre necesita el ancho entero, la ficha baja debajo */
@media(max-width:719px){
  .fila{grid-template-columns:32px 1fr;row-gap:6px}
  .fila .meta{grid-column:2;text-align:left;font-size:10px;line-height:1.45}
}
.consulta-dato{font-family:var(--cuerpo);font-size:15px;line-height:1.55;color:var(--humo);max-width:56ch;margin-top:var(--e-4)}
.consulta-dato a{color:var(--amarillo);text-decoration:underline;text-underline-offset:3px}
.pendiente{display:inline-flex;gap:6px;font-family:var(--mono);font-size:11px;color:var(--humo);
  border:1px dashed var(--linea-clara);padding:4px 8px;letter-spacing:var(--tr-medio);text-transform:uppercase}
/* #6C6C6C daba 3,70:1 sobre el negro: no pasaba AA. --humo da 5,65:1 y sigue callado */

/* miniatura que sigue al cursor */
.mini{position:fixed;inset:0 auto auto 0;width:230px;height:150px;z-index:var(--z-mini);pointer-events:none;
  opacity:0;transform:translate(-50%,-50%) scale(.9) rotate(-3deg);border:1px solid var(--linea);
  overflow:hidden;background:var(--carbon);
  transition:opacity .14s var(--ease),transform .14s var(--ease)}
/* Entra un poco mas lenta de lo que sale: aparecer merece un instante,
   desaparecer tiene que ser inmediato o se ve arrastrada por el cursor. */
.mini.visible{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg);
  transition:opacity .2s var(--ease),transform .2s var(--ease)}
.mini img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.2) brightness(.75)}
.sin-foto{width:100%;height:100%;display:grid;place-items:center;font-family:var(--mono);font-size:10px;
  letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo);
  background:repeating-linear-gradient(45deg,#111113 0 10px,#0B0B0C 10px 20px)}
@media(hover:none){.mini{display:none}}

/* -------------------------------------------------------------- productos */
.precios{display:grid;gap:1px;margin-top:var(--e-6);background:var(--linea);border:1px solid var(--linea)}
@media(min-width:840px){.precios{grid-template-columns:repeat(3,1fr)}}
.precio{background:var(--negro);padding:var(--e-6) var(--e-5);display:flex;flex-direction:column;
  transition:background var(--d-media)}
.precio:hover{background:var(--carbon)}
.precio .nom{font-family:var(--cond);font-weight:900;text-transform:uppercase;font-size:26px;color:var(--blanco)}
.precio .val{font-family:var(--cuerpo);font-size:36px;font-weight:600;color:var(--blanco);
  margin:var(--e-3) 0 var(--e-2);font-variant-numeric:tabular-nums}
.precio .desc{color:var(--texto);font-size:16px;flex:1}
.precio .cta{margin-top:var(--e-5)}
.precio.destacado{outline:1px solid var(--amarillo-55);outline-offset:-1px}
/* ------------------------------------------------------ tira de vueltas
   Una marca por vuelta. Las tres fases suben de altura y de brillo:
   reconocimiento bajo y apagado, clasificacion media, carrera al maximo.
   Esa progresion ES la carrera, y de paso deja comparar los tres productos
   sin leer: se cuentan las marcas.

   Todo en neutros. El amarillo sigue reservado para los CTA: si trece
   marcas por tarjeta fueran amarillas, el acento dejaria de senalar. */
.vueltas{display:flex;align-items:flex-end;justify-content:flex-start;gap:3px;
  margin:var(--e-4) 0 8px;height:20px}
/* Los envoltorios de fase no pintan caja: con `display:contents` los <i> pasan
   a ser items directos de la tira. Es lo que hace que TODAS las marcas midan
   lo mismo sin importar cuantas tenga cada fase; anidadas, la fase con mas
   vueltas se comia mas hueco interno y sus marcas salian mas angostas que las
   de al lado. */
.fase{display:contents}
/* Las marcas crecen hasta 10 px y se achican hasta 3 si la tarjeta es angosta.
   La version anterior las fijaba en 3 px con 2 de separacion: veinte vueltas
   entraban en 60 px dentro de una tarjeta de 285, y eso no se lee como veinte
   marcas contables sino como una mancha rayada, indistinguible de un error de
   render. El ancho fijo tambien deja que el largo de la tira signifique algo:
   Sprint es visiblemente mas corta que Extreme. */
.vueltas i{display:block;flex:1 1 4px;max-width:10px;min-width:3px;
  height:8px;background:var(--linea-clara)}
.fase.clasi i{height:13px;background:var(--humo-tenue)}
.fase.corre i{height:20px;background:var(--humo)}
/* El corte entre fases: tres veces el aire que hay entre marcas de la misma
   fase, que es lo que deja ver los tres tramos como tres tramos. */
.fase + .fase > i:first-child{margin-left:9px}
/* En la tarjeta destacada la carrera se ve entera: es la que el parque
   quiere vender y la unica donde el contraste extra se justifica. */
.precio.destacado .fase.corre i{background:var(--blanco)}
.vueltas-pie{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);margin:0 0 var(--e-3)}
.vueltas-pie b{color:var(--humo);font-weight:700}

.etiqueta{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:#000;background:var(--amarillo);padding:3px 8px;align-self:flex-start;margin-bottom:var(--e-3)}

/* ------------------------------------------------------------------ FAQ */
.faq{border-top:1px solid var(--linea);margin-top:var(--e-6)}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{padding:20px 4px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  gap:var(--e-4);font-family:var(--cond);font-size:22px;font-weight:700;color:var(--blanco);
  text-transform:uppercase;transition:color var(--d-rapida)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--humo);font-size:22px;
  transition:transform var(--d-media) var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--amarillo)}
.faq .r{padding:0 4px 22px;color:var(--texto);max-width:70ch}

/* ------------------------------------------------------------- revelado */
.rv{opacity:0;transform:translateY(26px);
  transition:opacity var(--d-lenta) var(--ease),transform var(--d-lenta) var(--ease)}
.rv.visible{opacity:1;transform:none}

/* ------------------------------------------------------------------- pie
   La bandera a cuadros del pie no es decoracion: el pie es el final del
   recorrido, y ahi el cuadriculado significa llegada. Por eso es mas fuerte
   contra el borde de abajo y se disuelve hacia arriba, en vez de estar
   repartido parejo.

   Tres decisiones que separan esto de un fondo cuadriculado cualquiera:

   1. Cuadros GRANDES (34 px). Chicos leen como la grilla de transparencia
      de Photoshop, que es exactamente lo que no queremos.
   2. Contraste minimo: #17171A sobre #0D0D0D son trece puntos de luminancia.
      Se percibe como textura, no se mira como dibujo, y el texto encima
      sigue teniendo el contraste de siempre porque el patron casi no sube
      el brillo del fondo.
   3. Sin imagen. Es un gradiente conico repetido: pesa cero, no pixela en
      pantallas retina y no suma un pedido HTTP.

   El patron va en un ::before absoluto con mascara vertical, y el contenido
   se sube con z-index para que nunca quede una letra sobre un borde de
   cuadro. */
.pie{border-top:1px solid var(--linea);
  /* El relleno de abajo es mas grande que el de arriba a proposito: esos
     104 px de mas son la zona de la bandera. Sin espacio propio, el
     cuadriculado corre por detras de los enlaces legales y compite con
     ellos; con espacio propio, se lee como una franja de llegada. */
  padding:var(--e-7) var(--borde-pagina) calc(var(--e-6) + 104px);
  display:grid;gap:var(--e-6);position:relative;z-index:var(--z-contenido);
  overflow:hidden}
.pie::before{
  content:"";position:absolute;inset:auto 0 0 0;height:132px;pointer-events:none;
  /* La bandera ondula, y por eso no es un gradiente: un gradiente es recto.
     El SVG lo genera `node _build/bandera.mjs`, que deforma la grilla con un
     seno cuya amplitud crece hacia abajo: contra el borde de la página flamea
     y hacia arriba se aquieta al mismo tiempo que se disuelve en el negro.
     El mosaico mide una onda entera, así que `repeat-x` no deja costura.
     NO editar el data URI a mano: correr el script, que lo reemplaza. */
  /* BANDERA-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22720%22%20height%3D%22210%22%20viewBox%3D%220%200%20720%20210%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cpath%20d%3D%22M0.0%200.0L23.5%200.0L23.5%2030.2L0.0%2030.0Z%22%2F%3E%3Cpath%20d%3D%22M53.5%200.0L90.0%200.0L90.0%2030.4L53.5%2030.3Z%22%2F%3E%3Cpath%20d%3D%22M126.5%200.0L156.5%200.0L156.5%2030.2L126.5%2030.3Z%22%2F%3E%3Cpath%20d%3D%22M180.0%200.0L203.5%200.0L203.5%2029.8L180.0%2030.0Z%22%2F%3E%3Cpath%20d%3D%22M233.5%200.0L270.0%200.0L270.0%2029.6L233.5%2029.7Z%22%2F%3E%3Cpath%20d%3D%22M306.5%200.0L336.5%200.0L336.5%2029.8L306.5%2029.7Z%22%2F%3E%3Cpath%20d%3D%22M360.0%200.0L383.5%200.0L383.5%2030.2L360.0%2030.0Z%22%2F%3E%3Cpath%20d%3D%22M413.5%200.0L450.0%200.0L450.0%2030.4L413.5%2030.3Z%22%2F%3E%3Cpath%20d%3D%22M486.5%200.0L516.5%200.0L516.5%2030.2L486.5%2030.3Z%22%2F%3E%3Cpath%20d%3D%22M540.0%200.0L563.5%200.0L563.5%2029.8L540.0%2030.0Z%22%2F%3E%3Cpath%20d%3D%22M593.5%200.0L630.0%200.0L630.0%2029.6L593.5%2029.7Z%22%2F%3E%3Cpath%20d%3D%22M666.5%200.0L696.5%200.0L696.5%2029.8L666.5%2029.7Z%22%2F%3E%3Cpath%20d%3D%22M23.5%2030.2L53.5%2030.3L53.5%2061.3L23.5%2060.7Z%22%2F%3E%3Cpath%20d%3D%22M90.0%2030.4L126.5%2030.3L126.5%2061.3L90.0%2061.5Z%22%2F%3E%3Cpath%20d%3D%22M156.5%2030.2L180.0%2030.0L180.0%2060.0L156.5%2060.7Z%22%2F%3E%3Cpath%20d%3D%22M203.5%2029.8L233.5%2029.7L233.5%2058.7L203.5%2059.3Z%22%2F%3E%3Cpath%20d%3D%22M270.0%2029.6L306.5%2029.7L306.5%2058.7L270.0%2058.5Z%22%2F%3E%3Cpath%20d%3D%22M336.5%2029.8L360.0%2030.0L360.0%2060.0L336.5%2059.3Z%22%2F%3E%3Cpath%20d%3D%22M383.5%2030.2L413.5%2030.3L413.5%2061.3L383.5%2060.7Z%22%2F%3E%3Cpath%20d%3D%22M450.0%2030.4L486.5%2030.3L486.5%2061.3L450.0%2061.5Z%22%2F%3E%3Cpath%20d%3D%22M516.5%2030.2L540.0%2030.0L540.0%2060.0L516.5%2060.7Z%22%2F%3E%3Cpath%20d%3D%22M563.5%2029.8L593.5%2029.7L593.5%2058.7L563.5%2059.3Z%22%2F%3E%3Cpath%20d%3D%22M630.0%2029.6L666.5%2029.7L666.5%2058.7L630.0%2058.5Z%22%2F%3E%3Cpath%20d%3D%22M696.5%2029.8L720.0%2030.0L720.0%2060.0L696.5%2059.3Z%22%2F%3E%3Cpath%20d%3D%22M0.0%2060.0L23.5%2060.7L23.5%2091.7L0.0%2090.0Z%22%2F%3E%3Cpath%20d%3D%22M53.5%2061.3L90.0%2061.5L90.0%2093.3L53.5%2092.9Z%22%2F%3E%3Cpath%20d%3D%22M126.5%2061.3L156.5%2060.7L156.5%2091.7L126.5%2092.9Z%22%2F%3E%3Cpath%20d%3D%22M180.0%2060.0L203.5%2059.3L203.5%2088.3L180.0%2090.0Z%22%2F%3E%3Cpath%20d%3D%22M233.5%2058.7L270.0%2058.5L270.0%2086.7L233.5%2087.1Z%22%2F%3E%3Cpath%20d%3D%22M306.5%2058.7L336.5%2059.3L336.5%2088.3L306.5%2087.1Z%22%2F%3E%3Cpath%20d%3D%22M360.0%2060.0L383.5%2060.7L383.5%2091.7L360.0%2090.0Z%22%2F%3E%3Cpath%20d%3D%22M413.5%2061.3L450.0%2061.5L450.0%2093.3L413.5%2092.9Z%22%2F%3E%3Cpath%20d%3D%22M486.5%2061.3L516.5%2060.7L516.5%2091.7L486.5%2092.9Z%22%2F%3E%3Cpath%20d%3D%22M540.0%2060.0L563.5%2059.3L563.5%2088.3L540.0%2090.0Z%22%2F%3E%3Cpath%20d%3D%22M593.5%2058.7L630.0%2058.5L630.0%2086.7L593.5%2087.1Z%22%2F%3E%3Cpath%20d%3D%22M666.5%2058.7L696.5%2059.3L696.5%2088.3L666.5%2087.1Z%22%2F%3E%3Cpath%20d%3D%22M23.5%2091.7L53.5%2092.9L53.5%20125.1L23.5%20122.9Z%22%2F%3E%3Cpath%20d%3D%22M90.0%2093.3L126.5%2092.9L126.5%20125.1L90.0%20125.9Z%22%2F%3E%3Cpath%20d%3D%22M156.5%2091.7L180.0%2090.0L180.0%20120.0L156.5%20122.9Z%22%2F%3E%3Cpath%20d%3D%22M203.5%2088.3L233.5%2087.1L233.5%20114.9L203.5%20117.1Z%22%2F%3E%3Cpath%20d%3D%22M270.0%2086.7L306.5%2087.1L306.5%20114.9L270.0%20114.1Z%22%2F%3E%3Cpath%20d%3D%22M336.5%2088.3L360.0%2090.0L360.0%20120.0L336.5%20117.1Z%22%2F%3E%3Cpath%20d%3D%22M383.5%2091.7L413.5%2092.9L413.5%20125.1L383.5%20122.9Z%22%2F%3E%3Cpath%20d%3D%22M450.0%2093.3L486.5%2092.9L486.5%20125.1L450.0%20125.9Z%22%2F%3E%3Cpath%20d%3D%22M516.5%2091.7L540.0%2090.0L540.0%20120.0L516.5%20122.9Z%22%2F%3E%3Cpath%20d%3D%22M563.5%2088.3L593.5%2087.1L593.5%20114.9L563.5%20117.1Z%22%2F%3E%3Cpath%20d%3D%22M630.0%2086.7L666.5%2087.1L666.5%20114.9L630.0%20114.1Z%22%2F%3E%3Cpath%20d%3D%22M696.5%2088.3L720.0%2090.0L720.0%20120.0L696.5%20117.1Z%22%2F%3E%3Cpath%20d%3D%22M0.0%20120.0L23.5%20122.9L23.5%20154.6L0.0%20150.0Z%22%2F%3E%3Cpath%20d%3D%22M53.5%20125.1L90.0%20125.9L90.0%20159.2L53.5%20158.0Z%22%2F%3E%3Cpath%20d%3D%22M126.5%20125.1L156.5%20122.9L156.5%20154.6L126.5%20158.0Z%22%2F%3E%3Cpath%20d%3D%22M180.0%20120.0L203.5%20117.1L203.5%20145.4L180.0%20150.0Z%22%2F%3E%3Cpath%20d%3D%22M233.5%20114.9L270.0%20114.1L270.0%20140.8L233.5%20142.0Z%22%2F%3E%3Cpath%20d%3D%22M306.5%20114.9L336.5%20117.1L336.5%20145.4L306.5%20142.0Z%22%2F%3E%3Cpath%20d%3D%22M360.0%20120.0L383.5%20122.9L383.5%20154.6L360.0%20150.0Z%22%2F%3E%3Cpath%20d%3D%22M413.5%20125.1L450.0%20125.9L450.0%20159.2L413.5%20158.0Z%22%2F%3E%3Cpath%20d%3D%22M486.5%20125.1L516.5%20122.9L516.5%20154.6L486.5%20158.0Z%22%2F%3E%3Cpath%20d%3D%22M540.0%20120.0L563.5%20117.1L563.5%20145.4L540.0%20150.0Z%22%2F%3E%3Cpath%20d%3D%22M593.5%20114.9L630.0%20114.1L630.0%20140.8L593.5%20142.0Z%22%2F%3E%3Cpath%20d%3D%22M666.5%20114.9L696.5%20117.1L696.5%20145.4L666.5%20142.0Z%22%2F%3E%3Cpath%20d%3D%22M23.5%20154.6L53.5%20158.0L53.5%20191.5L23.5%20186.6Z%22%2F%3E%3Cpath%20d%3D%22M90.0%20159.2L126.5%20158.0L126.5%20191.5L90.0%20193.2Z%22%2F%3E%3Cpath%20d%3D%22M156.5%20154.6L180.0%20150.0L180.0%20180.0L156.5%20186.6Z%22%2F%3E%3Cpath%20d%3D%22M203.5%20145.4L233.5%20142.0L233.5%20168.5L203.5%20173.4Z%22%2F%3E%3Cpath%20d%3D%22M270.0%20140.8L306.5%20142.0L306.5%20168.5L270.0%20166.8Z%22%2F%3E%3Cpath%20d%3D%22M336.5%20145.4L360.0%20150.0L360.0%20180.0L336.5%20173.4Z%22%2F%3E%3Cpath%20d%3D%22M383.5%20154.6L413.5%20158.0L413.5%20191.5L383.5%20186.6Z%22%2F%3E%3Cpath%20d%3D%22M450.0%20159.2L486.5%20158.0L486.5%20191.5L450.0%20193.2Z%22%2F%3E%3Cpath%20d%3D%22M516.5%20154.6L540.0%20150.0L540.0%20180.0L516.5%20186.6Z%22%2F%3E%3Cpath%20d%3D%22M563.5%20145.4L593.5%20142.0L593.5%20168.5L563.5%20173.4Z%22%2F%3E%3Cpath%20d%3D%22M630.0%20140.8L666.5%20142.0L666.5%20168.5L630.0%20166.8Z%22%2F%3E%3Cpath%20d%3D%22M696.5%20145.4L720.0%20150.0L720.0%20180.0L696.5%20173.4Z%22%2F%3E%3Cpath%20d%3D%22M0.0%20180.0L23.5%20186.6L23.5%20219.0L0.0%20210.0Z%22%2F%3E%3Cpath%20d%3D%22M53.5%20191.5L90.0%20193.2L90.0%20228.0L53.5%20225.6Z%22%2F%3E%3Cpath%20d%3D%22M126.5%20191.5L156.5%20186.6L156.5%20219.0L126.5%20225.6Z%22%2F%3E%3Cpath%20d%3D%22M180.0%20180.0L203.5%20173.4L203.5%20201.0L180.0%20210.0Z%22%2F%3E%3Cpath%20d%3D%22M233.5%20168.5L270.0%20166.8L270.0%20192.0L233.5%20194.4Z%22%2F%3E%3Cpath%20d%3D%22M306.5%20168.5L336.5%20173.4L336.5%20201.0L306.5%20194.4Z%22%2F%3E%3Cpath%20d%3D%22M360.0%20180.0L383.5%20186.6L383.5%20219.0L360.0%20210.0Z%22%2F%3E%3Cpath%20d%3D%22M413.5%20191.5L450.0%20193.2L450.0%20228.0L413.5%20225.6Z%22%2F%3E%3Cpath%20d%3D%22M486.5%20191.5L516.5%20186.6L516.5%20219.0L486.5%20225.6Z%22%2F%3E%3Cpath%20d%3D%22M540.0%20180.0L563.5%20173.4L563.5%20201.0L540.0%20210.0Z%22%2F%3E%3Cpath%20d%3D%22M593.5%20168.5L630.0%20166.8L630.0%20192.0L593.5%20194.4Z%22%2F%3E%3Cpath%20d%3D%22M666.5%20168.5L696.5%20173.4L696.5%20201.0L666.5%20194.4Z%22%2F%3E%3Cpath%20d%3D%22M23.5%20219.0L53.5%20225.6L53.5%20255.6L23.5%20249.0Z%22%2F%3E%3Cpath%20d%3D%22M90.0%20228.0L126.5%20225.6L126.5%20255.6L90.0%20258.0Z%22%2F%3E%3Cpath%20d%3D%22M156.5%20219.0L180.0%20210.0L180.0%20240.0L156.5%20249.0Z%22%2F%3E%3Cpath%20d%3D%22M203.5%20201.0L233.5%20194.4L233.5%20224.4L203.5%20231.0Z%22%2F%3E%3Cpath%20d%3D%22M270.0%20192.0L306.5%20194.4L306.5%20224.4L270.0%20222.0Z%22%2F%3E%3Cpath%20d%3D%22M336.5%20201.0L360.0%20210.0L360.0%20240.0L336.5%20231.0Z%22%2F%3E%3Cpath%20d%3D%22M383.5%20219.0L413.5%20225.6L413.5%20255.6L383.5%20249.0Z%22%2F%3E%3Cpath%20d%3D%22M450.0%20228.0L486.5%20225.6L486.5%20255.6L450.0%20258.0Z%22%2F%3E%3Cpath%20d%3D%22M516.5%20219.0L540.0%20210.0L540.0%20240.0L516.5%20249.0Z%22%2F%3E%3Cpath%20d%3D%22M563.5%20201.0L593.5%20194.4L593.5%20224.4L563.5%20231.0Z%22%2F%3E%3Cpath%20d%3D%22M630.0%20192.0L666.5%20194.4L666.5%20224.4L630.0%20222.0Z%22%2F%3E%3Cpath%20d%3D%22M696.5%20201.0L720.0%20210.0L720.0%20240.0L696.5%20231.0Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* BANDERA-FIN */
  background-size:auto;background-repeat:repeat-x;background-position:center bottom;
  /* De invisible arriba a casi lleno abajo. El ultimo tramo no llega a
     opacidad total: una bandera que termina en un borde duro se ve pegada,
     y esta tiene que parecer que sale de la oscuridad. */
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.5) 60%,rgba(0,0,0,.92) 100%);
  mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.5) 60%,rgba(0,0,0,.92) 100%)}
/* El contenido siempre por encima del patron. */
.pie>*{position:relative;z-index:1}
@media(max-width:520px){
  .pie{padding-bottom:calc(var(--e-6) + 78px)}
  /* En mobile se achica el mosaico entero, nunca su alto suelto: el SVG
     tiene proporcion propia y deformarlo aplana la onda. `auto 150px`
     mantiene la relacion y deja cuadros de ~21 px. */
  .pie::before{height:104px;background-size:auto 150px}
}
/* ------------------------------------------------ texturas por atraccion
   El pie cierra TODAS las paginas con la bandera a cuadros: esa es la
   identidad del parque entero. Arriba del contenido, en cambio, cada pagina
   abre con lo suyo, y por eso la banda va justo debajo del hero, donde la
   pagina termina de decir que es.

   Mismo registro que la bandera y por los mismos motivos: un unico color
   casi negro (#232327 sobre el #0D0D0D del sitio), enmascarado hacia abajo,
   y nunca amarillo, que esta reservado para los CTA.

   La banda es un div vacio con altura propia en vez de un ::before sobre la
   primera seccion: asi no pelea con el padding de ningun bloque, no queda
   nunca detras de un titulo y se puede sacar de una pagina borrando una
   linea. Los dibujos los genera `node _build/texturas.mjs`; NO editar los
   data URI a mano. */
.textura{height:96px;pointer-events:none;
  background-repeat:repeat-x;background-position:center top;background-size:auto}
/* La mascara arranca en .72 y no en .95. En un celular se ve un pedazo del
   mosaico y el motivo es un susurro; en escritorio se repite tres o cuatro
   veces y ese mismo valor lo convertia en una franja decorativa que le
   ganaba al titulo de abajo. La textura tiene que estar, no protagonizar. */
.textura{
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.32) 50%,transparent 100%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.32) 50%,transparent 100%)}
/* En mobile se achica el mosaico entero, nunca su alto suelto: deformarlo
   arruina las formas redondas, que son la mitad de los motivos. */
@media(max-width:520px){.textura{height:72px;background-size:auto 96px}}
/* Menos movimiento tambien es menos ruido visual: si alguien pidio calma,
   la decoracion sobra. */
@media(prefers-reduced-motion:reduce){.textura{display:none}}
.textura--huellas{
  /* TEX-huellas-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22360%22%20height%3D%22120%22%20viewBox%3D%220%200%20360%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Crect%20x%3D%220.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22360.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%2240.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%2280.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22120.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22160.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22200.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22240.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22280.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22320.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22360.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%220.0%22%20y%3D%2218.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%2220.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22380.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%2260.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22100.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22140.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22180.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22220.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22260.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22300.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22340.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22-20.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%22380.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Crect%20x%3D%2220.0%22%20y%3D%2278.0%22%20width%3D%2227%22%20height%3D%2220%22%20rx%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M-40.0%2070.0L-20.0%2044.0L0.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M320.0%2070.0L340.0%2044.0L360.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M0.0%2070.0L20.0%2044.0L40.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M360.0%2070.0L380.0%2044.0L400.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M40.0%2070.0L60.0%2044.0L80.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M80.0%2070.0L100.0%2044.0L120.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M120.0%2070.0L140.0%2044.0L160.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M160.0%2070.0L180.0%2044.0L200.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M200.0%2070.0L220.0%2044.0L240.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M240.0%2070.0L260.0%2044.0L280.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M280.0%2070.0L300.0%2044.0L320.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M320.0%2070.0L340.0%2044.0L360.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M360.0%2070.0L380.0%2044.0L400.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3Cpath%20d%3D%22M0.0%2070.0L20.0%2044.0L40.0%2070.0%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%2210%22%20stroke-linejoin%3D%22miter%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-huellas-FIN */
}
.textura--pintura{
  /* TEX-pintura-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22520%22%20height%3D%22120%22%20viewBox%3D%220%200%20520%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cpath%20d%3D%22M325.2%2070.9L322.2%2081.9L311.0%2084.0L302.8%2086.5L295.2%2082.2L285.5%2076.6L290.1%2066.5L292.2%2056.0L303.2%2058.0L310.9%2058.1L315.4%2064.2Z%22%2F%3E%3Cpath%20d%3D%22M275.7%2075.3L274.5%2076.7L273.0%2077.2L270.9%2076.6L271.5%2074.4L273.0%2073.2L274.9%2073.5Z%22%2F%3E%3Cpath%20d%3D%22M338.2%2080.8L337.3%2082.3L335.8%2082.2L334.8%2081.4L334.6%2080.1L335.8%2079.5L337.3%2079.2Z%22%2F%3E%3Cpath%20d%3D%22M310.3%2099.9L310.3%20102.9L307.1%20103.5L305.4%20101.1L303.8%2097.9L307.3%2097.1L309.9%2097.5Z%22%2F%3E%3Cpath%20d%3D%22M332.3%2068.6L331.3%2070.3L329.3%2071.1L328.4%2069.3L328.1%2067.8L329.3%2066.1L331.2%2066.9Z%22%2F%3E%3Cpath%20d%3D%22M281.1%2034.7L278.0%2037.0L275.3%2038.6L273.3%2036.1L272.2%2032.8L275.4%2031.5L279.2%2030.9Z%22%2F%3E%3Cpath%20d%3D%22M284.3%20101.9L282.2%20104.2L279.6%20105.4L278.0%20103.0L278.3%20100.8L279.5%2098.0L281.9%20100.0Z%22%2F%3E%3Cpath%20d%3D%22M159.7%2082.1L153.5%2086.5L149.8%2089.2L144.9%2093.5L139.6%2090.1L136.6%2085.0L134.9%2078.6L141.8%2076.6L144.7%2069.3L150.4%2073.6L155.9%2076.0Z%22%2F%3E%3Cpath%20d%3D%22M155.5%20111.5L154.6%20114.0L151.6%20116.1L149.8%20112.9L149.9%20110.2L151.8%20107.8L155.8%20107.6Z%22%2F%3E%3Cpath%20d%3D%22M170.7%2067.0L170.7%2068.4L169.1%2068.5L167.8%2067.8L167.8%2066.1L169.2%2065.8L170.7%2065.5Z%22%2F%3E%3Cpath%20d%3D%22M138.9%2067.2L137.0%2070.3L133.6%2071.2L130.7%2069.0L131.8%2065.9L133.6%2063.2L137.4%2063.6Z%22%2F%3E%3Cpath%20d%3D%22M175.1%2060.5L178.0%2075.4L166.1%2085.0L152.3%2078.7L140.3%2077.4L131.8%2067.3L128.9%2052.9L134.0%2036.4L152.0%2040.5L164.9%2038.6L178.5%2045.4Z%22%2F%3E%3Cpath%20d%3D%22M203.6%20103.0L202.4%20104.0L201.3%20104.0L200.4%20103.6L199.9%20102.2L201.4%20102.0L202.4%20102.0Z%22%2F%3E%3Cpath%20d%3D%22M171.0%20113.6L170.3%20114.6L169.1%20115.7L168.4%20114.2L168.3%20113.0L169.1%20111.6L170.7%20112.2Z%22%2F%3E%3Cpath%20d%3D%22M143.7%2014.0L142.8%2015.5L141.1%2016.1L140.5%2014.5L140.3%2013.4L141.3%2012.6L142.5%2012.9Z%22%2F%3E%3Cpath%20d%3D%22M210.7%2016.9L209.2%2018.9L206.9%2020.2L204.4%2018.5L204.7%2015.5L207.1%2014.7L209.4%2014.7Z%22%2F%3E%3Cpath%20d%3D%22M208.6%2049.8L200.1%2055.5L196.4%2061.0L189.5%2062.1L182.4%2060.0L180.8%2052.9L177.8%2045.8L180.2%2037.0L188.8%2032.8L195.9%2039.6L201.3%2043.3Z%22%2F%3E%3Cpath%20d%3D%22M176.6%2040.7L175.7%2042.9L173.3%2043.4L171.1%2042.1L171.6%2039.6L173.0%2036.8L176.0%2038.2Z%22%2F%3E%3Cpath%20d%3D%22M228.1%2044.0L225.9%2045.7L223.8%2047.2L222.1%2045.2L222.6%2043.1L223.8%2040.7L226.8%2041.2Z%22%2F%3E%3Cpath%20d%3D%22M210.1%2031.3L209.1%2033.6L206.6%2033.9L204.0%2032.8L203.1%2029.3L206.2%2026.7L209.4%2028.6Z%22%2F%3E%3Cpath%20d%3D%22M469.8%2042.9L460.8%2059.0L444.3%2061.5L433.2%2060.8L415.1%2066.9L412.6%2049.8L416.8%2037.4L423.7%2029.0L431.7%2014.3L448.4%2015.4L463.6%2025.1Z%22%2F%3E%3Cpath%20d%3D%22M404.5%203.5L402.0%205.3L399.7%207.2L397.3%205.1L397.2%201.9L399.7%20-0.4L402.3%201.3Z%22%2F%3E%3Cpath%20d%3D%22M466.5%2067.3L466.8%2069.5L464.6%2069.2L463.3%2068.1L463.4%2066.5L464.6%2065.7L466.4%2065.5Z%22%2F%3E%3Cpath%20d%3D%22M389.6%208.9L389.4%2011.5L386.6%2012.1L384.5%2010.3L384.3%207.4L386.8%206.3L388.7%207.2Z%22%2F%3E%3Cpath%20d%3D%22M110.9%2044.6L105.9%2060.2L95.4%2075.0L77.1%2075.3L61.4%2067.7L63.3%2049.9L55.8%2037.0L66.6%2027.4L76.9%2012.7L89.0%2028.1L101.2%2031.9Z%22%2F%3E%3Cpath%20d%3D%22M107.2%20-14.5L107.3%20-11.4L104.5%20-12.4L102.5%20-13.3L102.6%20-15.6L104.3%20-17.3L106.4%20-16.3Z%22%2F%3E%3Cpath%20d%3D%22M14.5%2032.9L13.4%2036.4L9.5%2037.8L6.5%2034.9L7.7%2031.5L9.8%2029.4L12.7%2030.3Z%22%2F%3E%3Cpath%20d%3D%22M45.6%2090.1L44.2%2093.5L40.7%2093.6L39.2%2091.2L37.4%2088.2L40.8%2087.0L43.3%2087.8Z%22%2F%3E%3Cpath%20d%3D%22M33.0%2093.9L31.7%2095.5L29.9%2096.3L28.7%2094.7L28.2%2092.8L29.7%2090.5L32.5%2091.3Z%22%2F%3E%3Cpath%20d%3D%22M360.8%2080.2L355.6%2085.4L353.3%2092.9L345.8%2092.0L341.1%2087.6L338.2%2083.0L336.2%2076.9L341.6%2073.5L346.3%2072.0L353.6%2067.0L358.9%2072.9Z%22%2F%3E%3Cpath%20d%3D%22M326.4%2087.8L324.9%2089.7L322.5%2091.4L321.3%2088.8L321.5%2086.9L322.8%2085.5L325.4%2085.2Z%22%2F%3E%3Cpath%20d%3D%22M375.9%2080.1L374.7%2082.7L371.9%2083.4L369.5%2081.6L370.2%2078.9L372.1%2077.8L374.3%2078.0Z%22%2F%3E%3Cpath%20d%3D%22M351.1%20112.8L351.0%20115.1L348.8%20114.3L347.5%20113.6L347.2%20111.8L348.8%20111.2L350.4%20111.3Z%22%2F%3E%3Cpath%20d%3D%22M340.4%2093.7L340.0%2096.0L337.5%2096.4L335.9%2094.7L335.4%2092.3L337.4%2090.6L340.0%2091.3Z%22%2F%3E%3Cpath%20d%3D%22M358.0%20101.2L356.8%20102.6L355.3%20103.1L354.2%20102.0L354.1%20100.4L355.3%2099.2L356.6%20100.1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-pintura-FIN */
}
.textura--tazas{
  /* TEX-tazas-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22460%22%20height%3D%22120%22%20viewBox%3D%220%200%20460%20120%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%223%22%3E%3Ccircle%20cx%3D%22399.0%22%20cy%3D%2255.7%22%20r%3D%2227.2%22%2F%3E%3Ccircle%20cx%3D%22399.0%22%20cy%3D%2255.7%22%20r%3D%2219.6%22%2F%3E%3Ccircle%20cx%3D%22408.5%22%20cy%3D%2261.1%22%20r%3D%2223.9%22%2F%3E%3Ccircle%20cx%3D%22439.3%22%20cy%3D%2256.3%22%20r%3D%2219.2%22%2F%3E%3Ccircle%20cx%3D%22439.3%22%20cy%3D%2256.3%22%20r%3D%2213.8%22%2F%3E%3Ccircle%20cx%3D%22-20.7%22%20cy%3D%2256.3%22%20r%3D%2219.2%22%2F%3E%3Ccircle%20cx%3D%22-20.7%22%20cy%3D%2256.3%22%20r%3D%2213.8%22%2F%3E%3Ccircle%20cx%3D%22163.9%22%20cy%3D%2245.1%22%20r%3D%2228.5%22%2F%3E%3Ccircle%20cx%3D%22163.9%22%20cy%3D%2245.1%22%20r%3D%2220.5%22%2F%3E%3Ccircle%20cx%3D%22417.5%22%20cy%3D%2249.1%22%20r%3D%2225.1%22%2F%3E%3Ccircle%20cx%3D%22140.0%22%20cy%3D%2272.2%22%20r%3D%2220.3%22%2F%3E%3Ccircle%20cx%3D%22140.0%22%20cy%3D%2272.2%22%20r%3D%2214.6%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-tazas-FIN */
}
.textura--globos{
  /* TEX-globos-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22420%22%20height%3D%22120%22%20viewBox%3D%220%200%20420%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cg%20transform%3D%22rotate(-7.6%20105.3%2045.0)%22%3E%3Cellipse%20cx%3D%22105.3%22%20cy%3D%2245.0%22%20rx%3D%2216.9%22%20ry%3D%2220.7%22%2F%3E%3Cpath%20d%3D%22M102.3%2065.7L108.3%2065.7L105.3%2070.7Z%22%2F%3E%3Cpath%20d%3D%22M105.3%2070.7q9.1%2014.0%200%2042.4%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(-9.0%2040.9%2029.6)%22%3E%3Cellipse%20cx%3D%2240.9%22%20cy%3D%2229.6%22%20rx%3D%2217.0%22%20ry%3D%2220.8%22%2F%3E%3Cpath%20d%3D%22M37.9%2050.3L43.9%2050.3L40.9%2055.3Z%22%2F%3E%3Cpath%20d%3D%22M40.9%2055.3q6.2%2014.0%200%2043.5%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(-6.1%20290.3%2037.8)%22%3E%3Cellipse%20cx%3D%22290.3%22%20cy%3D%2237.8%22%20rx%3D%2216.0%22%20ry%3D%2219.5%22%2F%3E%3Cpath%20d%3D%22M287.3%2057.3L293.3%2057.3L290.3%2062.3Z%22%2F%3E%3Cpath%20d%3D%22M290.3%2062.3q10.2%2014.0%200%2041.5%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(5.5%20274.3%2028.4)%22%3E%3Cellipse%20cx%3D%22274.3%22%20cy%3D%2228.4%22%20rx%3D%2216.6%22%20ry%3D%2220.2%22%2F%3E%3Cpath%20d%3D%22M271.3%2048.6L277.3%2048.6L274.3%2053.6Z%22%2F%3E%3Cpath%20d%3D%22M274.3%2053.6q6.8%2014.0%200%2047.5%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(4.8%20232.6%2031.4)%22%3E%3Cellipse%20cx%3D%22232.6%22%20cy%3D%2231.4%22%20rx%3D%2212.6%22%20ry%3D%2215.3%22%2F%3E%3Cpath%20d%3D%22M229.6%2046.7L235.6%2046.7L232.6%2051.7Z%22%2F%3E%3Cpath%20d%3D%22M232.6%2051.7q10.5%2014.0%200%2037.1%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(-3.5%2085.5%2028.5)%22%3E%3Cellipse%20cx%3D%2285.5%22%20cy%3D%2228.5%22%20rx%3D%2213.8%22%20ry%3D%2216.8%22%2F%3E%3Cpath%20d%3D%22M82.5%2045.3L88.5%2045.3L85.5%2050.3Z%22%2F%3E%3Cpath%20d%3D%22M85.5%2050.3q9.7%2014.0%200%2030.1%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-globos-FIN */
}
.textura--equipo{
  /* TEX-equipo-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22480%22%20height%3D%22120%22%20viewBox%3D%220%200%20480%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cline%20x1%3D%22432.4%22%20y1%3D%2259.3%22%20x2%3D%22428.0%22%20y2%3D%2267.1%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22432.4%22%20y1%3D%2259.3%22%20x2%3D%22359.1%22%20y2%3D%2291.7%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22432.4%22%20y1%3D%2259.3%22%20x2%3D%22363.5%22%20y2%3D%2280.9%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22432.4%22%20y1%3D%2259.3%22%20x2%3D%22332.3%22%20y2%3D%2264.5%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22177.2%22%20y1%3D%2248.9%22%20x2%3D%2283.6%22%20y2%3D%2275.8%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22177.2%22%20y1%3D%2248.9%22%20x2%3D%22119.6%22%20y2%3D%2281.7%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22428.0%22%20y1%3D%2267.1%22%20x2%3D%22359.1%22%20y2%3D%2291.7%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22428.0%22%20y1%3D%2267.1%22%20x2%3D%22363.5%22%20y2%3D%2280.9%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22428.0%22%20y1%3D%2267.1%22%20x2%3D%22332.3%22%20y2%3D%2264.5%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22359.1%22%20y1%3D%2291.7%22%20x2%3D%22363.5%22%20y2%3D%2280.9%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22359.1%22%20y1%3D%2291.7%22%20x2%3D%22332.3%22%20y2%3D%2264.5%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%22363.5%22%20y1%3D%2280.9%22%20x2%3D%22332.3%22%20y2%3D%2264.5%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%2283.6%22%20y1%3D%2275.8%22%20x2%3D%2246.3%22%20y2%3D%2276.0%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%2283.6%22%20y1%3D%2275.8%22%20x2%3D%22119.6%22%20y2%3D%2281.7%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Cline%20x1%3D%2246.3%22%20y1%3D%2276.0%22%20x2%3D%22119.6%22%20y2%3D%2281.7%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%22432.4%22%20cy%3D%2259.3%22%20r%3D%226.4%22%2F%3E%3Ccircle%20cx%3D%22177.2%22%20cy%3D%2248.9%22%20r%3D%225.3%22%2F%3E%3Ccircle%20cx%3D%22428.0%22%20cy%3D%2267.1%22%20r%3D%225.6%22%2F%3E%3Ccircle%20cx%3D%22359.1%22%20cy%3D%2291.7%22%20r%3D%225.8%22%2F%3E%3Ccircle%20cx%3D%22363.5%22%20cy%3D%2280.9%22%20r%3D%227.8%22%2F%3E%3Ccircle%20cx%3D%2283.6%22%20cy%3D%2275.8%22%20r%3D%226.9%22%2F%3E%3Ccircle%20cx%3D%2246.3%22%20cy%3D%2276.0%22%20r%3D%225.5%22%2F%3E%3Ccircle%20cx%3D%22119.6%22%20cy%3D%2281.7%22%20r%3D%227.7%22%2F%3E%3Ccircle%20cx%3D%22332.3%22%20cy%3D%2264.5%22%20r%3D%226.6%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-equipo-FIN */
}
.textura--juegos{
  /* TEX-juegos-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22420%22%20height%3D%22120%22%20viewBox%3D%220%200%20420%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cg%20transform%3D%22translate(26.6%2052.9)%20scale(1.3)%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.6%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2214%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%224.5%22%2F%3E%3Cpath%20d%3D%22M-14%200h9.5M4.5%200h9.5M0%204.5v9.5%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(103.2%2055.2)%20scale(1.3)%22%3E%3Cpath%20d%3D%22M0.0%20-15.0L3.8%20-5.3L14.3%20-4.6L6.2%202.0L8.8%2012.1L0.0%206.5L-8.8%2012.1L-6.2%202.0L-14.3%20-4.6L-3.8%20-5.3Z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(182.0%2034.4)%20scale(1.1)%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.8%22%3E%3Cpath%20d%3D%22M-15%20-3q-4%20-10%205%20-10t7%208%22%2F%3E%3Cpath%20d%3D%22M15%20-3q4%20-10%20-5%20-10t-7%208%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%226%22%20r%3D%227%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(251.2%2048.6)%20scale(1.4)%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.6%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2214%22%2F%3E%3Cpath%20d%3D%22M0%20-8v8l7%204.5%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(322.3%2043.3)%20scale(1.3)%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.6%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2214%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%227%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221.6%22%20stroke%3D%22none%22%20fill%3D%22%23232327%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(380.5%2042.9)%20scale(1.2)%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.6%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%2214%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M0%20-14v-0M-14%200h28M0%20-14v28%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-juegos-FIN */
}
.textura--telemetria{
  /* TEX-telemetria-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22480%22%20height%3D%22120%22%20viewBox%3D%220%200%20480%20120%22%3E%3Cg%20fill%3D%22%23232327%22%3E%3Cline%20x1%3D%22115.2%22%20y1%3D%2226%22%20x2%3D%22115.2%22%20y2%3D%22104.0%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.4%22%20stroke-dasharray%3D%223%205%22%2F%3E%3Cline%20x1%3D%22264.0%22%20y1%3D%2226%22%20x2%3D%22264.0%22%20y2%3D%22104.0%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.4%22%20stroke-dasharray%3D%223%205%22%2F%3E%3Cline%20x1%3D%22388.8%22%20y1%3D%2226%22%20x2%3D%22388.8%22%20y2%3D%22104.0%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.4%22%20stroke-dasharray%3D%223%205%22%2F%3E%3Cline%20x1%3D%220%22%20y1%3D%22104.0%22%20x2%3D%22480%22%20y2%3D%22104.0%22%20stroke%3D%22%23232327%22%20stroke-width%3D%221.4%22%2F%3E%3Cpath%20d%3D%22M0.0%2060.9L8.0%2054.0L16.0%2053.4L24.0%2050.9L32.0%2054.4L40.0%2055.8L48.0%2057.3L56.0%2055.3L64.0%2056.9L72.0%2052.7L80.0%2051.0L88.0%2052.0L96.0%2051.7L104.0%2053.1L112.0%2055.4L120.0%2060.8L128.0%2066.7L136.0%2072.7L144.0%2079.0L152.0%2082.9L160.0%2085.3L168.0%2084.5L176.0%2080.1L184.0%2078.2L192.0%2074.7L200.0%2070.8L208.0%2071.5L216.0%2069.8L224.0%2069.2L232.0%2072.1L240.0%2069.8L248.0%2070.0L256.0%2063.5L264.0%2059.9L272.0%2055.3L280.0%2049.2L288.0%2043.8L296.0%2041.6L304.0%2045.2L312.0%2046.8L320.0%2052.6L328.0%2055.7L336.0%2061.4L344.0%2063.7L352.0%2067.5L360.0%2070.5L368.0%2068.8L376.0%2066.3L384.0%2069.2L392.0%2069.3L400.0%2070.7L408.0%2075.7L416.0%2081.9L424.0%2082.4L432.0%2086.7L440.0%2085.2L448.0%2084.4L456.0%2078.6L464.0%2072.7L472.0%2064.5L480.0%2058.3%22%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%222.4%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-telemetria-FIN */
}
.textura--deriva{
  /* TEX-deriva-INICIO */
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22440%22%20height%3D%22120%22%20viewBox%3D%220%200%20440%20120%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23232327%22%20stroke-width%3D%227%22%3E%3Cpath%20d%3D%22M201.8%2052.6A38.8%2038.8%200%200%201%20278.3%2045.7%22%2F%3E%3Cpath%20d%3D%22M110.4%2078.0A29.2%2029.2%200%200%201%20130.8%2024.9%22%2F%3E%3Cpath%20d%3D%22M354.6%2067.4A32.9%2032.9%200%200%201%20305.0%2097.0%22%2F%3E%3Cpath%20d%3D%22M314.5%2051.8A25.6%2025.6%200%200%201%20351.5%2057.1%22%2F%3E%3Cpath%20d%3D%22M88.3%2076.2A24.2%2024.2%200%200%201%2058.3%2056.2%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  /* TEX-deriva-FIN */
}

@media(min-width:820px){.pie{grid-template-columns:1.4fr 1fr 1fr}}
.pie a{color:var(--humo);text-decoration:none;transition:color var(--d-rapida);display:inline-block;padding:5px 0}
.pie a:hover{color:var(--amarillo)}
.pie ul{list-style:none;display:grid;gap:2px}

/* ------------------------------------------------------------ utilidades */
.saltar{position:absolute;left:-9999px;top:0;z-index:var(--z-modal);
  background:var(--amarillo);color:#000;padding:12px 18px;font-weight:900}
.saltar:focus{left:var(--borde-pagina);top:12px}
:focus-visible{outline:2px solid var(--amarillo);outline-offset:3px}
.solo-lectores{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* --------------------------------------------------------- accesibilidad */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .rv,.entra,.dato,.kicker span{opacity:1 !important;transform:none !important}
  h1 .ln i{transform:none !important}
  .hero-medio img,.hero-medio video{opacity:1;transform:none}
  .rejilla{opacity:.5}
  html{scroll-behavior:auto}
}

/* ------------------------------------------------------- sin JavaScript */
/* El titular, la bajada, la barra de datos y todas las secciones que
   aparecen al scrollear arrancan invisibles y las revela el JS. Si el JS
   no corre (bloqueado, error de red, navegador viejo), doce páginas del
   sitio quedaban prácticamente en blanco. Este bloque las devuelve a su
   estado final. Va en una sola clase que agrega un script mínimo en el
   head: si ese script no corre, la clase no está y todo se ve. */
html:not(.js) .entra,
html:not(.js) .rv,
html:not(.js) .dato,
html:not(.js) .kicker span{opacity:1;transform:none;animation:none;transition:none}
html:not(.js) h1 .ln i{transform:none}
html:not(.js) .kicker::before{width:44px}
html:not(.js) .hero-medio img{opacity:1;transform:none}


/* ------------------------------------------------------- hero con video
   Pedido del parque (2026-09-04): todas las páginas con un loop corto. El
   archivo ya viene en blanco y negro con las sombras tibias (videos.py),
   así que acá no hay filter: en un celular de gama media filtrar un video
   cuadro por cuadro se paga en batería y en cuadros perdidos.
   Mobile: el video vertical ocupa todo el hero. Desktop: es un panel a la
   derecha, como una cámara onboard; recortar un 9:16 para llenar un 16:9
   dejaría un tercio de la imagen y el resto adivinado. */
.hero-video .hero-medio video,
.hero-video .hero-medio .hv-poster{
  position:absolute;inset:0;width:100%;height:118%;object-fit:cover;object-position:50% 42%;
  filter:none;transform:none;opacity:1;animation:none}
.hero-video .hero-medio video{opacity:0;transition:opacity .7s var(--ease)}
.hero-video .hero-medio video.andando{opacity:1}
/* EL POSTER TAPABA AL VIDEO. Los dos son position:absolute con z-index:auto y el
   <img> va DESPUES del <video> en el DOM, asi que por orden de pintado el poster
   quedaba arriba. El video cargaba, decodificaba y reproducia perfecto, invisible
   debajo de una foto. Faltaba la regla que lo saca cuando el video empieza.
   Va por hermano general (~) porque el poster es hermano posterior del video.
   El video queda debajo y ya opaco, asi que el cruce no deja ver el fondo. */
.hero-video .hero-medio .hv-poster{transition:opacity .7s var(--ease)}
.hero-video .hero-medio video.andando ~ .hv-poster{opacity:0}
.hero-video .hero-medio::before{display:none}
.hero-video .hero-medio::after{
  background:linear-gradient(180deg,rgba(5,5,5,.78) 0%,rgba(5,5,5,.22) 30%,rgba(5,5,5,.58) 66%,var(--negro) 100%)}

/* el marco de "cámara": tres datos en mono, con el punto del loop */
.hv-marco{position:absolute;z-index:6;top:68px;right:var(--borde-pagina);display:flex;gap:12px;align-items:center;
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo);
  pointer-events:none;opacity:0}
/* WCAG 2.2.2: todo lo que se mueve solo más de 5 segundos se tiene que poder parar */
.hv-pausa{pointer-events:auto;background:rgba(13,13,13,.6);border:1px solid var(--linea-clara);color:var(--blanco);
  font:inherit;letter-spacing:inherit;text-transform:inherit;padding:6px 9px;min-height:28px;cursor:pointer;
  transition:border-color var(--d-rapida),color var(--d-rapida)}
.hv-pausa:hover,.hv-pausa:focus-visible{border-color:var(--amarillo);color:var(--amarillo)}
.cargado .hv-marco{animation:fundir .7s .9s ease forwards}
.hv-marco .rec{color:var(--humo);display:inline-flex;align-items:center;gap:6px}
.hv-marco .rec i{width:6px;height:6px;border-radius:50%;background:var(--humo);animation:latir 1.6s ease-in-out infinite}
.hv-marco{flex-wrap:nowrap;white-space:nowrap}
/* en celular el marco es una sola línea: sale la etiqueta de dónde se filmó,
   queda Cam 01, Loop y el botón de pausa */
/* Los items del marco no pueden encogerse: son texto de una sola linea al lado de un
   boton, y al achicarse el texto se metia por debajo del boton. Se veia como si Loop
   y Pausar video estuvieran uno encima del otro. */
.hv-marco>*{flex:0 0 auto}
/* El corte sube de 640 a 900: en una ventana angosta de escritorio o en una tablet
   las tres etiquetas mas el boton no entran, y ahi es donde chocaban. Cam 01 y Loop
   son decoracion; el control es obligatorio y se queda siempre. */
@media(max-width:899px){
  /* Ojo: .hv-marco .rec tiene display:inline-flex y le gana por especificidad a
     .hv-marco span, asi que hay que nombrarlo. Ese era el motivo por el que "Loop"
     seguia apareciendo pegado al boton aun con la regla de ocultar puesta. */
  .hv-marco span,.hv-marco .rec{display:none}
  .hv-marco{gap:0}
}
@media(max-width:639px){
  /* Pegado debajo del header formaba una segunda barra y le comia aire al titular. */
  .hv-marco{top:var(--e-9)}
  .hv-pausa{font-size:10px;padding:5px 8px;min-height:26px;background:rgba(13,13,13,.42)}
}

@media(min-width:960px){
  .hero-video .reserva-rapida{grid-template-columns:1.35fr 1fr auto}
  .hero-video .hero-medio{left:auto;width:44%;border-left:1px solid var(--linea)}
  .hero-video .hero-medio video,.hero-video .hero-medio .hv-poster{object-position:50% 50%}
  .hero-video .hero-medio::after{
    background:linear-gradient(90deg,var(--negro) 0%,rgba(5,5,5,.55) 12%,transparent 42%),
               linear-gradient(180deg,rgba(5,5,5,.6) 0%,transparent 26%,transparent 58%,var(--negro) 100%)}
  .hero-video .hero-cont{width:56%;max-width:none;margin:0;padding-right:var(--e-6)}
  .hero-video h1{font-size:clamp(52px,7.4vw,150px)}
  .hero-video.hero-interior h1{font-size:clamp(40px,6.2vw,96px)}
  .hero-video .rejilla{left:56%;mask-image:linear-gradient(180deg,#000 40%,transparent)}
  .hv-marco{top:auto;bottom:var(--e-6);right:var(--e-6)}
  .hero-video .datos{grid-template-columns:repeat(4,1fr)}
  .hero-video .reserva-rapida{max-width:none}
}

/* --------------------------------------------- juegos indoor y pasos */
.juegos{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:var(--e-6)}
@media(min-width:760px){.juegos{grid-template-columns:repeat(2,1fr)}}
.juego{background:var(--negro);padding:var(--e-6) var(--e-5);scroll-margin-top:90px}
.juego .idx{font-family:var(--mono);font-size:var(--t-micro);color:var(--humo-tenue);letter-spacing:var(--tr-ancho)}
.juego h3{margin-top:var(--e-3)}
.juego .txt{margin-top:var(--e-4);color:var(--texto);font-size:16px}
.mini-ficha{margin-top:var(--e-5);display:grid;gap:8px}
.mini-ficha div{display:flex;justify-content:space-between;gap:var(--e-4);border-top:1px solid var(--linea);padding-top:8px}
.mini-ficha dt{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo);padding-top:3px}
.mini-ficha dd{font-weight:700;color:var(--blanco);font-size:16px;text-align:right}

/* El loop de una tarjeta de juego (2026-09-15, material del interior). Va
   pegado a los bordes de la tarjeta, apaisado, con el mismo tratamiento
   cocinado que el hero. El poster tapa al video hasta que arranca (misma
   regla de hermano que en el hero) y se queda si hay menos movimiento o
   ahorro de datos. El botón de pausa cumple 2.2.2 como en el hero. */
.juego.con-medio{padding-top:0}
.loop-medio{position:relative;margin:0 calc(-1 * var(--e-5)) var(--e-5);aspect-ratio:16/9;overflow:hidden;
  background:var(--carbon);border-bottom:1px solid var(--linea)}
.loop-medio video,.loop-medio .loop-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.loop-medio video{opacity:0;transition:opacity .7s var(--ease)}
.loop-medio video.andando{opacity:1}
.loop-medio .loop-poster{transition:opacity .7s var(--ease)}
.loop-medio video.andando ~ .loop-poster{opacity:0}
.loop-pausa{position:absolute;z-index:2;right:10px;bottom:10px;background:rgba(13,13,13,.6);border:1px solid var(--linea-clara);
  color:var(--blanco);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  padding:5px 8px;min-height:26px;cursor:pointer;transition:border-color var(--d-rapida),color var(--d-rapida)}
.loop-pausa:hover,.loop-pausa:focus-visible{border-color:var(--amarillo);color:var(--amarillo)}
html:not(.js) .loop-medio video,html:not(.js) .loop-pausa{display:none}

/* La carta de la cafetería: cuatro grupos en columnas, items sin precio.
   Misma línea y misma etiqueta mono que la mini ficha, para que se lea
   como dato del tablero y no como menú de restaurante. */
.carta{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:var(--e-6)}
@media(min-width:560px){.carta{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.carta{grid-template-columns:repeat(4,1fr)}}
.carta-grupo{background:var(--negro);padding:var(--e-5)}
.carta-grupo h3{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo);font-weight:600;line-height:1.2}
.carta-grupo ul{list-style:none;margin-top:var(--e-4);padding:0}
.carta-grupo li{color:var(--blanco);font-weight:700;font-size:16px;padding:8px 0;border-top:1px solid var(--linea)}
.carta-nota{margin-top:var(--e-4);color:var(--humo);font-size:14px;max-width:60ch}

.pasos-lista{list-style:none;margin-top:var(--e-6);border-top:1px solid var(--linea)}
.pasos-lista li{display:grid;grid-template-columns:52px 1fr;gap:var(--e-4);padding:22px 4px;border-bottom:1px solid var(--linea)}
.pasos-lista .n{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);color:var(--humo-tenue);padding-top:6px}
.pasos-lista b{display:block;color:var(--blanco);font-size:var(--t-h3);text-transform:uppercase;font-weight:700;line-height:1}
.pasos-lista p{margin-top:8px;color:var(--texto);max-width:60ch}

/* Con menos movimiento el poster se queda, pero el video NO puede estar
   display:none: hay un boton que lo ofrece, y si el elemento no existe la persona
   lo toca, el boton pasa a "Pausar video" y no se ve nada nunca. Quien decide es
   la clase .andando, que el JS solo agrega cuando la reproduccion arranca de
   verdad, o sea recien cuando la persona la pidio. */
@media (prefers-reduced-motion: reduce){
  .hv-marco{opacity:1}
  .hv-marco .rec i{animation:none}
}
html:not(.js) .hero-video .hero-medio video{display:none}
html:not(.js) .hv-marco{opacity:1}

/* ------------------------------------------------------------- galería
   Fotos reales del parque, sin caras (regla de Juan, 2026-09-04). En
   celular es una tira que se arrastra; en escritorio, una grilla. Van en
   blanco y negro como el resto del sistema y recuperan el color al pasar el
   mouse: el color es la recompensa, no el estado de reposo. */
.galeria{display:grid;grid-auto-flow:column;grid-auto-columns:70%;gap:var(--e-3);overflow-x:auto;
  scroll-snap-type:x mandatory;margin-top:var(--e-6);padding-bottom:var(--e-3);scrollbar-width:none;
  -webkit-overflow-scrolling:touch}
.galeria::-webkit-scrollbar{display:none}
.galeria figure{margin:0;scroll-snap-align:start;aspect-ratio:3/4;overflow:hidden;position:relative;
  background:var(--carbon);border:1px solid var(--linea)}
.galeria img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.12) brightness(.82);transition:filter .5s var(--ease),transform .9s var(--ease)}
.galeria figcaption{position:absolute;inset:auto auto 10px 12px;font-family:var(--mono);font-size:10px;
  letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo);font-weight:600}
@media (hover:hover) and (pointer:fine){
  .galeria figure:hover img{filter:none;transform:scale(1.03)}
}
@media(min-width:760px){
  .galeria{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible;grid-auto-columns:auto}
  .galeria.dos{grid-template-columns:repeat(2,1fr);max-width:760px}
  .galeria.cuatro{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1100px){.galeria.seis{grid-template-columns:repeat(6,1fr)}.galeria.cuatro{grid-template-columns:repeat(4,1fr)}}

/* ------------------------------------------------- armador de presupuesto
   Cumpleaños y eventos: casilleros por servicio, mayores y menores,
   observaciones. Markup en _build/bloque-presupuesto.mjs. */
.armador-grid{display:grid;gap:var(--e-6)}
.armador-intro .lead{margin-top:var(--e-4)}
.resumen-vivo{margin-top:var(--e-5);padding:var(--e-4) var(--e-5);border-left:3px solid var(--linea-clara);
  background:var(--carbon);color:var(--blanco);font-size:16px;line-height:1.5}
.armador .formulario{display:grid;gap:var(--e-5)}
.grupo-campos{border:0;padding:0;margin:0;min-width:0;display:grid;gap:var(--e-3)}
.grupo-campos legend{font-family:var(--display);text-transform:uppercase;color:var(--blanco);
  font-size:var(--t-h4);line-height:1;padding:0;margin-bottom:var(--e-3)}
.armador .par{display:grid;gap:var(--e-3)}
.armador .entrada input[type="number"],.armador .entrada input[type="date"],.armador .entrada textarea{
  background:var(--carbon);border:1px solid var(--linea);padding:13px 14px;
  color:var(--blanco);width:100%;font:inherit;font-size:18px;transition:border-color var(--d-rapida)}
.armador .entrada input[type="date"]{color-scheme:dark;min-height:52px}
.armador .entrada textarea{resize:vertical;min-height:110px;line-height:1.5}
.armador .entrada textarea:focus,.armador .entrada input:focus{border-color:var(--amarillo);outline:none}
.armador .entrada label em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--humo-tenue)}
.casillas{display:grid;gap:var(--e-3)}
.casilla{display:flex;gap:var(--e-3);align-items:flex-start;cursor:pointer;background:var(--carbon);
  border:1px solid var(--linea);padding:var(--e-4);transition:border-color var(--d-rapida),background var(--d-rapida)}
.casilla:hover{border-color:var(--linea-clara)}
.casilla:has(input:checked){border-color:var(--amarillo);background:var(--amarillo-08)}
.casilla:has(input:focus-visible){outline:2px solid var(--amarillo);outline-offset:2px}
.casilla input{width:20px;height:20px;accent-color:var(--amarillo);margin-top:3px;flex:0 0 auto}
.casilla .t{display:block;font-family:var(--display);text-transform:uppercase;font-size:20px;line-height:1;color:var(--blanco)}
.casilla .s{display:block;color:var(--humo);font-size:14px;line-height:1.45;margin-top:5px}
.armador .enviado{display:none;border:1px solid var(--linea);padding:var(--e-6);background:var(--carbon)}
.armador .enviado.visible{display:block}
.armador .enviado h3{font-size:var(--t-h3)}
.armador .enviado p{margin-top:var(--e-3);color:var(--texto)}
@media (min-width:560px){
  .casillas{grid-template-columns:1fr 1fr}
  .armador .par{grid-template-columns:1fr 1fr;gap:var(--e-4)}
}
@media (min-width:960px){
  .armador-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--e-8);align-items:start}
  .armador-intro{position:sticky;top:110px}
}

/* ------------------------------------------------- cupones del panel (precios)
   js/precios.js pisa cada [data-precio] con el precio de hoy: lista tachada,
   precio con cupón y etiqueta. 10% amarillo, 20% verde. */
.antes{color:var(--humo);font-size:.6em;text-decoration:line-through;margin-right:.2em;font-weight:400}
.off{display:inline-block;vertical-align:middle;font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;font-weight:600;padding:3px 7px;margin-left:.35em;line-height:1;color:#000}
.off-10{background:var(--amarillo)}
.off-20{background:var(--verde)}

/* ------------------------------------------------------- páginas legales */
.legal-grid{display:grid;gap:var(--e-7);align-items:start}
@media(min-width:960px){.legal-grid{grid-template-columns:260px minmax(0,1fr)}.legal-indice{position:sticky;top:96px}}
.legal-indice ol{list-style:none;margin-top:var(--e-3);border-left:1px solid var(--linea)}
.legal-indice li a{display:block;padding:7px 14px;color:var(--humo);text-decoration:none;font-size:14px;line-height:1.35;
  border-left:2px solid transparent;margin-left:-1px;transition:color var(--d-rapida),border-color var(--d-rapida)}
.legal-indice li a:hover{color:var(--blanco);border-left-color:var(--amarillo)}
.legal-cuerpo{max-width:72ch}
.legal-cuerpo section{padding:var(--e-5) 0;border-top:1px solid var(--linea)}
.legal-cuerpo section:first-child{border-top:0;padding-top:0}
.legal-cuerpo h2{font-size:clamp(24px,3vw,32px);margin-bottom:var(--e-4);scroll-margin-top:90px}
.legal-cuerpo p{font-size:var(--t-cuerpo);line-height:1.65;color:var(--texto);max-width:none;margin-bottom:var(--e-3)}
.legal-cuerpo ul{padding-left:20px;margin-bottom:var(--e-3)}
.legal-cuerpo li{font-size:16px;line-height:1.6;color:var(--texto);margin-bottom:10px}
.legal-cuerpo li::marker{color:var(--humo-tenue)}
.legal-cuerpo b{color:var(--blanco);font-weight:600}
.legal-cuerpo a{color:var(--blanco);text-decoration:underline;text-decoration-color:var(--amarillo);text-underline-offset:3px}
.legal-cuerpo a:hover{color:var(--amarillo)}
.legal-cuerpo code{font-family:var(--mono);font-size:14px;background:var(--carbon);padding:1px 6px;color:var(--blanco)}
.legal-cuerpo .pendiente{display:inline;white-space:normal;line-height:1.5}
.legal-contacto{margin-top:var(--e-6);padding-top:var(--e-5);border-top:1px solid var(--linea);color:var(--humo)}

/* nota de aceptación en los formularios */
.nota-legal{font-size:14px;line-height:1.55;color:var(--humo);margin-top:var(--e-4);max-width:none}
.nota-legal a{color:var(--blanco);text-decoration:underline;text-decoration-color:var(--amarillo);text-underline-offset:3px}

/* pie: quinta columna legal, y el enlace que reabre el aviso */
@media(min-width:1100px){.pie{grid-template-columns:1.6fr 1fr 1fr 1fr}}

/* -------------------------------------------------------- aviso de cookies */
.banner-cookies{position:fixed;z-index:80;left:var(--borde-pagina);right:var(--borde-pagina);bottom:16px;margin:0 auto;max-width:640px;
  background:var(--negro);border:1px solid var(--linea-clara);border-top:3px solid var(--linea-clara);padding:var(--e-5);
  box-shadow:0 20px 60px rgba(0,0,0,.6);opacity:0;transform:translateY(16px);transition:opacity .25s ease,transform .25s ease}
.banner-cookies.visible{opacity:1;transform:none}
.banner-cookies .bc-titulo{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo)}
.banner-cookies .bc-texto{margin-top:8px;font-size:15px;line-height:1.55;color:var(--texto);max-width:none}
.banner-cookies .bc-texto a{color:var(--blanco);text-decoration:underline;text-underline-offset:3px}
.banner-cookies .bc-acciones{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--e-4)}
@media(prefers-reduced-motion:reduce){.banner-cookies{transition:none}}

/* -------------------------------------------------------- gift card ----
   La tarjeta que aparece al consultar un código. Lo único que se lee de
   lejos es el saldo: es el dato por el que la persona entró. */
.consulta-gift{max-width:420px}
.consulta-gift #codigoGift{font-family:var(--mono);font-size:20px;letter-spacing:var(--tr-medio);text-transform:uppercase}
.tarjeta-gift{margin-top:var(--e-5);border:1px solid var(--linea);background:var(--carbon);padding:var(--e-6);
  display:grid;gap:var(--e-3);max-width:520px}
.tarjeta-gift.ok{border-color:var(--amarillo)}
.tg-estado{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo)}
.tarjeta-gift.ok .tg-estado{color:var(--amarillo)}
.tg-codigo{font-family:var(--mono);font-size:18px;letter-spacing:var(--tr-medio);color:var(--blanco)}
.tg-saldo{font-family:var(--display);text-transform:uppercase;font-size:clamp(34px,7vw,52px);line-height:1;color:var(--blanco)}
.tarjeta-gift.gris .tg-saldo{color:var(--humo)}
.tg-datos{display:grid;gap:var(--e-2);margin-top:var(--e-2)}
.tg-datos>div{display:flex;justify-content:space-between;gap:var(--e-4);border-bottom:1px solid var(--linea);padding-bottom:6px}
.tg-datos dt{color:var(--humo);font-size:14px}
.tg-datos dd{color:var(--blanco);font-size:14px;text-align:right}
.tg-mensaje{border-left:3px solid var(--linea-clara);padding-left:var(--e-4);color:var(--texto);font-style:italic;line-height:1.5}
.tg-pie{font-size:14px;color:var(--humo);line-height:1.5}
.referencia-gift{margin-top:var(--e-3);font-family:var(--mono);font-size:15px;color:var(--blanco);
  border:1px dashed var(--linea-clara);padding:var(--e-3) var(--e-4);display:inline-block}

/* ------------------------------------------------------- hero corto ----
   Para las páginas que no son una portada: el comprobante, el formulario de
   reserva, el 404 y las cuatro legales. El video da la bienvenida pero no
   puede empujar el contenido fuera de la pantalla; en celular ocupa poco más
   de un tercio del alto, así lo primero que importa entra en el primer
   vistazo. */
.hero-corto{min-height:38svh}
@media(min-width:700px){.hero-corto{min-height:46svh}}
@media(min-width:960px){.hero-corto{min-height:52svh}}
.hero-corto h1{font-size:clamp(34px,7vw,64px);line-height:.96}
.hero-corto .lead{max-width:46ch}
.hero-corto .hero-medio img,.hero-corto .hero-medio video{object-position:50% 55%}


/* ------------------------------------------------------ WhatsApp flotante --
   Decision de Juan (2026-09-10): el correo sale de la vista del sitio y WhatsApp
   queda como el canal de contacto. El verde de marca de WhatsApp es el unico
   color ajeno a la paleta que se justifica en el sitio: lo que comunica el boton
   es "esto abre WhatsApp", y eso se reconoce por el color antes que por el icono.

   z-index 70: arriba de todo el contenido y por debajo del aviso de cookies (80),
   que ademas lo empuja para arriba mientras esta visible para no pisarse. */
.wa-flotante{position:fixed;right:clamp(14px,3vw,26px);bottom:clamp(14px,3vw,26px);z-index:70;
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:#25D366;color:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.08);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),bottom .25s var(--ease)}
.wa-flotante svg{width:30px;height:30px;display:block}
@media(hover:hover){
  .wa-flotante:hover{transform:translateY(-2px) scale(1.04);
    box-shadow:0 10px 26px rgba(37,211,102,.38),0 0 0 1px rgba(255,255,255,.14)}
}
.wa-flotante:focus-visible{outline:2px solid var(--amarillo);outline-offset:3px}

/* Mientras el aviso de cookies esta a la vista, el boton se corre arriba. En
   mobile el aviso ocupa el ancho completo y es mas alto, asi que se corre mas. */
@media(max-width:759px){
  .wa-flotante{width:52px;height:52px}
  .wa-flotante svg{width:27px;height:27px}
}

@media(prefers-reduced-motion:reduce){
  .wa-flotante,.wa-flotante:hover{transition:none;transform:none}
}

/* Campo trampa de los formularios (anti-bots): fuera de la vista y del foco,
   sin display:none para que un bot que rellena todo lo complete igual. */
.campo-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* QR del comprobante (migración 40) */
.comprobante .qr{width:136px;margin:14px auto 0;padding:8px;background:#fff;border-radius:8px}
.comprobante .qr:empty{display:none}
.comprobante .qr svg{display:block;width:100%;height:auto}
.comprobante .qr-ayuda{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--humo);margin:10px 0 0;text-align:center}

/* ------------------------------------------------------ landing de precios
   /precios (2026-09-16). La pagina que el parque manda por WhatsApp cuando
   preguntan "cuanto sale": todos los precios en una sola vista, leidos en
   vivo de la base por js/precios.js. No esta en el menu a proposito.

   Cada familia de precios es una seccion con el mismo esqueleto: el loop
   de esa atraccion a un lado (fijo mientras se lee, en escritorio) y la
   lista de precios al otro; las secciones alternan el lado del video para
   que la pagina no sea una escalera. Los precios van como filas y no como
   grilla de tarjetas: una lista se recorre con el pulgar, y una fila que el
   panel apaga desaparece sin dejar un hueco en una grilla. Markup en
   _build/pagina-precios.mjs. */

.hero-acciones{display:flex;flex-wrap:wrap;gap:10px}

/* --- indice pegajoso, justo debajo del header fijo. El header solido mide lo
   que mide su item mas alto: el boton Reservar en escritorio (64 px) y la
   hamburguesa de 44 px por debajo de 760 (67 px). Medido, no supuesto; si un
   dia cambia el header, cambia esto. --- */
.indice{position:sticky;top:64px;z-index:var(--z-mini);background:rgba(13,13,13,.9);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.indice-tira{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  padding:0 var(--borde-pagina);max-width:var(--ancho-max);margin-inline:auto}
.indice-tira::-webkit-scrollbar{display:none}
@media(max-width:759px){.indice{top:66px}}
/* 44 px de alto: objetivo tactil comodo en un celular */
.indice-tira a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:var(--tr-medio);text-transform:uppercase;
  color:var(--humo);text-decoration:none;position:relative;white-space:nowrap;transition:color var(--d-rapida)}
.indice-tira a::after{content:"";position:absolute;inset:auto 14px 0 14px;height:2px;background:var(--amarillo);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .3s var(--ease)}
.indice-tira a:hover,.indice-tira a:focus-visible,.indice-tira a.activo{color:var(--blanco)}
.indice-tira a.activo::after{transform:scaleX(1)}
.indice-tira a:first-child{padding-left:0}
.indice-tira a:first-child::after{left:0}
/* aparece solo cuando precios.js confirmo que leyo la base */
.en-vivo{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding-left:18px;margin-left:auto;
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo);white-space:nowrap}

/* --- promociones vivas: la llena precios.js si el panel tiene un cupon prendido --- */
.promos-vivas{border-bottom:1px solid var(--linea);background:var(--amarillo-08)}
.promos-vivas .contenedor{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e-3) var(--e-5);
  padding:12px var(--borde-pagina)}
.promos-vivas .micro{color:var(--amarillo)}
.promos-vivas ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.promos-vivas a{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;
  font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:var(--tr-medio);text-transform:uppercase;
  color:var(--blanco);text-decoration:none;border:1px solid var(--amarillo-55);
  transition:border-color var(--d-rapida),color var(--d-rapida)}
.promos-vivas a b{color:var(--amarillo);margin-left:6px}
.promos-vivas a:hover,.promos-vivas a:focus-visible{border-color:var(--amarillo);color:var(--amarillo)}

/* --- el esqueleto de seccion --- */
.tarifario{padding-top:0;scroll-margin-top:120px}
.tarifario.primera{padding-top:var(--e-8)}
#condiciones,#preguntas{scroll-margin-top:120px}
.tarifario-grid{display:grid;gap:var(--e-6)}
.tarifario-cuerpo,.tarifario-medio{min-width:0}
.tarifario-nota{margin-top:var(--e-5);color:var(--humo);font-size:14px;max-width:60ch;line-height:1.55}
.tarifario-nota a{color:var(--blanco);text-decoration:underline;text-decoration-color:var(--amarillo);text-underline-offset:3px}
.tarifario-nota a:hover{color:var(--amarillo)}
.acciones-grupo{margin-top:var(--e-5);display:flex;flex-wrap:wrap;gap:10px}

/* El loop de seccion: el mismo clip del hero de esa atraccion, en vertical.
   En celular se recorta a 4:3 (el sujeto esta al centro en todos los clips)
   para que no se coma la pantalla entera antes de llegar al precio. */
.loop-medio.vertical{margin:0;aspect-ratio:4/3;border:1px solid var(--linea);background:var(--carbon)}
.loop-medio.vertical video,.loop-medio.vertical .loop-poster{object-position:50% 45%}
.loop-cam{position:absolute;z-index:2;left:12px;bottom:10px;display:flex;gap:12px;align-items:center;
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--texto);text-shadow:0 1px 8px rgba(0,0,0,.85);pointer-events:none}
.loop-cam .rec{display:inline-flex;align-items:center;gap:6px}
.loop-cam .rec i{width:6px;height:6px;border-radius:50%;background:var(--texto);animation:latir 1.6s ease-in-out infinite}

@media(min-width:1000px){
  .tarifario-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--e-8);align-items:start}
  .tarifario-medio{position:sticky;top:128px}
  /* invertido: el video pasa a la derecha. El orden solo cambia de lugar a
     los hijos, no a las columnas, asi que las columnas tambien se invierten;
     si no, el texto queda apretado en la angosta y el video flota en la ancha. */
  .tarifario.invertido .tarifario-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
  .tarifario.invertido .tarifario-medio{order:2}
  .loop-medio.vertical{aspect-ratio:3/4;max-height:calc(100vh - 160px)}
}

/* --- filas de precio --- */
.tarifas{margin-top:var(--e-6);border-top:1px solid var(--linea)}
.tarifa{display:grid;gap:var(--e-4);padding:var(--e-5) 0;border-bottom:1px solid var(--linea);position:relative;
  transition:background var(--d-media)}
.tarifa-info{min-width:0}
.tarifa-info .etiqueta{margin-bottom:var(--e-3)}
.tarifa .nom{font-family:var(--cond);font-weight:900;text-transform:uppercase;font-size:26px;color:var(--blanco);
  letter-spacing:var(--tr-titulo);line-height:1}
.tarifa .nom a{text-decoration:none;transition:color var(--d-rapida)}
.tarifa .nom a:hover,.tarifa .nom a:focus-visible{color:var(--amarillo)}
.tarifa .desc{color:var(--texto);font-size:15px;line-height:1.5;max-width:54ch;margin-top:var(--e-3)}
.tarifa .vueltas + .vueltas-pie + .desc{margin-top:0}
.tarifa .meta{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);margin-top:var(--e-3);line-height:1.6}
.tarifa .meta s{text-decoration:line-through;color:var(--humo)}
.tarifa .val{font-family:var(--cuerpo);font-size:32px;font-weight:600;color:var(--blanco);line-height:1;
  font-variant-numeric:tabular-nums}
.tarifa .por{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);margin-top:6px}
.tarifa .cta{margin-top:var(--e-4)}
.tarifa-precio{display:flex;flex-direction:column;align-items:flex-start}
/* La fila destacada se lee como la que el parque quiere vender: fondo un
   paso mas claro y el filete amarillo, igual que la tarjeta destacada de
   /karting. Sale de la columna para que el fondo llegue al borde. */
.tarifa.destacada{background:var(--carbon);margin-inline:calc(-1 * var(--e-4));padding-inline:var(--e-4);
  outline:1px solid var(--amarillo-55);outline-offset:-1px}
.tarifa.destacada .fase.corre i{background:var(--blanco)}
@media(min-width:640px){
  .tarifa{grid-template-columns:minmax(0,1fr) auto;column-gap:var(--e-6)}
  .tarifa-precio{align-items:flex-end;text-align:right;min-width:150px}
  .tarifa-precio .btn{white-space:nowrap}
}

/* Fila compacta (juegos): miniatura, nombre y dato, precio a la derecha. */
.tarifa.compacta{grid-template-columns:72px minmax(0,1fr) auto;align-items:center;column-gap:var(--e-4);
  padding:var(--e-4) 0}
.tarifa.compacta .nom{font-size:20px}
.tarifa.compacta .meta{margin-top:4px}
.tarifa.compacta .val{font-size:22px}
.tarifa-mini{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--carbon);border:1px solid var(--linea);
  align-self:center}
.tarifa-mini img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.12) brightness(.82);transition:filter .5s var(--ease)}
.tarifa.compacta:hover .tarifa-mini img{filter:none}
.tarifa-mini.vacia{display:grid;place-items:center;font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo-tenue);
  background:repeating-linear-gradient(45deg,#141416 0 8px,#0F0F10 8px 16px)}
/* La fila del combo cierra la lista: es la cuenta final, con su boton */
.tarifa.compacta.total{grid-template-columns:72px minmax(0,1fr);row-gap:var(--e-3);
  background:var(--carbon);margin-inline:calc(-1 * var(--e-4));padding:var(--e-5) var(--e-4);
  outline:1px solid var(--amarillo-55);outline-offset:-1px}
.tarifa.compacta.total .tarifa-precio{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;
  gap:var(--e-4);flex-wrap:wrap}
.tarifa.compacta.total .val{font-size:30px}
.tarifa.compacta.total .cta{margin-top:0}
@media(min-width:640px){
  .tarifa.compacta{grid-template-columns:112px minmax(0,1fr) auto}
  .tarifa.compacta .val{font-size:26px}
  .tarifa.compacta.total{grid-template-columns:112px minmax(0,1fr) auto}
  .tarifa.compacta.total .tarifa-precio{grid-column:auto;flex-direction:column;align-items:flex-end}
  .tarifa.compacta.total .cta{margin-top:var(--e-3)}
}

/* --- los pases: foto, que incluye, cuanto ahorra --- */
.promos{display:grid;gap:1px;margin-top:var(--e-6);background:var(--linea);border:1px solid var(--linea)}
.promo{display:grid;background:var(--negro);transition:background var(--d-media)}
.promo:hover{background:var(--carbon)}
.promo.destacada{outline:1px solid var(--amarillo-55);outline-offset:-1px}
.promo-foto{margin:0;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--carbon)}
.promo-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block;
  filter:grayscale(1) contrast(1.12) brightness(.82);transition:filter .5s var(--ease),transform .9s var(--ease)}
.promo-foto figcaption{position:absolute;inset:auto auto 10px 12px;font-family:var(--mono);font-size:10px;
  letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--texto);font-weight:600;
  text-shadow:0 1px 8px rgba(0,0,0,.85)}
@media (hover:hover) and (pointer:fine){
  .promo:hover .promo-foto img{filter:none;transform:scale(1.03)}
}
.promo-info{padding:var(--e-5);display:flex;flex-direction:column;align-items:flex-start}
.promo .nom{font-family:var(--cond);font-weight:900;text-transform:uppercase;font-size:28px;color:var(--blanco);
  letter-spacing:var(--tr-titulo);line-height:1}
.promo .val{font-family:var(--cuerpo);font-size:40px;font-weight:600;color:var(--blanco);line-height:1;
  margin-top:var(--e-3);font-variant-numeric:tabular-nums}
.promo .por{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);margin-top:6px}
.incluye{list-style:none;margin-top:var(--e-4);padding:0;display:grid;gap:6px;color:var(--texto);font-size:15px}
.incluye li{padding-left:18px;position:relative}
/* la marca es un guion corto de la misma altura que la tira de vueltas: dato, no vineta */
.incluye li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:2px;background:var(--humo)}
.incluye b{color:var(--blanco);font-weight:600}
.ahorro{margin-top:var(--e-4);font-family:var(--mono);font-size:11px;letter-spacing:var(--tr-medio);text-transform:uppercase;
  color:var(--humo);line-height:1.8;max-width:none}
.ahorro s{color:var(--humo);text-decoration:line-through;margin-right:10px}
.ahorro .k{margin-right:6px}
.ahorro b{color:var(--amarillo);font-weight:700}
.promo .cta{margin-top:var(--e-5)}
@media(min-width:640px){
  .promo{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
  .promo-foto{aspect-ratio:auto;height:100%;min-height:320px}
  .promo-info{padding:var(--e-6) var(--e-6) var(--e-6) var(--e-5)}
}

/* --- grupos y gift card: datos en la mini ficha, sin precio --- */
.grupos-cols{display:grid;gap:var(--e-6);margin-top:var(--e-6)}
.grupos-col h3{font-size:22px}
.grupos-col .mini-ficha{margin-top:var(--e-4)}
.grupos-col .mini-ficha div{display:grid;grid-template-columns:96px 1fr;gap:var(--e-4)}
.grupos-col .mini-ficha dd{text-align:left;font-weight:500;color:var(--texto);max-width:34ch}
@media(min-width:640px){.grupos-cols{grid-template-columns:1fr 1fr}}
.gift-datos{margin-top:var(--e-6);max-width:520px}
.gift-datos dd{font-weight:600}

/* --- condiciones: diez datos cortos en una grilla de tablero --- */
.condiciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--linea);
  border:1px solid var(--linea);margin-top:var(--e-6)}
.condicion{background:var(--negro);padding:var(--e-4) var(--e-4) var(--e-5);transition:background var(--d-media)}
.condicion:hover{background:var(--carbon)}
.condicion dt{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo)}
.condicion dd{margin-top:8px;color:var(--blanco);font-weight:600;font-size:15px;line-height:1.4}
@media(min-width:1000px){.condiciones{grid-template-columns:repeat(5,minmax(0,1fr))}}

@media(prefers-reduced-motion:reduce){
  .loop-cam .rec i,.en-vivo .pulso{animation:none}
  .promo-foto img,.tarifa-mini img{transition:none}
}

/* ===================================== RÉCORD DE LA PISTA (migración 45)
   Quién tiene el récord y con qué tiempo. Pedido del parque para que la
   gente compita. Vive en dos lugares y nunca en los dos a la vez:

     .en-header  a la derecha del logo, en todas las páginas, de 760 px
                 para arriba. Es un link al top 10 de /karting.
     .en-cuerpo  en la portada, al pie de las tres carreras, solo en
                 celular: en un header de 390 px no entra sin comerse el
                 botón de reservar, que es lo que da plata.

   El tiempo va en mono con milésimas, como los cronómetros de carrera. */
.record-pista{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}
.record-pista .copa{width:16px;height:16px;flex:none;fill:none;stroke:var(--amarillo);
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.record-pista .et{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo);white-space:nowrap}
.record-pista .nom{font-size:14px;font-weight:700;color:var(--blanco);white-space:nowrap;
  max-width:14ch;overflow:hidden;text-overflow:ellipsis}
.record-pista .val{font-family:var(--mono);font-size:14px;font-weight:600;letter-spacing:.02em;
  color:var(--amarillo);font-variant-numeric:tabular-nums;white-space:nowrap}

/* En el header: pegado al logo, sin robarle lugar al menú ni al CTA. */
.header .record-pista{flex:0 1 auto;min-width:0;padding:6px 12px;border:1px solid var(--linea);
  border-radius:999px;transition:border-color var(--d-rapida) var(--ease)}
.header .record-pista:hover{border-color:var(--amarillo)}

/* En la sección de /karting: la misma píldora grande, pero visible en
   todos los tamaños. Ahí el récord es el titular del bloque, no un
   recordatorio al pasar. */
.record-pista.en-seccion{margin:var(--e-4) 0 var(--e-5);padding:14px 18px;border:1px solid var(--amarillo);
  border-radius:999px;width:fit-content;max-width:100%;flex-wrap:wrap;gap:10px}
.record-pista.en-seccion .copa{width:20px;height:20px}
.record-pista.en-seccion .nom{font-size:17px;max-width:none}
.record-pista.en-seccion .val{font-size:17px}

/* En el cuerpo: la píldora más grande, con su propio aire. */
.record-pista.en-cuerpo{margin:var(--e-5) 0 0;padding:12px 16px;border:1px solid var(--linea);
  border-radius:999px;width:fit-content;max-width:100%;background:rgba(255,255,255,.02);
  flex-wrap:wrap;gap:10px}
.record-pista.en-cuerpo .copa{width:18px;height:18px}
.record-pista.en-cuerpo .nom,.record-pista.en-cuerpo .val{font-size:15px}
.record-pista.en-cuerpo .nom{max-width:none}
.record-pista.en-cuerpo .cat,.record-pista.en-seccion .cat{font-family:var(--mono);font-size:10px;
  letter-spacing:var(--tr-ancho);text-transform:uppercase;color:var(--humo)}
.record-pista .cat:empty{display:none}

/* En el celular el récord se queda al lado del logo, en el lugar que
   ocupaba el atajo "Karting" (que sigue en el menú de la hamburguesa):
   medido a 390 px, el header tenía 36 px libres y el récord completo pide
   140. Reducido a la copa y el tiempo entra; el nombre lo pone el bloque
   del cuerpo, que solo está en la portada. El `margin-left:auto` que
   empujaba a la derecha lo tenía el atajo, así que pasa a la hamburguesa
   o se desarma la fila. Decisión de Juan, 2026-09-25. */
.record-pista.en-cuerpo{display:none}
@media(max-width:759px){
  .header .atajo{display:none}
  .header .hamburguesa{margin-left:auto}
  /* Dos renglones: arriba la copa con el rótulo, abajo quién lo tiene y
     el tiempo. En una sola línea no entra sin comerse el botón de
     reservar; apilado sí, y el header no crece porque ya es más alto que
     estas dos líneas juntas. */
  .header .record-pista{padding:0;border:0;gap:0 5px;flex-wrap:wrap;line-height:1.2;max-width:46vw}
  .header .record-pista .copa{width:13px;height:13px}
  /* El rótulo va primero y solo, con todo el ancho: lo escribe el parque
     y puede ser largo ("Récord de la pista"). La copa baja al renglón del
     nombre, que es el que define cuánto mide el bloque. */
  /* El rótulo entero no entra: el bloque mide lo que mide el renglón de
     abajo (unos 90 px) y "Récord de la pista" pide 144. Se muestra la
     versión corta que deja records.js en data-corto; si todavía no cargó,
     no hay rótulo y no queda un hueco. */
  .header .record-pista .et{display:none}
  .header .record-pista::before{content:attr(data-corto);order:-1;flex:1 0 100%;
    font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--humo);white-space:nowrap}
  .header .record-pista .nom{font-size:12px;max-width:9ch}
  .header .record-pista .val{font-size:12px}
  .record-pista.en-cuerpo:not([hidden]){display:flex}
}
/* Abajo de 360 px no entra ni así: ahí manda el botón de reservar. */
@media(max-width:359px){
  .header .record-pista{display:none}
}
/* Entre 760 y 1100 el menú y el récord se pelean el ancho: ahí se cae el
   rótulo y quedan la copa, el nombre y el tiempo. Abajo de 760 vuelve,
   porque el récord pasa a dos renglones y tiene lugar. */
@media(min-width:760px) and (max-width:1100px){ .header .record-pista .et{display:none} }
@media(max-width:520px){
  .record-pista.en-cuerpo,.record-pista.en-seccion{border-radius:10px;gap:4px 10px}
  .record-pista.en-cuerpo .et,.record-pista.en-seccion .et{flex:1 0 calc(100% - 28px)}
}

/* ============================== COMBOS DE CUMPLEAÑOS (pedido del parque,
   2026-09-25)
   Tres productos cerrados que se eligen comparando. Todo el bloque está
   armado para que la comparación sea posible sin leer las tres tarjetas
   enteras: mismo orden en las tres, el rango de edad primero (es por donde
   se elige), y el precio alineado al pie aunque una tenga cuatro
   atracciones y otra ocho.

   Sigue la familia de las tarjetas de producto del sitio: juntas de 1 px
   sobre negro, que es la rejilla de instrumentos de la dirección
   Telemetría. Nada de las piezas amarillas que el parque manda por
   WhatsApp: esas gritan en un chat, y acá el que llega ya está mirando. */
/* Botones a cada combo (pedido de Juan, 25/09). En celular resuelven los
   4.000 px de scroll que hay entre el primero y el tercero; en pantalla
   grande funcionan como índice del bloque. La flecha dice que bajan, no
   que abren otra página. */
.combos-atajos{display:flex;gap:10px;margin-top:var(--e-6);overflow-x:auto;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.combos-atajos::-webkit-scrollbar{display:none}
.combos-atajos a{position:relative;flex:1 1 0;min-width:126px;display:flex;flex-direction:column;gap:3px;
  text-decoration:none;background:var(--carbon);border:1px solid var(--linea-clara);
  padding:13px 34px 13px 16px;color:var(--blanco);
  font-family:var(--cond);font-weight:900;text-transform:uppercase;font-size:17px;letter-spacing:.04em;
  transition:background var(--d-hover) var(--ease),border-color var(--d-hover) var(--ease),
    color var(--d-hover) var(--ease),transform var(--d-presion) var(--ease)}
.combos-atajos a span{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:var(--tr-ancho);
  color:var(--humo);text-transform:uppercase}
/* La flecha: un cuadrado girado 45° al que se le pintan dos lados. Sin SVG
   y sin fuente de íconos, que en este sitio no existen. */
.combos-atajos a::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;
  border-right:2px solid var(--amarillo);border-bottom:2px solid var(--amarillo);
  transform:translateY(-70%) rotate(45deg);transition:transform var(--d-hover) var(--ease)}
.combos-atajos a:hover,.combos-atajos a:focus-visible{background:var(--carbon-alto);
  border-color:var(--amarillo);color:var(--amarillo)}
.combos-atajos a:hover::after{transform:translateY(-20%) rotate(45deg)}
.combos-atajos a:active{transform:translateY(1px)}
@media(max-width:560px){.combos-atajos a{font-size:15px;padding:11px 28px 11px 13px;min-width:0}}

/* El header es pegajoso: sin esto, saltar a un combo lo deja con el título
   debajo de la barra. */
.combo{scroll-margin-top:96px}

.combos-grid{display:grid;gap:1px;margin-top:var(--e-5);background:var(--linea);
  border:1px solid var(--linea)}
@media(min-width:1000px){.combos-grid{margin-top:var(--e-7)}}
@media(min-width:1000px){.combos-grid{grid-template-columns:repeat(3,1fr)}}

.combo{position:relative;background:var(--negro);padding:var(--e-6) var(--e-5) var(--e-5);
  display:flex;flex-direction:column;transition:background var(--d-media) var(--ease)}
.combo:hover{background:var(--carbon)}
/* La línea de acento no está para decorar: confirma cuál de las tres estás
   mirando cuando el fondo apenas cambia. */
.combo::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--amarillo);
  transform:scaleX(0);transform-origin:left;transition:transform var(--d-media) var(--ease)}
.combo:hover::before,.combo:focus-within::before{transform:scaleX(1)}

/* Banda de foto arriba de cada combo (pedido de Juan, 25/09): que se vea de
   qué público es antes de leer la edad. Va a sangre con los bordes de la
   tarjeta, de ahí los márgenes negativos, que son exactamente el padding de
   `.combo` (y se repiten en el corte de 560 px, donde ese padding cambia).
   El degradado no es decoración: sin él, la etiqueta amarilla y el nombre
   caen sobre una foto con zonas claras y dejan de leerse. */
.combo-cab{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:240px;padding:var(--e-5);
  margin:calc(var(--e-6) * -1) calc(var(--e-5) * -1) var(--e-5)}
.combo-cab picture{position:absolute;inset:0}
/* El recorte, el color bajado y el enfoque vienen hechos desde el archivo
   (_build/fotos-combos.py): son capturas de WhatsApp agrandadas, y eso se
   hace una vez al generar la imagen, no en cada visita con un filter. Acá
   solo queda centrarla. */
.combo-cab img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  transition:transform .9s var(--ease)}
.combo:hover .combo-cab img{transform:scale(1.045)}
/* El velo arranca recién a media altura: arriba la foto se ve limpia y
   abajo llega a negro para que el nombre se apoye en algo. Cubriendo la
   banda entera, la foto dejaba de leerse (Juan, 25/09). */
.combo-cab::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,13,13,0) 0%,rgba(13,13,13,.06) 44%,
    rgba(13,13,13,.62) 76%,var(--negro) 100%)}
.combo-cab > .combo-nom{position:relative;z-index:1;text-shadow:0 2px 16px rgba(0,0,0,.8)}
/* La edad se va a la esquina de arriba: su fondo amarillo es opaco, así que
   se lee sobre cualquier foto, y deja libre la parte que antes había que
   oscurecer para el nombre. */
.combo-cab > .etiqueta{position:absolute;top:0;left:0;z-index:1;margin:0}
/* Sin foto (por si un combo nuevo todavía no tiene), la banda no deja un
   hueco negro: se comporta como el encabezado de antes. */
.combo-cab:not(:has(img)){min-height:0;padding:0;margin:0 0 var(--e-4);background:none}
.combo-cab:not(:has(img))::after{display:none}

.combo .etiqueta{margin-bottom:var(--e-4)}
.combo-nom{font-family:var(--display);font-size:clamp(34px,4.1vw,46px);line-height:.86;
  letter-spacing:var(--tr-sub);text-transform:uppercase;margin:0;font-weight:400}
.combo-nom span{display:block;color:var(--blanco)}
.combo-nom b{display:block;color:var(--amarillo);font-weight:inherit}
.combo-promesa{color:var(--texto);font-size:15px;margin-top:var(--e-4);max-width:34ch}
.combo-dato{display:flex;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--humo);margin-top:var(--e-4)}
.combo-dato span + span::before{content:"·";margin-right:10px;color:var(--linea-clara)}

/* Rótulo de cada tramo de la tarjeta. Es la misma etiqueta chica en
   mayúsculas que usa el resto del sitio, con la línea que abre el tramo. */
.combo-rot{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);margin-top:var(--e-6);padding-bottom:var(--e-2);
  border-bottom:1px solid var(--linea)}

.combo-lista{list-style:none;margin:0;padding:0}
.combo-lista li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--e-4);
  padding:9px 0;border-bottom:1px solid var(--linea)}
.combo-lista b{font-weight:600;color:var(--blanco);font-size:15px}
.combo-lista span{color:var(--humo);font-size:12.5px;text-align:right}

/* La comida va en fichas y no en lista: es lo único de la tarjeta que se
   mira de reojo, y en lista compite con las atracciones, que sí se leen. */
.combo-comida{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--e-4)}
.combo-comida span{border:1px solid var(--linea);padding:5px 9px;font-size:12.5px;color:var(--texto)}

/* El pie se empuja al fondo: así los precios de las tres tarjetas quedan a
   la misma altura y se comparan de un vistazo. */
.combo-pie{margin-top:auto}
/* La escala de precios era tres renglones planos y es lo que decide la
   compra (Juan, 25/09). Ahora es un panel elevado: la cantidad de invitados
   en la cifra grande con la que el sitio numera todo, el importe en la
   condensada de la marca, y cada fila con su propia caja para que se puedan
   comparar de un vistazo entre las tres tarjetas. */
.combo-tarifas{margin:var(--e-4) 0 0;background:var(--carbon);border:1px solid var(--linea);
  padding:var(--e-3) var(--e-4) var(--e-4)}
.combo-tarifas div{display:flex;justify-content:space-between;align-items:center;gap:var(--e-3);
  padding:11px 0;border-bottom:1px solid var(--linea)}
.combo-tarifas dt{display:flex;align-items:baseline;gap:8px;color:var(--texto);font-size:13px}
/* El número de invitados, grande y en la display: es lo que se compara
   primero, antes que la palabra "invitados". */
.combo-tarifas dt b{font-family:var(--display);font-weight:400;font-size:27px;line-height:1;
  color:var(--blanco);letter-spacing:var(--tr-sub);font-variant-numeric:tabular-nums}
.combo-tarifas dd{margin:0;font-family:var(--cond);font-size:23px;font-weight:900;color:var(--blanco);
  font-variant-numeric:tabular-nums;letter-spacing:.01em}
/* El escalón más grande es el que conviene: se marca en amarillo, que en
   este sitio significa "acá está lo que buscás". */
.combo-tarifas div:nth-child(3) dd{color:var(--amarillo)}
.combo-tarifas .adicional{margin-top:var(--e-3);padding:10px 0 0;border-bottom:0;border-top:1px dashed var(--linea-clara)}
.combo-tarifas .adicional dt{color:var(--humo);font-size:12.5px}
.combo-tarifas .adicional dd{color:var(--humo);font-size:15px;font-weight:600}

.combo-regalo{margin-top:var(--e-5);padding:var(--e-4);background:var(--amarillo-08);
  border-left:2px solid var(--amarillo);color:var(--texto);font-size:13.5px}
.combo-regalo b{color:var(--amarillo);font-weight:600}

.combo-cta{display:block;margin-top:var(--e-5);text-align:center;font-size:16px;padding:15px 20px}
.combo-nota{color:var(--humo);font-size:13.5px;margin-top:var(--e-5);max-width:80ch}

/* En celular el detalle de cada atracción baja debajo del nombre: al lado
   quedaba en dos renglones contra el borde y se leía peor que apilado. */
@media(max-width:560px){
  .combo{padding:var(--e-5) var(--e-4)}
  .combo-cab{margin:calc(var(--e-5) * -1) calc(var(--e-4) * -1) var(--e-5);min-height:210px;
    padding:var(--e-4)}
  .combo-lista li{flex-direction:column;gap:2px}
  .combo-lista span{text-align:left}
}

/* ---------------------------------------------- franja de respaldo
   Quién organiza los eventos. Una sola línea, con el nombre propio en la
   tipografía de los subtítulos: es el dato que da confianza. */
.respaldo{border:1px solid var(--linea);border-left:3px solid var(--amarillo);
  padding:var(--e-6) var(--e-7);background:linear-gradient(90deg,var(--amarillo-08),transparent 62%)}
.respaldo-rot{font-family:var(--mono);font-size:10px;letter-spacing:var(--tr-ancho);
  text-transform:uppercase;color:var(--amarillo)}
.respaldo-texto{font-size:clamp(17px,2.1vw,21px);color:var(--blanco);margin-top:var(--e-3);
  max-width:60ch}
.respaldo-texto b{font-family:var(--sub);font-style:italic;font-weight:900;text-transform:uppercase;
  letter-spacing:var(--tr-sub);color:var(--amarillo);font-size:1.14em}
.respaldo-bajo{color:var(--humo);font-size:14px;margin-top:var(--e-3);max-width:60ch}
@media(max-width:560px){.respaldo{padding:var(--e-5) var(--e-5)}}

/* ------------------------------------------------------------ opiniones
   Opiniones de Google Mi Negocio en la home (migración 49, js/resenas.js).
   Carrusel que se desliza de costado: en el celular, una tarjeta y el borde
   de la siguiente para que se entienda que sigue; en escritorio, flechas y
   arrastre. Las estrellas de las tarjetas van en blanco: dieciséis filas de
   amarillo apagarían el acento. El amarillo queda para la nota general. */
.resenas-cabeza{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--e-4) var(--e-6)}
.resenas-nota{display:flex;align-items:center;flex-wrap:wrap;gap:var(--e-2) var(--e-3);color:var(--texto);font-size:15px}
.resenas-nota .prom{font-family:var(--cuerpo);font-weight:600;font-size:var(--t-dato);color:var(--blanco);
  font-variant-numeric:tabular-nums;line-height:1}
.estrellas{display:inline-flex;gap:2px;color:var(--blanco)}
.estrellas svg{width:14px;height:14px;fill:currentColor}
.estrellas.grandes{color:var(--amarillo)}
.estrellas.grandes svg{width:22px;height:22px}

.resenas{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:var(--e-3);overflow-x:auto;
  scroll-snap-type:x mandatory;margin-top:var(--e-6);padding-bottom:var(--e-2);scrollbar-width:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.resenas::-webkit-scrollbar{display:none}
.resenas:focus-visible{outline:1px solid var(--amarillo);outline-offset:4px}
.resenas.agarrando{cursor:grabbing;scroll-snap-type:none;user-select:none}
@media(min-width:560px){.resenas{grid-auto-columns:minmax(300px,46%)}}
@media(min-width:1000px){.resenas{grid-auto-columns:calc((100% - 2 * var(--e-3)) / 3)}}
@media(hover:hover) and (pointer:fine){.resenas{cursor:grab}}

.resena{scroll-snap-align:start;display:flex;flex-direction:column;gap:var(--e-3);
  background:var(--carbon);border:1px solid var(--linea);padding:var(--e-5);min-width:0}
.resena header{display:flex;align-items:center;gap:var(--e-3)}
.resena .avatar{position:relative;flex:none;width:44px;height:44px;border-radius:var(--r-pill);overflow:hidden;
  background:var(--carbon-alto);display:grid;place-items:center}
.resena .avatar::before{content:attr(data-inicial);font-family:var(--cuerpo);font-weight:600;font-size:17px;color:var(--humo)}
.resena .avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.resena .quien{display:flex;flex-direction:column;min-width:0}
.resena .quien b{font-family:var(--cuerpo);font-weight:600;font-size:15px;color:var(--blanco);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resena time{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:var(--tr-ancho);text-transform:uppercase;
  color:var(--humo-tenue);font-weight:600;margin-top:2px}
.resena .texto{color:var(--texto);font-size:15px;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:6;overflow:hidden;overflow-wrap:anywhere}
.resena.abierta .texto{-webkit-line-clamp:unset;display:block}
.resena .mas{align-self:flex-start;background:none;border:0;padding:var(--e-2) 0;margin-top:auto;cursor:pointer;
  font-family:var(--mono);font-size:12px;letter-spacing:var(--tr-medio);text-transform:uppercase;font-weight:600;
  color:var(--blanco);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--linea-clara)}
.resena .mas:hover,.resena .mas:focus-visible{text-decoration-color:var(--blanco)}

.resenas-pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--e-4);margin-top:var(--e-5)}
.resenas-aviso{color:var(--humo);font-size:13px;max-width:52ch}
.resenas-control{display:flex;align-items:center;gap:var(--e-2)}
.resenas-ant,.resenas-sig{display:none;width:48px;height:48px;place-items:center;background:none;cursor:pointer;
  border:1px solid var(--linea-clara);color:var(--blanco);transition:border-color var(--d-hover),opacity var(--d-hover)}
.resenas-ant svg,.resenas-sig svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.resenas-ant:hover:not(:disabled),.resenas-sig:hover:not(:disabled),
.resenas-ant:focus-visible,.resenas-sig:focus-visible{border-color:var(--blanco)}
.resenas-ant:disabled,.resenas-sig:disabled{opacity:.35;cursor:default}
.resenas-ant:active:not(:disabled),.resenas-sig:active:not(:disabled){transform:scale(.96);transition-duration:var(--d-presion)}
@media(hover:hover) and (pointer:fine){.resenas-ant,.resenas-sig{display:grid}}
