/* =========================================================================
   KartCenter Campillos — styles.css
   Tokens de marca VERIFICADOS contra la web original (www.kartingcampillos.com,
   tema Avada): rojo #ec1f24, títulos "Barlow Condensed" 700, cuerpo "Barlow",
   texto #3a4149, texto secundario #7b838b.
   ========================================================================= */

/* Barlow + Barlow Condensed (las familias reales del original) */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Condensed:wght@500;600;700;800&display=swap');

:root{
  --rojo:#ec1f24;          /* acento de marca (verificado en el CSS original) */
  --rojo-700:#c0151a;
  --negro:#0e1013;         /* secciones oscuras */
  --negro-2:#16191e;
  --blanco:#ffffff;
  --gris-fondo:#f4f4f5;
  --texto:#3a4149;         /* color de titulares/cuerpo del original */
  --texto-2:#656c73;       /* texto secundario (oscurecido desde #7b838b para cumplir contraste AA ≥4.5:1) */
  --borde:#e4e4e7;
  --whatsapp:#25D366;
  --whatsapp-700:#1da851;

  --fuente-display:'Barlow Condensed', system-ui, -apple-system, sans-serif;
  --fuente-cuerpo:'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --maxw:1640px;
  --r:14px;                /* radio glass */
  --r-btn:12px;
  /* curvas de easing (deceleración natural, sin rebote) */
  --ease-out-quint:cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-expo:cubic-bezier(0.16, 1, 0.3, 1);
  --t:.28s var(--ease-out-quint);
  --sombra:0 10px 30px rgba(14,16,19,.10);
  --sombra-lg:0 24px 60px rgba(14,16,19,.18);
}

/* ---------- Reset ligero ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
/* Anclas de navegación (#contacto, #porque, #eligetuplan, ...): compensan el nav sticky */
#contacto, #porque, #eligetuplan, #nuestroskarts, #tarifas, #grupogrande, #opiniones, #dondeestamos{ scroll-margin-top:82px; }
body{
  margin:0;
  font-family:var(--fuente-cuerpo);
  font-size:17px;                 /* HIG: body ≥17pt */
  line-height:1.6;
  color:var(--texto);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;   /* evita scroll horizontal SIN romper position:sticky del header */
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--fuente-display); font-weight:700; line-height:1.05; margin:0; letter-spacing:-.5px; text-transform:none; }

/* ---------- Accesibilidad ---------- */
:focus-visible{ outline:3px solid var(--rojo); outline-offset:3px; border-radius:4px; }
.skip-link{
  position:absolute; left:8px; top:-60px; z-index:1000;
  background:var(--negro); color:#fff; padding:12px 18px; border-radius:8px;
  transition:top var(--t);
}
.skip-link:focus{ top:8px; }
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:16px; }
@media (min-width:768px){ .container{ padding-inline:24px; } }
.section{ padding:72px 0; }
@media (min-width:768px){ .section{ padding:104px 0; } }
.section--dark{ background:var(--negro); color:#fff; }
.section--gris{ background:var(--gris-fondo); }

.eyebrow{
  font-family:var(--fuente-display); font-weight:600; letter-spacing:2px;
  text-transform:uppercase; font-size:.82rem; color:var(--rojo);
  margin:0 0 14px;
}
.section--dark .eyebrow{ color:#ff5a5e; }
.section__title{ font-size:clamp(1.9rem,5vw,3.2rem); margin-bottom:18px; }
.lead{ font-size:1.12rem; color:var(--texto-2); max-width:62ch; }
.section--dark .lead{ color:#c8ccd2; }
.hl{ color:var(--rojo); }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:14px 26px;          /* target ≥44px */
  font-family:var(--fuente-display); font-weight:700; font-size:1.02rem;
  letter-spacing:.3px; border:0; border-radius:var(--r-btn); cursor:pointer;
  transition:transform var(--t), background var(--t), box-shadow var(--t), opacity var(--t);
  text-align:center;
}
.btn:active{ transform:scale(.96); opacity:.85; }   /* estado pressed */
.btn--wa{ background:var(--whatsapp); color:#fff; box-shadow:var(--sombra); }
.btn--wa:hover{ background:var(--whatsapp-700); }
.btn--wa::before{ content:""; width:20px; height:20px; flex:0 0 20px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 01-1.587-5.946C.16 5.335 5.495 0 12.05 0a11.82 11.82 0 018.413 3.488 11.82 11.82 0 013.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 01-5.688-1.448L.057 24zM6.6 20.13c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.86 9.86 0 001.51 5.26l-.999 3.648 3.477-.917zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z'/%3E%3C/svg%3E"); }
.btn--ghost{ background:transparent; color:var(--rojo); border:2px solid var(--rojo); }
.btn--ghost:hover{ background:var(--rojo); color:#fff; }
.section--dark .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.6); }
.section--dark .btn--ghost:hover{ background:#fff; color:var(--negro); }
.btn--block{ width:100%; }
/* CTA de llamada (teléfono) */
.btn--call{ background:transparent; color:var(--texto); border:1.5px solid var(--borde); }
.btn--call:hover{ border-color:var(--rojo); color:var(--rojo); }
.btn--call::before{ content:""; width:18px; height:18px; flex:0 0 18px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ec1f24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }
.btn--call-light{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.7); }
.btn--call-light:hover{ background:#fff; color:var(--rojo); }
.btn--call-light::before{ content:""; width:18px; height:18px; flex:0 0 18px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }
.btn--call-light:hover::before{ filter:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ec1f24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }

/* ---------- Reveal on scroll ---------- */
/* El contenido es visible por defecto; solo se oculta-para-animar si hay JS (clase .js).
   Así, sin JS / en crawlers / headless, nada queda invisible. */
.js .reveal{ opacity:0; transform:translateY(26px);
  transition:opacity .7s var(--ease-out-quint), transform .7s var(--ease-out-quint);
  transition-delay:var(--reveal-delay, 0ms); }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .js .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Card glass (sobre fotos) ---------- */
.card-glass{
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r);
}
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  .card-glass{ background:rgba(15,15,16,.72); }   /* fallback sólido */
}
/* En fondos claros, las cards glass van con superficie blanca legible */
.section:not(.section--dark) .card-glass{
  background:#fff; border:1px solid var(--borde); box-shadow:var(--sombra);
  backdrop-filter:none; -webkit-backdrop-filter:none;
}

/* ---------- Placeholder de imagen (CLS-safe) ---------- */
.ph{
  width:100%; background:linear-gradient(135deg,#23262c,#15181c);
  display:flex; align-items:center; justify-content:center;
  color:#5a6068; border-radius:10px; overflow:hidden;
}
.ph__txt{ font-family:var(--fuente-display); letter-spacing:2px; text-transform:uppercase; font-size:.8rem; }

/* =========================================================================
   NAV
   ========================================================================= */
.nav{
  position:-webkit-sticky; position:sticky; top:0; z-index:100;
  background:#fff;   /* sólido: backdrop-filter rompe position:sticky en Safari iOS */
  border-bottom:1px solid var(--borde);
}
/* En móvil el header NO se queda fijo: se va con el scroll */
@media (max-width:767px){ .nav{ position:static; } }
.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; height:66px; }
.nav__logo{ display:flex; align-items:center; }
.nav__logo-img{ height:40px; width:auto; display:block; }
@media (min-width:768px){ .nav__logo-img{ height:46px; } }
.nav__links{ display:none; gap:26px; }
.nav__links a{ font-family:var(--fuente-display); font-weight:600; letter-spacing:1px; font-size:.92rem; color:var(--texto); transition:color var(--t); }
.nav__links a:hover{ color:var(--rojo); }
.nav__right{ display:flex; align-items:center; gap:14px; }
.nav__lang{ font-family:var(--fuente-display); font-weight:700; font-size:.85rem; letter-spacing:1px;
  color:var(--texto); background:transparent; cursor:pointer;
  border:1.5px solid var(--borde); border-radius:8px; padding:7px 11px; min-height:38px; line-height:1;
  transition:border-color var(--t), color var(--t), background var(--t); }
.nav__lang:hover{ border-color:var(--rojo); color:var(--rojo); }
.nav__cta{ display:none; }
.nav__call{ padding:0; width:46px; min-width:46px; justify-content:center; }
.nav__call .btn__label{ display:none; }
@media (min-width:880px){
  .nav__links{ display:flex; }
  .nav__cta{ display:inline-flex; }
  .nav__call{ width:auto; padding:12px 18px; }
  .nav__call .btn__label{ display:inline; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{
  position:relative; color:#fff; overflow:hidden;
  background:#0c0e11;   /* sólido oscuro: nada de gris detrás de la foto */
  min-height:calc(100svh - 66px);   /* ocupa el viewport al cargar (menos la nav) */
  display:flex; align-items:center;
  padding:72px 0;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg .ph{ width:100%; height:100%; border-radius:0;
  background:linear-gradient(120deg,#1c1f25,#0e1013 70%); }
.hero__bg-img{ width:100%; height:100%; object-fit:cover; object-position:center 40%; }
/* Vídeo de fondo (Vimeo) superpuesto a la foto-póster; cubre el área (cover) */
.hero__video{ position:absolute; inset:0; overflow:hidden; opacity:0; transition:opacity 1.1s var(--ease-out-quint);
  container-type:size; }
.hero__video.is-ready{ opacity:1; }
/* iframe 16:9 sobredimensionado para CUBRIR el hero (cover), medido contra el
   propio contenedor con unidades cq* (funciona también en móvil vertical). */
.hero__video iframe{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:max(100cqw, 177.78cqh);
  height:max(100cqh, 56.25cqw);
  border:0; pointer-events:none;
}
.hero::after{ /* scrim para contraste AA del texto sobre la foto */
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(8,9,11,.80) 0%, rgba(8,9,11,.30) 24%, rgba(8,9,11,.30) 66%, rgba(8,9,11,.82) 100%),
    linear-gradient(90deg, rgba(8,9,11,.86) 0%, rgba(8,9,11,.55) 60%, rgba(8,9,11,.30) 100%);
}
/* En desktop bajamos un poco la capa para que luzca más el vídeo */
@media (min-width:768px){
  .hero::after{
    background:
      linear-gradient(180deg, rgba(8,9,11,.66) 0%, rgba(8,9,11,.20) 26%, rgba(8,9,11,.20) 66%, rgba(8,9,11,.70) 100%),
      linear-gradient(90deg, rgba(8,9,11,.74) 0%, rgba(8,9,11,.44) 60%, rgba(8,9,11,.22) 100%);
  }
}
.hero .container{ position:relative; z-index:2; }
.hero__eyebrow{ color:#ff5a5e; font-family:var(--fuente-display); font-weight:600; letter-spacing:2px; text-transform:uppercase; font-size:.82rem; margin:0 0 18px; }
.hero__title{ font-size:clamp(2.6rem,8vw,5.2rem); line-height:.98; max-width:16ch; margin-bottom:22px; }
.hero__sub{ font-size:1.18rem; max-width:60ch; color:#e7e9ec; margin:0 0 16px; }
.hero__p2{ font-size:1.05rem; max-width:58ch; color:#b9bdc4; margin:0 0 30px; }
.hero__ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:18px; }
.hero__ctas .btn{ min-width:min(380px, 100%); padding-inline:44px; }   /* botón más largo */
.hero__micro{ font-size:.95rem; color:#a7abb2; }
/* Badge de valoración de Google en el hero */
.hero__rating{ display:inline-flex; align-items:center; gap:9px; margin:0 0 26px; color:#fff; }
.hero__rating:hover .hero__rating-txt{ color:#fff; }
.hero__rating-nota{ font-family:var(--fuente-display); font-weight:800; font-size:1.1rem; }
.stars{ position:relative; display:inline-block; font-size:1.05rem; line-height:1; color:rgba(255,255,255,.32); }
.stars::before{ content:"★★★★★"; }
.stars__fill{ position:absolute; inset:0; width:0; overflow:hidden; white-space:nowrap; color:#f5a623; }
.stars__fill::before{ content:"★★★★★"; }
.hero__rating-txt{ font-size:.92rem; color:#e7e9ec; text-decoration:underline; text-underline-offset:3px; }
/* Entrada coreografiada del hero al cargar (momento señal) */
@keyframes heroIn{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
.js .hero .container > *{ opacity:0; animation:heroIn .85s var(--ease-out-expo) both; }
.js .hero .container > *:nth-child(1){ animation-delay:.08s; }
.js .hero .container > *:nth-child(2){ animation-delay:.18s; }
.js .hero .container > *:nth-child(3){ animation-delay:.28s; }
.js .hero .container > *:nth-child(4){ animation-delay:.36s; }
.js .hero .container > *:nth-child(5){ animation-delay:.44s; }
.js .hero .container > *:nth-child(6){ animation-delay:.52s; }
.js .hero .container > *:nth-child(7){ animation-delay:.60s; }
@media (prefers-reduced-motion: reduce){
  .js .hero .container > *{ animation:none; opacity:1; }
}
/* En desktop el titular cae en dos líneas (max-width controlado + reparto equilibrado) */
@media (min-width:768px){
  .hero__title{ max-width:22ch; text-wrap:balance; }
  .hero__sub{ max-width:920px; text-wrap:balance; }   /* subtítulo en dos líneas */
}

/* =========================================================================
   STATS
   ========================================================================= */
.stats{ background:var(--negro-2); color:#fff; padding:0; }
.stats__grid{ display:grid; grid-template-columns:repeat(2,1fr); }
@media (min-width:880px){ .stats__grid{ grid-template-columns:repeat(4,1fr); } }
.stat{ padding:34px 22px; text-align:center; border-radius:0 !important; border:0 !important;
  border-right:1px solid rgba(255,255,255,.08) !important; box-shadow:none !important;
  background:transparent !important; backdrop-filter:none !important; }
.stat__num{ font-family:var(--fuente-display); font-weight:800; font-size:1.55rem; line-height:1.05; margin-bottom:8px; }
.stat__txt{ color:#aeb3ba; font-size:.95rem; }

/* =========================================================================
   CIRCUITO
   ========================================================================= */
.circuito__grid{ display:grid; gap:38px; align-items:center; }
@media (min-width:900px){
  /* Carrusel a sangre: el texto a la izquierda (alineado al contenedor),
     el carrusel ocupa el alto completo de la sección y llega al borde derecho */
  .circuito{ padding:0; overflow:hidden; }
  .circuito__grid{ max-width:none; padding:0; gap:0;
    grid-template-columns:1fr minmax(0, 48vw); align-items:stretch; }
  .circuito__grid > .reveal:first-child{ align-self:center;
    padding:104px 56px 104px max(24px, calc((100vw - 1640px) / 2 + 24px)); }
}
.circuito__destacado{ font-family:var(--fuente-display); font-weight:700; font-size:clamp(1.4rem,3vw,2rem); color:var(--rojo); margin:18px 0 14px; }
@media (max-width:767px){ .circuito__destacado{ display:none; } }   /* se oculta solo en móvil */
.circuito__p{ color:var(--texto-2); margin:0 0 16px; }
.circuito__media{ position:relative; }
.circuito__media .ph{ aspect-ratio:4/3; }
.circuito__img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; display:block; }
@media (min-width:900px){
  .circuito__media{ height:100%; }   /* iguala la altura de la columna de texto */
  .circuito__img{ height:100%; aspect-ratio:auto; min-height:520px; border-radius:0; }
}

/* Carrusel de fotos */
.carousel{ position:relative; width:100%; aspect-ratio:4/3; border-radius:0; overflow:hidden; background:#15181c; }
@media (min-width:900px){ .carousel{ height:100%; aspect-ratio:auto; min-height:520px; } }
.carousel__track{ position:absolute; inset:0; }
.carousel__slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s var(--ease-out-quint); }
.carousel__slide.is-active{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .carousel__slide{ transition:none; } }
.carousel__btn{ position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:42px; height:42px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(8,9,11,.5); color:#fff; font-size:1.6rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background var(--t); }
.carousel__btn:hover{ background:var(--rojo); }
.carousel__btn--prev{ left:12px; }
.carousel__btn--next{ right:12px; }
@media (max-width:767px){ .carousel__btn{ display:none; } }   /* en móvil: solo dots + swipe */
.carousel__dots{ position:absolute; left:0; right:0; bottom:14px; z-index:3; display:flex; gap:8px; justify-content:center; }
.carousel__dot{ width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.5); transition:width var(--t), background var(--t); }
.carousel__dot.is-active{ background:var(--rojo); width:22px; border-radius:5px; }
.circuito__badge{ z-index:3; }
/* En móvil: carrusel a ancho completo de pantalla y hasta el final de la sección */
@media (max-width:899px){
  .circuito{ padding-bottom:0; }
  .circuito__media{ width:100vw; position:relative; left:50%; right:50%;
    margin-left:-50vw; margin-right:-50vw; }
  .carousel{ aspect-ratio:4/3; }
  .circuito__img{ aspect-ratio:4/3; border-radius:0; }
}
.circuito__badge{
  position:absolute; right:16px; top:16px;
  background:var(--rojo); color:#fff; font-family:var(--fuente-display); font-weight:700;
  letter-spacing:.5px; padding:8px 14px; border-radius:8px; font-size:.9rem;
}
.circuito .btn{ margin-top:10px; }

/* =========================================================================
   BANNER
   ========================================================================= */
.banner{ background:var(--rojo); color:#fff; }
.banner .container{ padding-block:34px; }
.banner__txt{ font-family:var(--fuente-display); font-weight:600; font-size:clamp(1.1rem,2.4vw,1.5rem); line-height:1.3; max-width:80ch; margin:0 auto; text-align:center; }

/* =========================================================================
   PLANES
   ========================================================================= */
.planes__grid{ display:grid; gap:22px; grid-template-columns:1fr; margin-top:40px; }
@media (min-width:640px){ .planes__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .planes__grid{ grid-template-columns:repeat(4,1fr); gap:18px; } }
.plan{ padding:28px 24px; display:flex; flex-direction:column; transition:transform var(--t), box-shadow var(--t); }
.plan:hover{ transform:translateY(-4px); box-shadow:var(--sombra-lg); }
.plan__icono{ display:flex; align-items:center; justify-content:flex-start; margin-bottom:14px; }
.plan__icono svg{ width:38px; height:38px; fill:var(--rojo); }
.plan__titulo{ font-size:1.25rem; color:var(--negro); margin-bottom:12px; }
.plan__txt{ color:var(--texto-2); flex:1; margin:0 0 22px; }
.plan__cta{ align-self:stretch; font-size:.92rem; padding:13px 14px; }

/* =========================================================================
   KARTS
   ========================================================================= */
.karts__grid{ display:grid; gap:24px; grid-template-columns:1fr; margin:40px 0 30px; }
@media (min-width:780px){ .karts__grid{ grid-template-columns:repeat(3,1fr); } }
.kart{ overflow:hidden; display:flex; flex-direction:column; padding:0; transition:transform var(--t), box-shadow var(--t); }
.kart:hover{ transform:translateY(-4px); box-shadow:var(--sombra-lg); }
.section--dark .kart{ background:rgba(255,255,255,.05) !important; border:1px solid rgba(255,255,255,.10) !important; }
.kart__media{ position:relative; aspect-ratio:1/1; overflow:hidden; }   /* caja cuadrada 1:1 */
.kart__media .ph{ width:100%; height:100%; border-radius:0; }
.kart__img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; display:block; }
.kart__tag{
  position:absolute; left:12px; top:12px; background:var(--rojo); color:#fff;
  font-family:var(--fuente-display); font-weight:700; letter-spacing:.5px;
  font-size:.72rem; text-transform:uppercase; padding:6px 11px; border-radius:6px;
}
.kart__body{ padding:24px 22px; display:flex; flex-direction:column; flex:1; }
.kart__nombre{ font-size:1.5rem; }
.kart__sub{ color:var(--rojo); font-weight:600; margin:4px 0 16px; font-size:.98rem; }
.section--dark .kart__sub{ color:#ff7b7e; }
.kart__specs{ display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0 0 18px;
  padding:16px 0; border-top:1px solid rgba(128,128,128,.18); border-bottom:1px solid rgba(128,128,128,.18); }
.kart__specs dt{ font-weight:600; color:var(--texto-2); font-size:.9rem; }
.section--dark .kart__specs dt{ color:#aeb3ba; }
.kart__specs dd{ margin:0; font-family:var(--fuente-display); font-weight:700; text-align:right; }
.kart__txt{ color:var(--texto-2); flex:1; margin:0; font-size:.97rem; }
.section--dark .kart__txt{ color:#c2c6cd; }
.karts__nota{ text-align:center; color:var(--texto-2); max-width:60ch; margin:0 auto 24px; }
@media (min-width:1000px){ .karts__nota{ max-width:none; } }   /* en desktop, una sola línea */
.section--dark .karts__nota{ color:#aeb3ba; }
.karts__cta{ text-align:center; }

/* =========================================================================
   PRECIOS
   ========================================================================= */
.precios > .container > .eyebrow,
.precios > .container > .section__title{ text-align:center; }

/* Banda "Tanda individual" — horizontal, full-width, sobre los packs de grupo */
.precios__individual{ margin-top:42px; }
.tanda{ display:flex; align-items:center; flex-wrap:wrap; gap:18px 28px; padding:22px 26px; }
.tanda__head{ display:flex; flex-direction:column; gap:4px; flex:1 1 200px; min-width:160px; }
.tanda__nombre{ font-family:var(--fuente-display); font-weight:700; font-size:1.4rem; text-transform:uppercase; letter-spacing:.5px; }
.tanda__nota{ color:var(--texto-2); font-size:.92rem; }
.tanda__precios{ display:flex; flex-wrap:wrap; gap:12px; }
.tanda__chip{ border:1px solid var(--borde); border-radius:12px; padding:10px 18px; min-width:148px; }
.tanda__kart{ display:block; font-family:var(--fuente-display); font-weight:600; font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:var(--texto-2); margin-bottom:4px; }
.tanda__cifra{ font-family:var(--fuente-display); font-weight:800; color:var(--rojo); display:inline-flex; align-items:flex-start; line-height:1; }
.tanda__num{ font-size:2rem; }
.tanda__eur{ font-size:1.05rem; margin-left:1px; }
.tanda__p{ font-size:.78rem; color:var(--texto-2); font-weight:600; align-self:flex-end; margin-left:5px; }
/* Colores de fondo por kart (mismos que la tarifa física) */
.tanda__chip--kc{ background:#33478e; border-color:#33478e; }
.tanda__chip--kcplus{ background:#ff0000; border-color:#ff0000; }
.tanda__chip--kcrmax{ background:#ffe700; border-color:#ffe700; }
.tanda__chip--kc .tanda__kart,
.tanda__chip--kcplus .tanda__kart{ color:rgba(255,255,255,.85); }
.tanda__chip--kc .tanda__cifra,
.tanda__chip--kcplus .tanda__cifra,
.tanda__chip--kc .tanda__p,
.tanda__chip--kcplus .tanda__p{ color:#fff; }
.tanda__chip--kcrmax .tanda__kart{ color:rgba(0,0,0,.7); }
.tanda__chip--kcrmax .tanda__cifra,
.tanda__chip--kcrmax .tanda__p{ color:#000; }
/* Duración de la sesión, inline junto al título "Tanda individual" */
.tanda__titulo{ display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px; }
.tanda__duracion{ color:var(--texto-2); font-size:1rem; font-weight:500; }
.tanda__duracion::before{ content:"— "; }
.tanda__cta{ margin-left:auto; }
/* En móvil la banda se apila: chips a partes iguales y botón a lo ancho */
@media (max-width:767px){
  .tanda{ flex-direction:column; align-items:stretch; gap:16px; padding:22px 20px; }
  .tanda__head{ flex:0 0 auto; }   /* en columna, evita que el flex-basis 200px se aplique al alto */
  .tanda__precios{ width:100%; gap:10px; }
  .tanda__chip{ flex:1; min-width:0; }
  .tanda__cta{ margin-left:0; width:100%; }
}

.precios__grid{ display:grid; gap:26px; grid-template-columns:1fr; margin-top:26px; align-items:stretch; }
@media (min-width:780px){ .precios__grid{ grid-template-columns:repeat(2,1fr); } }
.pack{ position:relative; padding:34px 28px; display:flex; flex-direction:column; }
/* Pack destacado: fondo oscuro para que resalte sobre los demás */
.pack--destacado{ background:var(--negro) !important; border:2px solid var(--rojo) !important; color:#fff;
  box-shadow:var(--sombra-lg) !important; }
.pack--destacado .pack__nombre{ color:#fff; }
.pack--destacado .pack__incluye{ color:#e7e9ec; }
.pack--destacado .pack__capacidad{ color:#aeb3ba; }
.pack--destacado .pack__precio{ background:rgba(255,255,255,.07); }
.pack--destacado .pack__vs{ color:#aeb3ba; }
.pack--destacado .pack__bullets li{ color:#e7e9ec; }
@media (min-width:780px){ .pack--destacado{ transform:scale(1.03); } }
.pack__tag{ font-family:var(--fuente-display); font-weight:700; letter-spacing:1px; text-transform:uppercase; font-size:.78rem; color:var(--rojo); }
.pack__badge{ position:absolute; right:20px; top:-14px; background:var(--rojo); color:#fff;
  font-family:var(--fuente-display); font-weight:700; font-size:.78rem; letter-spacing:.5px;
  padding:6px 14px; border-radius:20px; }
.pack__nombre{ font-size:2rem; color:var(--negro); margin:10px 0 6px; }
.pack__incluye{ color:var(--texto); font-weight:500; margin:0 0 4px; }
.pack__capacidad{ color:var(--texto-2); font-size:.92rem; margin:0 0 22px; }
.pack__precios{ display:grid; gap:12px; margin-bottom:22px; }
.pack__precio{ display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:6px 12px;
  padding:14px 16px; background:var(--gris-fondo); border-radius:10px; }
.pack__kart{ font-family:var(--fuente-display); font-weight:700; font-size:1.05rem; }
.pack__cifra{ font-family:var(--fuente-display); font-weight:800; color:var(--rojo); }
.pack__num{ font-size:2rem; line-height:1; }
.pack__eur{ font-size:1.1rem; }
.pack__vs{ grid-column:1/-1; color:var(--texto-2); font-size:.8rem; letter-spacing:.5px; }
.pack__bullets{ display:grid; gap:10px; margin:0 0 26px; flex:1; }
.pack__bullets li{ position:relative; padding-left:28px; color:var(--texto); font-size:.97rem; }
.pack__bullets li::before{ content:""; position:absolute; left:0; top:.35em; width:16px; height:16px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ec1f24'%3E%3Cpath d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E"); }
.pack__cta{ margin-top:auto; }

/* =========================================================================
   CTA GRUPOS
   ========================================================================= */
.ctaGrupos{ position:relative; color:#fff; text-align:center;
  padding:120px 0;
  background:linear-gradient(rgba(8,9,11,.55), rgba(8,9,11,.45)), url("../img/ctagrupos.webp") center/cover no-repeat fixed; }
.ctaGrupos__txt, .ctaGrupos__detalle{ text-shadow:0 2px 12px rgba(0,0,0,.6); }
.ctaGrupos__pdf{ margin:22px 0 0; }
.btn--pdf{ background:rgba(11,13,16,.66); color:#fff; border:2px solid rgba(255,255,255,.55);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.btn--pdf:hover{ background:#fff; color:var(--negro); border-color:#fff; }
.btn--pdf::before{ content:""; width:18px; height:18px; flex:0 0 18px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E"); }
.btn--pdf:hover::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230e1013'%3E%3Cpath d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E"); }
@media (min-width:768px){ .ctaGrupos{ padding:168px 0; } }
@media (max-width:767px){ .ctaGrupos{ background-attachment:scroll; } }   /* fixed va mal en móvil */
.ctaGrupos__txt{ font-family:var(--fuente-display); font-weight:700; font-size:clamp(1.4rem,3.4vw,2.2rem); margin:0 0 10px; }
.ctaGrupos__detalle{ color:#aeb3ba; margin:0 0 26px; }

/* =========================================================================
   SOCIAL / RESEÑAS
   ========================================================================= */
/* Carrusel de reseñas: 1 por vista en móvil, 3 en desktop */
.resenas{ position:relative; margin:40px 0 0; }
.resenas__track{ display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; padding:4px 2px 14px; scrollbar-width:none; }
.resenas__track::-webkit-scrollbar{ display:none; }
.resena{ scroll-snap-align:start; flex:0 0 100%; margin:0; padding:28px 26px; display:flex; flex-direction:column; }
@media (min-width:780px){ .resena{ flex:0 0 calc((100% - 44px) / 3); } }
.resenas__btn{ position:absolute; top:42%; transform:translateY(-50%); z-index:4; display:none;
  width:44px; height:44px; border-radius:50%; border:0; cursor:pointer; background:var(--negro); color:#fff;
  font-size:1.7rem; line-height:1; align-items:center; justify-content:center; box-shadow:var(--sombra);
  transition:background var(--t), opacity var(--t); }
.resenas__btn:hover{ background:var(--rojo); }
.resenas__btn[disabled]{ opacity:.25; cursor:default; }
.resenas__btn--prev{ left:-12px; }
.resenas__btn--next{ right:-12px; }
@media (min-width:780px){ .resenas__btn{ display:flex; } }
.resenas__dots{ display:flex; gap:8px; justify-content:center; margin-top:18px; }
.resenas__dot{ width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer;
  background:rgba(123,131,139,.45); transition:width var(--t), background var(--t); }
.resenas__dot.is-active{ background:var(--rojo); width:22px; border-radius:5px; }
.resena__estrellas{ color:#f5a623; font-size:1.15rem; letter-spacing:2px; margin-bottom:14px; }
.resena__txt{ font-size:1.02rem; color:var(--texto); margin:0 0 10px; }
.resena__clip{ display:-webkit-box; -webkit-line-clamp:6; line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }
.resena__clip.is-expanded{ -webkit-line-clamp:unset; line-clamp:unset; overflow:visible; }
.resena__vermas{ align-self:flex-start; background:none; border:0; padding:0; margin:0 0 16px; cursor:pointer;
  color:var(--rojo); font-family:var(--fuente-display); font-weight:700; font-size:.9rem; }
.resena__vermas:hover{ text-decoration:underline; }
.resena__autor{ font-style:normal; font-family:var(--fuente-display); font-weight:600; color:var(--texto-2); font-size:.92rem; margin-top:auto; }
.social__cta{ text-align:center; }

/* =========================================================================
   UBICACIÓN
   ========================================================================= */
.ubicacion__grid{ display:grid; gap:34px; align-items:center; }
@media (min-width:900px){ .ubicacion__grid{ grid-template-columns:1fr 1fr; gap:52px; } }
.ubicacion__dato{ display:flex; gap:12px; align-items:flex-start; margin:0 0 14px; }
.ubicacion__dato strong{ font-family:var(--fuente-display); font-weight:700; }
.ubicacion__media{ margin:0; }
.ubicacion__media .ph{ aspect-ratio:4/3; }
/* Card de ubicación destacada: foto aérea + rótulo en banda inferior */
.ubicacion__card{ position:relative; border-radius:16px; overflow:hidden;
  box-shadow:var(--sombra-lg); border:1px solid var(--borde); }
.ubicacion__img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.ubicacion__caption{ position:absolute; left:0; right:0; bottom:0; margin:0;
  display:flex; align-items:center; gap:10px;
  padding:20px 22px 18px; color:#fff;
  font-family:var(--fuente-display); font-weight:700; font-size:1.15rem; letter-spacing:.3px;
  background:linear-gradient(0deg,rgba(8,9,11,.85) 0%,rgba(8,9,11,.45) 55%,rgba(8,9,11,0) 100%); }
.ubicacion__caption::before{ content:""; width:10px; height:26px; flex:0 0 10px; border-radius:3px; background:var(--rojo); }
.ubicacion__maplink{ margin-top:16px; }
.ubicacion__map{ width:100%; aspect-ratio:4/3; border:0; display:block; }
.section--dark .circuito__p{ color:#c2c6cd; }   /* texto descriptivo legible sobre fondo oscuro */
.ubicacion.section--dark .ubicacion__card{ border-color:rgba(255,255,255,.14); }

/* =========================================================================
   CTA FINAL
   ========================================================================= */
.ctaFinal{ background:linear-gradient(135deg,var(--rojo) 0%,var(--rojo-700) 100%); color:#fff; text-align:center; }
.ctaFinal .eyebrow{ color:#fff; opacity:.9; }   /* sobre fondo rojo el rojo no se veía */
.ctaFinal__title{ font-size:clamp(2rem,6vw,3.6rem); margin-bottom:16px; }
.ctaFinal .hl{ color:#fff; text-decoration:underline; text-underline-offset:6px; }
.ctaFinal__sub{ font-size:1.12rem; max-width:56ch; margin:0 auto 28px; color:#ffe9ea; }
.ctaFinal__ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.ctaFinal .btn--wa{ background:#fff; color:var(--whatsapp-700); }
.ctaFinal .btn--wa::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231da851'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 01-1.587-5.946C.16 5.335 5.495 0 12.05 0a11.82 11.82 0 018.413 3.488 11.82 11.82 0 013.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 01-5.688-1.448L.057 24zM6.6 20.13c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.86 9.86 0 001.51 5.26l-.999 3.648 3.477-.917zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z'/%3E%3C/svg%3E"); }
.ctaFinal__micro{ color:#ffd9db; font-size:.95rem; margin-top:16px; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.footer{ background:var(--negro); color:#aeb3ba; padding:64px 0 110px; }
@media (min-width:768px){ .footer{ padding-bottom:64px; } }
.footer__grid{ display:grid; gap:34px; grid-template-columns:1fr; }
@media (min-width:760px){ .footer__grid{ grid-template-columns:1.4fr 1fr 1fr; } }
.footer__marca{ font-family:var(--fuente-display); font-weight:800; font-size:1.5rem; color:#fff; margin:0 0 8px; }
.footer__tagline{ color:var(--rojo); font-family:var(--fuente-display); font-weight:600; letter-spacing:.5px; font-size:.92rem; margin:0 0 18px; }
.footer p{ margin:.2em 0; }
.footer a{ transition:color var(--t); }
.footer a:hover{ color:#fff; }
.footer__col h4{ color:#fff; font-size:1.05rem; letter-spacing:1px; text-transform:uppercase; margin:0 0 14px; }
.footer__col li{ margin-bottom:10px; }
.footer__col li a{ font-size:.95rem; }
.footer__bottom{ margin-top:44px; padding-top:24px; border-top:1px solid rgba(255,255,255,.10);
  display:flex; flex-wrap:wrap; gap:12px 22px; align-items:center; justify-content:space-between; }
.footer__legales{ display:flex; flex-wrap:wrap; gap:8px 18px; }
.footer__legales a{ font-size:.9rem; }
.footer__copy{ font-size:.85rem; color:#7b838b; }

/* =========================================================================
   CTA STICKY (móvil) + botón flotante WhatsApp
   ========================================================================= */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:transparent;
  transform:translateY(0); transition:transform var(--t), opacity var(--t);
}
.sticky-cta.is-hidden{ transform:translateY(120%); opacity:0; pointer-events:none; }
@media (min-width:768px){ .sticky-cta{ display:none; } }

.fab-wa{
  position:fixed; z-index:95;
  right:max(16px, env(safe-area-inset-right));
  bottom:max(16px, env(safe-area-inset-bottom));
  width:58px; height:58px; border-radius:50%;
  background:var(--whatsapp); box-shadow:0 8px 22px rgba(37,211,102,.45);
  display:flex; align-items:center; justify-content:center;
  transition:transform var(--t), background var(--t);
}
.fab-wa:hover{ background:var(--whatsapp-700); transform:scale(1.06); }
.fab-wa:active{ transform:scale(.94); }
.fab-wa svg{ width:30px; height:30px; fill:#fff; }
/* En móvil se oculta el FAB circular (ya está la barra sticky inferior con WhatsApp) */
@media (max-width:767px){ .fab-wa{ display:none; } }

/* Botón "volver arriba" (solo móvil) */
.to-top{ display:none; }
@media (max-width:767px){
  .to-top{ display:flex; align-items:center; justify-content:center;
    position:fixed; z-index:96;
    right:16px; bottom:calc(78px + env(safe-area-inset-bottom));
    width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
    background:rgba(14,16,19,.85); color:#fff;
    opacity:0; pointer-events:none; transform:translateY(10px);
    transition:opacity var(--t), transform var(--t); }
  .to-top.is-visible{ opacity:1; pointer-events:auto; transform:none; }
  .to-top svg{ width:24px; height:24px; fill:#fff; }
}

/* =========================================================================
   PÁGINAS LEGALES
   ========================================================================= */
.legal-hero{ background:var(--negro); color:#fff; padding:48px 0; }
.legal-hero a.back{ color:#ff7b7e; font-family:var(--fuente-display); font-weight:600; letter-spacing:.5px; font-size:.9rem; }
.legal-hero h1{ font-size:clamp(2rem,5vw,3rem); margin-top:10px; }
.legal{ max-width:820px; margin-inline:auto; padding:56px 16px 90px; }
.legal h2{ font-size:1.5rem; margin:38px 0 14px; color:var(--negro); }
.legal h3{ font-size:1.15rem; margin:26px 0 10px; }
.legal p{ margin:0 0 14px; color:var(--texto); }
.legal ul{ list-style:disc; padding-left:22px; margin:0 0 16px; }
.legal li{ margin-bottom:8px; }
.legal a{ color:var(--rojo); text-decoration:underline; }
.legal .dato{ background:var(--gris-fondo); border-radius:10px; padding:18px 20px; margin:0 0 16px; }
.legal .dato strong{ display:inline-block; min-width:160px; }
.legal table{ width:100%; border-collapse:collapse; margin:0 0 20px; font-size:.95rem; }
.legal th,.legal td{ border:1px solid var(--borde); padding:10px 12px; text-align:left; vertical-align:top; }
.legal th{ background:var(--gris-fondo); font-family:var(--fuente-display); }
.legal .updated{ color:var(--texto-2); font-size:.9rem; margin-top:30px; }

/* =========================================================================
   DARK MODE (prefers-color-scheme)
   ========================================================================= */
@media (prefers-color-scheme: dark){
  :root{
    --blanco:#0e1013; --gris-fondo:#15181c; --texto:#e7e9ec; --texto-2:#a7abb2; --borde:#2a2e35;
  }
  body{ background:#0e1013; color:#e7e9ec; }
  .nav{ background:rgba(14,16,19,.92); border-bottom-color:#2a2e35; }
  .nav__logo .b{ color:#fff; }
  .section:not(.section--dark) .card-glass{ background:#16191e; border-color:#2a2e35; box-shadow:none; }
  .plan__titulo,.pack__nombre{ color:#fff; }
  .pack__precio{ background:#1c1f25; }
  .plan:hover,.kart:hover{ box-shadow:0 24px 60px rgba(0,0,0,.5); }
}
