:root{
  --verde: #62BF48;
  --verde-oscuro: #438F2E;
  --naranja: #F08918;
  --naranja2: #FF9821;
  --amarillo: #FAC04C;
  --azul1: #3F6C90;
  --azul2: #00C5D8;
  --azul-card: #2f80ed;
  --whatsapp: #25D366;
  --whatsapp-hover: #00d34d;
  --texto: #180909;
  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Poppins', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);color:var(--texto);line-height:1.6;overflow-x:hidden;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='none' stroke-width='2'%3E%3Cpath d='M-20,30 Q40,5 100,30 T220,30 T340,30' stroke='%2362BF48' stroke-opacity='0.05'/%3E%3Cpath d='M-20,90 Q40,65 100,90 T220,90 T340,90' stroke='%2300C5D8' stroke-opacity='0.05'/%3E%3Cpath d='M-20,150 Q40,125 100,150 T220,150 T340,150' stroke='%23FF9821' stroke-opacity='0.045'/%3E%3Cpath d='M-20,210 Q40,185 100,210 T220,210 T340,210' stroke='%2362BF48' stroke-opacity='0.045'/%3E%3C/g%3E%3Cg opacity='0.07'%3E%3Ccircle cx='34' cy='60' r='4' fill='%23FAC04C'/%3E%3Ccircle cx='190' cy='15' r='3' fill='%23FF9821'/%3E%3Ccircle cx='150' cy='180' r='5' fill='%2300C5D8'/%3E%3Ccircle cx='60' cy='200' r='3' fill='%2362BF48'/%3E%3Ccircle cx='215' cy='120' r='3.5' fill='%23F08918'/%3E%3C/g%3E%3C/svg%3E");
  background-size:240px 240px;
  background-repeat:repeat;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}

/* HEADER — blanco sólido, esquinas redondeadas abajo */
.site-header{
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.1);
  position:sticky;top:0;z-index:1000;
  border-radius:0 0 26px 26px;
}
.navbar{
  position:relative;
  max-width:1320px;margin:0 auto;padding:12px 24px;
  display:flex;align-items:center;gap:18px;
  font-family:var(--font-head);
}
/* Lados con igual peso => el logo del centro queda perfectamente centrado */
.nav-left{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:26px;justify-content:flex-end;}
.nav-end{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.nav-right{flex:0 0 auto;}
.nav-right,.menu-links{display:flex;gap:24px;align-items:center;}
.menu-links li a,.nav-right li a{
  font-weight:700;color:var(--texto);font-size:.85rem;letter-spacing:.3px;
  text-transform:uppercase;
  display:flex;align-items:center;gap:7px;transition:color .2s,opacity .2s;
  position:relative;padding:8px 2px;border-radius:8px;
}
.menu-links li a:hover,.nav-right li a:hover{color:var(--verde);}
/* Item activo: subrayado verde chunky */
.menu-links li a.active,.nav-right li a.active{color:var(--verde);}
.menu-links li a.active::after,.nav-right li a.active::after{
  content:"";position:absolute;left:2px;right:2px;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--verde),var(--azul2));border-radius:4px;
}
.menu-links li a .fa-chevron-down{font-size:.7rem;}
/* Logo grande, centrado entre los dos lados, desbordando hacia el banner (ya trae su propio círculo) */
.logo{
  flex:0 0 auto;position:relative;z-index:5;
  width:160px;height:56px;            /* caja reservada: no infla la franja */
  display:flex;align-items:center;justify-content:center;
}
.logo img{
  position:absolute;left:50%;top:50%;
  height:170px;width:auto;
  transform:translate(-50%,-38%);     /* grande, 25% más arriba */
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.25));
  transition:transform .3s;
}
.logo:hover img{transform:translate(-50%,-38%) scale(1.04);}
.has-dropdown{position:relative;}
.dropdown{
  position:absolute;top:130%;left:0;background:#fff;min-width:180px;
  border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.14);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:all .2s;padding:8px 0;z-index:10;
}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown li a{padding:9px 20px;display:block;font-weight:600;text-transform:none;letter-spacing:0;color:#1c1c1c!important;}
.dropdown li a:hover{background:#f4f4f4;color:var(--verde)!important;opacity:1;}
/* Redes sociales dentro de la barra, extremo derecho */
.header-social{display:flex;gap:10px;margin-left:6px;}
.header-social a{
  width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(24,9,9,.25);
  display:inline-flex;align-items:center;justify-content:center;color:var(--texto);font-size:.9rem;
  transition:background .2s,color .2s,border-color .2s;
}
.header-social a:hover{background:var(--verde);border-color:var(--verde);color:#fff;}

.nav-actions{display:flex;align-items:center;gap:20px;}
/* COMPRAR: pastilla chunky con degradado, estilo gráfico del hero */
.btn-buy{
  font-family:'Fredoka',var(--font-head);
  background:linear-gradient(135deg,#5DC44A 0%,#3BA532 55%,#1E6B2E 100%);
  color:#fff;font-weight:600;padding:9px 26px;font-size:1rem;line-height:1.1;
  text-transform:uppercase;letter-spacing:.6px;
  border-radius:40px;display:flex;align-items:center;gap:10px;
  border:2px solid #fff;
  box-shadow:0 8px 18px rgba(75,163,46,.45), inset 0 2px 0 rgba(255,255,255,.35);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,filter .2s;
  animation:buyPulse 1.7s ease-in-out infinite;
}
@keyframes buyPulse{
  0%,100%{transform:scale(1);box-shadow:0 8px 18px rgba(75,163,46,.45), inset 0 2px 0 rgba(255,255,255,.35);}
  50%{transform:scale(1.06);box-shadow:0 10px 22px rgba(75,163,46,.6), inset 0 2px 0 rgba(255,255,255,.4);}
}
.btn-buy i{font-size:1.05rem;}
.btn-buy:hover{
  animation-play-state:paused;
  transform:translateY(-2px) scale(1.08);filter:saturate(1.1);
  box-shadow:0 12px 24px rgba(75,163,46,.55), inset 0 2px 0 rgba(255,255,255,.4);
}
.btn-buy:active{transform:translateY(0) scale(.99);}
@media (prefers-reduced-motion:reduce){ .btn-buy{animation:none;} }
/* Carrito: bolsa con badge rojo */
.cart-icon{position:relative;font-size:1.55rem;color:#2a2a2a;display:inline-flex;transition:transform .18s,color .2s;}
.cart-icon:hover{color:var(--verde);transform:translateY(-2px);}
.cart-count{
  position:absolute;top:-7px;right:-9px;
  background:linear-gradient(135deg,#ff5b5b,#e53935);color:#fff;
  font-family:var(--font-head);font-size:.7rem;font-weight:700;line-height:1;
  min-width:19px;height:19px;padding:0 4px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;box-shadow:0 2px 5px rgba(229,57,53,.5);
}

.menu-toggle{display:none;background:none;border:0;font-size:1.4rem;cursor:pointer;color:var(--texto);}

/* HERO — escenario por capas con parallax 3D */
.hero{width:100%;background:#1a8fe0;line-height:0;position:relative;overflow:visible;}
.hero-stage{
  position:relative;width:100%;aspect-ratio:1920 / 640;
  overflow:visible;
}
/* Recorta sólo fondo/sol/texto al marco del hero; la frase queda libre para sobresalir */
.hero-clip{position:absolute;inset:0;overflow:hidden;}
/* Shape divider: curva blanca que da paso a la siguiente sección */
.hero-divider{
  position:absolute;left:0;bottom:-1px;width:100%;height:9%;
  z-index:2;pointer-events:none;
}
/* Contenedor de cada capa: recibe el desplazamiento parallax del mouse */
.layer{
  position:absolute;inset:0;
  will-change:transform;
  transition:transform .35s cubic-bezier(.22,.61,.36,1);
}
.layer-frase-wrap{z-index:3;}
/* Posición de cada capa = left/top/width  ·  Flotación = transform  ·  Entrada = opacity */
.layer-img{position:absolute;will-change:transform,opacity;}

/* --- FONDO: llena el marco 3:1, zoom-out lento + respiración --- */
.layer-bg{
  inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;transform-origin:center;
  animation:bgZoomOut 9s ease-out forwards, bgBreathe 16s ease-in-out 9s infinite;
}
@keyframes bgZoomOut{ from{transform:scale(1.16);} to{transform:scale(1.04);} }
@keyframes bgBreathe{ 0%,100%{transform:scale(1.04);} 50%{transform:scale(1.09);} }

/* --- TEXTO "SOL todo el año": izquierda --- */
.layer-text{
  width:94.3%; left:-26.4%; top:5.5%; height:auto;
  opacity:0; animation:fadeIn .9s ease-out .2s forwards, floatA 6.5s ease-in-out 1.1s infinite;
}

/* --- SOL: centro-izquierda --- */
.layer-sun{
  width:29.9%; left:24.5%; top:1.7%; height:auto; transform-origin:center;
  opacity:0; animation:fadeIn .9s ease-out 0s forwards, floatSun 5s ease-in-out 1s infinite;
}

/* --- FRASE verde: abajo-centro, sobresale del hero hacia la siguiente sección --- */
.layer-frase{
  width:55.6%; left:21.5%; top:70%; height:auto;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.25));
  opacity:0; animation:fadeIn .9s ease-out .45s forwards, floatB 7.5s ease-in-out 1.4s infinite;
}

.mobile-hero-poster{display:none;}

@keyframes fadeIn{ to{opacity:1;} }
@keyframes floatA{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);} }
@keyframes floatB{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-7px);} }
@keyframes floatSun{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-16px) rotate(1.4deg);}
}

@media (prefers-reduced-motion:reduce){
  .layer,.layer-img{animation:none !important;transform:none !important;opacity:1 !important;}
}

/* SECTION GENERIC */
.section{padding:70px 20px;max-width:1280px;margin:0 auto;text-align:center;}
.eyebrow{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,152,33,.12);color:var(--naranja2);font-family:'Fredoka',var(--font-head);
  font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:.8rem;
  padding:7px 18px;border-radius:30px;margin-bottom:14px;
}
.section h2{
  font-family:'Fredoka',var(--font-head);font-size:2.3rem;font-weight:700;
  color:var(--texto);margin-bottom:10px;letter-spacing:.3px;
}

/* SHAPE DIVIDERS — olas conectoras entre bloques de color */
.wave-divider{position:absolute;left:0;display:block;width:100%;height:60px;z-index:5;pointer-events:none;}
.wave-top{top:-1px;}
.wave-bottom{bottom:-1px;}

/* INTRO DE SERVICIOS — encabezado con línea gráfica del sitio */
.services-intro{
  padding-bottom:6px;position:relative;
}
.services-intro .eyebrow{
  background:linear-gradient(90deg,rgba(98,191,72,.14),rgba(255,152,33,.14));
  color:var(--verde-oscuro);border:2px dashed rgba(255,152,33,.45);gap:8px;
}
.services-intro .eyebrow i{color:var(--naranja2);}
.services-intro h2{
  font-family:'Fredoka',var(--font-head);font-size:2.6rem;
  text-shadow:0 3px 0 rgba(0,0,0,.06);
}
.services-intro h2 .accent{
  color:var(--verde);position:relative;
}
.title-underline{
  display:block;width:220px;height:16px;margin:6px auto 0;overflow:visible;
}
.title-underline path{
  fill:none;stroke:url(#underlineGrad);stroke-width:5;stroke-linecap:round;
}
/* Decoraciones flotantes a los costados del encabezado */
.intro-deco{
  position:absolute;width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;
  box-shadow:0 8px 16px rgba(0,0,0,.15);
}
.intro-deco--sun{
  top:6px;left:calc(50% - 230px);background:linear-gradient(135deg,var(--amarillo),var(--naranja2));
  animation:floatA 5s ease-in-out infinite;
}
.intro-deco--drop{
  top:20px;left:calc(50% + 190px);background:linear-gradient(135deg,#5fd0ee,var(--azul-card));
  animation:floatB 6s ease-in-out infinite;
}
@media (max-width:768px){ .intro-deco{display:none;} }
.services-cards{
  padding-top:10px;position:relative;
}
.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 28px;}

/* Pop-in al hacer scroll: cada tarjeta "rebota" desde abajo, con una mancha de color detrás */
.card-pop{
  --rot-start:-9deg; --rot-end:-1.2deg;
  position:relative;
  opacity:0;
  transform:translateY(130px) scale(.82) rotate(var(--rot-start));
  transition:transform .85s cubic-bezier(.34,1.56,.64,1), opacity .5s ease-out;
}
.cards-grid .card-pop:nth-child(even){--rot-start:9deg; --rot-end:1.2deg;}
.card-pop.in-view{
  opacity:1;
  transform:translateY(0) scale(1) rotate(var(--rot-end));
}
.card-pop.in-view:hover{transform:translateY(0) scale(1) rotate(0deg);}
.card-splash{
  position:absolute;inset:18px -14px -22px 14px;z-index:0;
  border-radius:42% 58% 65% 35% / 45% 40% 60% 55%;
  opacity:0;transform:translateY(60px) scale(.7);
  transition:transform .9s cubic-bezier(.34,1.56,.64,1) .05s, opacity .6s ease-out .05s;
}
.card-pop.in-view .card-splash{opacity:.95;transform:translateY(0) scale(1) rotate(-6deg);}
.splash--orange{background:linear-gradient(135deg,#ffd97a,#ff7a18);}
.splash--blue{background:linear-gradient(135deg,#8fe3ff,#1f8fe0);}
.splash--green{background:linear-gradient(135deg,#bdf28a,#438F2E);}
.splash--red{background:linear-gradient(135deg,#ffb199,#e8453c);}

.service-card{
  display:block;position:relative;z-index:1;background:#fff;border-radius:22px;
  border:4px solid #fff;box-shadow:0 10px 0 rgba(0,0,0,.06),0 14px 26px rgba(0,0,0,.14);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .25s;
}
.service-card-img{display:block;border-radius:18px;overflow:hidden;}
.service-card:hover{
  transform:translateY(-8px) scale(1.03);
  box-shadow:0 10px 0 rgba(0,0,0,.06),0 22px 36px rgba(0,0,0,.22);
}
.service-card--orange{border-color:#ffd9ad;}
.service-card--orange:hover{border-color:var(--naranja2);}
.service-card--blue{border-color:#bfe6f7;}
.service-card--blue:hover{border-color:#29b6e8;}
.service-card--green{border-color:#cdeac1;}
.service-card--green:hover{border-color:var(--verde);}
.service-card--red{border-color:#ffc9c9;}
.service-card--red:hover{border-color:#e8453c;}
/* Insignia circular tipo sticker, sobresale en la esquina de la tarjeta */
.service-badge{
  position:absolute;top:-14px;left:16px;z-index:2;
  width:46px;height:46px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;
  border:3px solid currentColor;box-shadow:0 6px 12px rgba(0,0,0,.18);
  transform:rotate(-8deg);transition:transform .3s;
}
.service-card:hover .service-badge{transform:rotate(4deg) scale(1.08);}
.service-card--orange .service-badge{color:var(--naranja2);}
.service-card--blue .service-badge{color:#1f9fd6;}
.service-card--green .service-badge{color:var(--verde-oscuro);}
.service-card--red .service-badge{color:#e8453c;}
.service-card img{width:100%;height:auto;display:block;object-fit:contain;}

/* FEATURES STRIP */
.features-strip{
  position:relative;overflow:hidden;
  background-color:var(--naranja2);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='300' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.16' stroke-width='2'%3E%3Cpath d='M-20,40 C60,10 140,80 220,40 C300,0 360,60 440,30'/%3E%3Cpath d='M-20,110 C60,80 140,150 220,110 C300,70 360,130 440,100'/%3E%3Cpath d='M-20,180 C60,150 140,220 220,180 C300,140 360,200 440,170'/%3E%3Cpath d='M-20,250 C60,220 140,290 220,250 C300,210 360,270 440,240'/%3E%3C/g%3E%3C/svg%3E");
  background-size:480px 360px;
  display:flex;flex-wrap:wrap;justify-content:center;gap:28px;
  padding:88px 20px 100px;color:#fff;font-family:'Fredoka',var(--font-head);
  box-shadow:inset 0 14px 30px rgba(0,0,0,.12),inset 0 -14px 30px rgba(0,0,0,.12);
}
/* Pop-in al hacer scroll, igual que las tarjetas de servicios */
.feature-pop{
  --rot-start:-4deg; --rot-end:-0.6deg;
  opacity:0;
  transform:translateY(110px) scale(.82) rotate(var(--rot-start));
  transition:transform .85s cubic-bezier(.34,1.56,.64,1), opacity .5s ease-out;
}
.features-strip .feature-pop:nth-child(even){--rot-start:4deg; --rot-end:0.6deg;}
.feature-pop.in-view{
  opacity:1;
  transform:translateY(0) scale(1) rotate(var(--rot-end));
}
.feature-pop.in-view:hover{transform:translateY(-6px) scale(1.03) rotate(0deg);}
.feature-item{
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  width:220px;min-height:170px;padding:30px 18px 26px;
  background:var(--azul-card);border-radius:26px;border:3px solid rgba(255,255,255,.5);
  box-shadow:0 10px 0 rgba(0,0,0,.15),0 22px 30px rgba(0,0,0,.22);
  transition:box-shadow .25s;
}
.feature-pop.in-view:hover .feature-item{
  box-shadow:0 14px 0 rgba(0,0,0,.15),0 28px 36px rgba(0,0,0,.28);
}
.feature-item span:last-child{
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:1.08rem;
  text-align:center;line-height:1.35;
}
/* Insignia circular blanca tras el emoji, estilo sticker */
.feature-icon{
  width:64px;height:64px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:2rem;line-height:1;box-shadow:0 6px 12px rgba(0,0,0,.2);
  transform:rotate(-4deg);transition:transform .3s;
}
.feature-pop.in-view:hover .feature-icon{transform:rotate(3deg) scale(1.08);}

/* GALLERY (camping) */
.camping-section{background:transparent;position:relative;overflow:hidden;}
.camping-section .eyebrow{
  background:rgba(98,191,72,.14);color:var(--verde-oscuro);
  border:2px dashed rgba(98,191,72,.4);gap:8px;
}
.camping-section .eyebrow i{color:var(--verde);}
.camping-section h2 .accent{color:var(--verde);}

.gallery-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;
}
/* Pop-in tipo "baraja": las fotos arrancan apiladas en el centro y se reparten a su lugar */
.gallery-grid img,.restaurant-grid img{
  width:100%;height:260px;object-fit:cover;border-radius:18px;
  border:3px solid #fff;box-shadow:0 10px 22px rgba(67,143,46,.18);
  opacity:0;
  transform:translate(var(--dx,0px),var(--dy,0px)) scale(.3) rotate(var(--rot-rand,0deg));
  transition:transform .9s cubic-bezier(.22,1.4,.36,1),opacity .5s ease-out,box-shadow .3s;
  transition-delay:var(--pop-delay,0s);
}
.gallery-grid.in-view img,.restaurant-grid.in-view img{
  opacity:1;
  transform:translate(0,0) scale(1) rotate(var(--rot-final,0deg));
}
.gallery-grid.in-view img:hover,.restaurant-grid.in-view img:hover{
  transform:translateY(-5px) scale(1.04) rotate(0deg);
  box-shadow:0 14px 28px rgba(67,143,46,.3);
}
.gallery-grid img:nth-child(1){--rot-final:-1.2deg;--pop-delay:.05s;}
.gallery-grid img:nth-child(2){--rot-final:0.8deg;--pop-delay:.15s;}
.gallery-grid img:nth-child(3){--rot-final:-0.8deg;--pop-delay:.25s;}
.gallery-grid img:nth-child(4){--rot-final:1.2deg;--pop-delay:.1s;}
.gallery-grid img:nth-child(5){--rot-final:-0.6deg;--pop-delay:.2s;}
.gallery-grid img:first-child{grid-row:span 2;height:100%;}
.restaurant-grid img{height:220px;box-shadow:0 10px 22px rgba(240,137,24,.2);}
.restaurant-grid.in-view img:hover{box-shadow:0 14px 28px rgba(240,137,24,.32);}

/* BIRTHDAY & HOURS — rich animated cards */
.bh-section{padding-top:20px;padding-bottom:20px;text-align:left;}
.bh-grid{
  /* Sin !important: lo llevaba y bloqueaba las reglas de móvil, así que en el
     teléfono seguían saliendo dos columnas de 164 px y el texto se pisaba.
     auto-fit parte en una sola columna en cuanto no caben dos tarjetas. */
  display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:32px;
  max-width:1120px;margin:0 auto;
}

/* --- shared card --- */
.bh-card{
  position:relative;border-radius:28px;overflow:hidden;
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;
}

/* --- BIRTHDAY CARD --- */
.bh-card--birthday{
  background:linear-gradient(145deg,#FFF7ED 0%,#FFF0E0 50%,#FFE8CC 100%);
  border:2px solid rgba(232,109,14,.18);
  box-shadow:0 8px 32px rgba(232,109,14,.12),0 2px 6px rgba(232,109,14,.06);
}
.bh-card--birthday:hover{
  transform:translateY(-6px) scale(1.01);
  box-shadow:0 20px 50px rgba(232,109,14,.22),0 4px 12px rgba(232,109,14,.10);
}

/* glow pulse behind birthday card */
.bh-card__glow{
  position:absolute;top:-40%;left:-20%;width:140%;height:140%;
  background:radial-gradient(circle,rgba(255,202,46,.25) 0%,transparent 60%);
  opacity:0;transition:opacity .5s ease;pointer-events:none;
}
.bh-card--birthday:hover .bh-card__glow{opacity:1;}

/* confetti container */
.bh-confetti{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2;
}
.bh-confetti span{
  position:absolute;top:-20px;
  width:8px;height:18px;border-radius:2px;
  opacity:0;
  transform:translateY(-30px) rotate(0deg);
}
.bh-card--birthday:hover .bh-confetti span{
  animation:confettiFall 1.2s ease forwards;
}

.bh-confetti span:nth-child(1){left:8%;background:#E86D0E;animation-delay:.0s;}
.bh-confetti span:nth-child(2){left:15%;background:#FFCA2E;width:6px;height:14px;animation-delay:.06s;}
.bh-confetti span:nth-child(3){left:22%;background:#0EADD6;animation-delay:.12s;}
.bh-confetti span:nth-child(4){left:30%;background:#e0218a;width:10px;height:10px;border-radius:50%;animation-delay:.04s;}
.bh-confetti span:nth-child(5){left:38%;background:#4DB840;animation-delay:.15s;}
.bh-confetti span:nth-child(6){left:45%;background:#F2A01C;width:6px;height:16px;animation-delay:.08s;}
.bh-confetti span:nth-child(7){left:52%;background:#0B4EA0;animation-delay:.18s;}
.bh-confetti span:nth-child(8){left:58%;background:#FFCA2E;width:10px;height:10px;border-radius:50%;animation-delay:.02s;}
.bh-confetti span:nth-child(9){left:65%;background:#e0218a;animation-delay:.10s;}
.bh-confetti span:nth-child(10){left:72%;background:#4DB840;width:7px;height:15px;animation-delay:.14s;}
.bh-confetti span:nth-child(11){left:78%;background:#E86D0E;animation-delay:.07s;}
.bh-confetti span:nth-child(12){left:84%;background:#0EADD6;width:10px;height:10px;border-radius:50%;animation-delay:.20s;}
.bh-confetti span:nth-child(13){left:90%;background:#F2A01C;animation-delay:.03s;}
.bh-confetti span:nth-child(14){left:12%;background:#4DB840;width:6px;height:6px;border-radius:50%;animation-delay:.22s;}
.bh-confetti span:nth-child(15){left:35%;background:#e0218a;width:5px;height:14px;animation-delay:.16s;}
.bh-confetti span:nth-child(16){left:48%;background:#FFCA2E;animation-delay:.11s;}
.bh-confetti span:nth-child(17){left:55%;background:#E86D0E;width:8px;height:8px;border-radius:50%;animation-delay:.19s;}
.bh-confetti span:nth-child(18){left:68%;background:#0B4EA0;width:6px;height:16px;animation-delay:.05s;}
.bh-confetti span:nth-child(19){left:82%;background:#4DB840;animation-delay:.13s;}
.bh-confetti span:nth-child(20){left:95%;background:#e0218a;width:9px;height:9px;border-radius:50%;animation-delay:.09s;}

@keyframes confettiFall{
  0%{opacity:1;transform:translateY(-20px) rotate(0deg) scale(.7);}
  25%{opacity:1;}
  100%{opacity:0;transform:translateY(420px) rotate(calc(200deg + var(--r,80deg))) scale(1);}
}
.bh-confetti span:nth-child(odd){--r:120deg;}
.bh-confetti span:nth-child(3n){--r:260deg;}
.bh-confetti span:nth-child(4n+1){--r:45deg;}

/* promo badge */
.bh-badge{
  /* flex + fit-content en vez de inline-flex: como caja en línea compartía
     renglón con el icono de la tarta y quedaban desalineados verticalmente.
     Así ocupa su propia línea, que es lo que ya suponía su margin-bottom. */
  display:flex;width:fit-content;align-items:center;gap:8px;
  background:linear-gradient(135deg,#E86D0E,#F2A01C);
  color:#fff;font-size:.72rem;font-weight:800;letter-spacing:1.2px;
  padding:7px 16px;border-radius:50px;margin-bottom:20px;
  text-transform:uppercase;
  box-shadow:0 4px 14px rgba(232,109,14,.30);
  animation:badgePulse 2s ease-in-out infinite;
}
@keyframes badgePulse{
  0%,100%{box-shadow:0 4px 14px rgba(232,109,14,.30);}
  50%{box-shadow:0 4px 22px rgba(232,109,14,.50);}
}

/* sparkle stars around cake icon */
.bh-card__icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;}
.bh-card__icon-wrap--party{
  width:80px;height:80px;border-radius:50%;
  position:relative;
  background:linear-gradient(135deg,#FFE0A0,#FFCA2E);
  color:#E86D0E;font-size:2rem;
  display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:22px;
  box-shadow:0 6px 20px rgba(255,202,46,.35);
  animation:iconFloat 3s ease-in-out infinite;
}
@keyframes iconFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-6px);}
}

.bh-sparkle{
  position:absolute !important;display:block;
  color:#FFCA2E;font-size:.6rem;
  animation:sparkleAnim 1.5s ease-in-out infinite;
  pointer-events:none;z-index:3;
}
.bh-sparkle--1{top:-6px;right:-4px;animation-delay:0s;}
.bh-sparkle--2{top:4px;left:-10px;animation-delay:.5s;color:#E86D0E;font-size:.5rem;}
.bh-sparkle--3{bottom:0;right:-8px;animation-delay:1s;font-size:.45rem;color:#F2A01C;}
@keyframes sparkleAnim{
  0%,100%{opacity:.3;transform:scale(.6) rotate(0deg);}
  50%{opacity:1;transform:scale(1.2) rotate(180deg);}
}

.bh-card__body{position:relative;z-index:1;padding:32px 30px 30px;text-align:left;}

.bh-card__title{
  font-family:'Fredoka',var(--font-head);font-size:1.65rem;font-weight:700;
  line-height:1.2;margin-bottom:14px;color:var(--texto) !important;
}
.bh-card--birthday .bh-card__title span{
  color:#E86D0E;
  background:linear-gradient(135deg,#E86D0E,#F2A01C);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.bh-card__title--blue{color:var(--texto) !important;}

.bh-card__desc{
  font-size:.95rem;line-height:1.65;color:#5A4A3A !important;margin-bottom:20px;
}
.bh-card__desc strong{
  color:#E86D0E !important;font-weight:700;
  background:linear-gradient(135deg,rgba(232,109,14,.12),rgba(242,160,28,.12));
  padding:1px 6px;border-radius:4px;
  -webkit-text-fill-color:#E86D0E;
}

.bh-card__note{
  display:flex;align-items:center;gap:12px;text-align:left;
  background:linear-gradient(135deg,rgba(232,109,14,.08),rgba(255,202,46,.10));
  border:1px solid rgba(232,109,14,.15);
  border-radius:14px;padding:14px 18px;
  font-size:.84rem;line-height:1.5;color:#6B4A1A !important;
}
.bh-card__note i{color:#E86D0E;font-size:1.1rem;flex-shrink:0;}
.bh-card__note strong{color:#E86D0E;}

/* --- HOURS CARD --- */
.bh-card--hours{
  background:linear-gradient(145deg,#EEF5FF 0%,#E4EFFE 50%,#D8E8FF 100%);
  border:2px solid rgba(11,78,160,.12);
  box-shadow:0 8px 32px rgba(11,78,160,.10),0 2px 6px rgba(11,78,160,.05);
}
.bh-card--hours:hover{
  transform:translateY(-6px) scale(1.01);
  box-shadow:0 20px 50px rgba(11,78,160,.18),0 4px 12px rgba(11,78,160,.08);
}

.bh-card__icon-wrap--clock{
  width:80px;height:80px;border-radius:50%;
  background:linear-gradient(135deg,#B8D4F0,#6AADEA);
  color:#0B4EA0;font-size:2rem;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
  box-shadow:0 6px 20px rgba(11,78,160,.25);
  animation:iconFloat 3s ease-in-out infinite .5s;
}

.bh-card__subtitle{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.85rem;font-weight:600;color:#4A7DBF;
  background:rgba(11,78,160,.06);padding:6px 14px;border-radius:8px;
  margin-bottom:24px;
}
.bh-card__subtitle i{color:#0EADD6;font-size:.9rem;}

.bh-card__schedule{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.bh-card__schedule li{
  /* Si la tarjeta se queda estrecha, la hora baja a su propia línea
     en vez de montarse encima del día */
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:8px 12px;
  padding:18px 20px;border-radius:16px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(11,78,160,.08);
  transition:all .25s ease;
}
.bh-card__schedule li:hover{
  background:rgba(255,255,255,.95);
  box-shadow:0 4px 16px rgba(11,78,160,.10);
  transform:translateX(4px);
}
.bh-card__schedule--highlight{
  background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(77,184,64,.06)) !important;
  border-color:rgba(77,184,64,.15) !important;
}
.bh-card__day-wrap{display:flex;align-items:center;gap:10px;min-width:0;}
.bh-card__day-wrap i{color:#0EADD6;font-size:.85rem;flex-shrink:0;}
.bh-card__day{font-weight:700;color:var(--texto);font-size:.95rem;}
.bh-card__time{
  font-weight:800;color:#fff;font-size:.88rem;
  background:linear-gradient(135deg,#0B4EA0,#0EADD6);
  padding:8px 16px;border-radius:10px;
  box-shadow:0 3px 10px rgba(11,78,160,.20);
  letter-spacing:.3px;
  /* La hora nunca se parte en varias líneas: o cabe al lado, o baja entera */
  white-space:nowrap;
}

/* RESTAURANT */
.restaurant-section .eyebrow{
  background:rgba(232,69,60,.12);color:#c43a30;
  border:2px dashed rgba(232,69,60,.4);gap:8px;
}
.restaurant-section .eyebrow i{color:#e8453c;}
.restaurant-section h2 .accent{color:#e8453c;}

.restaurant-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;}
.restaurant-grid img:nth-child(1){--rot-final:-1.2deg;--pop-delay:.05s;}
.restaurant-grid img:nth-child(2){--rot-final:0.9deg;--pop-delay:.15s;}
.restaurant-grid img:nth-child(3){--rot-final:-0.9deg;--pop-delay:.25s;}
.restaurant-grid img:nth-child(4){--rot-final:1.2deg;--pop-delay:.35s;}

/* WHATSAPP CTA */
.whatsapp-cta{
  position:relative;
  background:#f1fbf0;border-radius:28px;margin:0 auto 70px;max-width:1100px;
  padding:54px 20px 50px;border:3px dashed rgba(37,211,102,.45);box-shadow:0 14px 30px rgba(37,211,102,.18);
}
/* Pop-in al hacer scroll, igual que el resto de bloques */
.pop-fade{opacity:0;transform:translateY(50px) scale(.92);transition:transform .8s cubic-bezier(.34,1.56,.64,1),opacity .5s ease-out;}
.pop-fade.in-view{opacity:1;transform:translateY(0) scale(1);}
.cta-icon{
  display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
  width:64px;height:64px;border-radius:50%;color:#fff;font-size:1.8rem;
  background:linear-gradient(135deg,#3ee07f,var(--whatsapp));
  box-shadow:0 8px 18px rgba(37,211,102,.4);
}
.whatsapp-cta h2{font-family:'Fredoka',var(--font-head);font-size:2.1rem;font-weight:700;margin-bottom:10px;}
.whatsapp-cta h3{font-size:1.05rem;font-weight:500;color:#555;margin-bottom:24px;}
.btn-whatsapp{
  font-family:'Fredoka',var(--font-head);
  background:linear-gradient(135deg,#3ee07f 0%,var(--whatsapp) 60%,#1cb854 100%);
  color:#fff;font-weight:600;padding:15px 32px;text-transform:uppercase;letter-spacing:.5px;
  border-radius:30px;display:inline-flex;align-items:center;gap:10px;font-size:1.05rem;
  border:2px solid #fff;
  box-shadow:0 8px 18px rgba(37,211,102,.45), inset 0 2px 0 rgba(255,255,255,.35);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;
}
.btn-whatsapp:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 12px 24px rgba(37,211,102,.55), inset 0 2px 0 rgba(255,255,255,.4);}

/* UBICACIÓN */
.location-section .eyebrow{
  background:rgba(47,128,237,.12);color:var(--azul-card);
  border:2px dashed rgba(47,128,237,.4);gap:8px;
}
.location-section .eyebrow i{color:var(--azul-card);}
.location-section h2 .accent{color:var(--azul-card);}

.location-layout{
  display:grid;grid-template-columns:1.4fr 1fr;gap:28px;
  margin-top:30px;text-align:left;align-items:stretch;
}
/* MAP */
.map-wrap{
  position:relative;border-radius:20px;overflow:hidden;
  border:3px solid #fff;box-shadow:0 10px 26px rgba(63,108,144,.22);
  transition:transform .3s,box-shadow .3s;
}
.map-wrap:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(63,108,144,.32);}
.map-pin{
  position:absolute;top:-16px;left:26px;z-index:2;
  width:50px;height:50px;border-radius:50%;background:#e8453c;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
  border:3px solid #fff;box-shadow:0 8px 16px rgba(0,0,0,.25);
  transform:rotate(-8deg);animation:floatA 4s ease-in-out infinite;
}
.location-card{
  background:#fff;border-radius:22px;border:3px solid #eef3f0;
  box-shadow:0 14px 30px rgba(0,0,0,.08);
  padding:30px 28px;display:flex;flex-direction:column;gap:18px;justify-content:center;
}
.location-item{display:flex;gap:14px;align-items:flex-start;}
.location-icon{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:rgba(47,128,237,.12);color:var(--azul-card);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
}
.location-item strong{font-family:'Fredoka',var(--font-head);font-size:1rem;display:block;margin-bottom:3px;}
.location-item p{font-size:.88rem;color:#555;margin:0;line-height:1.45;}
.location-btn{
  align-self:flex-start;margin-top:4px;
  background:linear-gradient(135deg,#5fa8ff 0%,var(--azul-card) 55%,#1f63c4 100%);
  box-shadow:0 8px 18px rgba(47,128,237,.4), inset 0 2px 0 rgba(255,255,255,.35);
}
@media (max-width:900px){
  .location-layout{grid-template-columns:1fr;}
}

/* FOOTER */
.site-footer{
  position:relative;overflow:hidden;
  background-color:var(--azul1);
  background-image:
    linear-gradient(135deg,var(--azul2),var(--azul1)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='300' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.12' stroke-width='2'%3E%3Cpath d='M-20,40 C60,10 140,80 220,40 C300,0 360,60 440,30'/%3E%3Cpath d='M-20,110 C60,80 140,150 220,110 C300,70 360,130 440,100'/%3E%3Cpath d='M-20,180 C60,150 140,220 220,180 C300,140 360,200 440,170'/%3E%3Cpath d='M-20,250 C60,220 140,290 220,250 C300,210 360,270 440,240'/%3E%3C/g%3E%3C/svg%3E");
  background-size:cover,480px 360px;
  color:#fff;margin-top:40px;
}
.footer-top{
  position:relative;z-index:1;
  max-width:1280px;margin:0 auto;padding:60px 20px 30px;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;
}
.footer-top .pop-fade:nth-child(1){transition-delay:0s;}
.footer-top .pop-fade:nth-child(2){transition-delay:.1s;}
.footer-top .pop-fade:nth-child(3){transition-delay:.2s;}
.footer-top .pop-fade:nth-child(4){transition-delay:.3s;}
/* Logo en insignia blanca circular, para que resalte sobre el degradado */
.footer-logo-wrap{
  display:inline-flex;align-items:center;justify-content:center;
  width:84px;height:84px;border-radius:50%;background:#fff;
  margin-bottom:16px;box-shadow:0 8px 18px rgba(0,0,0,.22);border:3px solid rgba(255,255,255,.6);
}
.footer-logo{height:68px;width:auto;}
.footer-brand p{font-size:.9rem;opacity:.9;}
.footer-col h2{
  font-family:'Fredoka',var(--font-head);font-weight:600;margin-bottom:16px;font-size:1.1rem;
  display:flex;align-items:center;gap:9px;
}
.footer-col h2 i{
  width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--amarillo);
}
.footer-col ul li{margin-bottom:10px;font-size:.92rem;}
.footer-col ul li a{display:flex;align-items:center;gap:8px;opacity:.9;transition:opacity .2s;}
.footer-col ul li a:hover{opacity:1;text-decoration:underline;}
.social-icons{display:flex;gap:12px;}
.social-icons a{
  width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);
  border:2px solid rgba(255,255,255,.5);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
  transition:background .2s,color .2s,transform .25s cubic-bezier(.34,1.56,.64,1);
}
.social-icons a:hover{background:#fff;color:var(--azul1);transform:translateY(-3px) scale(1.08);}

.footer-bottom{
  position:relative;z-index:1;
  border-top:1px solid rgba(255,255,255,.25);
  max-width:1280px;margin:0 auto;padding:20px 20px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  font-size:.85rem;
}
.legal-links{display:flex;gap:20px;flex-wrap:wrap;opacity:.9;}
.legal-links a:hover{text-decoration:underline;}
.payment-icons{display:flex;gap:10px;opacity:.95;}
.payment-icons span{
  width:36px;height:28px;border-radius:6px;background:rgba(255,255,255,.92);color:var(--azul1);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;
}

/* FLOATING WHATSAPP */
.float-whatsapp{
  position:fixed;bottom:15px;right:15px;z-index:999;
  width:56px;height:56px;background:var(--whatsapp);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.8rem;
  box-shadow:0 6px 18px rgba(0,0,0,.25);transition:background .2s;
}
.float-whatsapp:hover{background:var(--whatsapp-hover);}
.float-tooltip{
  position:absolute;right:64px;background:#fff;color:var(--texto);
  padding:8px 14px;border-radius:8px;font-size:.8rem;font-weight:600;
  white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.15);
  opacity:0;visibility:hidden;transition:all .2s;
}
.float-whatsapp:hover .float-tooltip{opacity:1;visibility:visible;}

/* ===== PÁGINA DE ENTRADAS ===== */

/* Hero compacto para la página de entradas */
.tickets-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(110deg,#10BE96 0%,#10AED0 50%,#1678E8 100%);
  padding:42px 20px 68px;text-align:center;color:#fff;
}
.tickets-hero .eyebrow{
  background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.35);
  gap:8px;margin-bottom:10px;font-size:.78rem;letter-spacing:.8px;
}
.tickets-hero .eyebrow i{color:var(--amarillo);}
.tickets-hero h1{
  font-family:'Fredoka',var(--font-head);font-size:2rem;font-weight:700;color:#fff;
  max-width:680px;margin:0 auto;line-height:1.2;
}
.tickets-hero h1 .accent{color:var(--amarillo);}
.tickets-hero-logo{display:none;}

/* Tabs */
.ticket-tabs{
  display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:46px;
}
.ticket-tab{
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.95rem;
  background:#fff;color:var(--texto);border:2px solid #eef0ee;
  padding:13px 26px;border-radius:40px;cursor:pointer;display:inline-flex;align-items:center;gap:9px;
  box-shadow:0 6px 14px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s,background .2s,color .2s;
}
.ticket-tab:hover{transform:translateY(-2px);}
.ticket-tab.active{
  background:linear-gradient(135deg,#5DC44A 0%,#3BA532 55%,#1E6B2E 100%);
  color:#fff;border-color:#fff;box-shadow:0 10px 20px rgba(75,163,46,.4);
}

.ticket-panel{display:none;}
.ticket-panel.active{display:block;}

/* Tarjetas de entradas (reutiliza .card-pop / .card-splash) */
.ticket-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;justify-content:center;}
.ticket-grid.ticket-grid-3{grid-template-columns:repeat(3,1fr);}
/* Entradas al Club: tarjetas más compactas y centradas */
#tab-club .ticket-grid{max-width:760px;margin:0 auto;}
#tab-club .ticket-card{max-width:340px;margin:0 auto;}
.ticket-card{
  display:block;position:relative;z-index:1;background:#fff;border-radius:22px;
  border:4px solid #fff;box-shadow:0 10px 0 rgba(0,0,0,.06),0 14px 26px rgba(0,0,0,.14);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .25s;
}
.ticket-card-img{display:block;border-radius:18px 18px 0 0;overflow:hidden;background:#f4f7f5;}
.ticket-card:hover{
  transform:translateY(-8px) scale(1.02);
  box-shadow:0 10px 0 rgba(0,0,0,.06),0 22px 36px rgba(0,0,0,.22);
}
.ticket-card--blue{border-color:#bfe6f7;}
.ticket-card--blue:hover{border-color:#29b6e8;}
.ticket-card--orange{border-color:#ffd9ad;}
.ticket-card--orange:hover{border-color:var(--naranja2);}
.ticket-card--green{border-color:#cdeac1;}
.ticket-card--green:hover{border-color:var(--verde);}
.ticket-card--red{border-color:#ffc9c9;}
.ticket-card--red:hover{border-color:#e8453c;}
.ticket-badge{
  position:absolute;top:-16px;left:20px;z-index:2;
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.4px;color:#fff;
  padding:8px 18px;border-radius:30px;box-shadow:0 6px 14px rgba(0,0,0,.25);
  border:2px solid #fff;
}
.ticket-card--blue .ticket-badge{background:#1f9fd6;}
.ticket-card--orange .ticket-badge{background:var(--naranja2);}
.ticket-card--green .ticket-badge{background:var(--verde);}
.ticket-card--red .ticket-badge{background:#e8453c;}
.ticket-card img{width:100%;height:auto;object-fit:contain;display:block;}
.ticket-info{padding:22px 22px 26px;text-align:center;}
.ticket-price{font-family:'Fredoka',var(--font-head);font-size:1.05rem;color:#777;margin-bottom:12px;}
.ticket-price strong{font-size:1.35rem;color:var(--texto);}
.ticket-card--blue .ticket-price strong{color:#1f9fd6;}
.ticket-card--orange .ticket-price strong{color:var(--naranja2);}
.ticket-card--green .ticket-price strong{color:var(--verde);}
.ticket-card--red .ticket-price strong{color:#e8453c;}
.ticket-highlights{
  list-style:none;text-align:left;margin:0 0 18px;
  display:flex;flex-direction:column;gap:7px;
}
.ticket-highlights li{font-size:.85rem;color:#555;display:flex;align-items:flex-start;gap:8px;line-height:1.35;}
.ticket-highlights i{color:var(--verde);font-size:.85rem;margin-top:2px;flex-shrink:0;}
.ticket-btn{width:100%;justify-content:center;animation:none;}
.ticket-btn:hover{animation:none;}

/* Combo familiar — próximamente */
.ticket-card--combo{filter:grayscale(.15);}
.ticket-card--combo .ticket-info{position:relative;}
.ticket-sub{font-size:.8rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;}
.ticket-info h3{font-family:'Fredoka',var(--font-head);font-size:1.3rem;font-weight:700;margin-bottom:14px;color:var(--texto);}
.combo-soon{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.85rem;
  background:rgba(240,137,24,.12);color:var(--naranja2);
  padding:9px 18px;border-radius:30px;
}
.ticket-card--combo .ticket-card-img{padding:30px;}
.ticket-card--combo img{object-fit:contain;}

@media (max-width:900px){
  .ticket-grid,.ticket-grid.ticket-grid-3{grid-template-columns:1fr;}
}

/* Entradas: experiencia móvil más directa, sin header pesado */
@media (max-width:768px){
  .tickets-page .site-header{
    display:none;
  }
  .tickets-page{
    padding-bottom:72px;
    overflow-x:hidden;
  }
  .tickets-page .page-topbar{
    position:absolute;
    top:20px;
    left:12px;
    right:12px;
    z-index:30;
    margin:0;
    padding:0;
    max-width:none;
    pointer-events:none;
  }
  .tickets-page .back-btn{
    pointer-events:auto;
    background:rgba(255,255,255,.92);
    color:var(--verde-oscuro);
    border:2px solid rgba(98,191,72,.25);
    box-shadow:0 8px 18px rgba(0,0,0,.12);
    padding:9px 15px;
    font-size:.82rem;
  }
  .tickets-page .tickets-hero{
    padding:74px 16px 56px;
  }
  .tickets-page .tickets-hero-logo{ display:none; }
  .tickets-page .tickets-hero .eyebrow{
    max-width:300px;
    margin:0 auto 10px;
    padding:8px 14px;
    border-radius:20px;
    font-size:.68rem;
    line-height:1.35;
    letter-spacing:.7px;
  }
  .tickets-page .tickets-hero h1{
    max-width:320px;
    font-size:1.6rem;
    line-height:1.22;
    letter-spacing:-.3px;
  }
  .tickets-page .tickets-section{
    padding:34px 14px 42px;
  }
  .tickets-page .ticket-tabs{
    position:relative;
    top:auto;
    z-index:20;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin:-64px auto 26px;
    width:calc(100% - 48px);
    max-width:310px;
  }
  .tickets-page .ticket-tab{
    justify-content:center;
    padding:12px 16px;
    border-radius:999px;
    font-size:.86rem;
    box-shadow:0 8px 18px rgba(0,0,0,.12);
  }
  .tickets-page .ticket-grid,
  .tickets-page .ticket-grid.ticket-grid-3{
    grid-template-columns:1fr;
    gap:22px;
  }
  .tickets-page #tab-club .ticket-grid{
    max-width:340px;
  }
  .tickets-page .card-pop,
  .tickets-page .pop-fade{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .tickets-page .card-splash{
    display:none;
  }
  .tickets-page .ticket-card{
    border-width:3px;
    border-radius:20px;
    overflow:visible;
    box-shadow:0 7px 0 rgba(0,0,0,.06),0 13px 22px rgba(0,0,0,.16);
  }
  .tickets-page .ticket-card-img{
    border-radius:17px 17px 0 0;
    max-height:none;
    overflow:visible;
    background:#fff;
  }
  .tickets-page .ticket-card img{
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .tickets-page .ticket-badge{
    top:-13px;
    left:16px;
    font-size:.68rem;
    padding:7px 14px;
  }
  .tickets-page .ticket-info{
    padding:16px 16px 18px;
  }
  .tickets-page .ticket-price{
    margin-bottom:10px;
    font-size:.9rem;
  }
  .tickets-page .ticket-price strong{
    font-size:1.2rem;
  }
  .tickets-page .ticket-highlights{
    gap:6px;
    margin-bottom:14px;
  }
  .tickets-page .ticket-highlights li{
    font-size:.76rem;
    line-height:1.25;
  }
  .tickets-page .ticket-btn{
    padding:12px 16px;
    font-size:.86rem;
  }
  .tickets-page .float-tooltip{
    display:none;
  }
}

/* ===== PÁGINA DE DETALLE DE PRODUCTO ===== */
.product-breadcrumb{
  max-width:1100px;margin:18px auto 0;padding:0 20px;font-size:.85rem;color:#888;
}
.product-breadcrumb a{color:var(--verde-oscuro);font-weight:600;}
.product-breadcrumb a:hover{text-decoration:underline;}

/* Barra superior con botón "Volver" — redirige a la página anterior (history.back) */
.page-topbar{
  max-width:1100px;margin:18px auto 0;padding:0 20px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.back-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.85rem;
  color:var(--verde-oscuro);background:rgba(98,191,72,.1);
  padding:8px 16px;border-radius:30px;border:2px solid rgba(98,191,72,.25);
  transition:background .2s,border-color .2s,transform .2s;
}
.back-btn:hover{background:rgba(98,191,72,.18);border-color:rgba(98,191,72,.5);transform:translateX(-2px);}
.back-btn i{font-size:.8rem;}

.product-layout{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;
  max-width:1100px;margin:20px auto 70px;padding:0 20px;align-items:start;
}
.product-gallery-stack{display:flex;flex-direction:column;gap:16px;}
.product-gallery{
  position:relative;border-radius:22px;overflow:hidden;border:4px solid #fff;
  box-shadow:0 14px 30px rgba(0,0,0,.16);
}
.product-gallery img{width:100%;height:auto;display:block;}
.product-gallery--photo{border-radius:18px;box-shadow:0 10px 22px rgba(0,0,0,.12);}
.product-gallery--photo img{aspect-ratio:1/1;object-fit:cover;}

.product-panel{display:flex;flex-direction:column;gap:22px;}
.product-title{font-family:'Fredoka',var(--font-head);font-size:2rem;font-weight:700;color:var(--texto);line-height:1.15;}

.price-box{
  background:#fff;border:3px solid #eef3f0;border-radius:20px;padding:24px 26px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.price-row{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px dashed #e4e8e4;}
.price-row:last-child{border-bottom:none;}
.price-row span:first-child{font-weight:600;color:#444;font-size:.92rem;}
.price-row span:last-child{font-family:'Fredoka',var(--font-head);font-weight:700;font-size:1.15rem;color:var(--verde-oscuro);}
.price-row small{display:block;font-weight:500;font-size:.75rem;color:#999;margin-top:2px;}

.product-section h2{
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:1.1rem;
  margin-bottom:12px;color:var(--texto);display:flex;align-items:center;gap:9px;
}
.product-section h2 i{color:var(--verde);}
.product-list{list-style:none;display:flex;flex-direction:column;gap:9px;}
.product-list li{display:flex;align-items:flex-start;gap:9px;font-size:.92rem;color:#444;line-height:1.4;}
.product-list li i{color:var(--verde);margin-top:3px;flex-shrink:0;}

.product-note{
  background:rgba(255,152,33,.1);border:2px dashed rgba(255,152,33,.4);
  border-radius:16px;padding:16px 18px;font-size:.85rem;color:#8a5a14;line-height:1.5;
}

.product-actions{display:flex;flex-wrap:wrap;gap:14px;}
.btn-outline-product{
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.92rem;
  color:var(--azul-card);background:#fff;border:2px solid var(--azul-card);
  padding:13px 26px;border-radius:30px;display:inline-flex;align-items:center;gap:9px;
  transition:background .2s,color .2s;
}
.btn-outline-product:hover{background:var(--azul-card);color:#fff;}

@media (max-width:800px){
  .product-layout{grid-template-columns:1fr;}
}

/* ===== PÁGINAS DE SERVICIOS (Piscinas / Eventos / Hospedaje) ===== */
.service-hero{
  position:relative;overflow:hidden;
  background-size:cover,480px 360px;
  padding:78px 20px 96px;text-align:center;color:#fff;
}
.service-hero--piscina{
  background:
    radial-gradient(ellipse at 20% 50%,rgba(14,173,214,.30) 0%,transparent 50%),
    radial-gradient(ellipse at 80% 20%,rgba(77,184,64,.15) 0%,transparent 45%),
    linear-gradient(145deg,#1468CC 0%,#0B4EA0 50%,#093D7E 100%);
}
.service-hero--evento{
  background:
    radial-gradient(ellipse at 75% 30%,rgba(242,160,28,.20) 0%,transparent 50%),
    radial-gradient(ellipse at 20% 70%,rgba(232,109,14,.15) 0%,transparent 45%),
    linear-gradient(145deg,#1468CC 0%,#0B4EA0 50%,#093D7E 100%);
}
.service-hero--hospedaje{
  background:
    radial-gradient(ellipse at 30% 40%,rgba(77,184,64,.18) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 60%,rgba(14,173,214,.15) 0%,transparent 45%),
    linear-gradient(145deg,#1468CC 0%,#0B4EA0 50%,#093D7E 100%);
}
.service-hero .eyebrow{
  background:rgba(255,255,255,.18);color:#fff;border:2px dashed rgba(255,255,255,.5);gap:8px;
}
.service-hero .eyebrow i{color:var(--amarillo);}
.service-hero h1{
  font-family:'Fredoka',var(--font-head);font-size:2.5rem;font-weight:700;color:#fff;
  max-width:760px;margin:0 auto 14px;line-height:1.2;
}
.service-hero h1 .accent{color:var(--amarillo);}
.service-hero p{max-width:620px;margin:0 auto;color:rgba(255,255,255,.92);font-size:1rem;line-height:1.5;}

.service-text{max-width:760px;margin:0 auto;color:#555;font-size:.98rem;line-height:1.7;text-align:left;}
.service-text + .service-text{margin-top:14px;}

/* --- Service page redesign --- */
.svc-content{text-align:center;}
.svc-intro{
  max-width:700px;margin:0 auto 40px;
  font-size:1.1rem;line-height:1.7;color:var(--ink-soft);
  text-align:center;
}
.svc-features{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  max-width:1060px;margin:0 auto 48px;
}
.svc-feat{
  background:#fff;border-radius:20px;padding:28px 20px 24px;
  text-align:center;
  border:1px solid rgba(26,45,68,.06);
  box-shadow:0 4px 20px rgba(26,45,68,.06);
  transition:transform .3s ease,box-shadow .3s ease;
}
.svc-feat:hover{
  transform:translateY(-5px);
  box-shadow:0 12px 32px rgba(26,45,68,.12);
}
.svc-feat__icon{
  width:56px;height:56px;border-radius:16px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1.4rem;margin-bottom:16px;
}
.svc-feat__icon--blue{background:linear-gradient(135deg,#E6F2FF,#CCE5FF);color:#0B4EA0;}
.svc-feat__icon--orange{background:linear-gradient(135deg,#FFF0E6,#FFE0CC);color:#E86D0E;}
.svc-feat__icon--green{background:linear-gradient(135deg,#E8F5E9,#C8E6C9);color:#1E6B2E;}
.svc-feat__icon--yellow{background:linear-gradient(135deg,#FFF8E1,#FFECB3);color:#D4A017;}
.svc-feat h3{
  font-family:'Fredoka',var(--font-head);font-size:1.05rem;font-weight:700;
  color:var(--texto);margin-bottom:8px;
}
.svc-feat p{
  font-size:.85rem;line-height:1.55;color:var(--ink-soft);margin:0;
}

@media (max-width:768px){
  .svc-features{grid-template-columns:1fr 1fr;gap:14px;}
  .svc-feat{padding:22px 16px 20px;}
  .svc-feat__icon{width:48px;height:48px;font-size:1.2rem;border-radius:14px;}
  .svc-feat h3{font-size:.95rem;}
  .svc-intro{font-size:1rem;margin-bottom:28px;}
}
@media (max-width:420px){
  .svc-features{grid-template-columns:1fr;max-width:320px;}
}

.gallery-grid--even img:first-child{grid-row:auto;height:260px;}

@media (max-width:700px){
  .service-hero h1{font-size:1.9rem;}
}

.service-hero--nosotros{
  background-image:
    linear-gradient(100deg,#1f8fe0 0%,#62BF48 55%,#FF9821 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='300' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.14' stroke-width='2'%3E%3Cpath d='M-20,40 C60,10 140,80 220,40 C300,0 360,60 440,30'/%3E%3Cpath d='M-20,110 C60,80 140,150 220,110 C300,70 360,130 440,100'/%3E%3Cpath d='M-20,180 C60,150 140,220 220,180 C300,140 360,200 440,170'/%3E%3Cpath d='M-20,250 C60,220 140,290 220,250 C300,210 360,270 440,240'/%3E%3C/g%3E%3C/svg%3E");
}

/* ===== PÁGINA NOSOTROS ===== */
.about-intro{
  display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center;
  max-width:1180px;margin:0 auto;padding:10px 20px;text-align:left;
}
.about-intro .eyebrow{
  background:rgba(31,143,224,.12);color:#1f8fe0;border:2px dashed rgba(31,143,224,.4);gap:8px;
}
.about-intro .eyebrow i{color:#1f8fe0;}
.about-intro h2{
  font-family:'Fredoka',var(--font-head);font-size:2rem;font-weight:700;
  color:var(--texto);margin-bottom:14px;line-height:1.2;
}
.about-intro .service-text{margin:0;}
.about-photo{
  position:relative;border-radius:24px;overflow:hidden;border:5px solid #fff;
  box-shadow:0 16px 34px rgba(0,0,0,.16);aspect-ratio:1/1;
}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block;}

.mission-vision{
  display:grid;grid-template-columns:1fr 1fr;gap:28px;
  max-width:1100px;margin:10px auto 0;padding:0 20px;
}
.mv-card{
  background:#fff;border-radius:22px;padding:36px 30px;text-align:left;
  border:3px solid #eef3f0;box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.mv-card .eyebrow{margin-bottom:12px;}
.mv-card--mision .eyebrow{background:rgba(255,152,33,.12);color:var(--naranja2);border:2px dashed rgba(255,152,33,.4);}
.mv-card--mision .mv-icon{background:linear-gradient(135deg,var(--amarillo),var(--naranja2));}
.mv-card--vision .eyebrow{background:rgba(31,143,224,.12);color:#1f8fe0;border:2px dashed rgba(31,143,224,.4);}
.mv-card--vision .mv-icon{background:linear-gradient(135deg,#5fd0ee,var(--azul-card));}
.mv-icon{
  width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.3rem;margin-bottom:14px;box-shadow:0 8px 16px rgba(0,0,0,.16);
}
.mv-card h2{
  font-family:'Fredoka',var(--font-head);font-size:1.5rem;font-weight:700;color:var(--texto);margin-bottom:12px;
}
.mv-card p{color:#555;font-size:.92rem;line-height:1.65;}

.about-gallery .service-card{padding-bottom:0;overflow:hidden;}
.about-gallery .service-card-caption{
  padding:16px 18px 18px;text-align:center;
}
.about-gallery .service-card-caption h3{
  font-family:'Fredoka',var(--font-head);font-size:1.05rem;font-weight:700;color:var(--texto);line-height:1.2;
}
.about-gallery .service-card-caption span{
  display:block;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-top:2px;
}
.about-gallery .service-card--blue .service-card-caption span{color:#1f9fd6;}
.about-gallery .service-card--orange .service-card-caption span{color:var(--naranja2);}
.about-gallery .service-card--green .service-card-caption span{color:var(--verde-oscuro);}
.about-gallery .service-card--red .service-card-caption span{color:#e8453c;}

@media (max-width:900px){
  .about-intro{grid-template-columns:1fr;}
  .about-intro .about-photo{order:-1;max-width:420px;margin:0 auto;}
  .mission-vision{grid-template-columns:1fr;}
}

.service-hero--contacto{
  background-image:
    linear-gradient(100deg,#2bb673 0%,#1ea7f0 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='300' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.14' stroke-width='2'%3E%3Cpath d='M-20,40 C60,10 140,80 220,40 C300,0 360,60 440,30'/%3E%3Cpath d='M-20,110 C60,80 140,150 220,110 C300,70 360,130 440,100'/%3E%3Cpath d='M-20,180 C60,150 140,220 220,180 C300,140 360,200 440,170'/%3E%3Cpath d='M-20,250 C60,220 140,290 220,250 C300,210 360,270 440,240'/%3E%3C/g%3E%3C/svg%3E");
}

/* ===== PÁGINA CONTACTO ===== */
.contact-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:46px;align-items:start;
  max-width:1180px;margin:0 auto;padding:10px 20px;text-align:left;
}
.contact-grid .eyebrow{
  background:rgba(98,191,72,.12);color:var(--verde-oscuro);border:2px dashed rgba(98,191,72,.4);gap:8px;
}
.contact-grid .eyebrow i{color:var(--verde);}
.contact-grid h2{
  font-family:'Fredoka',var(--font-head);font-size:2rem;font-weight:700;color:var(--texto);margin-bottom:10px;line-height:1.2;
}
.contact-icons{display:flex;flex-direction:column;gap:18px;margin-top:26px;}
.contact-icon-item{display:flex;gap:14px;align-items:flex-start;}
.contact-icon-item .location-icon{background:rgba(98,191,72,.12);color:var(--verde-oscuro);}
.contact-icon-item strong{font-family:'Fredoka',var(--font-head);font-size:1rem;display:block;margin-bottom:3px;}
.contact-icon-item p,.contact-icon-item a{font-size:.9rem;color:#555;margin:0;line-height:1.45;}
.contact-icon-item a:hover{color:var(--verde-oscuro);}

.contact-form{
  background:#fff;border-radius:24px;border:3px solid #eef3f0;
  box-shadow:0 14px 30px rgba(0,0,0,.08);padding:34px 32px;
}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-form .form-field{margin-bottom:16px;}
.contact-form label{display:block;font-size:.8rem;font-weight:600;color:#666;margin-bottom:6px;}
.contact-form input,.contact-form textarea{
  width:100%;border:2px solid #e4e8e4;border-radius:14px;padding:12px 16px;
  font-family:inherit;font-size:.92rem;color:var(--texto);background:#fafbfa;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.contact-form input:focus,.contact-form textarea:focus{
  outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(98,191,72,.15);background:#fff;
}
.contact-form textarea{resize:vertical;min-height:120px;}
.contact-form button[type="submit"]{
  width:100%;justify-content:center;border:none;cursor:pointer;font-size:1rem;animation:none;
}
.contact-form button[type="submit"]:hover{animation:none;}
.contact-form .form-note{font-size:.78rem;color:#999;margin-top:10px;text-align:center;}

@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;}
  .contact-form .form-row{grid-template-columns:1fr;}
}

/* RESPONSIVE */
@media (max-width:1024px){
  .cards-grid{grid-template-columns:repeat(2,1fr);}
  .restaurant-grid{grid-template-columns:repeat(2,1fr);}
  .footer-top{grid-template-columns:1fr 1fr;}
}

/* Header: reduce espacios antes de pasar al menú móvil */
@media (max-width:1150px) and (min-width:769px){
  .navbar{padding:10px 12px;gap:6px;}
  .nav-left,.nav-end{gap:6px;}
  .nav-right,.menu-links{gap:8px;}
  .menu-links li a,.nav-right li a{font-size:.72rem;padding:6px 0;}
  .header-social{display:none;}
  .logo{width:96px;}
  .logo img{height:100px;}
  .btn-buy{padding:8px 12px;font-size:.74rem;gap:6px;}
  .cart-icon{font-size:1.3rem;}
}

@media (max-width:768px){
  /* Header móvil: solo el logo, sin menú ni botones — la navegación vive en la barra inferior */
  .navbar{justify-content:center;padding:8px 16px;}
  .menu-toggle,.nav-left,.nav-end{display:none !important;}
  .logo{width:110px;height:46px;}
  .logo img{height:78px;transform:translate(-50%,-28%);}
  body{padding-bottom:72px;}
  .float-whatsapp{bottom:78px;}
  .float-tooltip{display:none;}

  .gallery-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .gallery-grid img:first-child{grid-row:span 1;height:170px;}
  .gallery-grid img{height:150px;}
  .restaurant-grid{gap:10px;}
  .restaurant-grid img{height:140px;}
  .bh-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;text-align:center;}
  .social-icons{justify-content:center;}
  .footer-bottom{flex-direction:column;text-align:center;}

  /* Tarjetas más compactas y fáciles de tocar en pantallas chicas */
  .section{padding:42px 16px;}
  .section h2{font-size:1.5rem;}
  .service-hero{padding:54px 16px 70px;}
  .service-hero h1{font-size:1.5rem;}
  .service-hero p{font-size:.9rem;}
  .cards-grid{gap:18px 14px;}
  .service-card-img,.about-gallery .service-card-img{padding:10px;}
  .service-card-caption{padding:10px 12px 14px;}
  .price-box{padding:16px 18px;}
  .ticket-info{padding:16px 16px 18px;}
  .ticket-badge{font-size:.68rem;padding:6px 14px;}
  .bh-card{padding:28px 22px;}
  .mv-card{padding:24px 20px;}
  .location-card{padding:22px 20px;}
  .contact-form{padding:24px 20px;}
  .about-photo{aspect-ratio:4/3;}
  .whatsapp-cta{padding:36px 16px 34px;margin-bottom:46px;}
}

@media (max-width:560px){
  .cards-grid,.restaurant-grid{grid-template-columns:1fr;}
  .topbar-inner{font-size:.75rem;gap:14px;flex-wrap:wrap;}
  .section h2{font-size:1.4rem;}
  .gallery-grid{grid-template-columns:1fr;}
  .gallery-grid img:first-child{height:190px;}
  .gallery-grid img{height:170px;}
}

/* ===== BARRA DE NAVEGACIÓN INFERIOR (solo móvil) ===== */
.mobile-bottom-nav{display:none;}
.mbn-sheet{display:none;}

/* Transición rápida de ola al ir a comprar boletos */
.page-wave-transition{
  position:fixed;inset:0;z-index:5000;pointer-events:none;overflow:hidden;
  opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;
}
.page-wave-transition::before,
.page-wave-transition::after{
  content:"";position:absolute;left:50%;bottom:-48%;
  width:145vmax;height:145vmax;border-radius:43% 57% 48% 52%;
  transform:translate(-50%,100%) scale(.28) rotate(0deg);
}
.page-wave-transition::before{
  background:linear-gradient(135deg,#00c5d8 0%,#0068ee 55%,#0049bd 100%);
  box-shadow:0 -18px 40px rgba(0,76,198,.32);
}
.page-wave-transition::after{
  bottom:-55%;width:128vmax;height:128vmax;
  background:linear-gradient(135deg,#8bdc33 0%,#62bf48 70%,#438f2e 100%);
  opacity:.95;
}
.page-wave-transition.is-active{
  opacity:1;visibility:visible;
}
.page-wave-transition.is-active::before{
  animation:ticketWaveUp .82s cubic-bezier(.22,.9,.24,1) forwards;
}
.page-wave-transition.is-active::after{
  animation:ticketWaveUp .82s cubic-bezier(.22,.9,.24,1) .1s forwards;
}
.page-wave-transition__label{
  position:absolute;left:50%;top:50%;z-index:2;
  transform:translate(-50%,24px) scale(.92);
  display:flex;align-items:center;gap:10px;
  padding:13px 22px;border-radius:999px;background:#ffc400;color:#06328d;
  font-family:'Fredoka',var(--font-head);font-weight:800;text-transform:uppercase;
  letter-spacing:.3px;box-shadow:0 8px 0 #e59c00,0 16px 26px rgba(0,0,0,.25);
  opacity:0;
}
.page-wave-transition.is-active .page-wave-transition__label{
  animation:ticketLabelPop .42s cubic-bezier(.34,1.56,.64,1) .22s forwards;
}
@keyframes ticketWaveUp{
  0%{transform:translate(-50%,100%) scale(.28) rotate(0deg);}
  70%{transform:translate(-50%,10%) scale(1.05) rotate(9deg);}
  100%{transform:translate(-50%,-18%) scale(1.18) rotate(14deg);}
}
@keyframes ticketLabelPop{
  to{opacity:1;transform:translate(-50%,-50%) scale(1);}
}
@media (prefers-reduced-motion:reduce){
  .page-wave-transition,.page-wave-transition::before,.page-wave-transition::after,
  .page-wave-transition__label{animation:none !important;transition:none !important;}
}
@media (max-width:768px){
  .mobile-bottom-nav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1000;
    background:#fff;box-shadow:0 -8px 20px rgba(0,0,0,.14);
    border-radius:22px 22px 0 0;
    padding:8px 8px calc(6px + env(safe-area-inset-bottom));
    justify-content:space-between;align-items:flex-end;
  }
  .mbn-item{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    background:none;border:none;font-family:'Fredoka',var(--font-head);
    color:#888;font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.2px;
    padding:7px 2px;cursor:pointer;transition:color .2s;
  }
  .mbn-item i{font-size:1.2rem;}
  .mbn-item.active,.mbn-item:hover{color:var(--verde-oscuro);}
  .mbn-item.mbn-buy{
    color:#fff;background:linear-gradient(135deg,#5DC44A 0%,#1E6B2E 100%);
    border-radius:18px;margin-top:-20px;padding:12px 4px 8px;
    box-shadow:0 8px 18px rgba(75,163,46,.45),0 0 0 4px #fff;
  }
  .mbn-item.mbn-buy i{font-size:1.35rem;}
  .mbn-item.mbn-buy:hover{color:#fff;}

  .mbn-overlay{
    display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:998;
  }
  .mbn-overlay.open{display:block;}
  .mbn-sheet{
    position:fixed;left:12px;right:12px;bottom:80px;z-index:1001;
    background:#fff;border-radius:20px;box-shadow:0 -10px 30px rgba(0,0,0,.2);
    padding:10px;flex-direction:column;gap:4px;
  }
  .mbn-sheet.open{display:flex;}
  .mbn-sheet a{
    display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:14px;
    font-family:'Fredoka',var(--font-head);font-weight:600;color:var(--texto);font-size:.95rem;
  }
  .mbn-sheet a:hover{background:#f4f4f4;color:var(--verde-oscuro);}
  .mbn-sheet a i{width:22px;text-align:center;color:var(--verde);}
}

/* ===== PORTADA MOVIL TIPO AFICHE, ARMADA POR CAPAS ===== */
@media (max-width:768px){
  .home-page .site-header{
    position:absolute;left:0;right:0;top:0;z-index:20;
    background:transparent;box-shadow:none;border-radius:0;
  }
  .home-page .navbar{justify-content:flex-start;padding:14px 16px;}
  .home-page .menu-toggle{
    display:flex !important;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:12px;
    background:linear-gradient(180deg,#79d842 0%,#259123 100%);
    color:#fff;font-size:1.25rem;box-shadow:0 8px 16px rgba(0,0,0,.22);
  }
  .home-page .logo{display:none;}

  .hero{background:#005ce4;overflow:hidden;}
  .hero-stage{
    aspect-ratio:auto;min-height:805px;height:min(805px,194vw);
    overflow:hidden;background:linear-gradient(180deg,#0078ff 0%,#00a8ff 25%,#0064e7 62%,#004fc6 100%);
  }
  .hero-clip,.hero-divider,.layer-frase-wrap{display:none;}

  .mobile-hero-poster{
    display:block;position:absolute;inset:0;overflow:hidden;
    font-family:'Fredoka',var(--font-head);line-height:1;color:#fff;
    background:
      radial-gradient(circle at 72% 13%,rgba(255,255,255,.26) 0 2px,transparent 3px),
      radial-gradient(circle at 16% 9%,rgba(255,255,255,.9) 0 2px,transparent 3px),
      linear-gradient(180deg,#036dff 0%,#00aef0 31%,#005be0 69%,#004cc6 100%);
  }
  .mobile-hero-poster::before{
    content:"";position:absolute;left:-18%;right:-18%;top:38%;height:17%;
    background:#fff;border-radius:0 0 50% 50% / 0 0 100% 100%;
    transform:rotate(-7deg);z-index:6;
  }
  .mobile-hero-poster::after{
    content:"";position:absolute;left:-10%;right:-10%;bottom:-4%;height:11%;
    background:linear-gradient(180deg,#81d640 0%,#4ba52d 100%);
    border-radius:50% 50% 0 0 / 100% 100% 0 0;z-index:13;
  }

  .poster-logo{
    position:absolute;top:9px;left:50%;width:126px;
    transform:translateX(-50%);z-index:7;
    filter:drop-shadow(0 8px 0 rgba(255,255,255,.9)) drop-shadow(0 10px 12px rgba(0,0,0,.24));
  }
  .poster-location{
    position:absolute;right:12px;top:18px;z-index:8;
    display:flex;align-items:center;gap:7px;padding:8px 11px 8px 10px;
    min-width:100px;border-radius:13px;background:#ffc400;color:#0a2370;
    font-family:var(--font-head);font-weight:900;font-size:.68rem;line-height:1.05;
    text-transform:none;box-shadow:0 5px 0 #e49c00,0 8px 14px rgba(0,0,0,.22);
  }
  .poster-location i{font-size:1.15rem;color:#003a99;}

  .poster-photo-layer{
    position:absolute;left:-7%;right:-7%;top:88px;height:271px;z-index:2;
    overflow:hidden;border-radius:0 0 50% 50% / 0 0 15% 15%;
    filter:saturate(1.16) contrast(1.03);
  }
  .poster-photo-layer::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(0,116,255,.08),rgba(0,116,255,.04) 48%,rgba(0,35,120,.2));
  }
  .poster-photo-layer img{
    width:118%;height:100%;max-width:none;object-fit:cover;object-position:center top;
    transform:translateX(-7%) scale(1.05);
  }

  .poster-headline{
    position:absolute;left:44px;right:21px;top:145px;z-index:9;
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    transform:rotate(-4deg);text-transform:none;
  }
  .poster-headline span,
  .poster-headline strong,
  .poster-headline em{
    display:inline-block;border-radius:10px;padding:4px 12px 6px;
    color:#fff;font-style:normal;font-weight:900;letter-spacing:-.9px;
    text-shadow:2px 3px 0 rgba(0,0,0,.26);
    box-shadow:0 7px 0 rgba(0,0,0,.13);
  }
  .poster-headline span{
    font-size:1.78rem;background:#174fbd;margin-left:11px;z-index:2;
  }
  .poster-headline strong{
    font-size:1.47rem;background:linear-gradient(180deg,#61c844,#3a9e2e);
    margin-top:-1px;align-self:flex-end;z-index:3;
  }
  .poster-headline em{
    font-size:1.23rem;background:linear-gradient(180deg,#ffb12d,#f46b16);
    margin-top:-2px;margin-left:72px;z-index:4;
  }

  .poster-sun{
    position:absolute;left:-27px;top:245px;width:337px;max-width:none;z-index:10;
    filter:drop-shadow(0 14px 10px rgba(0,0,0,.28));
    animation:floatSun 5.8s ease-in-out infinite;
  }

  .poster-sol-title{
    position:absolute;left:64px;right:42px;top:475px;z-index:12;
    display:flex;flex-direction:column;align-items:center;text-transform:uppercase;
    transform:rotate(-2deg);
  }
  .poster-sol-title span{
    color:#ffde19;font-size:3.35rem;font-weight:900;letter-spacing:-3px;
    -webkit-text-stroke:3px #063aa5;text-shadow:3px 5px 0 #f04016,5px 8px 0 rgba(0,0,0,.22);
  }
  .poster-sol-title strong{
    margin-top:-7px;padding:6px 14px 8px;border-radius:8px;
    background:linear-gradient(180deg,#6ed345,#29952c);color:#fff;
    font-size:1.42rem;font-weight:900;letter-spacing:.4px;
    text-shadow:2px 3px 0 rgba(0,0,0,.28);
    box-shadow:0 7px 0 rgba(0,0,0,.18);
  }

  .poster-benefits{
    position:absolute;left:28px;right:28px;top:565px;z-index:12;
    display:grid;grid-template-columns:repeat(3,1fr);gap:7px;
  }
  .poster-benefits article{
    min-height:76px;padding:8px 5px 6px;border-radius:10px;background:#fff;color:#103584;
    display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;
    box-shadow:0 4px 0 #dbe6ff,0 8px 14px rgba(0,0,0,.18);
  }
  .poster-benefits i{font-size:1.45rem;margin-bottom:4px;color:#0a72df;}
  .poster-benefits article:nth-child(1) i,
  .poster-benefits article:nth-child(5) i{color:#26992f;}
  .poster-benefits article:nth-child(3) i,
  .poster-benefits article:nth-child(6) i{color:#ff6f1f;}
  .poster-benefits strong{
    font-size:.61rem;font-weight:900;text-transform:uppercase;margin-bottom:2px;
  }
  .poster-benefits span{
    max-width:82px;font-family:var(--font-body);font-size:.49rem;font-weight:700;line-height:1.08;color:#28458d;
  }

  .poster-cta{
    position:absolute;left:58px;right:58px;bottom:31px;z-index:14;
    display:flex;align-items:center;justify-content:center;gap:8px;
    min-height:39px;border-radius:13px;background:#ffc400;color:#06328d;
    font-family:var(--font-head);font-size:.78rem;font-weight:900;text-transform:uppercase;
    box-shadow:0 5px 0 #e59c00,0 9px 14px rgba(0,0,0,.2);
  }
  .poster-cta i{font-size:1.08rem;}
  .poster-social{
    position:absolute;left:0;right:0;bottom:8px;z-index:14;
    display:flex;align-items:center;justify-content:center;gap:15px;color:#fff;font-size:.95rem;
  }
  .poster-social i{
    width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    border:2px solid rgba(255,255,255,.9);
  }

  .poster-confetti{
    position:absolute;z-index:8;width:7px;height:7px;border-radius:2px;background:#ffd21c;
  }
  .poster-confetti--one{left:40px;top:95px;transform:rotate(28deg);}
  .poster-confetti--two{right:63px;top:133px;background:#58c940;transform:rotate(42deg);}
  .poster-confetti--three{right:40px;bottom:180px;background:#70d646;transform:rotate(18deg);}
  .poster-confetti--four{left:31px;bottom:105px;background:#ffd21c;transform:rotate(42deg);}
}

@media (max-width:390px){
  .hero-stage{height:790px;}
  .poster-headline{left:36px;right:16px;}
  .poster-headline span{font-size:1.62rem;}
  .poster-headline strong{font-size:1.33rem;}
  .poster-headline em{font-size:1.12rem;margin-left:58px;}
  .poster-sun{left:-36px;width:325px;}
  .poster-sol-title{top:470px;}
  .poster-benefits{left:24px;right:24px;gap:6px;}
  .poster-benefits article{min-height:72px;}
}

/* Ajustes finales con recursos reales del pack movil */
@media (max-width:768px){
  .home-page .navbar{z-index:30;}
  .home-page .navbar.nav-open{
    align-items:flex-start;border-radius:0 0 22px 22px;
  }
  .home-page .navbar.nav-open::before{
    content:"";position:absolute;left:12px;right:12px;top:62px;z-index:-1;
    min-height:305px;border-radius:22px;background:#fff;
    box-shadow:0 16px 34px rgba(0,0,0,.22);
  }
  .home-page .navbar.nav-open .nav-left,
  .home-page .navbar.nav-open .nav-end{
    display:flex !important;position:absolute;left:26px;right:26px;z-index:2;
    flex:initial;min-width:0;background:transparent;
  }
  .home-page .navbar.nav-open .nav-left{top:78px;}
  .home-page .navbar.nav-open .nav-end{top:190px;flex-direction:column;align-items:stretch;gap:12px;}
  .home-page .navbar.nav-open .menu-links,
  .home-page .navbar.nav-open .nav-right{
    display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;
  }
  .home-page .navbar.nav-open .menu-links li a,
  .home-page .navbar.nav-open .nav-right li a{
    padding:9px 12px;border-radius:12px;color:var(--texto);font-size:.82rem;
  }
  .home-page .navbar.nav-open .menu-links li a:hover,
  .home-page .navbar.nav-open .nav-right li a:hover{background:#f1f8ee;color:var(--verde-oscuro);}
  .home-page .navbar.nav-open .has-dropdown .dropdown{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border-radius:12px;margin:2px 0 4px 12px;min-width:0;background:#f5f9ff;
  }
  .home-page .navbar.nav-open .nav-actions{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
  }
  .home-page .navbar.nav-open .btn-buy{font-size:.74rem;padding:10px 12px;}
  .home-page .navbar.nav-open .header-social{display:flex;}
  .home-page{padding-bottom:72px;}

  .hero-stage{height:min(930px,237vw);}
  .mobile-hero-poster{
    background:#0062e8;
  }
  .mobile-hero-poster::before,
  .mobile-hero-poster::after{display:none;}

  .poster-bg-pack{
    position:absolute;inset:0;z-index:1;width:100%;height:100%;
    max-width:none;object-fit:cover;object-position:center top;
  }
  .poster-logo{
    top:26px;width:142px;z-index:7;
    filter:drop-shadow(0 7px 0 rgba(255,255,255,.92)) drop-shadow(0 10px 13px rgba(0,0,0,.28));
  }
  .poster-location{
    right:12px;top:31px;z-index:8;min-width:129px;padding:13px 13px 13px 12px;
    border-radius:17px;font-size:.86rem;line-height:1.05;gap:10px;
    box-shadow:0 6px 0 #e49c00,0 10px 18px rgba(0,0,0,.2);
  }
  .poster-location i{font-size:1.45rem;}

  .poster-headline-img{
    position:absolute;left:-2.5%;top:188px;z-index:9;width:105%;max-width:none;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,.25));
  }
  .poster-sun{
    left:2px;top:345px;width:305px;z-index:10;
    filter:drop-shadow(0 14px 10px rgba(0,0,0,.28));
  }
  .poster-sol-pack{
    position:absolute;left:-2%;top:560px;z-index:11;width:104%;max-width:none;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,.24));
  }

  .poster-action-cards{
    position:absolute;left:22px;right:22px;top:715px;z-index:14;
    display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  }
  .poster-action-card{
    min-height:132px;border:3px solid #fff;border-radius:18px;padding:13px 8px 10px;
    display:flex;flex-direction:column;align-items:center;justify-content:space-between;
    color:#fff;text-align:center;text-transform:uppercase;
    box-shadow:0 9px 18px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.28);
  }
  .poster-action-card--orange{background:linear-gradient(145deg,#ffb31e 0%,#ff6200 100%);}
  .poster-action-card--blue{background:linear-gradient(145deg,#15c8ff 0%,#004dc9 100%);}
  .poster-action-card--green{background:linear-gradient(145deg,#a7d816 0%,#07810a 100%);}
  .poster-action-card > i{
    font-size:2.1rem;line-height:1;margin-bottom:4px;
    filter:drop-shadow(0 4px 2px rgba(0,0,0,.18));
  }
  .poster-action-card strong{
    font-size:.82rem;line-height:1.08;font-weight:900;letter-spacing:-.25px;
    text-shadow:0 3px 0 rgba(0,0,0,.22);
  }
  .poster-action-card span{
    width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:#fff;box-shadow:0 4px 9px rgba(0,0,0,.25);
  }
  .poster-action-card span i{font-size:1rem;color:#1454bd;}
  .poster-action-card--green span i{color:#168a11;}
  .poster-cta{
    left:58px;right:58px;bottom:30px;z-index:15;min-height:44px;border-radius:18px;
    font-size:.76rem;box-shadow:0 6px 0 #e59c00,0 11px 18px rgba(0,0,0,.25);
  }
  .poster-social{display:none;}
}

@media (max-width:390px){
  .hero-stage{height:910px;}
  .poster-logo{width:136px;}
  .poster-location{min-width:121px;font-size:.8rem;}
  .poster-headline-img{top:190px;width:104%;left:-2%;}
  .poster-sun{top:350px;width:294px;}
  .poster-sol-pack{top:566px;width:104%;left:-2%;}
  .poster-action-cards{top:716px;left:20px;right:20px;gap:8px;}
  .poster-action-card{min-height:128px;padding:12px 7px 9px;}
  .poster-action-card > i{font-size:1.95rem;}
  .poster-action-card strong{font-size:.76rem;}
  .poster-cta{left:52px;right:52px;bottom:14px;font-size:.72rem;}
}

/* Correccion final: portada movil estilo referencia compacta */
@media (max-width:768px){
  .home-page .hero-stage{
    height:min(825px,210vw);
    min-height:0;
    background:#0057d7;
  }
  .home-page .mobile-hero-poster{
    background:linear-gradient(180deg,#0078ff 0%,#0098f2 38%,#004fc7 68%,#0049bd 100%);
  }
  .home-page .mobile-hero-poster::before{
    display:block;content:"";position:absolute;left:-18%;right:-18%;top:318px;height:160px;z-index:6;
    background:#fff;border-radius:0 0 50% 50% / 0 0 100% 100%;
    transform:rotate(8deg);box-shadow:0 -10px 18px rgba(255,255,255,.9);
  }
  .home-page .mobile-hero-poster::after{
    display:block;content:"";position:absolute;left:-10%;right:-10%;bottom:-34px;height:92px;z-index:13;
    background:linear-gradient(180deg,#8bdc33 0%,#4da92f 100%);
    border-radius:50% 50% 0 0 / 100% 100% 0 0;
  }
  .home-page .poster-bg-pack{
    position:absolute;left:0;right:0;top:0;z-index:1;width:100%;height:390px;max-width:none;
    object-fit:cover;object-position:center top;filter:saturate(1.1) contrast(1.04);
  }
  .home-page .poster-logo{
    top:10px;width:124px;z-index:9;
    filter:drop-shadow(0 6px 0 rgba(255,255,255,.92)) drop-shadow(0 9px 11px rgba(0,0,0,.25));
  }
  .home-page .poster-location{
    top:18px;right:10px;min-width:99px;padding:8px 10px;border-radius:13px;
    font-size:.66rem;gap:7px;z-index:12;
  }
  .home-page .poster-location i{font-size:1.08rem;}
  .home-page .poster-headline-img{
    left:-1%;top:118px;width:102%;max-width:none;z-index:10;
    filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
  }
  .home-page .poster-sun{
    left:30px;top:255px;width:322px;max-width:none;z-index:30;
    filter:drop-shadow(0 14px 14px rgba(0,0,0,.27));
  }
  .home-page .poster-sol-pack{
    left:10%;top:468px;width:80%;max-width:none;z-index:31;
    filter:drop-shadow(0 9px 11px rgba(0,0,0,.25));
  }
  .home-page .poster-action-cards{
    left:28px;right:28px;top:576px;z-index:14;
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  }
  .home-page .poster-action-card{
    min-height:83px;padding:8px 5px 6px;border:2px solid #fff;border-radius:10px;background:#fff;
    color:#163985;box-shadow:0 4px 0 #dbe6ff,0 8px 14px rgba(0,0,0,.18);
    justify-content:flex-start;text-transform:none;
  }
  .home-page .poster-action-card > i{
    font-size:1.42rem;margin-bottom:4px;filter:none;color:#0b73df;
  }
  .home-page .poster-action-card--adventure > i,
  .home-page .poster-action-card--family > i{color:#26992f;}
  .home-page .poster-action-card--flavor > i,
  .home-page .poster-action-card--sunny > i{color:#ff6f1f;}
  .home-page .poster-action-card strong{
    font-family:var(--font-head);font-size:.55rem;line-height:1;font-weight:900;
    text-transform:uppercase;letter-spacing:-.15px;text-shadow:none;margin-bottom:2px;color:#113583;
  }
  .home-page .poster-action-card span{
    width:auto;height:auto;border-radius:0;background:transparent;box-shadow:none;
    max-width:82px;font-family:var(--font-body);font-size:.45rem;font-weight:700;line-height:1.08;color:#28458d;
  }
  .home-page .poster-cta{
    left:74px;right:74px;bottom:36px;min-height:35px;border-radius:12px;
    font-size:.66rem;line-height:1;text-align:center;z-index:15;
    box-shadow:0 5px 0 #e59c00,0 9px 14px rgba(0,0,0,.22);
  }
}

@media (max-width:390px){
  .home-page .hero-stage{height:805px;}
  .home-page .mobile-hero-poster::before{top:317px;height:154px;}
  .home-page .poster-bg-pack{height:374px;}
  .home-page .poster-logo{width:116px;top:10px;}
  .home-page .poster-location{top:17px;right:9px;min-width:96px;font-size:.64rem;}
  .home-page .poster-headline-img{top:120px;width:104%;left:-2%;}
  .home-page .poster-sun{top:258px;left:25px;width:312px;}
  .home-page .poster-sol-pack{top:462px;left:8%;width:84%;}
  .home-page .poster-action-cards{top:568px;left:24px;right:24px;gap:7px;}
  .home-page .poster-action-card{min-height:80px;padding:7px 4px 6px;}
  .home-page .poster-action-card > i{font-size:1.32rem;}
  .home-page .poster-action-card strong{font-size:.52rem;}
  .home-page .poster-action-card span{font-size:.42rem;}
  .home-page .poster-cta{left:60px;right:60px;bottom:29px;font-size:.62rem;}
}

/* Override definitivo: pack movil indicado + 3 botones funcionales */
@media (max-width:768px){
  .home-page .hero-stage{
    height:min(900px,229vw);
    min-height:0;
    background:#0060df;
  }
  .home-page .mobile-hero-poster{
    background:#0060df;
  }
  .home-page .mobile-hero-poster::before,
  .home-page .mobile-hero-poster::after{
    display:none;
  }
  .home-page .poster-bg-pack{
    position:absolute;left:50%;top:0;z-index:1;
    width:auto;height:100%;max-width:none;
    transform:translateX(-50%) scale(.75);
    transform-origin:center top;
    object-fit:contain;object-position:center top;
    filter:saturate(1.04) contrast(1.02);
  }
  .home-page .poster-logo{
    top:22px;left:50%;width:132px;z-index:12;
    transform:translateX(-50%);
    filter:drop-shadow(0 7px 0 rgba(255,255,255,.9)) drop-shadow(0 10px 12px rgba(0,0,0,.25));
  }
  .home-page .poster-location{
    top:31px;right:12px;z-index:14;
    min-width:125px;padding:12px 12px;border-radius:17px;
    font-size:.82rem;line-height:1.05;gap:9px;
  }
  .home-page .poster-location i{font-size:1.36rem;}
  .home-page .poster-headline-img{
    left:9%;top:172px;width:82%;max-width:none;z-index:10;
    filter:drop-shadow(0 9px 12px rgba(0,0,0,.25));
  }
  .home-page .poster-sun{
    left:48px;top:335px;width:282px;max-width:none;z-index:13;
    filter:drop-shadow(0 14px 16px rgba(0,0,0,.28));
  }
  .home-page .poster-sol-pack{
    left:10%;top:555px;width:80%;max-width:none;z-index:11;
    filter:drop-shadow(0 10px 14px rgba(0,0,0,.25));
  }
  .home-page .poster-action-cards{
    left:30px;right:30px;top:704px;z-index:15;
    display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  }
  .home-page .poster-action-card{
    min-height:130px;padding:13px 7px 10px;
    border:3px solid #fff;border-radius:18px;
    display:flex;flex-direction:column;align-items:center;justify-content:space-between;
    color:#fff;text-align:center;text-transform:uppercase;
    box-shadow:0 9px 18px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.28);
  }
  .home-page .poster-action-card--orange{background:linear-gradient(145deg,#ffb31e 0%,#ff6200 100%);}
  .home-page .poster-action-card--blue{background:linear-gradient(145deg,#15c8ff 0%,#004dc9 100%);}
  .home-page .poster-action-card--green{background:linear-gradient(145deg,#a7d816 0%,#07810a 100%);}
  .home-page .poster-action-card > i{
    font-size:2rem;line-height:1;margin-bottom:4px;color:#fff;
    filter:drop-shadow(0 4px 2px rgba(0,0,0,.18));
  }
  .home-page .poster-action-card strong{
    color:#fff;font-family:var(--font-head);font-size:.78rem;line-height:1.08;
    font-weight:900;letter-spacing:-.25px;text-shadow:0 3px 0 rgba(0,0,0,.22);
  }
  .home-page .poster-action-card span{
    width:30px;height:30px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#fff;box-shadow:0 4px 9px rgba(0,0,0,.25);
    max-width:none;
  }
  .home-page .poster-action-card span i{font-size:1rem;color:#1454bd;}
  .home-page .poster-action-card--green span i{color:#168a11;}
  .home-page .poster-cta{
    left:64px;right:64px;bottom:20px;z-index:16;
    min-height:42px;border-radius:18px;
    font-size:.74rem;line-height:1;text-align:center;
    box-shadow:0 6px 0 #e59c00,0 11px 18px rgba(0,0,0,.25);
  }
}

@media (max-width:390px){
  .home-page .hero-stage{height:880px;}
  .home-page .poster-logo{top:23px;width:124px;}
  .home-page .poster-location{top:32px;right:10px;min-width:116px;font-size:.76rem;padding:11px 10px;}
  .home-page .poster-bg-pack{transform:translateX(-50%) scale(.75);}
  .home-page .poster-headline-img{top:174px;left:10%;width:80%;}
  .home-page .poster-sun{top:338px;left:48px;width:272px;}
  .home-page .poster-sol-pack{top:558px;left:11%;width:78%;}
  .home-page .poster-action-cards{top:704px;left:28px;right:28px;gap:8px;}
  .home-page .poster-action-card{min-height:124px;padding:12px 7px 9px;}
  .home-page .poster-action-card > i{font-size:1.9rem;}
  .home-page .poster-action-card strong{font-size:.72rem;}
  .home-page .poster-cta{left:50px;right:50px;bottom:18px;font-size:.68rem;}
}

/* Portada exacta del ejemplo: arte base + hotspots funcionales */
.poster-art-reference{display:none;}
@media (max-width:768px){
  .home-page .hero-stage{
    height:auto;
    aspect-ratio:853 / 1844;
    min-height:0;
    overflow:hidden;
    background:#0064e7;
  }
  .home-page .mobile-hero-poster{
    inset:0;
    background:#0064e7;
  }
  .home-page .poster-art-reference{
    display:block;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center top;
    z-index:1;
    pointer-events:none;
  }
  .home-page .poster-confetti,
  .home-page .poster-logo,
  .home-page .poster-bg-pack,
  .home-page .poster-headline-img,
  .home-page .poster-sun,
  .home-page .poster-sol-pack,
  .home-page .poster-social{
    display:none !important;
  }
  .home-page .poster-location{
    top:1.75%;
    right:1.55%;
    width:26.5%;
    height:5.35%;
    min-width:0;
    padding:0;
    border-radius:18px;
    background:rgba(255,196,0,0);
    box-shadow:none;
    color:transparent;
    font-size:0;
    z-index:20;
  }
  .home-page .poster-location *{opacity:0;}
  .home-page .poster-action-cards{
    left:4.95%;
    right:4.95%;
    top:73.95%;
    height:16.6%;
    z-index:20;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:2.4%;
  }
  .home-page .poster-action-card{
    min-height:0;
    height:100%;
    padding:0;
    border:0;
    border-radius:18px;
    background:rgba(255,255,255,0);
    box-shadow:none;
    color:transparent;
    overflow:hidden;
  }
  .home-page .poster-action-card *{opacity:0;}
  .home-page .poster-cta{
    left:17.8%;
    right:17.8%;
    bottom:2.9%;
    height:4.25%;
    min-height:0;
    padding:0;
    border-radius:18px;
    background:rgba(255,196,0,0);
    box-shadow:none;
    color:transparent;
    font-size:0;
    z-index:20;
  }
  .home-page .poster-cta *{opacity:0;}
}

/* Refinamiento móvil del contenido posterior a la portada */
@media (max-width:768px){
  .home-page .section{
    padding:34px 14px;
  }
  .home-page .section h2{
    font-size:1.32rem;
    line-height:1.15;
    max-width:340px;
    margin-left:auto;
    margin-right:auto;
  }
  .home-page .eyebrow{
    max-width:92%;
    padding:7px 12px;
    font-size:.68rem;
    line-height:1.2;
    justify-content:center;
  }
  .home-page .title-underline{
    width:170px;
    margin-top:4px;
  }
  .home-page .services-intro{
    padding-top:34px;
    padding-bottom:4px;
  }
  .home-page .services-cards{
    padding-top:12px;
    padding-bottom:32px;
  }
  .home-page .cards-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 12px;
  }
  .home-page .card-pop{
    transform:none;
  }
  .home-page .card-splash{
    inset:12px -6px -10px 8px;
    opacity:.7;
  }
  .home-page .service-card{
    border-width:3px;
    border-radius:18px;
    box-shadow:0 6px 0 rgba(0,0,0,.06),0 10px 18px rgba(0,0,0,.13);
  }
  .home-page .service-card-img,
  .home-page .about-gallery .service-card-img{
    padding:6px;
    border-radius:15px;
  }
  .home-page .service-badge{
    width:36px;
    height:36px;
    top:-10px;
    left:10px;
    font-size:.95rem;
    border-width:2px;
  }

  .home-page .features-strip{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,150px));
    justify-content:center;
    gap:14px;
    padding:58px 14px 66px;
  }
  .home-page .feature-pop{
    transform:none;
  }
  .home-page .feature-item{
    width:100%;
    min-height:118px;
    padding:16px 10px 14px;
    border-radius:18px;
    gap:8px;
    box-shadow:0 7px 0 rgba(0,0,0,.14),0 13px 18px rgba(0,0,0,.2);
  }
  .home-page .feature-icon{
    width:46px;
    height:46px;
    font-size:1.45rem;
  }
  .home-page .feature-item span:last-child{
    font-size:.82rem;
    line-height:1.18;
  }

  .home-page .camping-section{
    padding-top:38px;
  }
  .home-page .gallery-grid,
  .home-page .restaurant-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:20px;
  }
  .home-page .gallery-grid img,
  .home-page .gallery-grid img:first-child,
  .home-page .restaurant-grid img{
    grid-row:auto;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:contain;
    object-position:center;
    background:#fff;
    border-radius:14px;
    border-width:2px;
    box-shadow:0 7px 15px rgba(67,143,46,.16);
  }

  .home-page .bh-grid{
    grid-template-columns:1fr;gap:20px;
  }
  .home-page .bh-card__body{
    padding:24px 20px 22px;
  }
  .home-page .bh-card__title{
    font-size:1.3rem;
  }
  .home-page .bh-card__icon-wrap--party,
  .home-page .bh-card__icon-wrap--clock{
    width:60px;height:60px;font-size:1.5rem;
  }
  .home-page .bh-card__schedule li{
    padding:14px 16px;
  }

  .home-page .whatsapp-cta{
    margin:0 12px 38px;
    padding:30px 14px 28px;
    border-radius:20px;
  }
  .home-page .cta-icon{
    width:52px;
    height:52px;
    font-size:1.45rem;
    margin-bottom:12px;
  }
  .home-page .whatsapp-cta h2{
    font-size:1.42rem;
  }
  .home-page .whatsapp-cta h3{
    font-size:.86rem;
    margin-bottom:18px;
  }
  .home-page .btn-whatsapp{
    padding:12px 20px;
    font-size:.88rem;
  }

  .home-page .location-layout{
    gap:16px;
    margin-top:20px;
  }
  .home-page .map-wrap{
    border-radius:16px;
  }
  .home-page .map-wrap iframe{
    height:260px;
  }
  .home-page .map-pin{
    width:42px;
    height:42px;
    top:-12px;
    left:18px;
    font-size:1.05rem;
  }
  .home-page .location-card{
    padding:18px 16px;
    gap:14px;
    border-radius:18px;
  }
  .home-page .location-icon{
    width:38px;
    height:38px;
    font-size:.92rem;
  }
  .home-page .location-item strong{
    font-size:.9rem;
  }
  .home-page .location-item p{
    font-size:.78rem;
  }

  .home-page .card-pop,
  .home-page .feature-pop,
  .home-page .pop-fade{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .home-page .gallery-grid img,
  .home-page .restaurant-grid img{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .home-page .card-splash{
    opacity:.78 !important;
    transform:rotate(-5deg) !important;
  }
}

@media (max-width:560px){
  .home-page .cards-grid,
  .home-page .restaurant-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .home-page .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* ===== Pulido visual global: paleta tropical más coherente ===== */
:root{
  --verde: #4DB840;
  --verde-oscuro: #1E6B2E;
  --naranja: #E86D0E;
  --naranja2: #F28C1C;
  --amarillo: #FFCA2E;
  --azul1: #0B4EA0;
  --azul2: #0EADD6;
  --azul-card: #1468CC;
  --texto: #1A2D44;
  --ink-soft: #3D5467;
  --paper: #ffffff;
  --paper-soft: #FBF9F4;
  --sand-warm: #FFF8EC;
  --shadow-soft: 0 14px 34px rgba(26,45,68,.12);
  --shadow-pop: 0 12px 0 rgba(0,0,0,.04),0 22px 38px rgba(26,45,68,.15);
}

body{
  color:var(--texto);
  background-color:#FFFCF6;
}

.site-header{
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.1);
}
.menu-links li a,.nav-right li a{
  color:#1A2D44;
}
.menu-links li a:hover,.nav-right li a:hover,
.menu-links li a.active,.nav-right li a.active{
  color:var(--verde-oscuro);
}
.dropdown{
  border:1px solid rgba(20,104,204,.08);
  box-shadow:0 18px 45px rgba(26,45,68,.14);
}
.btn-buy,.ticket-btn,.btn-whatsapp,.location-btn{
  background:linear-gradient(135deg,#5DC44A 0%,#3BA532 48%,#1E6B2E 100%);
  box-shadow:0 9px 20px rgba(30,107,46,.32),inset 0 2px 0 rgba(255,255,255,.32);
}
.btn-buy:hover,.ticket-btn:hover,.btn-whatsapp:hover,.location-btn:hover{
  box-shadow:0 13px 28px rgba(30,107,46,.40),inset 0 2px 0 rgba(255,255,255,.38);
}

.section h2,
.tickets-hero h1,
.service-hero h1{
  color:#1A2D44;
  letter-spacing:-.5px;
}
.section h2 .accent,
.services-intro h2 .accent{
  color:#1A6828;
}
.eyebrow{
  background:rgba(242,140,28,.12);
  color:#B35A0A;
  border:1px solid rgba(242,140,28,.22);
  box-shadow:0 8px 18px rgba(242,140,28,.06);
}

.service-card,
.ticket-card,
.bh-card,
.location-card,
.whatsapp-cta{
  background:#fff;
  border-color:rgba(26,45,68,.06);
  box-shadow:var(--shadow-pop);
}
.service-card,
.ticket-card{
  overflow:visible;
}
.service-card-img,
.ticket-card-img{
  overflow:hidden;
}
.service-card:hover,
.ticket-card:hover{
  box-shadow:0 12px 0 rgba(0,0,0,.04),0 30px 48px rgba(26,45,68,.18);
}
.service-badge,
.feature-icon,
.bh-icon,
.location-icon{
  box-shadow:0 10px 22px rgba(26,45,68,.14);
}

.splash--orange{background:linear-gradient(135deg,#FFD86E,#E86D0E);}
.splash--blue{background:linear-gradient(135deg,#6AD8F7,#1468CC);}
.splash--green{background:linear-gradient(135deg,#A8ED6E,#1E6B2E);}
.splash--red{background:linear-gradient(135deg,#FFA85C,#D94429);}

.features-strip{
  background-color:#0C5DAE;
  background-image:
    radial-gradient(ellipse at 20% 30%,rgba(14,173,214,.28) 0,transparent 55%),
    radial-gradient(ellipse at 80% 70%,rgba(77,184,64,.18) 0,transparent 50%),
    linear-gradient(145deg,#1470C8 0%,#0B4EA0 55%,#093D7E 100%);
  background-size:cover;
  box-shadow:inset 0 16px 34px rgba(9,61,126,.18),inset 0 -16px 34px rgba(9,61,126,.14);
}
.feature-item{
  background:linear-gradient(145deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.06) 100%);
  border-color:rgba(255,255,255,.30);
  backdrop-filter:blur(4px);
}

.camping-section{
  background:transparent;
}
.gallery-grid img,
.restaurant-grid img{
  background:#fff;
  border-color:rgba(255,255,255,.92);
  box-shadow:0 14px 30px rgba(15,79,153,.13);
}
.gallery-grid.in-view img:hover,
.restaurant-grid.in-view img:hover{
  box-shadow:0 20px 38px rgba(15,79,153,.19);
}

.location-item p,
.whatsapp-cta h3,
.ticket-highlights li{
  color:var(--ink-soft);
}

.restaurant-section .eyebrow{
  background:rgba(232,109,14,.10);
  color:#A34A0A;
  border-color:rgba(232,109,14,.20);
}
.restaurant-section h2 .accent{
  color:#C45416;
}
.whatsapp-cta{
  background:rgba(230,248,236,.45);
  border-color:rgba(37,211,102,.18);
}
.location-card{
  border-color:rgba(20,104,204,.10);
}
.map-wrap{
  box-shadow:0 16px 36px rgba(26,45,68,.15);
}
.location-icon{
  background:rgba(20,104,204,.09);
}

.tickets-hero{
  background-image:linear-gradient(130deg,#0A7D64 0%,#0A6E96 46%,#0C4F99 100%);
  background-size:cover;
}
.ticket-tab{
  border-color:rgba(26,45,68,.10);
  color:#1A2D44;
}
.ticket-tab.active{
  background:linear-gradient(135deg,#5DC44A 0%,#3BA532 58%,#1E6B2E 100%);
}
.ticket-card--blue{border-color:rgba(14,173,214,.28);}
.ticket-card--orange{border-color:rgba(242,140,28,.30);}
.ticket-card--green{border-color:rgba(77,184,64,.28);}
.ticket-card--red{border-color:rgba(217,68,41,.22);}

.mobile-bottom-nav{
  border:1px solid rgba(26,45,68,.06);
  box-shadow:0 -12px 34px rgba(26,45,68,.12);
}
.mbn-item.active,.mbn-item:hover{
  color:var(--verde-oscuro);
}
.mbn-item.mbn-buy{
  background:linear-gradient(135deg,#5DC44A 0%,#3BA532 58%,#1E6B2E 100%);
}

@media (max-width:768px){
  .site-header{
    background:#fff;
  }
  .section h2{
    letter-spacing:-.35px;
  }
  .service-card,
  .ticket-card,
  .feature-item,
  .bh-card,
  .location-card{
    box-shadow:0 8px 0 rgba(0,0,0,.03),0 16px 28px rgba(26,45,68,.12);
  }
}

/* ===== CHECKOUT / CALENDARIO / PAGO ===== */

/* Widget de reserva (banda completa, 2 columnas en desktop) */
.checkout-widget{
  max-width:1100px;margin:0 auto 8px;padding:0 20px;
}
.checkout-widget-header{
  background:linear-gradient(135deg,#62BF48 0%,#438F2E 100%);
  color:#fff;padding:14px 26px;border-radius:20px 20px 0 0;
  font-family:'Fredoka',var(--font-head);font-size:1.05rem;font-weight:700;
  display:flex;align-items:center;gap:10px;
}
.checkout-widget-body{
  background:#fff;border:2px solid rgba(98,191,72,.2);border-top:none;
  border-radius:0 0 20px 20px;padding:24px 28px;
  /* minmax(0,…): sin eso las columnas no bajan de su ancho mínimo de
     contenido y en el móvil el calendario y los botones se salían de la caja. */
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start;
}
.checkout-col-left,.checkout-col-right{display:flex;flex-direction:column;gap:12px;}
.checkout-col-label{
  display:flex;align-items:center;gap:8px;
  font-family:'Fredoka',var(--font-head);font-size:.95rem;font-weight:700;color:var(--texto);
}

/* Detalles del producto (abajo del widget) */
.product-hero-section .product-layout{margin-bottom:0;}
.product-details-wrap{
  max-width:1100px;margin:0 auto 60px;padding:24px 20px 0;
  display:flex;flex-direction:column;gap:22px;
}
.product-details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;}

@media(max-width:720px){
  .checkout-widget-body{grid-template-columns:minmax(0,1fr);padding:18px 16px;}
  .product-details-grid{grid-template-columns:1fr;}
  .checkout-widget{padding:0 12px;}
}

.checkout-section{
  margin-top:24px;
  border-top:2px solid rgba(98,191,72,.15);
  padding-top:22px;
  display:flex;flex-direction:column;gap:18px;
}
.checkout-step-block{display:flex;flex-direction:column;gap:10px;}
.checkout-step-title{
  display:flex;align-items:center;gap:10px;
  font-family:'Fredoka',var(--font-head);font-size:1rem;font-weight:700;color:var(--texto);
  margin-bottom:2px;
}
.step-num{
  width:26px;height:26px;background:var(--verde);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:700;flex-shrink:0;
}

/* Calendario */
.checkout-calendar{
  background:#fff;border:2px solid rgba(98,191,72,.22);
  border-radius:16px;overflow:hidden;user-select:none;
}
.cal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 16px;
  background:linear-gradient(135deg,#62BF48 0%,#438F2E 100%);color:#fff;
}
.cal-month-label{font-family:'Fredoka',var(--font-head);font-weight:700;font-size:.95rem;}
.cal-nav-btn{
  background:rgba(255,255,255,.22);border:none;color:#fff;
  width:30px;height:30px;border-radius:50%;cursor:pointer;
  font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .18s;
}
.cal-nav-btn:hover{background:rgba(255,255,255,.38);}
.cal-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);
  text-align:center;font-size:.7rem;font-weight:700;color:#999;
  padding:7px 4px 4px;border-bottom:1px solid #f0f0f0;
}
.cal-cells{
  display:grid;grid-template-columns:repeat(7,1fr);
  padding:5px 4px 10px;gap:2px;
}
.cal-cell{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-size:.83rem;border-radius:8px;
}
.cal-off{color:#d0d0d0;cursor:not-allowed;}
.cal-on{
  color:var(--texto);font-weight:600;cursor:pointer;
  transition:background .14s,color .14s;
}
.cal-on:hover{background:rgba(98,191,72,.14);color:var(--verde-oscuro);}
.cal-sel{background:var(--verde)!important;color:#fff!important;box-shadow:0 2px 8px rgba(98,191,72,.4);}

.fecha-selected-text{
  display:none;padding:8px 14px;
  background:rgba(98,191,72,.09);border-radius:10px;
  font-size:.85rem;color:var(--verde-oscuro);font-weight:600;
}

/* Cantidades */
.qty-list{display:flex;flex-direction:column;gap:8px;}
.qty-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;background:#f9fafb;
  border-radius:12px;border:1px solid #eee;
}
.qty-label{display:flex;flex-direction:column;gap:1px;}
.qty-label strong{font-size:.88rem;}
.qty-label span{font-size:.73rem;color:#999;}
.qty-controls{display:flex;align-items:center;gap:10px;}
.qty-controls button{
  width:32px;height:32px;border-radius:50%;
  border:2px solid var(--verde);background:transparent;color:var(--verde);
  font-size:1.2rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.qty-controls button:hover{background:var(--verde);color:#fff;}
.qty-controls>span{font-size:1.1rem;font-weight:700;min-width:22px;text-align:center;}

/* Cupón de promoción */
.checkout-coupon{
  display:flex;flex-direction:column;gap:7px;
  padding:12px 14px;margin-bottom:10px;
  background:#fffaf0;border:1px dashed #F0B818;border-radius:12px;
}
.checkout-coupon-label{
  display:flex;align-items:center;gap:7px;
  font-size:.8rem;font-weight:700;color:#8a5a10;
}
.checkout-coupon-row{display:flex;gap:8px;}
.checkout-coupon-row input{
  flex:1;min-width:0;padding:10px 12px;
  border:2px solid #f0e0bb;border-radius:10px;background:#fff;
  font-family:inherit;font-size:.9rem;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;color:var(--texto);
}
.checkout-coupon-row input:focus{outline:none;border-color:#F0B818;}
.checkout-coupon-row input:disabled{background:#f4f6f8;color:#7d8794;}
.checkout-coupon-row button{
  flex:0 0 auto;padding:10px 18px;
  background:linear-gradient(135deg,#F0B818,#D89406);color:#fff;
  border:none;border-radius:10px;cursor:pointer;
  font-family:inherit;font-size:.85rem;font-weight:700;
}
.checkout-coupon-row button:hover:not(:disabled){opacity:.9;}
.checkout-coupon-row button:disabled{opacity:.6;cursor:not-allowed;}
.checkout-coupon-msg{font-size:.78rem;line-height:1.4;font-weight:600;}
.checkout-coupon-msg.is-ok{color:var(--verde-oscuro);}
.checkout-coupon-msg.is-error{color:#c62828;}

.checkout-subtotal-row,
.checkout-discount-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 16px;font-size:.85rem;color:#666;
}
.checkout-discount-row{color:var(--verde-oscuro);font-weight:700;}
.checkout-success-cupon{
  color:var(--verde-oscuro)!important;font-size:.86rem;font-weight:600;
}

/* Footer del checkout */
.checkout-footer{display:flex;flex-direction:column;gap:12px;}
.checkout-total-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;background:#f0faf0;border-radius:12px;
  font-family:'Fredoka',var(--font-head);font-weight:700;
}
.checkout-total-row span:last-child{font-size:1.3rem;color:var(--verde-oscuro);}
.checkout-error{
  background:#fff0f0;color:#c62828;padding:10px 14px;
  border-radius:10px;font-size:.84rem;border-left:3px solid #c62828;
}
.btn-pagar{
  width:100%;padding:16px;
  background:linear-gradient(135deg,#62BF48 0%,#438F2E 100%);
  color:#fff;border:none;border-radius:14px;
  font-family:'Fredoka',var(--font-head);font-size:1.05rem;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;
  transition:opacity .2s,transform .15s;
  box-shadow:0 4px 14px rgba(67,143,46,.32);
}
.btn-pagar:not(:disabled):hover{opacity:.9;transform:translateY(-1px);}
.btn-pagar:disabled{opacity:.42;cursor:not-allowed;transform:none;}
.checkout-secure-note{
  text-align:center;font-size:.74rem;color:#aaa;
  display:flex;align-items:center;justify-content:center;gap:5px;
}

/* Estado de éxito */
.checkout-success{text-align:center;padding:26px 16px;}
.checkout-success-icon{font-size:3rem;color:var(--verde);margin-bottom:10px;}
.checkout-success h3{
  font-family:'Fredoka',var(--font-head);font-size:1.4rem;
  color:var(--verde-oscuro);margin-bottom:10px;
}
.checkout-success p{color:#555;font-size:.88rem;margin-bottom:6px;}
.checkout-success-total{font-size:1.1rem;font-weight:700;color:var(--texto)!important;}
.checkout-success-note{font-size:.8rem;color:#888!important;margin-top:8px;}
.checkout-success-comprobante{background:linear-gradient(135deg,#e6f9ee,#f0faf5);border:2px solid #62BF48;border-radius:14px;padding:16px 24px;margin:0 auto 18px;max-width:280px;}
.comprobante-label{display:block;font-size:.72rem;font-weight:700;color:#438F2E;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.comprobante-number{display:block;font-size:1.5rem;font-weight:bold;color:#1a1a2e;font-family:'Courier New',monospace;}

@media (max-width:768px){
  .checkout-total-row span:last-child{font-size:1.1rem;}
  .btn-pagar{font-size:.95rem;padding:14px;}
}

/* ===== ENTRADAS MÓVIL: sin tabs, secciones apiladas + salto a promociones ===== */
.promo-jump{display:none;}
.promo-panel-title{display:none;}

@media (max-width:768px){
  .tickets-page .ticket-tabs{display:none;}
  .tickets-page .ticket-panel,
  .tickets-page .ticket-panel[hidden]{display:block;}
  .tickets-page #tab-promos{margin-top:38px;scroll-margin-top:24px;}

  .promo-jump{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:28px auto 0;max-width:400px;
    background:#fff;border:2px solid rgba(98,191,72,.28);border-radius:999px;
    padding:12px 14px 12px 22px;color:#1A2D44;text-decoration:none;
    font-family:'Fredoka',var(--font-head);font-weight:700;font-size:.9rem;
    box-shadow:0 8px 18px rgba(0,0,0,.09);
  }
  .promo-jump span i{color:var(--naranja);margin-right:6px;}
  .promo-jump-arrow{
    width:36px;height:36px;border-radius:50%;flex:0 0 36px;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,#5DC44A,#1E6B2E);color:#fff;font-size:.9rem;
    box-shadow:0 5px 12px rgba(36,126,53,.35);
    animation:promoJumpBounce 1.6s ease-in-out infinite;
  }
  .promo-jump-arrow i{color:#fff;}

  .promo-panel-title{
    display:flex;align-items:center;justify-content:center;gap:10px;
    font-family:'Fredoka',var(--font-head);font-weight:700;font-size:1.15rem;
    color:#1A2D44;text-align:center;margin:0 0 22px;
  }
  .promo-panel-title i{color:var(--naranja);}
}

@keyframes promoJumpBounce{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(5px);}
}

/* ===== PÁGINAS LEGALES (privacidad, términos, reclamaciones) ===== */
.legal-section{padding-top:22px;}
.legal-wrap{
  max-width:820px;margin:0 auto;background:#fff;border-radius:20px;
  padding:38px 42px;box-shadow:0 8px 26px rgba(20,60,110,.08);
  border:1px solid rgba(98,191,72,.14);
}
.legal-title{
  font-family:'Fredoka',var(--font-head);font-size:1.75rem;font-weight:700;
  color:#1A2D44;margin:0 0 22px;padding-bottom:16px;
  border-bottom:3px solid var(--verde);text-align:left;
}
.legal-content{color:#44566c;font-size:.95rem;line-height:1.75;text-align:left;}
.legal-content h2{
  font-family:'Fredoka',var(--font-head);font-size:1.2rem;color:#1A2D44;
  margin:28px 0 10px;
}
.legal-content h3{font-size:1.02rem;color:#1A2D44;margin:22px 0 8px;font-weight:700;}
.legal-content p{margin-bottom:14px;}
.legal-content ul,.legal-content ol{margin:0 0 16px 22px;}
.legal-content ul li{list-style:disc;margin-bottom:7px;}
.legal-content ol li{list-style:decimal;margin-bottom:7px;}
.legal-content a{color:var(--verde-oscuro);font-weight:600;text-decoration:underline;word-break:break-word;}
.legal-content strong{color:#1A2D44;}
.legal-content img{max-width:100%;height:auto;border-radius:10px;}
.legal-content table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:.9rem;}
.legal-content table td,.legal-content table th{border:1px solid #e6edf3;padding:8px 11px;}
@media(max-width:640px){
  .legal-wrap{padding:26px 20px;border-radius:16px;}
  .legal-title{font-size:1.4rem;}
  .legal-content{font-size:.9rem;}
}

/* ===== LIBRO DE RECLAMACIONES ===== */
.lr-empresa{
  background:#f4f9fc;border:1px solid #e0ecf4;border-radius:12px;
  padding:14px 18px;font-size:.88rem;color:#44566c;line-height:1.6;
  margin-bottom:18px;text-align:left;
}
.lr-empresa strong{color:#1A2D44;}
.lr-intro{font-size:.92rem;color:#44566c;line-height:1.7;margin-bottom:26px;text-align:left;}
.lr-form{text-align:left;}
.lr-step{
  display:flex;align-items:center;gap:10px;
  font-family:'Fredoka',var(--font-head);font-size:1.05rem;color:#1A2D44;
  margin:30px 0 14px;padding-top:20px;border-top:1px solid #eef2f6;
}
.lr-form .lr-step:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.lr-step span{
  width:26px;height:26px;flex:0 0 26px;border-radius:50%;
  background:linear-gradient(135deg,#5DC44A,#1E6B2E);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;
}
.lr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.lr-grid > label{
  display:block;
  font-size:.78rem;font-weight:700;color:#5b6d82;
  text-transform:uppercase;letter-spacing:.4px;
}
.lr-grid > label b{color:#e5533d;}
.lr-grid > label > input,
.lr-grid > label > select,
.lr-grid > label > textarea{margin-top:6px;}
.lr-full{grid-column:1 / -1;}
.lr-form input[type=text],.lr-form input[type=tel],.lr-form input[type=email],
.lr-form input[type=number],.lr-form select,.lr-form textarea{
  width:100%;padding:11px 13px;border:2px solid #dde5ec;border-radius:10px;
  font-size:.95rem;font-family:inherit;color:#22364f;text-transform:none;
  letter-spacing:normal;font-weight:400;background:#fff;
}
.lr-form input:focus,.lr-form select:focus,.lr-form textarea:focus{
  outline:none;border-color:var(--verde);
}
.lr-form textarea{resize:vertical;line-height:1.6;}
.lr-radios{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;}
.lr-radio{
  display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  border:2px solid #dde5ec;border-radius:12px;padding:12px 14px;
  transition:border-color .18s,background .18s;
}
.lr-radio:has(input:checked){border-color:var(--verde);background:#f4fbf1;}
.lr-radio input{margin-top:3px;accent-color:var(--verde-oscuro);}
.lr-radio span{display:flex;flex-direction:column;gap:2px;text-transform:none;letter-spacing:normal;}
.lr-radio strong{font-size:.9rem;color:#1A2D44;}
.lr-radio small{font-size:.75rem;color:#8296ab;font-weight:400;line-height:1.4;}
.lr-check{
  display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  text-transform:none;letter-spacing:normal;font-weight:400;
  font-size:.88rem;color:#44566c;line-height:1.55;
}
.lr-check input{margin-top:3px;accent-color:var(--verde-oscuro);flex:0 0 auto;}
.lr-acepta{margin:26px 0 18px;background:#f8fbfd;border:1px solid #e6edf3;
  border-radius:12px;padding:14px 16px;}
.lr-acepta a{color:var(--verde-oscuro);font-weight:600;text-decoration:underline;}
.lr-enviar{
  border:none;cursor:pointer;font-size:1rem;padding:14px 34px;width:100%;
  justify-content:center;font-family:'Fredoka',var(--font-head);
}
.lr-nota{font-size:.78rem;color:#8296ab;line-height:1.6;margin-top:14px;text-align:left;}
.lr-mensaje{
  border-radius:12px;padding:16px 18px;margin-bottom:18px;
  font-size:.92rem;line-height:1.65;text-align:left;
}
.lr-ok{background:#e9f9ee;border:1px solid #9fd9b0;color:#22662e;}
.lr-error{background:#fdecea;border:1px solid #f0a9a0;color:#a33227;}
@media(max-width:640px){
  .lr-grid,.lr-radios{grid-template-columns:1fr;}
}

/* ===== PORTADA MÓVIL: que el afiche completo entre en pantalla ===== */
/* El arte es muy vertical (853x1844). En pantallas cortas los botones
   dibujados quedaban fuera de la vista o tapados por la barra inferior.
   Ajustamos el alto al espacio disponible y rellenamos los costados con
   una copia desenfocada de la misma imagen. */
@media (max-width:768px){
  .home-page .hero{
    position:relative;
    display:flex;
    justify-content:center;
    overflow:hidden;
    background:#0064e7;
  }
  /* Fondo desenfocado que cubre los costados */
  .home-page .hero::after{
    content:'';
    position:absolute;inset:0;z-index:0;
    background:url("../assets/mobile-pack/portada-movil-referencia-fast.webp") center/cover no-repeat;
    filter:blur(26px) saturate(1.15) brightness(.82);
    transform:scale(1.15);
  }
  /* --alto-afiche = 1 / proporción de la imagen (alto ÷ ancho).
     Imagen actual 853x1844 → 1844/853 = 2.1618
     Si cambias el banner, actualiza este número y el aspect-ratio. */
  .home-page .hero-stage{
    --alto-afiche:2.1618;
    position:relative;
    z-index:1;
    /* El menor entre: lo que cabe en pantalla, y lo que da el ancho completo.
       Así nunca se corta ni se deforma, sea cual sea la proporción. */
    height:min(calc(100svh - 69px), calc(100vw * var(--alto-afiche)));
    width:auto;
    max-width:100%;
    aspect-ratio:853 / 1844;
    margin:0 auto;
    border-radius:0 0 18px 18px;
    box-shadow:0 10px 30px rgba(0,0,0,.28);
  }
  /* La imagen ya no se recorta: se ve completa */
  .home-page .poster-art-reference{
    object-fit:contain;
    object-position:center;
  }
}
/* Navegadores sin svh (Safari antiguo) */
@supports not (height: 100svh){
  @media (max-width:768px){
    .home-page .hero-stage{
      height:min(calc(100vh - 69px), calc(100vw * var(--alto-afiche)));
    }
  }
}

/* En la portada móvil el navbar es transparente y ocupa toda la franja
   superior: dejamos pasar el toque salvo en sus propios controles, para
   que el badge de dirección del afiche sea clicable. */
@media (max-width:768px){
  .home-page .navbar{pointer-events:none;}
  .home-page .navbar .menu-toggle,
  .home-page .navbar .logo,
  .home-page .navbar .nav-actions,
  .home-page .navbar .menu-links{pointer-events:auto;}
}

/* ================================================================
   AJUSTES DE ACCESIBILIDAD Y USABILIDAD TÁCTIL
   Basado en la auditoría con ui-ux-pro-max:
   - touch-target-size: mínimo 44x44 (Apple HIG) / 48x48 (Material)
   - tap-delay: touch-action para eliminar el retardo de 300ms
   - readable-font-size: 16px en campos, evita el zoom automático de iOS
   ================================================================ */

/* Elimina el retardo de 300ms al tocar */
button, a, .cal-cell, input, select, textarea, label{
  touch-action:manipulation;
}

/* Los botones pequeños conservan su tamaño visual pero amplían
   el área táctil con una capa invisible centrada de 44x44. */
.qty-controls button,
.cal-nav-btn{
  position:relative;
}
.qty-controls button::after,
.cal-nav-btn::after{
  content:'';
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:44px;height:44px;
  border-radius:50%;
}

/* Separación mínima entre objetivos táctiles */
.qty-controls{gap:10px;}

/* Campos de formulario a 16px: por debajo de eso iOS hace zoom
   automático al enfocarlos y descuadra la pantalla. */
.lr-form input[type=text],
.lr-form input[type=tel],
.lr-form input[type=email],
.lr-form input[type=number],
.lr-form select,
.lr-form textarea,
.contact-form input,
.contact-form textarea,
.contact-form select{
  font-size:16px;
}

/* Foco visible en todo elemento interactivo (regla focus-states) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.cal-on:focus-visible{
  outline:3px solid var(--verde-oscuro);
  outline-offset:2px;
  border-radius:6px;
}

/* ================================================================
   CONTRASTE ACCESIBLE (WCAG AA — mínimo 4.5:1 en texto normal)
   Corrige los grises y verdes claros detectados en la auditoría.
   Se conserva la jerarquía visual: el texto secundario sigue
   siendo más suave que el principal, solo que ahora legible.
   ================================================================ */

/* Texto secundario: #999 / #aaa / #888 no llegaban a 4.5:1 sobre blanco */
.price-row small,
.qty-label span,
.cal-weekdays,
.product-breadcrumb{
  color:#5f6b78;
}
.checkout-secure-note{
  color:#5f6b78 !important;
}

/* Numeritos de paso: blanco sobre verde claro daba 2.2:1 */
.step-num{
  background:var(--verde-oscuro);
}

/* Botones − / + : el verde claro sobre blanco no alcanzaba */
.qty-controls button{
  color:var(--verde-oscuro);
  border-color:var(--verde-oscuro);
}

/* Días no disponibles: se mantienen apagados pero legibles */
.cal-off{
  color:#a6adb6;
}

/* Barra inferior móvil */
@media (max-width:768px){
  .mbn-item{
    color:#5f6b78;
  }
}

/* ================================================================
   PULIDO VISUAL
   - number-tabular: cifras de ancho fijo para que los precios no
     "salten" al recalcular el total ni al cambiar cantidades
   - scale-feedback: respuesta táctil sutil al pulsar
   ================================================================ */

/* Cifras tabulares en todo lo que muestre dinero o cantidades */
#checkoutTotal,
.checkout-total-row,
.price-row,
.ticket-price,
.qty-controls span,
.qty-label span,
.cal-cell,
.kpi-value,
.rc-tabla td{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

/* Respuesta al pulsar (0.96) — se percibe inmediata sin ser brusca */
.btn-buy:active,
.btn-pagar:not(:disabled):active,
.qty-controls button:active,
.ticket-btn:active,
.btn-whatsapp:active,
.lr-enviar:active,
.promo-jump:active{
  transform:scale(.96);
  transition-duration:.08s;
}

/* El calendario responde igual al tocar un día disponible */
.cal-on:active{
  transform:scale(.92);
  transition:transform .08s ease-out;
}

/* Estado deshabilitado inequívoco (regla state-clarity) */
.btn-pagar:disabled{
  cursor:not-allowed;
  filter:grayscale(.35);
}

/* Quien prefiera menos movimiento no recibe los rebotes */
@media (prefers-reduced-motion: reduce){
  .btn-buy:active,
  .btn-pagar:active,
  .qty-controls button:active,
  .ticket-btn:active,
  .btn-whatsapp:active,
  .lr-enviar:active,
  .promo-jump:active,
  .cal-on:active{
    transform:none;
  }
}

/* Texto disponible para lectores de pantalla pero invisible en pantalla.
   Se usa para dar un h1 a páginas cuyo título es una imagen. */
.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  clip:rect(0 0 0 0);clip-path:inset(50%);
  overflow:hidden;white-space:nowrap;
}

/* Marca de campo obligatorio (regla required-indicators) */
.req{color:#e5533d;font-weight:700;}

/* ================================================================
   FOOTER — REDISEÑO
   Antes: patrón de olas repetido en mosaico, alineaciones mezcladas
   en móvil y enlaces legales tapados por la barra fija.
   ================================================================ */

.site-footer{
  /* Degradado limpio + dos halos suaves en vez del mosaico repetido */
  background-color:var(--azul1);
  background-image:
    radial-gradient(circle at 88% 8%, rgba(255,255,255,.10) 0, transparent 42%),
    radial-gradient(circle at 6% 92%, rgba(255,202,46,.08) 0, transparent 46%),
    linear-gradient(150deg, #1468CC 0%, #0B4EA0 52%, #093D7E 100%);
  background-size:cover;
  margin-top:56px;
}

.footer-top{
  padding:72px 22px 34px;
  gap:38px 30px;
  grid-template-columns:1.6fr 1fr 1.25fr 1fr;
}

/* --- Columna de marca --- */
.footer-logo-wrap{
  width:92px;height:92px;
  border:3px solid rgba(255,255,255,.75);
  box-shadow:0 10px 26px rgba(0,0,0,.26);
  margin-bottom:18px;
}
.footer-logo{height:74px;}
.footer-brand p{
  font-size:.9rem;line-height:1.7;
  color:rgba(255,255,255,.88);
  max-width:34ch;
}

/* --- Encabezados de columna --- */
.footer-col h2{
  font-size:1.02rem;
  letter-spacing:.2px;
  margin-bottom:18px;
  padding-bottom:12px;
  position:relative;
}
.footer-col h2::after{
  content:'';
  position:absolute;left:0;bottom:0;
  width:38px;height:3px;border-radius:3px;
  background:var(--amarillo);
}
.footer-col h2 i{
  width:32px;height:32px;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.22);
}

/* --- Listas --- */
.footer-col ul li{margin-bottom:12px;font-size:.9rem;}
.footer-col ul li a{
  opacity:.85;
  transition:opacity .2s, transform .2s, color .2s;
  width:fit-content;
}
.footer-col ul li a:hover{
  opacity:1;color:var(--amarillo);
  transform:translateX(3px);
  text-decoration:none;
}
/* Los datos de contacto (no enlazados) comparten el mismo ritmo */
.footer-col ul li{
  display:flex;align-items:flex-start;gap:9px;
  color:rgba(255,255,255,.88);line-height:1.55;
}
.footer-col ul li > i{
  color:var(--amarillo);
  margin-top:3px;flex-shrink:0;width:15px;text-align:center;
}
.footer-col ul li a i{color:var(--amarillo);width:15px;text-align:center;}

/* --- Redes --- */
.social-icons a{
  width:44px;height:44px;
  background:rgba(255,255,255,.13);
  border:2px solid rgba(255,255,255,.42);
}
.social-icons a:hover{
  background:var(--amarillo);color:#093D7E;border-color:var(--amarillo);
}

/* --- Franja inferior --- */
.footer-bottom{
  border-top:none;
  padding:22px 22px 26px;
  position:relative;
  font-size:.83rem;
}
/* Separador degradado en vez de línea plana */
.footer-bottom::before{
  content:'';
  position:absolute;top:0;left:22px;right:22px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35) 22%,rgba(255,255,255,.35) 78%,transparent);
}
.legal-links{gap:24px;opacity:.82;}
.legal-links a{transition:color .2s,opacity .2s;}
.legal-links a:hover{color:var(--amarillo);opacity:1;text-decoration:none;}
.payment-icons span{
  width:42px;height:30px;border-radius:7px;
  background:#fff;color:#093D7E;font-size:1.15rem;
  box-shadow:0 3px 8px rgba(0,0,0,.18);
}

/* ================= MÓVIL ================= */
@media (max-width:768px){
  .site-footer{margin-top:40px;}
  .footer-top{
    /* Debe repetirse aquí: la regla de escritorio está más abajo en el
       archivo y, a igual especificidad, ganaría sobre la de móvil. */
    grid-template-columns:1fr;
    padding:52px 22px 26px;
    gap:34px;
    text-align:center;
  }
  /* Todo centrado de forma coherente (antes se mezclaban alineaciones) */
  .footer-brand{display:flex;flex-direction:column;align-items:center;}
  .footer-brand p{max-width:38ch;}
  .footer-col h2{
    justify-content:center;
    padding-bottom:14px;
    margin-bottom:16px;
  }
  .footer-col h2::after{left:50%;transform:translateX(-50%);}
  .footer-col ul li{justify-content:center;}
  .footer-col ul li a{margin:0 auto;}
  .footer-col ul li a:hover{transform:none;}
  .social-icons{justify-content:center;}

  .footer-bottom{
    flex-direction:column;
    gap:16px;
    /* Espacio para que la barra inferior fija no tape los enlaces legales */
    padding-bottom:calc(84px + env(safe-area-inset-bottom));
  }
  .legal-links{
    justify-content:center;
    gap:8px 20px;
    font-size:.8rem;
  }
}

/* El botón flotante de WhatsApp se superponía a los iconos de pago:
   se reserva el carril derecho para que no se pisen. */
@media (min-width:769px){
  .footer-bottom{padding-right:96px;}
}

/* ================================================================
   VISOR DE GALERÍA (lightbox)
   ================================================================ */
.foto-ampliable{
  cursor:zoom-in;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
}
.foto-ampliable:hover{transform:scale(1.03);box-shadow:0 12px 28px rgba(0,0,0,.2);}
.foto-ampliable:focus-visible{outline:3px solid var(--verde-oscuro);outline-offset:3px;}

.visor{
  position:fixed;inset:0;z-index:2000;
  display:none;align-items:center;justify-content:center;
  background:rgba(8,22,40,.94);
  padding:20px;
  opacity:0;transition:opacity .22s ease-out;
}
.visor.abierto{display:flex;opacity:1;}

.visor-marco{
  margin:0;max-width:min(1100px,92vw);max-height:86vh;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.visor-img{
  max-width:100%;max-height:74vh;
  width:auto;height:auto;object-fit:contain;
  border-radius:14px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  background:#0b1a2e;
}
.visor-pie{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  color:rgba(255,255,255,.92);font-size:.9rem;text-align:center;
}
.visor-contador{
  background:rgba(255,255,255,.16);
  padding:4px 12px;border-radius:20px;
  font-size:.8rem;font-weight:700;white-space:nowrap;
}

.visor-cerrar,
.visor-nav{
  position:absolute;
  background:rgba(255,255,255,.14);
  border:2px solid rgba(255,255,255,.3);
  color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  transition:background .2s,transform .2s,border-color .2s;
}
.visor-cerrar:hover,
.visor-nav:hover{background:rgba(255,255,255,.3);border-color:#fff;}
.visor-cerrar:focus-visible,
.visor-nav:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;}

.visor-cerrar{
  top:18px;right:18px;
  width:48px;height:48px;font-size:1.9rem;line-height:1;
}
.visor-nav{
  top:50%;transform:translateY(-50%);
  width:52px;height:52px;font-size:2rem;line-height:1;
}
.visor-prev{left:18px;}
.visor-next{right:18px;}
.visor-nav:hover{transform:translateY(-50%) scale(1.08);}

@media (max-width:768px){
  .visor{padding:12px;}
  .visor-img{max-height:66vh;}
  .visor-cerrar{top:10px;right:10px;width:44px;height:44px;}
  /* En móvil se navega deslizando: las flechas van abajo y no estorban */
  .visor-nav{
    top:auto;bottom:16px;transform:none;
    width:48px;height:48px;font-size:1.7rem;
  }
  .visor-nav:hover{transform:none;}
  .visor-prev{left:22%;}
  .visor-next{right:22%;}
}

@media (prefers-reduced-motion: reduce){
  .visor{transition:none;}
  .foto-ampliable,.foto-ampliable:hover{transition:none;transform:none;}
}

/* ================================================================
   CINTA DE SERVICIOS · RESEÑAS · PREGUNTAS FRECUENTES
   ================================================================ */

/* --- Cinta en movimiento --- */
.cinta{
  overflow:hidden;
  background:linear-gradient(135deg,#5DC44A,#3BA532 55%,#1E6B2E);
  padding:15px 0;
  position:relative;
  --vel:34s;
}
.cinta::before,.cinta::after{
  content:'';position:absolute;top:0;bottom:0;width:70px;z-index:2;pointer-events:none;
}
.cinta::before{left:0;background:linear-gradient(90deg,#4DB840,transparent);}
.cinta::after{right:0;background:linear-gradient(270deg,#1E6B2E,transparent);}
.cinta-pista{
  display:flex;width:max-content;
  animation:cintaCorre var(--vel) linear infinite;
}
.cinta:hover .cinta-pista{animation-play-state:paused;}
.cinta-grupo{
  display:flex;align-items:center;gap:38px;padding-right:38px;
  font-family:'Fredoka',var(--font-head);font-weight:600;
  color:#fff;font-size:1rem;white-space:nowrap;
}
.cinta-grupo span{display:flex;align-items:center;gap:10px;}
.cinta-grupo i{color:var(--amarillo);font-size:.9rem;}
@keyframes cintaCorre{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .cinta-pista{animation:none;}
  .cinta{overflow-x:auto;}
}

/* --- Reseñas --- */
.resenas-resumen{
  display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  background:#fff;border:2px solid rgba(98,191,72,.25);
  border-radius:999px;padding:11px 22px;margin-bottom:34px;
  box-shadow:0 6px 18px rgba(20,60,110,.08);
  color:#44566c;font-size:.88rem;text-decoration:none;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.resenas-resumen:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,60,110,.14);border-color:var(--verde);}
.resenas-resumen strong{font-family:'Fredoka',var(--font-head);font-size:1.5rem;color:#1A2D44;line-height:1;}
.resenas-resumen i.fa-arrow-up-right-from-square{color:var(--verde-oscuro);font-size:.75rem;}

.estrellas{display:inline-flex;gap:3px;color:#F5A623;font-size:.85rem;}
.estrellas .vacia{color:#dfe5ea;}

.resenas-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:20px;max-width:1160px;margin:0 auto;text-align:left;
}
.resena-card{
  background:#fff;border-radius:18px;padding:24px 24px 20px;margin:0;
  border:1px solid rgba(20,60,110,.08);
  box-shadow:0 6px 20px rgba(20,60,110,.07);
  display:flex;flex-direction:column;gap:13px;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;
}
.resena-card:hover{transform:translateY(-5px);box-shadow:0 14px 32px rgba(20,60,110,.13);}
.resena-card blockquote{
  margin:0;color:#44566c;font-size:.92rem;line-height:1.7;flex:1;
  position:relative;padding-left:16px;
}
.resena-card blockquote::before{
  content:'';position:absolute;left:0;top:2px;bottom:2px;width:3px;
  border-radius:3px;background:var(--verde);opacity:.4;
}
.resena-card figcaption{display:flex;flex-direction:column;gap:2px;}
.resena-card figcaption strong{font-family:'Fredoka',var(--font-head);color:#1A2D44;font-size:.93rem;}
.resena-card figcaption span{font-size:.76rem;color:#8296ab;}

/* --- Preguntas frecuentes --- */
.faq-lista{max-width:820px;margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:12px;}
.faq-item{
  background:#fff;border:1px solid rgba(20,60,110,.09);border-radius:14px;
  overflow:hidden;transition:box-shadow .22s,border-color .22s;
}
.faq-item.abierto{border-color:rgba(98,191,72,.4);box-shadow:0 8px 22px rgba(20,60,110,.09);}
.faq-item h3{margin:0;}
.faq-pregunta{
  width:100%;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px;text-align:left;
  font-family:'Fredoka',var(--font-head);font-size:.98rem;font-weight:600;color:#1A2D44;
  transition:background .18s;
}
.faq-pregunta:hover{background:#f7fbf6;}
.faq-pregunta i{
  color:var(--verde-oscuro);font-size:.85rem;flex-shrink:0;
  transition:transform .25s ease-out;
}
.faq-item.abierto .faq-pregunta i{transform:rotate(180deg);}
.faq-respuesta{padding:0 22px 20px;}
.faq-respuesta p{margin:0;color:#5f6b78;font-size:.92rem;line-height:1.75;}

@media (max-width:768px){
  .cinta-grupo{font-size:.88rem;gap:26px;padding-right:26px;}
  .cinta::before,.cinta::after{width:40px;}
  .resenas-grid{grid-template-columns:1fr;gap:14px;}
  .resena-card{padding:20px;}
  .faq-pregunta{padding:16px 18px;font-size:.92rem;}
  .faq-respuesta{padding:0 18px 17px;}
}

/* ================================================================
   CÓMO COMPRAR (3 pasos) · CIFRAS CON CONTEO
   ================================================================ */

/* --- Pasos --- */
.pasos-lista{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  max-width:1080px;margin:0 auto 34px;
  list-style:none;counter-reset:none;position:relative;
}
/* Línea que une los tres pasos en escritorio */
.pasos-lista::before{
  content:'';position:absolute;top:34px;left:16%;right:16%;height:3px;
  background:repeating-linear-gradient(90deg,rgba(98,191,72,.45) 0 9px,transparent 9px 18px);
  z-index:0;
}
.paso{
  position:relative;z-index:1;
  background:#fff;border-radius:20px;padding:30px 24px 26px;
  border:1px solid rgba(20,60,110,.08);
  box-shadow:0 6px 22px rgba(20,60,110,.07);
  text-align:center;
  transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s;
}
.paso:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(20,60,110,.13);}
.paso-num{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,#5DC44A,#1E6B2E);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:.95rem;
  box-shadow:0 5px 14px rgba(36,126,53,.4);border:3px solid #fff;
}
.paso-icono{
  display:flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:20px;margin:14px auto 16px;
  background:linear-gradient(145deg,#eaf8e6,#d7f0cf);
  color:var(--verde-oscuro);font-size:1.5rem;
}
.paso h3{
  font-family:'Fredoka',var(--font-head);font-size:1.08rem;
  color:#1A2D44;margin:0 0 9px;
}
.paso p{color:#5f6b78;font-size:.9rem;line-height:1.65;margin:0;}
.pasos-cta{display:inline-flex;}

/* --- Cifras --- */
.cifras-wrap{
  display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;
  max-width:1140px;margin:0 auto;text-align:left;
}
.cifras-wrap--solo-texto{grid-template-columns:1fr;max-width:720px;text-align:center;}
.cifras-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);
  color:#fff;border-radius:999px;padding:7px 16px;margin:0 0 16px;
  font-family:'Fredoka',var(--font-head);font-size:.74rem;
  font-weight:600;text-transform:uppercase;letter-spacing:.9px;
}
.cifras-eyebrow i{color:var(--amarillo);}
.cifras-titulo{
  font-family:'Fredoka',var(--font-head);font-size:1.95rem;font-weight:700;
  color:#fff;line-height:1.2;margin:0 0 14px;
}
.cifras-titulo span{color:var(--amarillo);}
.cifras-frase{
  color:rgba(255,255,255,.9);font-size:.95rem;line-height:1.7;
  margin:0 0 24px;max-width:46ch;
}
.cifras-btn{
  display:inline-flex;align-items:center;gap:9px;
  background:#fff;color:#093D7E;
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:.95rem;
  padding:13px 26px;border-radius:999px;text-decoration:none;
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  transition:transform .2s,box-shadow .2s;
}
.cifras-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.3);}
.cifras-btn:active{transform:scale(.97);}
.cifras-btn i{color:var(--verde);}

.cifras-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px;
}
.cifras-grid[data-n="1"]{grid-template-columns:1fr;max-width:230px;}
.cifras-grid[data-n="3"] .cifra:first-child{grid-column:span 2;}
.cifra{
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.24);
  border-radius:18px;padding:24px 16px 20px;
  display:flex;flex-direction:column;align-items:center;gap:5px;
  backdrop-filter:blur(3px);
}
.cifra > i{color:var(--amarillo);font-size:1.15rem;margin-bottom:4px;}
.cifra-valor{
  display:flex;align-items:baseline;justify-content:center;gap:2px;
}
.cifra-num{
  font-family:'Fredoka',var(--font-head);font-size:2.1rem;font-weight:700;
  color:#fff;line-height:1;font-variant-numeric:tabular-nums;
}
.cifra-suf{
  font-family:'Fredoka',var(--font-head);font-size:1.2rem;color:var(--amarillo);
  font-weight:700;line-height:1;
}
.cifra-txt{
  color:rgba(255,255,255,.9);font-size:.82rem;text-align:center;
  line-height:1.35;margin-top:6px;
}

@media (max-width:880px){
  .pasos-lista{grid-template-columns:1fr;gap:30px;max-width:460px;}
  .pasos-lista::before{
    top:8%;bottom:8%;left:50%;right:auto;width:3px;height:auto;
    background:repeating-linear-gradient(180deg,rgba(98,191,72,.4) 0 9px,transparent 9px 18px);
  }
  .cifras-wrap{grid-template-columns:1fr;gap:28px;text-align:center;}
  .cifras-texto{display:flex;flex-direction:column;align-items:center;}
  .cifras-titulo{font-size:1.5rem;}
  .cifras-frase{max-width:42ch;}
  .cifras-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .cifra{padding:20px 12px 16px;}
  .cifra-num{font-size:1.75rem;}
  .cifra-suf{font-size:1rem;}
}
@media (max-width:420px){
  .cifra-txt{font-size:.76rem;}
}

.cifras-section{
  background:
    radial-gradient(circle at 82% 12%, rgba(255,202,46,.14) 0, transparent 46%),
    linear-gradient(140deg,#1468CC 0%,#0B4EA0 48%,#093D7E 100%);
  padding-top:46px;padding-bottom:46px;
  max-width:1280px;margin-left:auto;margin-right:auto;
  border-radius:28px !important;
  overflow:hidden;
}

.cifras-eyebrow{
  background:rgba(255,202,46,.16);
  border-color:rgba(255,202,46,.40);
  color:var(--amarillo);
  letter-spacing:.7px;
}

.cifras-titulo{
  font-size:2.05rem;
  line-height:1.15;
  margin-bottom:12px;
  text-shadow:0 2px 12px rgba(0,0,0,.18);
}

/* Interlineado más compacto y color más sólido */
.cifras-frase{
  color:rgba(255,255,255,.82);
  font-size:.96rem;
  line-height:1.5;
  margin-bottom:22px;
}
/* Los servicios destacados saltan a la vista */
.cifras-frase strong{
  color:#fff;
  font-weight:700;
}

/* Tarjetas con presencia propia sobre el azul */
.cifra{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.30);
  box-shadow:0 6px 20px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.22);
  padding:22px 16px 18px;
  transition:background .22s, border-color .22s, transform .22s;
}
.cifra:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,212,71,.55);
  transform:translateY(-3px);
}
.cifra > i{font-size:1.25rem;color:var(--amarillo);}
.cifra-num{
  font-size:2.25rem;
  text-shadow:0 2px 10px rgba(0,0,0,.22);
}
.cifra-suf{font-size:1.3rem;}
.cifra-txt{
  color:rgba(255,255,255,.86);
  font-weight:600;
  font-size:.8rem;
  line-height:1.3;
  margin-top:7px;
}

/* El botón blanco gana peso frente al azul oscuro */
.cifras-btn{
  font-size:1rem;
  padding:14px 30px;
  box-shadow:0 10px 26px rgba(0,0,0,.3);
}

@media (max-width:768px){
  .cifras-titulo{font-size:1.55rem;line-height:1.18;}
  .cifras-frase{font-size:.92rem;line-height:1.5;margin-bottom:20px;}
  .cifra-num{font-size:1.85rem;}
  .cifra-suf{font-size:1.05rem;}
}

/* `.section h2` (0,1,1) vencía a `.cifras-titulo` (0,1,0) y pintaba el
   título de azul marino sobre fondo azul. Se sube la especificidad. */
.cifras-section .cifras-titulo{
  color:#fff;
  letter-spacing:-.2px;
}
.cifras-section .cifras-titulo span{color:var(--amarillo);}

/* La etiqueta de cada cifra quedaba en 4.41:1, justo por debajo del mínimo */
.cifra-txt{color:rgba(255,255,255,.93);}

/* ================================================================
   HERO DE ENTRADAS — CONTRASTE
   El degradado iba de verde claro a azul: el amarillo quedaba en
   1.67:1 sobre el verde y el título azul marino en 3.07 sobre el azul.
   Se oscurece el fondo y el texto pasa a blanco.
   ================================================================ */
.tickets-hero{
  background-image:
    radial-gradient(circle at 84% 14%, rgba(255,212,71,.14) 0, transparent 48%),
    linear-gradient(128deg,#0C8F73 0%,#0B7CA8 47%,#0D57A6 100%);
}

/* `.section h2` ganaba por especificidad y pintaba el título de azul marino */
.tickets-hero h1{
  color:#fff;
  letter-spacing:-.3px;
  line-height:1.18;
  text-shadow:0 2px 14px rgba(0,0,0,.22);
}
.tickets-hero h1 .accent{color:var(--amarillo);}

.tickets-hero .eyebrow{
  background:rgba(255,212,71,.18);
  border:1px solid rgba(255,212,71,.45);
  color:var(--amarillo);
  letter-spacing:.7px;
}
.tickets-hero .eyebrow i{color:var(--amarillo);}

/* El amarillo seguía en 2.84:1 sobre el verde. Se oscurece más ese
   extremo del degradado y la etiqueta pasa a texto blanco (el amarillo
   se conserva solo en el icono y el borde, que son decorativos). */
.tickets-hero{
  background-image:
    radial-gradient(circle at 84% 14%, rgba(255,202,46,.11) 0, transparent 48%),
    linear-gradient(128deg,#0A7060 0%,#0A6288 47%,#0B4590 100%);
}
.tickets-hero .eyebrow{color:#fff;}

/* ================================================================
   HEROES DE SERVICIOS — CONTRASTE
   Mismo problema que el hero de entradas: `.section h2 / .service-hero h1`
   pintaba el título de azul marino y los degradados eran demasiado
   claros para el amarillo. Se oscurecen y el texto pasa a blanco.
   ================================================================ */

.service-hero h1{
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.24);
  letter-spacing:-.3px;
}
.service-hero h1 .accent{color:var(--amarillo);}
.service-hero .eyebrow{
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.42);
  color:#fff;
}
.service-hero p{color:rgba(255,255,255,.93);}

/* ================================================================
   OFERTAS POR TIEMPO LIMITADO Y GALERÍA DE PRODUCTO
   La tarjeta de oferta la pinta js/promo.js con los datos de
   api-precios.php; las miniaturas las pinta js/cms.js.
   ================================================================ */

/* ── Miniaturas de la página de producto ── */
.product-thumbs{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:10px;
}
.product-thumb{
  padding:0;border:3px solid #fff;border-radius:14px;overflow:hidden;cursor:pointer;
  background:#fff;box-shadow:0 6px 14px rgba(0,0,0,.12);line-height:0;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.product-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;}
.product-thumb:hover,.product-thumb:focus-visible{transform:translateY(-3px);border-color:var(--amarillo);}
.product-thumb.is-active{
  border-color:var(--verde);box-shadow:0 8px 18px rgba(67,143,46,.32);
}

/* ── Tarjeta de oferta (página de producto) ── */
.promo-box[hidden]{display:none;}
.promo-box{
  position:relative;overflow:hidden;border-radius:22px;padding:22px 24px 20px;color:#fff;
  background:linear-gradient(140deg,#FF8A3D 0%,#F0561A 48%,#D2321F 100%);
  box-shadow:0 16px 34px rgba(210,50,31,.32);
}
.promo-box:before{
  content:'';position:absolute;inset:-40% -20% auto auto;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.28) 0,transparent 68%);pointer-events:none;
}
.promo-flag{
  display:inline-flex;align-items:center;gap:8px;background:#fff;color:#D2321F;
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:.78rem;
  text-transform:uppercase;letter-spacing:1.1px;padding:7px 15px;border-radius:30px;
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}
.promo-flag i{color:var(--amarillo);animation:promo-bolt 1.6s ease-in-out infinite;}
@keyframes promo-bolt{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.22);opacity:.75}}

/* wrap + min-width:0: en pantallas de 320 px el precio grande y la insignia
   de descuento no cabían en la misma línea y se salían 3 px de la tarjeta. */
.promo-body{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;margin-top:14px;flex-wrap:wrap;}
.promo-precio{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;}
.promo-antes{
  font-family:var(--font-body);font-size:1.05rem;font-weight:600;
  color:rgba(255,255,255,.75);text-decoration:line-through;text-decoration-thickness:2px;
}
.promo-ahora{
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:2.7rem;line-height:1;
  color:#fff;text-shadow:0 3px 10px rgba(0,0,0,.22);
}
.promo-tipo{flex-basis:100%;font-size:.82rem;color:rgba(255,255,255,.9);font-weight:600;}
.promo-off{
  flex-shrink:0;background:var(--amarillo);color:#7A2E08;border-radius:16px;
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:1.25rem;
  padding:10px 14px;transform:rotate(-7deg);box-shadow:0 8px 16px rgba(0,0,0,.2);
}

.promo-minis{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.promo-mini{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.34);
  border-radius:10px;padding:5px 11px;font-size:.82rem;
}
.promo-mini b{font-weight:700;margin-right:5px;}
.promo-mini s{opacity:.72;margin-right:4px;}

.promo-clock{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;
  padding-top:16px;border-top:1px dashed rgba(255,255,255,.4);
}
.promo-clock-label{
  font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;
  color:rgba(255,255,255,.92);display:inline-flex;align-items:center;gap:7px;
}
.promo-units{display:flex;gap:8px;}
.promo-unit[hidden]{display:none;}
.promo-unit{
  display:flex;flex-direction:column;align-items:center;min-width:56px;
  background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:7px 6px 5px;
}
.promo-unit b{
  font-family:'Fredoka',var(--font-head);font-weight:700;font-size:1.5rem;line-height:1;
  font-variant-numeric:tabular-nums;
}
.promo-unit i{font-style:normal;font-size:.64rem;text-transform:uppercase;letter-spacing:.7px;opacity:.85;margin-top:3px;}
.promo-unit[data-u="s"]{background:rgba(0,0,0,.34);}

.promo-nota{margin:14px 0 0;font-size:.86rem;color:rgba(255,255,255,.94);line-height:1.45;}

@media (max-width:520px){
  .promo-ahora{font-size:2.2rem;}
  .promo-clock{gap:9px;}
  .promo-unit{min-width:48px;}
}

/* ── Cintillo de oferta en el catálogo (entradas.html) ── */
.ticket-promo[hidden]{display:none;}
.ticket-promo{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:9px;}
.ticket-promo-flag{
  display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#FF8A3D,#D2321F);color:#fff;
  font-family:'Fredoka',var(--font-head);font-weight:600;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.7px;padding:5px 11px;border-radius:20px;
  box-shadow:0 5px 12px rgba(210,50,31,.34);
}
.ticket-promo-flag b{font-weight:700;}
.ticket-promo-time{
  display:inline-flex;align-items:center;gap:6px;
  background:#fff5e6;border:1px solid #f4cf95;color:#8a5a14;
  font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:20px;
}
.ticket-promo-time b{font-variant-numeric:tabular-nums;}
.ticket-price s{color:#a0a8a3;font-weight:500;margin-right:5px;}

@media (prefers-reduced-motion:reduce){
  .promo-flag i{animation:none;}
  .product-thumb{transition:none;}
}

/* Tarjeta de una promoción temporal creada en el CMS (la inserta js/promo.js) */
.ticket-price-sub{
  margin:-4px 0 10px;font-size:.78rem;color:#7d8a83;font-weight:600;line-height:1.35;
}

/* ── Tarjeta de promoción temporal en el catálogo ──
   Es la misma tarjeta que las demás y tiene que medir lo mismo: la foto se
   recorta al formato de las otras (701x576) en vez de crecer con la que
   suban desde el CMS. Lo único que la distingue es que su estela brilla. */
.promo-temporal .ticket-card-img{position:relative;}
.promo-temporal .ticket-card-img img{
  aspect-ratio:701/576;
  height:auto;
  object-fit:cover;
}
/* Descuento y cronómetro flotando sobre la foto */
.promo-temporal .ticket-promo{
  position:absolute;left:10px;right:10px;bottom:10px;
  margin:0;justify-content:center;
}
.promo-temporal .ticket-promo-time{
  background:rgba(255,255,255,.94);border-color:transparent;
  box-shadow:0 4px 12px rgba(0,0,0,.22);
}
.promo-temporal .ticket-promo-flag{box-shadow:0 4px 12px rgba(0,0,0,.28);}
.card-pop.promo-temporal.in-view .card-splash{
  opacity:1;
  /* el mismo brillo con el que arranca el latido, para que no dé un salto
     cuando termina el retraso */
  filter:saturate(1.3) brightness(1.08);
  /* el retraso deja terminar la animación de entrada antes de empezar a latir */
  animation:promoEstela 2.6s ease-in-out .9s infinite;
}
@keyframes promoEstela{
  0%,100%{
    transform:translateY(0) scale(1) rotate(-6deg);
    filter:saturate(1.3) brightness(1.08);
  }
  50%{
    transform:translateY(-2px) scale(1.05) rotate(-6deg);
    filter:saturate(1.6) brightness(1.26);
  }
}
@media (prefers-reduced-motion:reduce){
  .card-pop.promo-temporal.in-view .card-splash{
    animation:none;
    filter:saturate(1.45) brightness(1.16);
  }
}
