/* =========================================================================
   YES FESTIVAL — index2 (estilo cinematográfico tipo Apple)
   Mismo branding (colores/fuentes/contenido) con scrollytelling, pins,
   reveals con escala y transiciones de fondo. Hoja propia.
   ========================================================================= */
@font-face{font-family:'Formula Condensed';font-weight:700;src:url('assets/fonts/FormulaCondensed-Bold.ttf') format('truetype');font-display:swap;}
@font-face{font-family:'Geist';font-weight:400;src:url('assets/fonts/Geist-Regular.otf') format('opentype');font-display:swap;}
@font-face{font-family:'Geist';font-weight:700;src:url('assets/fonts/Geist-Bold.otf') format('opentype');font-display:swap;}

:root{
  --black:#100e13;--cream:#ddd8d2;--gold:#e6cd4c;--red:var(--gold);--white:#fff; /* sin rojo: el acento es el amarillo corporativo */
  --display:'Formula Condensed','Arial Narrow',sans-serif;
  --body:'Geist',system-ui,sans-serif;
  /* Margen lateral: 10% a cada lado (contenido al 80% del ancho) */
  --pad:10vw;
  /* Ancho fijo de la columna de contenido (óptimo para lectura). Todo el
     contenido se centra a este ancho; los fondos full-bleed siguen a todo el ancho. */
  --content:1040px;
  /* Bandas manifiesto (amarillas): alto y tamaño de fuente compartidos */
  --band-pad:clamp(4.5rem,8vh,8rem);
  --band-fs:clamp(1.98rem,5.5vw,4.4rem);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{font-family:var(--body);background:var(--black);color:var(--cream);line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
.display{font-family:var(--display);text-transform:uppercase;line-height:.9;letter-spacing:.005em;}

/* botón */
.btn{display:inline-block;font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  font-size:clamp(1rem,1.5vw,1.25rem);padding:1em 2em;background:var(--gold);color:var(--black);border-radius:999px;
  transition:transform .25s ease,background .25s ease,color .25s ease;}
.btn:hover{transform:translateY(-3px);background:var(--cream);color:var(--black);}
.btn--ghost{background:transparent;border:1.5px solid currentColor;}
/* En bandas amarillas el botón pasa a oscuro para conservar contraste */
.statement--gold .btn,.fb--gold .btn{background:var(--black);color:var(--cream);}
.statement--gold .btn:hover,.fb--gold .btn:hover{background:var(--cream);color:var(--black);}
/* CTA con contador de entradas */
.btn--cta{display:inline-flex;align-items:center;gap:.7em;padding:.85em 1em .85em 1.6em;position:relative;overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.45);will-change:transform;}
.btn--cta::before{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);}
.btn--cta:hover{transform:translateY(-3px) scale(1.02);background:var(--gold);color:var(--black);}
.btn--cta:hover::before{animation:ctashine .9s ease;}
.btn--cta:active{transform:translateY(-1px) scale(.99);}
.btn__txt{position:relative;z-index:1;}
.btn__pill{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.35em;
  font-size:.72em;letter-spacing:.08em;background:rgba(0,0,0,.22);color:inherit;
  padding:.5em .9em;border-radius:999px;line-height:1;}
.btn__pill b{font-size:1.15em;}
@keyframes ctashine{0%{left:-120%;}100%{left:140%;}}

/* ---------- Nav local sticky (estilo Apple) ---------- */
.lnav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:.7rem var(--pad);background:rgba(16,14,19,0);backdrop-filter:blur(0);
  transform:translateY(-100%);opacity:0;pointer-events:none;
  transition:transform .45s ease,opacity .45s ease,background .4s,backdrop-filter .4s,padding .4s;}
.lnav.solid{transform:translateY(0);opacity:1;pointer-events:auto;background:rgba(16,14,19,.7);backdrop-filter:saturate(180%) blur(16px);padding-block:.5rem;}
.lnav__logo img{width:clamp(58px,7vw,78px);}
.lnav__links{display:flex;gap:clamp(1rem,2.4vw,2.2rem);align-items:center;}
.lnav__links a{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:1.08rem;opacity:.85;transition:opacity .2s,color .2s;}
.lnav__links a:hover{opacity:1;color:var(--gold);}
.lnav__cta{display:inline-flex;align-items:center;gap:.5em;background:var(--gold);color:var(--black);padding:.55em 1.1em;border-radius:999px;opacity:1!important;}
.lnav__cta:hover{background:var(--cream);color:var(--black);}
.lnav__pill{display:inline-flex;align-items:center;gap:.28em;background:rgba(16,14,19,.16);border-radius:999px;padding:.12em .6em;font-size:.82em;letter-spacing:.02em;}
.lnav__pill b{font-weight:800;}
@media (max-width:720px){.lnav__links a:not(.lnav__cta){display:none;}}

/* ---------- HERO pinned ---------- */
.hero2{position:relative;height:100svh;overflow:hidden;display:grid;place-items:center;text-align:center;}
.hero2__media{position:absolute;inset:0;will-change:transform,opacity;}
.hero2__media img{width:100%;height:100%;object-fit:cover;}
.hero2__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,14,19,.55),rgba(16,14,19,.35) 40%,rgba(16,14,19,.85));}
.hero2__inner{position:relative;z-index:2;padding:0 var(--pad);max-width:none;will-change:transform,opacity;}
.hero2__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-size:clamp(.92rem,1.61vw,1.21rem);margin-bottom:.7rem;}
.hero2 h1{font-family:var(--display);text-transform:uppercase;line-height:.86;font-size:clamp(2.36rem,6.79vw,5.75rem);margin-bottom:.5rem;}
.hero2 h1 .y{color:var(--gold);}
.hero2__sub{font-size:clamp(1rem,1.7vw,1.35rem);max-width:46ch;margin:0 auto 2rem;}
.hero2__edicion{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.6em .9em;margin:0 0 1.4rem;}
.hero2__date{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;color:#fff;display:inline-block;font-size:clamp(1.09rem,1.96vw,1.5rem);}
.hero2__scroll{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;opacity:.7;}
.hero2__scroll::after{content:"";display:block;width:1px;height:34px;background:var(--cream);margin:.6rem auto 0;animation:scrollline 1.8s ease-in-out infinite;transform-origin:top;}
@keyframes scrollline{0%,100%{transform:scaleY(.3);opacity:.3;}50%{transform:scaleY(1);opacity:1;}}

/* ===== Hero entrada animada ===== */
.hero2__inner{max-width:920px;margin-inline:auto;}
.hero2__seal{position:relative;display:block;width:clamp(66px,8.5vw,104px);margin:0 auto .9rem;perspective:1000px;}
.hero2__seal svg{display:block;width:100%;height:auto;}
.hero2__seal img{display:block;width:100%;height:auto;opacity:0;transform-origin:center;backface-visibility:visible;animation:hSealFlip 1.35s cubic-bezier(.18,.92,.26,1) .1s forwards,hSealFloat 6s ease-in-out 1.7s infinite,hSealGlow 4.5s ease-in-out 1.7s infinite;}
.hero2__seal::before,.hero2__seal::after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;border:2px solid var(--gold);opacity:0;transform:translate(-50%,-50%) scale(.5);pointer-events:none;}
.hero2__seal::before{animation:hShock .85s ease-out 1.2s forwards;}
.hero2__seal::after{animation:hShock 1.15s ease-out 1.35s forwards;}
.hero2__title{margin-bottom:.5rem;}
.hero2__title .hl{display:block;overflow:hidden;padding:.16em 0;margin:-.14em 0;}
.hero2__title .hl__in{display:inline-block;transform:translateY(120%);will-change:transform;animation:hRise 1s cubic-bezier(.2,.9,.25,1) forwards;}
.hero2__title .hl:nth-child(1) .hl__in{animation-delay:.5s;}
.hero2__title .hl:nth-child(2) .hl__in{animation-delay:.66s;}
.hero2__title .hl:nth-child(3) .hl__in{animation-delay:.82s;}
.hero2__kicker{opacity:0;animation:hFade .8s ease forwards .35s;}
.hero2__tampoco{position:relative;display:inline-block;font-family:var(--display);font-style:italic;text-transform:none;color:var(--gold);font-weight:700;font-size:clamp(1.55rem,4.03vw,2.99rem);line-height:1;letter-spacing:.01em;margin:.5rem 0 1.5rem;opacity:0;animation:hTampoco 1.15s cubic-bezier(.2,.85,.2,1) forwards 1.7s;}
.hero2__tampoco::after{content:"";position:absolute;left:0;right:100%;bottom:-.14em;height:2px;background:var(--gold);opacity:.85;animation:hUnderline .7s cubic-bezier(.6,0,.2,1) forwards 2.65s;}
.hero2__edicion{opacity:0;animation:hFade .8s ease forwards 2.4s;}
.hero2__cta-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.9em 1.4em;}
.hero2__cta-row .hero2__date{opacity:0;animation:hFade .8s ease forwards 2.4s;}
.hero2__inner .btn--cta{opacity:0;animation:hFade .8s ease forwards 2.6s;font-size:clamp(1.15rem,1.73vw,1.44rem);}
@keyframes hRise{from{transform:translateY(120%);}to{transform:translateY(0);}}
@keyframes hFade{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes hTampoco{0%{opacity:0;filter:blur(12px);letter-spacing:.4em;transform:translateY(14px) scale(.92);}60%{opacity:1;}100%{opacity:1;filter:blur(0);letter-spacing:.01em;transform:translateY(0) scale(1);}}
@keyframes hUnderline{from{right:100%;}to{right:0;}}
@keyframes hSealFlip{0%{opacity:0;transform:rotateY(-720deg) scale(.15);filter:drop-shadow(0 0 22px rgba(230,205,76,.9));}40%{opacity:1;}72%{transform:rotateY(0deg) scale(1.22);}88%{transform:rotateY(0deg) scale(.92);}100%{opacity:1;transform:rotateY(0deg) scale(1);filter:drop-shadow(0 0 4px rgba(230,205,76,.2));}}
@keyframes hShock{0%{opacity:.8;transform:translate(-50%,-50%) scale(.45);}100%{opacity:0;transform:translate(-50%,-50%) scale(3);}}
@keyframes hSealFloat{0%,100%{transform:translateY(0) rotate(0);}50%{transform:translateY(-9px) rotate(4deg);}}
@keyframes hSealGlow{0%,100%{filter:drop-shadow(0 0 4px rgba(230,205,76,.15));}50%{filter:drop-shadow(0 0 16px rgba(230,205,76,.55));}}
@media (prefers-reduced-motion:reduce){
  .hero2__seal,.hero2__seal img,.hero2__seal::before,.hero2__seal::after,.hero2__title .hl__in,.hero2__kicker,.hero2__tampoco,.hero2__tampoco::after,.hero2__edicion,.hero2__cta-row .hero2__date,.hero2__inner .btn--cta{animation:none;opacity:1;transform:none;filter:none;letter-spacing:.01em;}
  .hero2__seal::before,.hero2__seal::after{opacity:0;}
  .hero2__tampoco::after{right:0;}
}

/* ---------- Frase manifiesto (palabras que se iluminan al scroll) ---------- */
.statement{padding:clamp(6rem,16vh,14rem) var(--pad);max-width:none;margin:0 auto;}
.statement p{font-family:var(--display);text-transform:uppercase;line-height:1.05;font-size:clamp(1.8rem,5vw,4rem);}
.statement .c{color:rgba(221,216,210,.18);transition:color .25s ease;}
.statement .c.lit{color:var(--cream);}
.statement .c.gold.lit{color:var(--gold);}
/* Bandas manifiesto amarillas (banda full-bleed, alto y fuente compartidos) */
.statement--gold{background:var(--gold);color:var(--black);max-width:none;margin:0;padding-top:calc(var(--band-pad) + 125px);padding-bottom:calc(var(--band-pad) + 125px);}
.statement--gold p{max-width:820px;margin:0 auto;text-align:center;font-size:var(--band-fs);line-height:1.12;}
.statement--gold .c{color:rgba(16,14,19,.22);transition:color .25s ease;}
.statement--gold .c.lit{color:var(--black);}
/* Resaltado: caja negra que se rellena letra a letra; cada letra es su propia caja contigua */
.statement--gold .c.gold{
  color:rgba(16,14,19,.22);
  background-image:linear-gradient(var(--black),var(--black));
  background-repeat:no-repeat;background-position:0 100%;
  background-size:0 100%;padding:.06em 0;
  transition:background-size .18s ease,color .18s ease;
}
.statement--gold .c.gold.lit{color:var(--gold);background-size:100% 100%;}
.statement--gold .gold .c:first-child{padding-left:.14em;}
.statement--gold .gold .c:last-child{padding-right:.14em;}
/* Subtítulo bajo la frase manifiesto (cursiva, "por ir abriendo boca…") */
.statement--gold .statement__sub{font-family:var(--body);font-style:italic;text-transform:none;
  font-size:clamp(.95rem,1.6vw,1.25rem);text-align:center;max-width:820px;margin:1.6rem auto 0;opacity:.8;}
/* Full-bleed convertido a banda amarilla sólida (conserva subtítulo y botón) */
.fb--gold{height:auto;background:var(--gold);color:var(--black);padding-block:var(--band-pad);}
.fb--gold .fb__media{display:none;}
.fb--gold .fb__txt h2{font-size:var(--band-fs);line-height:1.22;}
.fb--gold .fb__txt p{color:var(--black);opacity:.82;}
/* Iluminado de palabras al hacer scroll (mismo estilo que las bandas statement) */
.fb--gold .fb__txt h2 .c{color:rgba(16,14,19,.22);transition:color .25s ease;}
.fb--gold .fb__txt h2 .c.lit{color:var(--black);}
.fb--gold .fb__txt h2 .c.gold{
  color:var(--black);
  background-image:linear-gradient(var(--black),var(--black));
  background-repeat:no-repeat;background-position:0 100%;
  background-size:0 .085em;padding-bottom:.08em;
  transition:background-size .18s ease,color .25s ease;
}
.fb--gold .fb__txt h2 .c.gold.lit{background-size:100% .085em;}

/* ---------- Stats (contadores) ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;text-align:center;padding:clamp(4rem,9vw,8rem) var(--pad);border-block:1px solid rgba(221,216,210,.14);max-width:none;margin:0 auto;}
.stat__n{font-family:var(--display);font-size:clamp(3.5rem,11vw,9rem);line-height:1;color:var(--gold);}
.stat__l{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:clamp(.8rem,1.4vw,1.1rem);margin-top:.4rem;}

/* ---------- Bloques de letras gigantes (chapter titles) ---------- */
.gblock{position:relative;overflow:hidden;padding-block:clamp(3rem,9vw,8rem);background:var(--black);}
.gblock--cream{background:var(--cream);color:var(--black);}
.gblock__inner{padding-inline:var(--pad);}
.gword{display:block;font-family:var(--display);text-transform:uppercase;line-height:.8;letter-spacing:.005em;
  color:var(--cream);white-space:nowrap;font-size:clamp(4rem,22vw,20rem);
  opacity:1;visibility:hidden;}
/* Las palabras gigantes se ajustan por JS midiéndolas a 200px; hasta que ese
   primer ajuste termina permanecen ocultas para que aparezcan YA con el tamaño
   final (sin el "encogido robótico" en móvil). Fallback en JS por si JS falla. */
html.giants-ready .gword{visibility:visible;}
.gword.gold{color:var(--gold);}
.gword.red{color:var(--red);}
.gblock.in .gword{opacity:1;}
.gblock.in .gword:nth-child(2){transition-delay:.08s;}
.gblock.in .gword:nth-child(3){transition-delay:.16s;}
.gblock--cream .gword{color:var(--black);}
.gblock--cream .gword.red{color:var(--black);}
.gblock__lead{padding:0 var(--pad);max-width:60ch;margin:0 0 clamp(1.6rem,3vw,2.4rem);
  font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-size:clamp(.85rem,1.4vw,1.1rem);}
.gblock__emblem{position:absolute;right:var(--pad);bottom:clamp(1.2rem,4vw,3rem);width:clamp(70px,9vw,130px);opacity:.95;}
.gblock__emblem--red{filter:sepia(1) saturate(3.4) hue-rotate(14deg) brightness(1.15);}
/* ENTRADAS: la palabra gigante hace de cabecera de las tarjetas → se leen como un solo bloque,
   sin el hueco negro muerto que las hacía parecer sueltas. */
.gblock--entradas{padding-bottom:clamp(1rem,2.5vw,2rem);}
.gblock--entradas .gblock__emblem{display:none;}
.gblock--entradas + .sec{padding-top:clamp(1.5rem,3vw,2.6rem);}

/* ====== BLOQUE ENTRADAS unificado (palabra gigante + auditorio + tarjetas) ======
   Igual idea que Testimonios (.hist): un mismo fondo y una trama tras todo el
   conjunto para que se lea como UN bloque. Aquí la trama es distinta: finas
   líneas diagonales en vez de los puntos del bloque de testimonios. */
.entradasWrap{
  position:relative;overflow:hidden;background:var(--black);
  background:
    radial-gradient(120% 42% at 50% 0%, rgba(231,196,90,.10), rgba(231,196,90,0) 56%),
    radial-gradient(92% 52% at 50% 42%, rgba(78,70,94,.42), rgba(16,14,19,0) 74%),
    linear-gradient(180deg, var(--black) 0%, #171421 40%, #14111d 66%, var(--black) 100%);
}
.entradasWrap::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:repeating-linear-gradient(135deg, rgba(221,216,210,.045) 0 1px, transparent 1px 11px);
  -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 12%, #000 72%, transparent 98%);
          mask-image:linear-gradient(180deg, transparent 0, #000 12%, #000 72%, transparent 98%);
}
/* las secciones se apoyan sobre la trama, sin tapar el fondo del wrapper */
.entradasWrap > *{position:relative;z-index:1;}
.entradasWrap .gblock--entradas,
.entradasWrap .aud,
.entradasWrap #entradas{background:transparent;}
/* quitar el hueco muerto entre auditorio y tarjetas → todo pegado */
.entradasWrap .aud{padding-bottom:clamp(.8rem,2vw,1.6rem);}
.entradasWrap #entradas{padding-top:clamp(1rem,2.5vw,1.8rem);}

/* ---------- CTA vídeo en el hero ---------- */
.hero2__play{display:inline-flex;align-items:center;gap:.85em;margin:0 auto 2rem;padding:.55em .55em;
  background:none;border:0;cursor:pointer;color:var(--cream);font:inherit;transition:color .2s;}
.hero2__play:hover{color:var(--gold);}
.hero2__play-ico{flex:none;width:2.6em;height:2.6em;border-radius:50%;background:var(--gold);color:var(--black);
  display:grid;place-items:center;transition:transform .2s,background .2s,color .2s;box-shadow:0 10px 30px rgba(0,0,0,.4);}
.hero2__play-ico::before{content:"";width:0;height:0;margin-left:.18em;
  border-style:solid;border-width:.45em 0 .45em .72em;border-color:transparent transparent transparent currentColor;}
.hero2__play:hover .hero2__play-ico{transform:scale(1.08);background:var(--gold);color:var(--black);}
.hero2__play-txt{font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;
  font-size:clamp(.95rem,1.4vw,1.15rem);line-height:1;color:var(--gold);margin:0;}
.hero2__play-txt .gold{color:var(--gold);}

/* ---------- Modal de vídeo ---------- */
.vmodal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);}
.vmodal.open{display:flex;}
.vmodal__backdrop{position:absolute;inset:0;background:rgba(8,7,10,.86);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .3s ease;}
.vmodal.open .vmodal__backdrop{opacity:1;}
.vmodal__dialog{position:relative;width:min(1100px,100%);aspect-ratio:16/9;
  transform:scale(.94);opacity:0;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .3s ease;}
.vmodal.open .vmodal__dialog{transform:scale(1);opacity:1;}
.vmodal__frame{position:absolute;inset:0;border-radius:18px;overflow:hidden;background:#000;
  box-shadow:0 40px 120px rgba(0,0,0,.6);}
.vmodal__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vmodal__close{position:absolute;top:-3.4rem;right:0;width:2.6rem;height:2.6rem;border-radius:50%;
  border:0;cursor:pointer;background:rgba(255,255,255,.12);color:var(--cream);font-size:1.6rem;line-height:1;
  display:grid;place-items:center;transition:background .2s,color .2s,transform .2s;}
.vmodal__close:hover{background:var(--gold);color:var(--black);transform:rotate(90deg);}
@media(max-width:640px){.vmodal__close{top:-3rem;}}

/* ---------- Aftermovie (resumen en vídeo de la última edición) ---------- */
.after{padding:clamp(4rem,11vw,9rem) var(--pad) clamp(2rem,5vw,3.5rem);text-align:center;
  background:radial-gradient(125% 80% at 50% 0%,rgba(230,205,76,.08),transparent 62%),var(--black);}
/* La palabra gigante que sigue al aftermovie hace de cabecera → sin hueco negro muerto. */
.after + .gblock{padding-top:clamp(1.5rem,4vw,3rem);}
.after__head{max-width:760px;margin:0 auto clamp(2.2rem,5vw,3.4rem);}
.after__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;color:var(--gold);
  font-size:clamp(.8rem,1.4vw,1.05rem);margin-bottom:1rem;}
.after__title{font-family:var(--display);text-transform:uppercase;line-height:.95;
  font-size:clamp(2.2rem,6vw,4.4rem);margin-bottom:1.1rem;}
.after__title .gold{color:var(--gold);}
.after__intro{font-size:clamp(1rem,1.6vw,1.25rem);max-width:52ch;margin:0 auto;opacity:.85;}

/* escenario de vídeo (clicable, abre el mismo modal que el hero) */
.after__stage{position:relative;display:block;width:min(1100px,100%);margin:0 auto;aspect-ratio:16/9;
  border-radius:20px;overflow:hidden;background:#000;cursor:pointer;
  box-shadow:0 40px 120px rgba(0,0,0,.55);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;}
.after__stage:hover{transform:translateY(-4px);box-shadow:0 50px 140px rgba(0,0,0,.65);}
.after__media{position:absolute;inset:0;}
.after__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.after__stage:hover .after__media img{transform:scale(1.05);}
.after__shade{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(16,14,19,.18),rgba(16,14,19,.12) 42%,rgba(16,14,19,.8));}
/* botón play central con anillo que late */
.after__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:clamp(64px,8vw,92px);height:clamp(64px,8vw,92px);border-radius:50%;
  background:var(--gold);color:var(--black);display:grid;place-items:center;
  box-shadow:0 14px 40px rgba(0,0,0,.45),0 0 0 14px rgba(230,205,76,.12),0 0 60px rgba(230,205,76,.45);transition:transform .25s,box-shadow .25s;}
.after__stage:hover .after__play{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 14px 40px rgba(0,0,0,.45),0 0 0 18px rgba(230,205,76,.16),0 0 80px rgba(230,205,76,.6);}
.after__play::before{content:"";width:0;height:0;margin-left:.22em;
  border-style:solid;border-width:.5em 0 .5em .82em;border-color:transparent transparent transparent currentColor;}
.after__play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);
  animation:afterpulse 2.4s ease-out infinite;}
@keyframes afterpulse{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.7);opacity:0;}}
/* metadatos sobre el vídeo */
.after__meta{position:absolute;left:clamp(1.1rem,3vw,2rem);bottom:clamp(1.1rem,3vw,1.8rem);
  text-align:left;display:flex;flex-direction:column;gap:.4rem;}
.after__badge{align-self:flex-start;font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  background:var(--gold);color:var(--black);padding:.28em .7em;font-size:clamp(.8rem,1.4vw,1.05rem);}
.after__cap{font-size:.9rem;letter-spacing:.04em;opacity:.85;}
.after__cue{position:absolute;right:clamp(1.1rem,3vw,2rem);bottom:clamp(1.3rem,3vw,2rem);
  font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:clamp(.85rem,1.4vw,1.1rem);opacity:.92;}
.after__cue::after{content:" →";}
/* esquinas tipo visor de cámara (encuadre cinematográfico) */
.after__corners{position:absolute;inset:0;pointer-events:none;z-index:2;}
.after__corners i{position:absolute;width:clamp(20px,3vw,30px);height:clamp(20px,3vw,30px);border:2px solid var(--gold);opacity:.8;
  transition:opacity .4s,inset .4s;}
.after__corners i:nth-child(1){top:14px;left:14px;border-right:0;border-bottom:0;}
.after__corners i:nth-child(2){top:14px;right:14px;border-left:0;border-bottom:0;}
.after__corners i:nth-child(3){bottom:14px;left:14px;border-right:0;border-top:0;}
.after__corners i:nth-child(4){bottom:14px;right:14px;border-left:0;border-top:0;}
.after__stage:hover .after__corners i{opacity:1;}
.after__stage:hover .after__corners i:nth-child(1){top:10px;left:10px;}
.after__stage:hover .after__corners i:nth-child(2){top:10px;right:10px;}
.after__stage:hover .after__corners i:nth-child(3){bottom:10px;left:10px;}
.after__stage:hover .after__corners i:nth-child(4){bottom:10px;right:10px;}
/* tira de stills (teaser de la edición) */
.after__strip{display:flex;gap:.6rem;justify-content:center;align-items:center;flex-wrap:wrap;
  width:min(1100px,100%);margin:clamp(1rem,2.4vw,1.5rem) auto 0;}
.after__still{position:relative;width:clamp(84px,15vw,168px);aspect-ratio:16/10;border-radius:10px;overflow:hidden;
  border:1px solid rgba(230,205,76,.28);cursor:pointer;background-size:cover;background-position:center;
  filter:grayscale(.35) brightness(.78);transition:filter .35s ease,transform .35s ease;}
.after__still::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(16,14,19,.55));}
.after__still:hover{filter:none;transform:translateY(-3px);}
.after__stilllabel{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:clamp(.8rem,1.3vw,1rem);color:var(--gold);white-space:nowrap;}
.after__stilllabel::after{content:" →";}
@media(max-width:560px){.after__cue{display:none;}.after__still:nth-child(n+3){display:none;}}
@media (prefers-reduced-motion:reduce){.after__play::after{animation:none;}}

/* ---------- Cultura pinned scrollytelling ---------- */
.cpin{position:relative;height:300vh;}
.cpin__sticky{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden;
  transition:background-color .4s linear;background:var(--black);}
.cpin__layer{position:absolute;inset:0;display:grid;place-items:center;padding:0 var(--pad);text-align:center;will-change:opacity,transform;}
.cpin__tag{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;font-size:clamp(.85rem,1.4vw,1.1rem);margin-bottom:1.2rem;}
.cpin__big{font-family:var(--display);text-transform:uppercase;line-height:.86;font-size:clamp(3.6rem,14vw,12rem);margin-bottom:1.5rem;}
.cpin__txt{max-width:54ch;margin:0 auto;font-size:clamp(1rem,1.6vw,1.3rem);}
/* Capa "A la cultura del SÍ": texto oscuro sobre el fondo amarillo */
.cpin__layer[data-layer="yes"] .cpin__tag,
.cpin__layer[data-layer="yes"] .cpin__big{color:var(--black);}
.cpin__layer[data-layer="yes"] .cpin__txt{color:var(--black);opacity:.82;}
/* Palabra fantasma gigante de fondo (NO / YES), anclada a la derecha */
.cpin__ghost{position:absolute;right:max(-4vw,-7rem);top:50%;transform:translateY(-50%);
  font-family:var(--display);font-weight:900;text-transform:uppercase;
  font-size:clamp(14rem,46vw,46rem);line-height:.8;letter-spacing:-.02em;
  pointer-events:none;user-select:none;z-index:0;transition:color .4s linear;}
.cpin__progress{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;z-index:5;}
.cpin__dot{width:34px;height:3px;border-radius:2px;background:rgba(221,216,210,.25);transition:background .3s;}
.cpin__dot.on{background:var(--gold);}

/* ---------- Full-bleed media con parallax/scale ---------- */
.fb{position:relative;height:100svh;overflow:hidden;display:grid;place-items:center;text-align:center;}
.fb__media{position:absolute;inset:-16% 0;will-change:transform;overflow:hidden;}
.fb__media img{width:100%;height:100%;object-fit:cover;}
.fb__media::after{content:"";position:absolute;inset:0;background:rgba(16,14,19,.5);}
.fb__txt{position:relative;z-index:2;padding:0 var(--pad);max-width:none;}
.fb__txt h2{font-family:var(--display);text-transform:uppercase;line-height:1.0;font-size:clamp(2rem,6vw,4.6rem);margin-bottom:1.2rem;}
.fb__txt h2 .gold{color:var(--gold);}
.fb__txt p{font-size:clamp(1rem,1.6vw,1.3rem);max-width:60ch;margin:0 auto 1.8rem;}

/* ---------- Programa horizontal pinned ---------- */
.hpin{position:relative;height:300vh;background:var(--cream);color:var(--black);}
.hpin__sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.hpin__head{padding:2rem var(--pad) 1rem;}
.hpin__head h2{font-family:var(--display);text-transform:uppercase;font-size:clamp(2rem,5vw,4rem);line-height:1;}
.hpin__track{display:flex;gap:clamp(1rem,2vw,2rem);padding:1.5rem var(--pad);will-change:transform;}
.hday{flex:0 0 min(78vw,560px);background:var(--black);color:var(--cream);border-radius:18px;padding:clamp(1.8rem,3vw,3rem);min-height:54vh;display:flex;flex-direction:column;}
.hday--gold{background:var(--gold);color:var(--black);}
.hday__n{font-family:var(--display);text-transform:uppercase;font-size:clamp(3rem,6vw,5rem);line-height:1;color:var(--red);}
.hday--gold .hday__n{color:var(--black);}
.hday__time{opacity:.7;margin:.5rem 0 1.6rem;}
.hday__t{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.8rem,3.5vw,3rem);line-height:1;color:var(--gold);margin-bottom:1rem;}
.hday--gold .hday__t,.hday--cream .hday__t{color:inherit;}
.hday__d{margin-top:auto;font-size:1.05rem;}

/* ---------- Programa: tarjetas apiladas (sticky stacking) ---------- */
/* ====== BLOQUE PROGRAMA unificado (palabra gigante + días) ======
   Misma idea que los demás bloques: la palabra gigante "Programa" y los días
   comparten fondo y trama de puntos. A diferencia del resto, aquí SÍ hay un
   separador sutil (.pSep) que marca el inicio del Día 1. */
.pstackWrap{
  position:relative;overflow:clip;background:var(--black);
  background:
    radial-gradient(115% 26% at 50% 0%, rgba(231,196,90,.10), rgba(231,196,90,0) 60%),
    linear-gradient(180deg, var(--black) 0%, #15121e 30%, var(--black) 60%);
}
/* trama de puntos compartida (la misma del resto de bloques oscuros) */
.pstackWrap::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(221,216,210,.055) 1px, transparent 1.5px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 3%, #000 20%, transparent 40%);
          mask-image:linear-gradient(180deg, transparent 0, #000 3%, #000 20%, transparent 40%);
}
.pstackWrap > *{position:relative;z-index:1;}
.pstackWrap .gblock--programa{background:transparent;padding-bottom:clamp(.4rem,1.5vw,1rem);}
.pstackWrap .gblock--programa .gblock__emblem{display:none;}

/* separador sutil: dos hairlines doradas que se desvanecen con un rombo central */
.pSep{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:1rem;
  padding:clamp(.2rem,1vw,.6rem) var(--pad) clamp(1.4rem,3.5vw,2.6rem);}
.pSep::before,.pSep::after{content:"";height:1px;width:min(150px,24vw);}
.pSep::before{background:linear-gradient(90deg,transparent,rgba(231,196,90,.6));}
.pSep::after{background:linear-gradient(90deg,rgba(231,196,90,.6),transparent);}
.pSep i{flex:0 0 auto;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);
  border-radius:1px;box-shadow:0 0 0 4px rgba(231,196,90,.12);}

.pstack{padding:clamp(1rem,2.5vw,2rem) 0 0;max-width:none;margin:0 auto;}
.gblock:has(+ .pstack){padding-bottom:clamp(1rem,2.5vw,2rem);}
.pstack__head{margin-bottom:clamp(2rem,5vw,3.5rem);padding:0 var(--pad);}
.pstack__title{font-family:var(--display);text-transform:uppercase;line-height:.94;font-size:clamp(2.2rem,6vw,4.6rem);}
.pstack__deck{display:flex;flex-direction:column;gap:0;}
/* Tarjetas a todo el ancho, diseño recto (sin esquinas perceptibles).
   El contenido queda centrado en .pcard__inner; el efecto sticky se mantiene. */
.pcard{position:sticky;border-radius:0;padding:0;min-height:clamp(420px,calc(88vh - 100px),860px);
  display:flex;box-shadow:0 -18px 50px rgba(0,0,0,.35);overflow:hidden;}
.pcard__inner{position:relative;width:100%;max-width:var(--pcard-w,1240px);margin:0 auto;
  padding:clamp(2rem,5vw,4rem) var(--pad);
  display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;}
/* Día 1 claro · Día 2 amarillo · Día 3 oscuro */
.pcard--1{top:9vh;background:var(--cream);color:var(--black);border:1px solid rgba(16,14,19,.10);}
.pcard--2{top:13vh;background:var(--gold);color:var(--black);}
.pcard--3{top:17vh;background:#17141a;color:var(--cream);border:1px solid rgba(221,216,210,.16);}
.pcard__num{position:relative;z-index:2;font-family:var(--display);font-size:clamp(2.6rem,7vw,5rem);line-height:.8;letter-spacing:.01em;text-transform:uppercase;}
/* "DÍA 1" sobre la tarjeta clara: oscuro para que se lea (el dorado no contrasta) */
.pcard--1 .pcard__num{color:var(--black);}
.pcard--2 .pcard__num{color:var(--black);}
.pcard--3 .pcard__num{color:var(--gold);}
.pcard__body{position:relative;z-index:2;}
.pcard__day{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:clamp(.85rem,1.4vw,1.05rem);opacity:.7;margin-bottom:.7rem;}
.pcard__t{font-family:var(--display);text-transform:uppercase;line-height:.92;font-size:clamp(2.4rem,6vw,4.6rem);margin-bottom:.9rem;max-width:13ch;}
.pcard__d{font-size:clamp(1.05rem,1.7vw,1.4rem);max-width:46ch;opacity:.92;}

/* ---------- Dibujo a trazo dentro de cada tarjeta ----------
   El relleno (stroke-dashoffset / opacity) lo controla el scroll desde JS
   (script2.js → drawCards): se dibuja al bajar y se vacía al subir. */
/* El dibujo se sitúa a la derecha de la tarjeta */
.pcard__art{position:absolute;top:6%;right:2%;width:min(50%,500px);height:84%;z-index:1;pointer-events:none;}
.pcard__art svg{width:100%;height:100%;overflow:visible;display:block;}
.pcard__art .stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;}
.pcard__art .fillin{opacity:0;}

/* Día 1 — Corazón con latido (bienestar y felicidad): trazo oscuro */
.pcard__art--1 .stroke{stroke:var(--black);}

/* Día 2 — Árbol que crece y da frutos (abundancia): trazo oscuro sobre amarillo */
.pcard__art--2 .stroke{stroke:var(--black);}
.pcard__art--2 .fruit{fill:var(--black);opacity:0;}

/* Día 3 — Brújula que se alinea al NORTE (propósito): trazo dorado sobre oscuro.
   La aguja rota de -70° a 0° (norte) según el scroll (transform lo pone JS). */
.pcard__art--3 .stroke{stroke:var(--gold);}
.pcard__art--3 svg{filter:drop-shadow(0 0 10px rgba(230,205,76,.28));}
.pcard__art--3 .fillin{fill:var(--gold);}
.pcard__art--3 .needle{transform-box:view-box;transform-origin:240px 150px;transform:rotate(-70deg);}

@media (max-width:680px){
  .pcard__art{width:60%;height:62%;top:7%;opacity:.9;}
}
@media (prefers-reduced-motion:reduce){
  .pcard__art .stroke{stroke-dashoffset:0;}
  .pcard__art .fillin,
  .pcard__art--2 .fruit{opacity:1;}
  .pcard__art--3 .needle{transform:rotate(0);}
}

/* ====== BLOQUE POR QUÉ VENIR unificado (palabra gigante + beneficios) — TONO AMARILLO ======
   Misma idea que los demás bloques: la palabra gigante "Por qué venir" y los
   beneficios comparten fondo amarillo y la misma trama de puntos para leerse
   como UN solo bloque. */
.whyWrap{position:relative;overflow:clip;background:var(--cream);}
/* palabra gigante en crema, con texto oscuro y la trama de puntos compartida */
.gblock--porque{
  background:
    radial-gradient(rgba(16,14,19,.06) 1px, transparent 1.5px) 0 0 / 26px 26px,
    var(--cream);
  padding-bottom:clamp(.5rem,2vw,1.5rem);
}
.gblock--porque .gword{color:var(--black);}
.gblock--porque .gword.gold{color:var(--black);}
.gblock--porque .gblock__emblem{display:none;}

/* ---------- POR QUÉ VENIR — beneficios pinned (scroll cinematográfico) ---------- */
.why{position:relative;height:280vh;--acc:var(--black);}
/* la misma trama de puntos recorre los beneficios → continuidad con la palabra gigante */
.why__sticky{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden;
  color:var(--black);
  background:
    radial-gradient(rgba(16,14,19,.06) 1px, transparent 1.5px) 0 0 / 26px 26px,
    radial-gradient(125% 95% at 50% 12%,#e9e4de 0%,var(--cream) 70%);}
/* palabra fantasma gigante de fondo */
.why__ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;
  font-family:var(--display);text-transform:uppercase;line-height:.8;font-size:46vw;
  color:rgba(16,14,19,.045);letter-spacing:-.02em;pointer-events:none;user-select:none;}
/* columna alineada con el resto de la web (centrada a --content, gutter 10vw) */
.why__inner{position:relative;z-index:2;width:min(var(--content), 100% - 2*var(--pad));margin:0 auto;
  min-height:62vh;display:flex;flex-direction:column;}
/* cabecera: kicker + odometro */
.why__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  border-bottom:1px solid rgba(16,14,19,.14);padding-bottom:1.1rem;margin-bottom:clamp(2rem,5vh,4rem);}
.why__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;
  font-size:clamp(.85rem,1.5vw,1.15rem);color:var(--acc);}
.why__odo{display:flex;align-items:baseline;gap:.35em;font-family:var(--display);line-height:1;}
.why__odo-win{display:inline-block;height:1em;overflow:hidden;font-size:clamp(1.4rem,2.6vw,2.1rem);}
.why__odo-track{display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.why__odo-track span{display:block;height:1em;color:var(--black);}
.why__odo-total{font-size:clamp(.95rem,1.7vw,1.3rem);color:rgba(16,14,19,.4);}
/* escenario con paneles superpuestos que se funden */
.why__stage{position:relative;flex:1 1 auto;min-height:clamp(15rem,42vh,24rem);}
.why__panel{position:absolute;inset:0;opacity:0;transform:translateY(34px);pointer-events:none;
  transition:opacity .55s ease,transform .65s cubic-bezier(.2,.8,.2,1);will-change:opacity,transform;}
.why__panel.is-on{opacity:1;transform:none;pointer-events:auto;}
.why__tag{font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;
  font-size:clamp(.9rem,1.5vw,1.15rem);color:var(--acc);margin-bottom:1rem;}
.why__lead{font-family:var(--display);text-transform:uppercase;line-height:.95;letter-spacing:.005em;
  font-size:clamp(2.4rem,6.4vw,5.4rem);margin-bottom:clamp(1.1rem,2.4vw,1.8rem);}
.why__lead .gold{color:var(--acc);}
.why__body{font-size:clamp(1.05rem,1.7vw,1.45rem);line-height:1.55;max-width:none;color:rgba(16,14,19,.82);}
/* barra de progreso segmentada */
.why__bar{display:flex;gap:.5rem;margin-top:clamp(1.6rem,4vh,2.6rem);}
.why__seg{position:relative;flex:1;height:3px;border-radius:2px;background:rgba(16,14,19,.14);overflow:hidden;}
.why__seg i{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);
  background:var(--acc);transition:transform .3s linear;}
/* atajo para quien navega rapido: salta directo a entradas */
.why__skip{position:absolute;right:max(var(--pad),calc((100vw - var(--content))/2));bottom:clamp(1.1rem,3vh,2rem);z-index:4;
  display:inline-flex;align-items:center;gap:.45em;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.1em;font-size:clamp(.78rem,1.1vw,.95rem);color:rgba(16,14,19,.5);
  padding:.5em .9em;border:1px solid rgba(16,14,19,.2);border-radius:999px;
  transition:color .2s,border-color .2s,background .2s;}
.why__skip:hover{color:var(--black);background:var(--gold);border-color:var(--gold);}
.why__skip svg{width:.85em;height:.85em;fill:none;stroke:currentColor;stroke-width:2.4;}
@media (prefers-reduced-motion:reduce){
  .why{height:auto;}
  .why__sticky{position:static;height:auto;padding:clamp(4rem,9vw,7rem) 0;}
  .why__ghost{display:none;}
  .why__stage{min-height:0;}
  .why__panel{position:relative;opacity:1;transform:none;pointer-events:auto;margin-bottom:3rem;}
  .why__bar{display:none;}
  .why__skip{display:none;}
}
@media (max-width:680px){
  .why{height:260vh;}
  .why__ghost{font-size:64vw;}
  .why__body{font-size:1.05rem;}
}

/* ---------- Facilitadores reveal ---------- */
.sec{padding:clamp(5rem,11vw,11rem) var(--pad);max-width:none;margin:0 auto;}
.sec__eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-size:clamp(.85rem,1.4vw,1.1rem);margin-bottom:1rem;}
.sec__title{font-family:var(--display);text-transform:uppercase;line-height:.96;font-size:clamp(2.4rem,6vw,5rem);margin-bottom:clamp(2rem,4vw,3.5rem);}

/* ---------- Bloque editorial (titular perfilado + prosa a dos columnas) ---------- */
.edito{background:var(--cream);color:var(--black);padding:clamp(5rem,11vw,11rem) var(--pad);max-width:none;margin:0 auto;}
.edito__in{max-width:var(--content);margin:0 auto;}
.edito__label{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  border-top:1px solid currentColor;padding-top:.8rem;margin-bottom:clamp(2.4rem,5vw,4rem);
  font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;
  font-size:clamp(.7rem,1vw,.9rem);opacity:.85;}
.edito__split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.edito__head{font-family:var(--display);text-transform:uppercase;line-height:.96;letter-spacing:.005em;
  font-size:clamp(2.4rem,6.5vw,5rem);color:var(--black);-webkit-text-stroke:0;}
.edito__prose p{font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.55;}
.edito__prose p + p{margin-top:1.4em;}
.edito__lead{display:flex;flex-direction:column;gap:clamp(2.2rem,5vw,3.4rem);}
@media (max-width:760px){
  .edito__split{grid-template-columns:1fr;gap:clamp(1.6rem,6vw,2.4rem);}
}

/* ---------- Sello animado YES FESTIVAL (bloque editorial) ---------- */
.yseal{align-self:flex-start;width:clamp(180px,22vw,300px);color:var(--black);}
.yseal__svg{display:block;width:100%;height:auto;overflow:visible;}

/* estado inicial: el sello "se estampa" cuando entra en viewport */
.yseal__art{
  transform-box:fill-box;transform-origin:center;
  opacity:0;transform:scale(1.55) rotate(-14deg);
  filter:blur(6px);
}
/* anillos decorativos: arcos que orbitan el sello (uno continuo, otro punteado) */
.yseal__ring{opacity:0;transform-box:fill-box;transform-origin:center;}
.yseal__ring--1{stroke-dasharray:640 360;}
.yseal__ring--2{stroke-dasharray:3 21;stroke-linecap:round;}
.yseal__shock{opacity:0;transform-box:fill-box;transform-origin:center;}
.yseal__shine{opacity:0;}

/* disparo de la secuencia */
.yseal.is-in .yseal__ring--1{animation:yRingIn .9s cubic-bezier(.2,.8,.2,1) .35s forwards, ySpin 22s linear 1.2s infinite;}
.yseal.is-in .yseal__ring--2{animation:yRingIn 1s cubic-bezier(.2,.8,.2,1) .5s forwards, ySpinRev 30s linear 1.5s infinite;}
.yseal.is-in .yseal__shock{animation:yShock 1s ease-out .55s 1;}
.yseal.is-in .yseal__shine{animation:yShine 1.1s ease-in 1.05s 1;}
/* respiración sutil del sello una vez asentado */
.yseal.is-in .yseal__art{animation:yStamp .9s cubic-bezier(.16,1.06,.3,1) .15s forwards, yFloat 7s ease-in-out 1.2s infinite;}

@keyframes yStamp{
  0%{opacity:0;transform:scale(1.55) rotate(-14deg);filter:blur(6px);}
  60%{opacity:1;filter:blur(0);}
  78%{transform:scale(.965) rotate(2deg);}
  100%{opacity:1;transform:scale(1) rotate(0);filter:blur(0);}
}
@keyframes yRingIn{0%{opacity:0;transform:scale(1.28) rotate(-40deg);}100%{opacity:1;transform:scale(1) rotate(0);}}
@keyframes ySpin{from{transform:rotate(0);}to{transform:rotate(360deg);}}
@keyframes ySpinRev{from{transform:rotate(0);}to{transform:rotate(-360deg);}}
@keyframes yShock{
  0%{opacity:.85;transform:scale(1);}
  100%{opacity:0;transform:scale(1.5);}
}
/* el destello entra por la izquierda y barre el sello */
.yseal__shine{transform:translateX(-160px);}
@keyframes yShine{
  0%{opacity:0;transform:translateX(-160px);}
  15%{opacity:1;}
  100%{opacity:0;transform:translateX(320px);}
}
@keyframes yFloat{
  0%,100%{transform:scale(1) translateY(0) rotate(0);}
  50%{transform:scale(1.012) translateY(-4px) rotate(-.6deg);}
}
@media (max-width:760px){
  .yseal{align-self:center;}
}
@media (prefers-reduced-motion:reduce){
  .yseal__art,.yseal__shock,.yseal__shine{opacity:1;transform:none;filter:none;animation:none;}
  .yseal__ring{opacity:1;transform:none;animation:none;}
}
/* ====== BLOQUE INVITADOS unificado (palabra gigante + facilitadores) ======
   Misma idea que .entradasWrap / .histWrap pero en TONO CLARO: el fondo crema y
   una trama de puntos oscuros viven en el wrapper para que la palabra gigante
   "Nos han visitado" y las fichas se lean como UN solo bloque. */
.facilWrap{
  position:relative;overflow:clip;background:var(--cream);
  background:
    radial-gradient(115% 30% at 50% 0%, rgba(231,196,90,.18), rgba(231,196,90,0) 58%),
    radial-gradient(125% 95% at 50% 12%, #e9e4de 0%, var(--cream) 70%);
}
/* trama de puntos sobre fondo claro: visible y uniforme para que la palabra
   gigante y las fichas se lean como UN solo bloque (no se desvanece en el centro) */
.facilWrap::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(16,14,19,.11) 1.1px, transparent 1.6px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 4%, #000 94%, transparent 100%);
          mask-image:linear-gradient(180deg, transparent 0, #000 4%, #000 94%, transparent 100%);
}
.facilWrap > *{position:relative;z-index:1;}
.facilWrap .gblock--visitado,
.facilWrap .facil{background:transparent;}
/* palabra gigante pegada a las fichas, sin hueco muerto */
.facilWrap .gblock--visitado{padding-bottom:clamp(.5rem,2vw,1.5rem);}
.facilWrap .facil{padding-top:clamp(1rem,2.5vw,2rem);}
/* texto gigante en tono oscuro sobre el fondo claro (acento gold se mantiene) */
.gblock--visitado .gword{color:var(--black);}
.gblock--visitado .gword.gold{color:var(--black);}
.gblock--visitado .gblock__emblem{display:none;}

/* ---------- Facilitadores (estilo claro, etiqueta sobre foto) ---------- */
.facil{background:transparent;color:var(--black);padding:clamp(4rem,9vw,9rem) var(--pad);max-width:none;margin:0 auto;}
.facil__title{font-family:var(--display);text-transform:uppercase;font-weight:700;line-height:1.04;
  font-size:clamp(1.8rem,4.2vw,3.4rem);max-width:26ch;margin:0 0 clamp(2.5rem,5vw,4rem);}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.4vw,2.2rem);max-width:1320px;}
/* Tarjeta editorial: retrato, nombre debajo en display y rol con guion */
.fcard{display:flex;flex-direction:column;}
/* mat claro: cada retrato vive en un panel crema con borde sutil, así la rejilla
   se lee CLARA sobre la trama en vez de un bloque de fotos oscuras */
.fcard__ph{position:relative;aspect-ratio:1/1.15;overflow:hidden;background:#efebe4;border-radius:5px;
  padding:6px;border:1px solid rgba(16,14,19,.08);box-shadow:0 10px 26px rgba(16,14,19,.07);
  transition:border-color .4s ease,box-shadow .4s ease,transform .4s ease;}
.fcard:hover .fcard__ph{border-color:rgba(230,205,76,.65);box-shadow:0 24px 48px rgba(16,14,19,.18);transform:translateY(-5px);}
.fcard__ph img{width:100%;height:100%;object-fit:cover;object-position:center 18%;border-radius:3px;
  /* sube los negros del retrato hacia un gris claro: tono claro, no oscuro */
  filter:grayscale(1) contrast(.86) brightness(1.22);
  transition:filter .5s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
/* al pasar el ratón el retrato cobra vida (color) y se acerca un poco */
.fcard:hover .fcard__ph img{filter:grayscale(0) contrast(1) brightness(1);transform:scale(1.05);}
/* velo dorado→oscuro que aparece al hacer hover, da profundidad de cartel */
.fcard__ph::after{content:"";position:absolute;inset:6px;border-radius:3px;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,transparent 48%,rgba(16,14,19,.32));transition:opacity .45s ease;}
.fcard:hover .fcard__ph::after{opacity:1;}
.fcard__name{font-family:var(--display);text-transform:uppercase;line-height:.98;
  font-size:clamp(1.4rem,2.4vw,2.1rem);margin-top:.7rem;color:var(--black);}
.fcard__role{font-family:var(--body);text-transform:uppercase;letter-spacing:.13em;
  font-size:.72rem;color:#6b655c;margin-top:.35rem;transition:color .3s ease;}
.fcard:hover .fcard__role{color:#9a8418;}
.fcard__role::before{content:"";display:inline-block;width:1.4em;height:1px;background:var(--black);
  vertical-align:middle;margin-right:.6em;opacity:.5;transition:background .3s ease,width .3s ease,opacity .3s ease;}
.fcard:hover .fcard__role::before{background:var(--gold);width:2.4em;opacity:1;}

/* ---------- Historias de Yes a la Vida (galería → historia completa) ---------- */
/* ====== BLOQUE HISTORIAS unificado (palabra gigante + vídeo + mapa) ======
   Misma idea que .entradasWrap: el fondo y la trama de puntos viven en el
   wrapper para que la palabra gigante "Historias", el vídeo de testimonios y
   el mapa se lean como UN solo bloque. */
.histWrap{
  position:relative;overflow:hidden;background:var(--black);
  /* fondo unificador: brillo dorado arriba + zona "iluminada" tras el vídeo que
     baja hacia el mapa y se funde con el negro al final */
  background:
    radial-gradient(115% 30% at 50% 0%, rgba(231,196,90,.13), rgba(231,196,90,0) 58%),
    radial-gradient(85% 38% at 50% 30%, rgba(78,70,94,.50), rgba(16,14,19,0) 72%),
    linear-gradient(180deg, var(--black) 0%, #1c1926 14%, #171421 56%, var(--black) 100%);
}
/* textura sutil de puntos (la misma de Testimonios + mapa) expandida para que
   recorra TODO el bloque: palabra gigante, vídeo y mapamundi, difuminada solo
   en los extremos */
.histWrap::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(221,216,210,.055) 1px, transparent 1.5px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 5%, #000 90%, transparent 100%);
          mask-image:linear-gradient(180deg, transparent 0, #000 5%, #000 90%, transparent 100%);
}
/* las secciones se apoyan sobre la trama, sin tapar el fondo del wrapper */
.histWrap > *{position:relative;z-index:1;}
.histWrap .gblock--historias,
.histWrap .hist{background:transparent;}
/* la palabra gigante pegada al vídeo, sin hueco muerto */
.histWrap .gblock--historias{padding-bottom:clamp(1rem,2.5vw,2rem);}

.hist{
  position:relative;max-width:none;overflow:hidden;
  padding:clamp(1rem,2.5vw,2rem) 0 clamp(4rem,9vw,8rem);
}
.histvid,.hmap{position:relative;z-index:1;}
/* ---- Vídeo testimonial ---- */
.histvid{max-width:1100px;margin:0 auto clamp(1.4rem,3.5vw,2.6rem);padding:0 var(--pad);text-align:center;}
.histvid__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;color:var(--gold);
  font-size:clamp(.78rem,1.3vw,.95rem);margin:0 0 .6rem;}
.histvid__title{font-family:var(--display);text-transform:uppercase;line-height:.95;
  font-size:clamp(1.7rem,4.5vw,3.2rem);margin:0 0 clamp(1.4rem,3vw,2.2rem);}
.histvid__title .gold{color:var(--gold);}
.histvid__frame{position:relative;width:100%;border-radius:18px;overflow:hidden;
  box-shadow:0 40px 120px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.08);}
.hist__lead{text-align:center;font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;
  color:var(--gold);font-size:clamp(.85rem,1.5vw,1.15rem);margin:0 var(--pad) clamp(1.6rem,3.5vw,2.4rem);}

/* ---- Mapamundi de rostros: las líneas se dibujan y caen las chinchetas ---- */
.hmap{max-width:1180px;margin-inline:auto;padding-inline:var(--pad);}
.hmap__lead{text-align:center;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.1em;line-height:1.25;color:var(--cream);
  font-size:clamp(1rem,2vw,1.5rem);margin:0 0 clamp(.6rem,1.4vw,1rem);}

/* barra: cambiar vista (mapa/lista) + zoom */
.hmap__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin:0 0 clamp(.7rem,1.5vw,1.1rem);}
.hmap__toggle{display:inline-flex;border:1px solid rgba(221,216,210,.18);border-radius:999px;
  padding:3px;background:rgba(255,255,255,.02);}
.hmap__tg{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:clamp(.72rem,1.1vw,.85rem);color:rgba(221,216,210,.7);
  border:0;background:none;cursor:pointer;padding:.4em 1.1em;border-radius:999px;
  transition:background .2s ease,color .2s ease;}
.hmap__tg.is-active{background:var(--gold);color:var(--black);}
.hmap__zoom{display:inline-flex;gap:5px;}
.hmap__zoom button{width:36px;height:36px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(221,216,210,.2);background:rgba(255,255,255,.03);color:var(--cream);
  font-size:1.15rem;line-height:1;display:grid;place-items:center;
  transition:background .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease;}
.hmap__zoom button:hover{background:var(--gold);border-color:var(--gold);color:var(--black);}
.hmap__zoom button:disabled{opacity:.35;cursor:default;}
.hmap__zoom .hmap__zoom--hidden,.hmap__bar.is-list .hmap__zoom{display:none;}

/* vista mapa: marco recortado, escenario transformable */
.hmap__view{position:relative;width:100%;aspect-ratio:2 / 1;overflow:hidden;
  border-radius:14px;cursor:zoom-in;background:#0c0b10;
  border:1px solid rgba(221,216,210,.1);box-shadow:0 30px 70px -30px rgba(0,0,0,.7);}
.hmap__view.is-zoomed{cursor:grab;touch-action:none;}
.hmap__view.is-grabbing{cursor:grabbing;}
/* viñeta: profundidad cinematográfica sobre el tablero (no captura clics) */
.hmap__view::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:14px;
  box-shadow:inset 0 0 90px 12px rgba(7,6,10,.75);}
/* océano y retícula del mapamundi (dentro del stage: escalan con el zoom) */
.hmap__grat line{stroke:rgba(221,216,210,.06);stroke-width:1;vector-effect:non-scaling-stroke;}
.hmap__grat--eq{stroke:rgba(231,196,90,.16);}
.hmap__grat--mer{stroke:rgba(231,196,90,.11);}
.hmap.is-in .hmap__grat line{animation:hGrat 1.4s ease forwards;opacity:0;animation-delay:.5s;}
@keyframes hGrat{to{opacity:1;}}
.hmap__stage{position:absolute;inset:0;--z:1;--inv:1;
  transform-origin:0 0;transform:translate(var(--px,0px),var(--py,0px)) scale(var(--z));
  will-change:transform;}
.hmap__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.hmap__land{fill:none;stroke:rgba(221,216,210,.32);stroke-width:1.4;
  stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;
  stroke-dasharray:1000;stroke-dashoffset:1000;}
.hmap.is-in .hmap__land{animation:hDraw 3.2s cubic-bezier(.55,0,.2,1) forwards;}
@keyframes hDraw{
  0%{stroke-dashoffset:1000;stroke:rgba(231,196,90,.55);}
  85%{stroke:rgba(231,196,90,.4);}
  100%{stroke-dashoffset:0;stroke:rgba(221,216,210,.32);}
}

/* chinchetas */
.hmap__pins{list-style:none;margin:0;padding:0;position:absolute;inset:0;}
.hmap__pinli{margin:0;}
/* cada chincheta es un punto (0×0) en su coordenada; todo lo demás se ancla a él.
   OJO: el nombre .hpin colisiona con el componente "cultura pinned" (.hpin con
   height:300vh, y una media query móvil .cpin,.hpin{height:240vh}). Por eso este
   selector se cualifica con .hmap__pins: así su geometría (height:0) gana siempre
   y no se rompe en móvil (antes las chinchetas medían 240vh y caían fuera del mapa). */
.hmap__pins .hpin{position:absolute;width:0;height:0;
  padding:0;border:0;background:none;cursor:pointer;line-height:0;
  z-index:2;opacity:0;will-change:transform,opacity;
  /* contra-escala: al hacer zoom (--inv = 1/zoom) las caras mantienen su tamaño
     mientras las posiciones se separan, para poder distinguir zonas densas */
  transform:scale(var(--inv,1));transform-origin:50% 100%;
  --d:clamp(34px,4.6vw,52px);}            /* diámetro de la cara */
.hpin__face{position:absolute;left:0;bottom:13px;transform:translateX(-50%);
  width:var(--d);height:var(--d);
  border-radius:50%;overflow:hidden;background:#0d0c0f;
  border:2px solid var(--cream);
  box-shadow:0 8px 16px -6px rgba(0,0,0,.7);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease;}
/* la imagen va ampliada y reposicionada (estilos inline por persona) para encuadrar el rostro */
.hpin__face img{position:absolute;max-width:none;height:auto;
  filter:grayscale(.22) contrast(1.04);transition:filter .4s ease;}
/* aguja de la chincheta: del borde de la cara al punto de anclaje */
.hpin::before{content:"";position:absolute;left:0;bottom:2px;width:2px;height:12px;
  transform:translateX(-50%);
  background:linear-gradient(to bottom,rgba(246,242,234,.9),var(--gold));
  opacity:0;transition:opacity .3s ease;}
/* punto de anclaje de la chincheta sobre el mapa */
.hpin::after{content:"";position:absolute;left:0;bottom:0;
  width:7px;height:7px;border-radius:50%;background:var(--gold);
  transform:translate(-50%,50%);box-shadow:0 0 0 4px rgba(231,196,90,.18);
  opacity:0;transition:opacity .3s ease .1s;}
.hpin__name{position:absolute;left:0;bottom:calc(13px + var(--d) + 7px);
  transform:translateX(-50%);
  font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(.6rem,.85vw,.74rem);line-height:1;color:var(--black);white-space:nowrap;
  background:var(--gold);padding:.28em .6em;border-radius:6px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s ease,bottom .22s ease;
  box-shadow:0 8px 18px -8px rgba(0,0,0,.6);}
.hpin__name::after{content:"";position:absolute;left:50%;bottom:-5px;
  transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--gold);}

/* caída de la chincheta, escalonada por --i */
.hmap.is-in .hpin{
  animation:hDrop .62s cubic-bezier(.3,1.2,.5,1) backwards;
  animation-delay:calc(1.4s + var(--i) * .11s);
  opacity:1;}
.hmap.is-in .hpin::after,
.hmap.is-in .hpin::before{opacity:1;transition-delay:calc(1.65s + var(--i) * .11s);}
/* cada historia late como un faro en el mapa */
.hmap.is-in .hpin::after{animation:hPulse 2.8s ease-out infinite;animation-delay:calc(2s + var(--i) * .11s);}
@keyframes hPulse{0%,100%{box-shadow:0 0 0 3px rgba(231,196,90,.22);}70%{box-shadow:0 0 0 12px rgba(231,196,90,0);}}
@keyframes hDrop{
  0%{opacity:0;transform:translateY(-46px) scale(.4);}
  60%{opacity:1;}
  100%{opacity:1;transform:translateY(0) scale(1);}
}

/* hover / foco: se agranda, muestra nombre y enfoca el rostro */
.hpin:hover,.hpin:focus-visible{outline:none;z-index:6;}
.hpin:hover .hpin__face,.hpin:focus-visible .hpin__face{
  transform:translateX(-50%) scale(1.18);border-color:var(--gold);
  box-shadow:0 14px 26px -8px rgba(0,0,0,.8);}
.hpin:hover .hpin__face img,.hpin:focus-visible .hpin__face img{filter:grayscale(0) contrast(1.06);}
.hpin:hover .hpin__name,.hpin:focus-visible .hpin__name{
  opacity:1;visibility:visible;bottom:calc(13px + var(--d) + 11px);}

/* lightbox: historia completa */
.hlb{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,3rem);opacity:0;visibility:hidden;
  transition:opacity .35s ease,visibility 0s linear .35s;}
.hlb.is-open{opacity:1;visibility:visible;transition:opacity .35s ease;}
.hlb__backdrop{position:absolute;inset:0;background:rgba(10,9,12,.82);backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);}
.hlb__fig{position:relative;z-index:1;margin:0;max-height:90vh;
  transform:scale(.92) translateY(10px);opacity:0;
  transition:transform .45s cubic-bezier(.2,.85,.25,1),opacity .4s ease;}
.hlb.is-open .hlb__fig{transform:none;opacity:1;}
.hlb__img{display:block;max-width:min(560px,86vw);max-height:90vh;width:auto;height:auto;
  border-radius:14px;box-shadow:0 40px 90px -30px rgba(0,0,0,.85);}

/* ====== Ficha de historia (lightbox, datos desde la base de datos) ====== */
.hlb__fig:has(.ficha){width:min(430px,90vw);}
.ficha{--fic-line:rgba(221,216,210,.14);
  position:relative;display:flex;flex-direction:column;text-align:center;
  background:radial-gradient(120% 80% at 50% 0%,#1a1620,#100e13 70%);
  border:1px solid var(--fic-line);border-radius:22px;
  padding:clamp(1.5rem,4.5vw,2.2rem) clamp(1.4rem,4vw,2rem) clamp(1.2rem,3.5vw,1.7rem);
  box-shadow:0 50px 100px -34px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05);
  max-height:90vh;overflow:hidden;}
.ficha__head{display:flex;flex-direction:column;align-items:center;gap:.85rem;}
.ficha__emblem{width:46px;height:46px;object-fit:contain;
  /* logo oscuro → dorado del tema */
  filter:brightness(0) saturate(100%) invert(80%) sepia(48%) saturate(560%) hue-rotate(2deg) brightness(94%);}
.ficha__name{font-family:var(--display);text-transform:uppercase;color:var(--cream);
  font-size:clamp(1.9rem,6.5vw,2.8rem);line-height:.92;letter-spacing:.012em;width:100%;
  padding:.16em 0;border-top:2px solid var(--cream);border-bottom:2px solid var(--cream);
  overflow-wrap:break-word;}
.ficha__photo{position:relative;margin:clamp(1rem,3vw,1.4rem) 0;aspect-ratio:1/1;
  border-radius:15px;overflow:hidden;background:#0c0a0f;border:1px solid var(--fic-line);}
.ficha__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.08) contrast(1.03);}
/* recorte tipo "pin": reutiliza thumb_w/x/y sobre la ficha rasterizada */
.ficha__photo img.is-crop{inset:auto;max-width:none;width:auto;height:auto;object-fit:fill;}
.ficha__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  font-size:clamp(1.02rem,3.4vw,1.25rem);color:var(--cream);margin-bottom:.55rem;}
.ficha__kicker .gold{color:var(--gold);}
.ficha__loc{font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;
  color:rgba(221,216,210,.5);margin-bottom:.45rem;}
.ficha__loc::before{content:"\25C9\00a0";color:var(--gold);}
.ficha__story{font-size:clamp(.9rem,2.5vw,1rem);line-height:1.6;text-align:left;
  color:rgba(221,216,210,.82);overflow-y:auto;hyphens:auto;}
.ficha__story::-webkit-scrollbar{width:6px;}
.ficha__story::-webkit-scrollbar-thumb{background:rgba(221,216,210,.2);border-radius:6px;}
.ficha__sign{margin-top:1.05rem;padding-top:.85rem;border-top:1px solid var(--fic-line);
  font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;
  color:rgba(230,205,76,.72);}
@media (max-width:520px){.ficha__story{max-height:34vh;}}
.hlb__close{position:absolute;top:clamp(.8rem,2.5vw,1.5rem);right:clamp(.8rem,2.5vw,1.5rem);z-index:5;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(246,242,234,.42);cursor:pointer;
  background:rgba(15,13,18,.68);color:var(--cream);font-size:1.7rem;line-height:1;
  display:grid;place-items:center;backdrop-filter:blur(4px);
  box-shadow:0 6px 20px -6px rgba(0,0,0,.7);
  transition:background .25s ease,transform .25s ease;}
.hlb__close:hover{background:var(--gold);color:var(--black);transform:rotate(90deg);}
.hlb__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:clamp(44px,4vw,54px);height:clamp(44px,4vw,54px);border-radius:50%;border:0;cursor:pointer;
  background:rgba(246,242,234,.1);color:var(--cream);font-family:var(--display);font-size:1.9rem;line-height:1;
  display:grid;place-items:center;padding-bottom:.12em;backdrop-filter:blur(4px);
  transition:background .25s ease,transform .25s ease;}
.hlb__nav:hover{background:var(--gold);color:var(--black);}
.hlb__nav--prev{left:clamp(.5rem,2.5vw,1.6rem);}
.hlb__nav--next{right:clamp(.5rem,2.5vw,1.6rem);}
.hlb__nav:hover.hlb__nav--prev{transform:translateY(-50%) scale(1.08);}
.hlb__nav:hover.hlb__nav--next{transform:translateY(-50%) scale(1.08);}

@media (prefers-reduced-motion:reduce){
  .hmap__land{animation:none;stroke-dashoffset:0;stroke:rgba(221,216,210,.32);}
  .hmap.is-in .hpin{animation:none;}
  .hpin,.hmap.is-in .hpin{opacity:1;}
  .hmap.is-in .hpin::after{opacity:1;transition-delay:0s;animation:none;}
  .hmap__grat line{animation:none;opacity:1;}
  .hlb__fig{transition:opacity .2s ease;}
}
@media (max-width:520px){
  .hpin__face{width:30px;height:30px;}
  .hlb__nav{width:42px;height:42px;}
  /* En móvil la historia debe mostrar la foto COMPLETA (sin recorte cuadrado):
     ratio natural, contenida y acotada para que la ficha siga cabiendo. */
  .ficha__photo{aspect-ratio:auto;max-height:42vh;display:flex;}
  .ficha__photo img:not(.is-crop){position:static;inset:auto;width:100%;height:auto;
    max-height:42vh;object-fit:contain;margin:auto;}
  .ficha__story{max-height:26vh;}
}

/* ---- CTA «Comparte tu historia» (discreto, arriba del mapa) ---- */
.hshareCta{display:flex;flex-direction:column;align-items:center;gap:.7rem;
  text-align:center;margin:clamp(1.6rem,3.5vw,2.6rem) auto 0;max-width:60ch;}
.hshareCta__hint{margin:0;max-width:44ch;color:rgba(221,216,210,.58);
  font-size:clamp(.82rem,1.25vw,.95rem);line-height:1.5;}
.hshareBtn{cursor:pointer;display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(.78rem,1.15vw,.92rem);padding:.55em 1.35em;border-radius:999px;
  color:var(--cream);background:transparent;border:1px solid rgba(221,216,210,.32);
  transition:border-color .2s ease,color .2s ease,transform .2s ease;}
.hshareBtn:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px);}
.hshareBtn__pin{width:.66em;height:.66em;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:currentColor;display:inline-block;flex:0 0 auto;opacity:.85;}

/* ---- Vista lista = galería editorial SÓLO texto (4 columnas, más ancha) ----
   Sin fotos (en miniatura se veían borrosas): la historia es la protagonista. */
/* la lista es más ancha que el mapa: se sale del contenedor y se centra en la
   página (hasta 1480), manteniendo el mapa en su tamaño normal */
.hlist{list-style:none;display:grid;box-sizing:border-box;
  width:min(1480px, 100vw - 2rem);margin-left:50%;transform:translateX(-50%);
  grid-template-columns:repeat(4,1fr);gap:clamp(1rem,1.6vw,1.5rem);
  margin-block:clamp(.6rem,1.6vw,1.2rem) 0;}
.hlist[hidden]{display:none;}
.hlistitem{margin:0;display:flex;}
.hcard{position:relative;display:flex;flex-direction:column;gap:.85rem;width:100%;min-height:236px;
  text-align:left;cursor:pointer;border:1px solid rgba(221,216,210,.13);border-radius:20px;
  padding:clamp(1.3rem,1.7vw,1.7rem);color:var(--cream);overflow:hidden;
  background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  transition:border-color .25s ease,background .25s ease,transform .25s ease,box-shadow .25s ease;}
/* halo de color que aparece en hover (acento por tarjeta --c: 0..3) */
.hcard::after{content:"";position:absolute;right:-40%;top:-60%;width:90%;height:120%;border-radius:50%;
  background:radial-gradient(circle,rgba(230,205,76,.16),transparent 70%);opacity:0;
  transition:opacity .3s ease;pointer-events:none;}
.hcard[style*="--c:1"]::after{background:radial-gradient(circle,rgba(232,217,176,.16),transparent 70%);}
.hcard[style*="--c:2"]::after{background:radial-gradient(circle,rgba(150,144,168,.2),transparent 70%);}
.hcard[style*="--c:3"]::after{background:radial-gradient(circle,rgba(216,160,176,.18),transparent 70%);}
.hcard:hover,.hcard:focus-visible{outline:none;border-color:rgba(230,205,76,.5);
  background:linear-gradient(165deg,rgba(255,255,255,.085),rgba(255,255,255,.02));
  transform:translateY(-6px);box-shadow:0 22px 50px rgba(0,0,0,.45);}
.hcard:hover::after,.hcard:focus-visible::after{opacity:1;}
.hcard__top{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1;}
.hcard__mono{flex:0 0 auto;position:relative;width:48px;height:48px;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;color:var(--black);background:#26232b;
  box-shadow:0 6px 16px rgba(0,0,0,.4);border:2px solid rgba(230,205,76,.65);}
.hcard__mono--photo{background:#0d0c0f;}
.hcard[style*="--c:1"] .hcard__mono{border-color:rgba(232,217,176,.6);}
.hcard[style*="--c:2"] .hcard__mono{border-color:rgba(150,144,168,.7);}
.hcard[style*="--c:3"] .hcard__mono{border-color:rgba(216,160,176,.65);}
/* inicial (cuando no hay foto) */
.hcard__mletter{font-family:var(--display);font-size:1.2rem;color:var(--black);
  width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(140deg,#f3dd6b,#c9a93a);}
.hcard[style*="--c:1"] .hcard__mletter{background:linear-gradient(140deg,#efe3c2,#cdbd8e);}
.hcard[style*="--c:2"] .hcard__mletter{background:linear-gradient(140deg,#b3aec6,#8b85a0);color:#15131b;}
.hcard[style*="--c:3"] .hcard__mletter{background:linear-gradient(140deg,#e8c0cc,#c890a2);}
/* cara dentro del círculo */
.hcard__face{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.12) contrast(1.05);}
.hcard__face--crop{inset:auto;max-width:none;width:auto;height:auto;object-fit:fill;}
.hcard__id{min-width:0;display:flex;flex-direction:column;gap:.12rem;}
.hcard__name{font-family:var(--display);text-transform:uppercase;letter-spacing:.03em;
  font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.05;color:var(--cream);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hcard__loc{font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(221,216,210,.55);}
.hcard__loc::before{content:"\25C9\00a0";color:var(--gold);}
.hcard__excerpt{margin:0;position:relative;z-index:1;font-size:clamp(.94rem,1.15vw,1.04rem);
  line-height:1.6;color:rgba(221,216,210,.84);
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
/* comilla grande: deja claro de un vistazo que es un testimonio */
.hcard__quote{display:block;position:relative;z-index:1;font-family:var(--display);font-weight:700;
  font-size:clamp(3rem,4.5vw,3.8rem);line-height:.5;color:var(--gold);
  margin:.1rem 0 -.35rem;text-shadow:0 6px 22px rgba(230,205,76,.35);}
.hcard__excerpt--soft{color:rgba(221,216,210,.6);font-style:italic;}
.hcard__excerpt--soft b{color:var(--gold);font-style:normal;}
.hcard__cue{margin-top:auto;display:inline-flex;align-items:center;gap:.5em;position:relative;z-index:1;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;
  color:var(--gold);}
.hcard__cue i{font-style:normal;transition:transform .25s ease;}
.hcard:hover .hcard__cue i,.hcard:focus-visible .hcard__cue i{transform:translateX(5px);}
/* botón "ver más" ocupando toda la fila del grid */
.hlist__morewrap{grid-column:1/-1;display:flex;justify-content:center;margin-top:.6rem;}
.hcard__more{cursor:pointer;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:.86rem;color:var(--cream);background:transparent;border:1px solid rgba(230,205,76,.5);
  border-radius:999px;padding:.75em 2em;transition:background .2s,color .2s,border-color .2s;}
.hcard__more:hover{background:var(--gold);border-color:var(--gold);color:var(--black);}
@media(max-width:1000px){.hlist{grid-template-columns:repeat(3,1fr);}}
@media(max-width:740px){.hlist{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.hlist{grid-template-columns:1fr;}}

/* ---- Modal «Comparte tu historia» ---- */
.hshare{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,2.5rem);opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility 0s linear .3s;}
.hshare.is-open{opacity:1;visibility:visible;transition:opacity .3s ease;}
.hshare__backdrop{position:absolute;inset:0;background:rgba(10,9,12,.84);backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);}
.hshare__panel{position:relative;z-index:1;width:min(560px,100%);max-height:90vh;overflow-y:auto;
  background:#16141a;border:1px solid rgba(221,216,210,.12);border-radius:18px;
  padding:clamp(1.6rem,3.5vw,2.6rem);box-shadow:0 40px 90px -30px rgba(0,0,0,.9);
  transform:translateY(14px) scale(.98);opacity:0;transition:transform .35s cubic-bezier(.2,.85,.25,1),opacity .3s ease;}
.hshare.is-open .hshare__panel{transform:none;opacity:1;}
.hshare__close{position:absolute;top:.9rem;right:.9rem;width:40px;height:40px;border-radius:50%;border:0;
  cursor:pointer;background:rgba(246,242,234,.1);color:var(--cream);font-size:1.5rem;line-height:1;
  display:grid;place-items:center;transition:background .25s ease,transform .25s ease;}
.hshare__close:hover{background:var(--gold);color:var(--black);transform:rotate(90deg);}
.hshare__title{font-family:var(--display);text-transform:uppercase;color:var(--cream);
  font-size:clamp(1.6rem,4vw,2.4rem);line-height:1;margin:0 0 .5rem;}
.hshare__sub{color:rgba(221,216,210,.6);font-size:clamp(.9rem,1.4vw,1rem);line-height:1.5;margin:0 0 1.4rem;}
.hshare__field{margin-bottom:1rem;}
.hshare__field label,.hshare__flabel{display:block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.06em;font-size:.78rem;color:rgba(221,216,210,.8);margin-bottom:.4rem;}
.hshare__field input[type=text],.hshare__field input[type=email],.hshare__field textarea{
  width:100%;box-sizing:border-box;background:#0e0d12;color:var(--cream);
  border:1px solid rgba(221,216,210,.16);border-radius:11px;padding:.7em .85em;
  font-family:var(--body);font-size:1rem;transition:border-color .2s ease;}
.hshare__field input:focus,.hshare__field textarea:focus{outline:none;border-color:var(--gold);}
.hshare__field textarea{resize:vertical;min-height:96px;line-height:1.5;}
.hshare__drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.5rem;min-height:128px;padding:1rem;cursor:pointer;text-align:center;
  border:1.5px dashed rgba(221,216,210,.28);border-radius:13px;background:#0e0d12;
  transition:border-color .2s ease,background .2s ease;}
.hshare__drop:hover{border-color:var(--gold);background:#121016;}
.hshare__droptxt{color:rgba(221,216,210,.55);font-size:.9rem;max-width:30ch;}
.hshare__preview{display:none;width:96px;height:96px;border-radius:50%;object-fit:cover;
  border:2px solid var(--gold);box-shadow:0 8px 18px -8px rgba(0,0,0,.7);}
.hshare__drop.has-photo .hshare__preview{display:block;}
.hshare__drop.has-photo .hshare__droptxt{display:none;}
.hshare__drop input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;}
.hshare__actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;}
.hshare__submit{cursor:pointer;border:0;}
.hshare__submit:disabled{opacity:.6;cursor:default;}
.hshare__msg{font-size:.9rem;color:rgba(221,216,210,.75);}
.hshare__done{text-align:center;padding:1.5rem 0 .5rem;}
.hshare__doneicon{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;
  background:var(--gold);color:var(--black);font-size:2rem;font-weight:700;}
.hshare__done h3{font-family:var(--display);text-transform:uppercase;color:var(--cream);
  font-size:clamp(1.4rem,3vw,1.9rem);margin:0 0 .6rem;}
.hshare__done p{color:rgba(221,216,210,.65);line-height:1.55;margin:0 auto 1.4rem;max-width:38ch;}
.hshare__doneclose{cursor:pointer;border:0;}
@media (prefers-reduced-motion:reduce){
  .hshare__panel{transition:opacity .25s ease;transform:none;}
}

/* ---------- Patrocinadores ---------- */
.spon{background:var(--cream);color:var(--black);padding:clamp(4rem,9vw,9rem) var(--pad);max-width:none;margin:0 auto;text-align:center;}
.spon__title{display:inline-block;font-family:var(--display);text-transform:uppercase;line-height:1.1;
  font-size:clamp(1.5rem,3.6vw,3rem);margin:0 auto;}
.spon__title span{background:var(--gold);color:var(--black);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:.1em .4em;}
.spon__intro{max-width:60ch;margin:1.5rem auto 0;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55;color:rgba(16,14,19,.72);}
.spon__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;color:var(--black);
  font-size:clamp(.95rem,1.6vw,1.25rem);margin:clamp(2.8rem,5.5vw,4.5rem) auto 1.6rem;
  display:flex;align-items:center;justify-content:center;gap:1rem;}
.spon__kicker::before,.spon__kicker::after{content:"";height:1px;width:min(70px,8vw);background:rgba(16,14,19,.25);}
.spon__kicker b{color:#8a7615;}

/* chip de plazas disponibles (escasez) */
.availchip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.08em;font-size:.72rem;padding:.4em .85em;border-radius:999px;border:1px solid currentColor;white-space:nowrap;}
.availchip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;
  box-shadow:0 0 0 4px color-mix(in srgb,currentColor 25%,transparent);animation:sponPulse 2s ease-in-out infinite;}
@keyframes sponPulse{50%{box-shadow:0 0 0 7px transparent;}}

/* marco "tu marca aquí" (mockup de logo premium) */
.brandslot{display:grid;place-items:center;border-radius:14px;overflow:hidden;
  border:1.5px dashed rgba(230,205,76,.55);
  background:repeating-linear-gradient(135deg,rgba(230,205,76,.05) 0 12px,transparent 12px 24px);
  transition:border-color .3s,background .3s;}
.brandslot__in{display:grid;place-items:center;gap:.5rem;padding:1.2rem;text-align:center;}
.brandslot__plus{width:2.8rem;height:2.8rem;display:grid;place-items:center;border-radius:50%;font-size:1.5rem;
  font-family:var(--display);border:1.5px solid var(--gold);color:var(--gold);
  transition:transform .35s,background .3s,color .3s;}
.brandslot__txt{font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--gold);opacity:.85;}

/* lista de beneficios con check */
.perks{display:grid;gap:.55rem;margin:.2rem 0 0;text-align:left;}
.perk{display:flex;align-items:flex-start;gap:.6rem;font-size:.92rem;line-height:1.35;}
.perk .ck{flex:none;width:1.15rem;height:1.15rem;margin-top:.05rem;border-radius:50%;display:grid;place-items:center;
  background:var(--gold);color:var(--black);font-size:.7rem;font-weight:800;}

/* 1 · Patrocinador oficial — banner premium con marco "tu marca aquí" + beneficios */
.official{display:block;max-width:1100px;margin:clamp(2.2rem,4vw,3rem) auto 0;position:relative;
  background:#17141a;color:var(--cream);border:1px solid rgba(230,205,76,.3);border-radius:24px;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s;cursor:pointer;}
.official:hover{transform:translateY(-5px);box-shadow:0 30px 60px rgba(0,0,0,.45);border-color:var(--gold);}
.official__rib{position:absolute;top:0;left:clamp(1.5rem,4vw,3rem);transform:translateY(-50%);z-index:2;
  background:var(--gold);color:var(--black);font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:.78rem;padding:.45em 1.1em;border-radius:999px;}
.official__inner{display:grid;grid-template-columns:minmax(200px,280px) 1fr auto;align-items:center;gap:clamp(1.6rem,3vw,2.6rem);
  text-align:left;padding:clamp(2.2rem,3.6vw,3rem) clamp(1.8rem,3.4vw,3rem);}
.official .brandslot{width:100%;aspect-ratio:16/10;color:var(--gold);}
.official:hover .brandslot{border-color:var(--gold);background:rgba(230,205,76,.1);}
.official:hover .brandslot__plus{transform:rotate(90deg);background:var(--gold);color:var(--black);}
.official__body{min-width:0;}
.official__tag{display:block;font-family:var(--display);text-transform:uppercase;color:var(--gold);font-size:clamp(2rem,3.6vw,3rem);line-height:.98;}
.official__legend{display:block;margin:.5rem 0 1rem;color:rgba(221,216,210,.78);font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.45;max-width:46ch;}
.official__body .perk{color:rgba(221,216,210,.92);}
.official__right{display:grid;justify-items:center;gap:1rem;align-self:center;}
.official__right .availchip{color:var(--gold);}
.official__cta{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--black);background:var(--gold);
  padding:.85em 1.4em;border-radius:999px;white-space:nowrap;}
.official__cta span{display:inline-block;transition:transform .3s;}
.official:hover .official__cta span{transform:translateX(5px);}

/* 2 · Un patrocinador por día — color por día + marco "tu marca" y beneficios */
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2rem);max-width:1100px;margin:0 auto;}
.day{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:.85rem;border-radius:22px;
  padding:clamp(1.4rem,2.2vw,1.9rem);transition:transform .35s ease,box-shadow .35s ease;cursor:pointer;}
.day:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(16,14,19,.28);}
.day--1{background:var(--white);color:var(--black);}         /* Día 1 = blanco */
.day--2{background:var(--gold);color:var(--black);}          /* Día 2 = amarillo */
.day--3{background:#17141a;color:var(--cream);}              /* Día 3 = oscuro */
.day__head{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.6rem;}
.day__num{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:clamp(.85rem,1.3vw,1rem);opacity:.7;}
.day--3 .day__num{color:var(--gold);opacity:1;}
.day .availchip{font-size:.62rem;border-color:rgba(16,14,19,.5);}
.day--3 .availchip{border-color:var(--gold);color:var(--gold);}
.day .brandslot{width:100%;aspect-ratio:16/9;}
.day--2 .brandslot{border-color:rgba(16,14,19,.4);background:repeating-linear-gradient(135deg,rgba(16,14,19,.06) 0 12px,transparent 12px 24px);}
.day--2 .brandslot__plus{border-color:var(--black);color:var(--black);}
.day--2 .brandslot__txt{color:var(--black);}
.day:hover .brandslot__plus{transform:rotate(90deg);}
.day--1:hover .brandslot__plus,.day--3:hover .brandslot__plus{background:var(--gold);color:var(--black);border-color:var(--gold);}
.day--2:hover .brandslot__plus{background:var(--black);color:var(--gold);}
.day__theme{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.8rem,3vw,2.5rem);line-height:.95;}
.day__sub{font-family:var(--display);text-transform:uppercase;font-size:.82rem;letter-spacing:.1em;opacity:.6;margin-top:-.55rem;}
.day .perk{font-size:.86rem;}
.day--1 .perk .ck,.day--2 .perk .ck{background:var(--black);color:var(--gold);}
.day__cta{margin-top:auto;font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(.95rem,1.3vw,1.12rem);line-height:1.12;padding-top:.3rem;}
.day--3 .day__cta{color:var(--gold);}
.day__cta span{display:inline-block;transition:transform .3s;}
.day:hover .day__cta span{transform:translateX(6px);}

/* 3 · Micropatrocinios — tarjetas premium "tu logo aquí" + barra de progreso */
.micro{max-width:1000px;margin:clamp(2.4rem,5vw,3.5rem) auto 0;}
.micro__bar{max-width:520px;margin:0 auto clamp(2rem,4vw,2.6rem);}
.micro__track{height:8px;border-radius:999px;background:rgba(16,14,19,.12);overflow:hidden;}
.micro__fill{height:100%;width:0;background:var(--gold);border-radius:999px;transition:width 1.2s ease;}
.micro__count{margin-top:.6rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:rgba(16,14,19,.6);}
.micro__count b{color:#8a7615;}
.micro__head{display:flex;align-items:center;gap:1.2rem;justify-content:center;margin-bottom:clamp(2rem,4vw,3rem);}
.micro__line{height:1px;flex:1;max-width:120px;background:rgba(16,14,19,.25);}
.micro__title{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.1rem,2vw,1.6rem);}
/* Selectores con .micro__grid para ganar al reset de button.mlogo (border/padding 0) */
.micro__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;align-items:stretch;}
/* Rejilla de huecos disponibles: 4 columnas (2 filas de 4 = 8 lugares) */
.micro__grid--slots{grid-template-columns:repeat(4,1fr);max-width:900px;margin:0 auto;}
.micro__grid .mlogo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;
  aspect-ratio:3/2;padding:1rem;border-radius:14px;cursor:pointer;text-align:center;
  border:1.5px dashed rgba(16,14,19,.22);background:rgba(16,14,19,.02);
  transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;}
.micro__grid .mlogo:hover{transform:translateY(-5px);border-color:var(--gold);
  background:rgba(230,205,76,.1);box-shadow:0 16px 30px rgba(16,14,19,.14);}
.mlogo__img{display:grid;place-items:center;width:100%;background:transparent;padding:.2rem;}
.mlogo__img img{max-width:88%;max-height:3.4rem;width:auto;height:auto;object-fit:contain;}
/* Pista de clic en patrocinios reales: nombre + flecha al pasar el ratón */
.micro__grid .mlogo[data-name]::after{content:attr(data-name) "  →";
  font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  font-size:clamp(.66rem,1vw,.78rem);color:rgba(16,14,19,.55);line-height:1;
  opacity:0;transform:translateY(.3rem);transition:opacity .3s ease,transform .3s ease;}
.micro__grid .mlogo:hover[data-name]::after{opacity:1;transform:none;color:var(--black);}
.micro__hint{text-align:center;margin:clamp(1.6rem,3vw,2.4rem) auto 0;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;
  font-size:clamp(.7rem,1.1vw,.85rem);color:rgba(16,14,19,.5);}
.mlogo figcaption{font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(.72rem,1vw,.85rem);color:rgba(16,14,19,.55);transition:color .25s ease;}
.micro__grid .mlogo:hover figcaption{color:#8a7615;}
/* Circulito con + (mismo gesto que el oficial y los días) */
.mlogo__plus{flex:none;width:clamp(2.4rem,3.4vw,3rem);height:clamp(2.4rem,3.4vw,3rem);display:grid;place-items:center;border-radius:50%;
  border:1.5px solid rgba(16,14,19,.3);font-family:var(--display);font-size:1.3rem;line-height:1;color:rgba(16,14,19,.5);
  transition:color .3s,background .3s,border-color .3s,transform .35s;}
.micro__grid .mlogo:hover .mlogo__plus{border-color:var(--gold);background:var(--gold);color:var(--black);transform:rotate(90deg);}

/* ---------- Tickets (contenedores limpios estilo «Programa») ---------- */
.tk{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.2rem);align-items:stretch;}

.tk2{display:flex;flex-direction:column;border-radius:26px;padding:clamp(1.8rem,2.6vw,2.8rem);overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s;}
.tk2:hover{transform:translateY(-8px);}

/* Fecha como antetítulo: misma posición en las tres tarjetas */
.tk2__date{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:clamp(.8rem,1.3vw,1rem);opacity:.7;margin-bottom:.7rem;}
.tk2__name{font-family:var(--display);text-transform:uppercase;line-height:.95;
  font-size:clamp(2.1rem,3.9vw,3.4rem);margin:0 0 1rem;}
.tk2__price{font-family:var(--display);font-size:clamp(2.8rem,4.4vw,3.8rem);line-height:1;
  margin:0 0 1rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;}
.tk2__price del{font-family:var(--display);font-size:clamp(1.1rem,1.8vw,1.5rem);opacity:.45;}
.tk2__desc{font-size:clamp(.98rem,1.4vw,1.1rem);line-height:1.45;margin:0 0 1.4rem;min-height:2.9em;opacity:.82;}
.tk2__list{display:grid;gap:.7rem;margin:0 0 1.8rem;padding:1.4rem 0 0;border-top:1px solid;}
.tk2__list li{position:relative;padding-left:1.7em;font-size:.96rem;line-height:1.4;}
.tk2__list li::before{content:"✓";position:absolute;left:0;top:0;font-weight:700;}

/* CTA con el nº de entradas dentro: «quédate con una de las que quedan» */
.tk2__btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;
  text-align:center;font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  font-size:clamp(1rem,1.5vw,1.2rem);padding:.85em 1.3em;border-radius:999px;transition:transform .25s,filter .25s;}
.tk2__btn:hover{transform:translateY(-3px);filter:brightness(1.06);}
.tk2__stock{font-size:.72em;letter-spacing:.06em;padding:.4em .8em;border-radius:999px;line-height:1;white-space:nowrap;}
/* Total disponible bajo el botón */
.tk2__total{margin:.85rem 0 0;text-align:center;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.08em;font-size:clamp(.78rem,1.1vw,.92rem);opacity:.6;}

/* Tema NEGRO — Festival (la más económica) */
.tk2--dark{background:#17141a;color:var(--cream);border:1px solid rgba(221,216,210,.16);}
.tk2--dark .tk2__now{color:var(--gold);}
.tk2--dark .tk2__list{border-color:rgba(221,216,210,.16);}
.tk2--dark .tk2__list li::before{color:var(--gold);}
.tk2--dark .tk2__btn{background:var(--gold);color:var(--black);}
.tk2--dark .tk2__stock{background:rgba(16,14,19,.18);}

/* Tema CLARO — Experiencia (intermedia) */
.tk2--light{background:var(--cream);color:var(--black);}
.tk2--light .tk2__list{border-color:rgba(16,14,19,.16);}
.tk2--light .tk2__list li::before{color:var(--black);}
.tk2--light .tk2__btn{background:var(--black);color:var(--cream);}
.tk2--light .tk2__stock{background:rgba(221,216,210,.22);}

/* Tema ORO — Convivencia (la más cara) */
.tk2--gold{background:var(--gold);color:var(--black);}
.tk2--gold .tk2__list{border-color:rgba(16,14,19,.2);}
.tk2--gold .tk2__list li::before{color:var(--black);}
.tk2--gold .tk2__btn{background:var(--black);color:var(--gold);}
.tk2--gold .tk2__stock{background:rgba(230,205,76,.22);color:var(--gold);}

/* Bonos de regalo por comprar hoy */
.tk2__bonus{margin:0 0 1.6rem;padding:1.1rem 1.2rem 1.2rem;border-radius:16px;border:1px dashed;position:relative;}
.tk2__bonustag{display:inline-block;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-size:.72rem;padding:.34em .8em;border-radius:999px;margin-bottom:.7rem;}
.tk2__bonushead{font-family:var(--display);text-transform:uppercase;line-height:1;
  font-size:clamp(1.05rem,1.7vw,1.3rem);margin:0 0 .85rem;}
.tk2__bonuslist{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;}
.tk2__bonuslist li{display:flex;justify-content:space-between;align-items:baseline;gap:.7rem;
  font-size:.9rem;line-height:1.35;padding-left:1.5em;position:relative;}
.tk2__bonuslist li::before{content:"+";position:absolute;left:0;top:0;font-weight:700;}
.tk2__bonuslist li b{font-weight:600;}
.tk2__bonuslist li span{font-family:var(--display);font-size:.76rem;opacity:.65;white-space:nowrap;}

.tk2--dark .tk2__bonus{border-color:rgba(230,205,76,.45);background:rgba(230,205,76,.06);}
.tk2--dark .tk2__bonustag{background:var(--gold);color:var(--black);}
.tk2--dark .tk2__bonushead{color:var(--gold);}
.tk2--dark .tk2__bonuslist li::before{color:var(--gold);}

.tk2--light .tk2__bonus{border-color:rgba(16,14,19,.28);background:rgba(16,14,19,.04);}
.tk2--light .tk2__bonustag{background:var(--black);color:var(--cream);}
.tk2--light .tk2__bonuslist li::before{color:var(--black);}

.tk2--gold .tk2__bonus{border-color:rgba(16,14,19,.38);background:rgba(16,14,19,.07);}
.tk2--gold .tk2__bonustag{background:var(--black);color:var(--gold);}
.tk2--gold .tk2__bonuslist li::before{color:var(--black);}

.tk__foot{display:flex;justify-content:center;margin-top:clamp(2.5rem,5vw,4rem);}

.footer2{padding:3rem var(--pad);text-align:center;border-top:1px solid rgba(221,216,210,.12);}
.footer2 img{width:60px;margin:0 auto 1rem;}
.footer2 p{font-size:.82rem;opacity:.65;}
.gblock__legal{padding:0 var(--pad);margin-top:clamp(2rem,5vw,3.5rem);font-size:.82rem;opacity:.65;text-align:center;}

/* GRACIAS final: logo a la derecha de "gracias" en la parte baja + texto legal alineado a la derecha */
.gblock--gracias .gblock__foot{display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  padding:0 var(--pad);margin-top:clamp(2rem,6vw,4rem);}
.gblock__emblem--inline{position:static;right:auto;bottom:auto;margin:0 0 1.2rem;}
.gblock--gracias .gblock__legal{padding:0;margin-top:0;text-align:left;}
.gblock--gracias .gblock__legal a{color:var(--gold);}

/* MODAL Términos y condiciones */
.tmodal{position:fixed;inset:0;z-index:120;display:none;}
.tmodal.is-open{display:block;}
.tmodal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(3px);}
.tmodal__dialog{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(720px,92vw);max-height:85vh;overflow-y:auto;background:var(--cream,#e9e6df);color:var(--black,#111);
  border-radius:14px;padding:clamp(1.6rem,4vw,2.8rem);box-shadow:0 24px 80px rgba(0,0,0,.5);}
.tmodal__close{position:absolute;top:.6rem;right:.9rem;border:0;background:transparent;
  font-size:2rem;line-height:1;color:inherit;cursor:pointer;opacity:.6;}
.tmodal__close:hover{opacity:1;}
.tmodal__title{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;margin:0 0 1rem;font-size:clamp(1.3rem,3vw,1.9rem);}
.tmodal__body{font-size:.95rem;line-height:1.6;}
.tmodal__body h4{margin:1.2rem 0 .35rem;font-size:1rem;}
.tmodal__body p{margin:0 0 .6rem;}
.tmodal__body a{color:var(--gold);}

.wa{position:fixed;right:18px;bottom:18px;z-index:90;width:54px;height:54px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.3);}
.wa svg{width:29px;height:29px;fill:#fff;}

/* ---------- Modal WhatsApp (salta a los 2 min) ---------- */
.wapop{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);}
.wapop.open{display:flex;}
.wapop__backdrop{position:absolute;inset:0;background:rgba(8,7,10,.88);backdrop-filter:blur(8px);
  opacity:0;transition:opacity .35s ease;}
.wapop.open .wapop__backdrop{opacity:1;}
.wapop__dialog{position:relative;width:min(520px,100%);text-align:center;
  background:linear-gradient(180deg,#1b171f,#100e13);color:var(--cream);
  border:1px solid rgba(230,205,76,.4);border-radius:26px;
  padding:clamp(2.4rem,5vw,3.6rem) clamp(1.8rem,4vw,3rem);box-shadow:0 40px 120px rgba(0,0,0,.6);
  transform:scale(.92) translateY(12px);opacity:0;
  transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .35s ease;}
.wapop.open .wapop__dialog{transform:none;opacity:1;}
.wapop__x{position:absolute;top:1rem;right:1rem;width:2.4rem;height:2.4rem;border:0;cursor:pointer;
  background:rgba(255,255,255,.08);color:var(--cream);border-radius:50%;font-size:1.5rem;line-height:1;
  display:grid;place-items:center;transition:background .2s,color .2s,transform .2s;}
.wapop__x:hover{background:var(--gold);color:var(--black);transform:rotate(90deg);}
/* Sello YES animado dentro del modal (oro sobre el diálogo oscuro) */
.yseal--modal{align-self:auto;width:clamp(128px,30vw,176px);color:var(--gold);margin:0 auto 1.1rem;}
.wapop__status{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.14em;font-size:.78rem;color:var(--gold);margin-bottom:1rem;}
.wapop__status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(230,205,76,.2);}
.wapop__title{font-family:var(--display);text-transform:uppercase;line-height:1;font-size:clamp(2.2rem,6vw,3.4rem);margin-bottom:.9rem;}
.wapop__msg{font-size:clamp(1rem,1.7vw,1.25rem);line-height:1.5;max-width:32ch;margin:0 auto 2rem;opacity:.85;}
.wapop__msg b{color:var(--gold);}
.wapop__cta{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  background:var(--gold);color:var(--black);font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;
  font-size:clamp(1rem,1.6vw,1.25rem);padding:.9em 1.9em;border-radius:999px;
  transition:transform .25s,background .25s,color .25s;}
.wapop__cta:hover{transform:translateY(-3px);background:var(--cream);}
.wapop__cta svg{width:22px;height:22px;fill:currentColor;flex:none;}
@media (prefers-reduced-motion:reduce){.wapop__dialog{transform:none;transition:opacity .35s ease;}}

/* reveal */
.r{opacity:0;transform:translateY(40px) scale(.97);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);}
.r.in{opacity:1;transform:none;}
.r2{transition-delay:.12s;} .r3{transition-delay:.24s;} .r4{transition-delay:.36s;}
@media (prefers-reduced-motion:reduce){.r{opacity:1;transform:none;}}

@media (max-width:900px){
  .stats{grid-template-columns:1fr;gap:2.5rem;}
  .fgrid{grid-template-columns:repeat(2,1fr);}
  .days{grid-template-columns:1fr;max-width:460px;}
  .official__inner{grid-template-columns:1fr;text-align:center;justify-items:center;}
  .official__legend{max-width:none;}
  .official__body{text-align:center;}
  .official__body .perks{justify-items:start;max-width:340px;margin-inline:auto;}
  .micro__grid{grid-template-columns:repeat(3,1fr);}
  .tk{grid-template-columns:1fr;max-width:460px;margin:0 auto;}
  .cpin,.hpin{height:240vh;}
}
@media (max-width:520px){
  .micro__grid{grid-template-columns:repeat(2,1fr);}
  .micro__grid--slots{grid-template-columns:repeat(2,1fr);}
  /* Invitados: 2 por fila también en móvil, con tipografía ajustada para que
     los nombres no desborden y las tarjetas se lean limpias de dos en dos */
  .fgrid{grid-template-columns:repeat(2,1fr);gap:1.1rem;}
  .fcard__name{font-size:clamp(1rem,4.4vw,1.4rem);margin-top:.55rem;}
  .fcard__role{font-size:.62rem;letter-spacing:.1em;}
  .fcard__role::before{width:1em;margin-right:.45em;}
}

/* ---------- Ubicación ---------- */
.loc2{padding:clamp(4rem,9vw,8rem) var(--pad);max-width:none;margin:0 auto;background:#f4f1ea;color:var(--black);}
.loc2__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;max-width:var(--content);margin:0 auto;}
.loc2__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;color:var(--black);font-size:clamp(.8rem,1.4vw,1.05rem);}
.loc2__title{font-family:var(--display);text-transform:uppercase;line-height:.95;font-size:clamp(2rem,5vw,3.6rem);margin:.5rem 0 1.2rem;color:var(--black);}
.loc2__title em{font-style:italic;color:var(--gold);}
.loc2__addr{font-style:normal;font-size:clamp(1.05rem,1.7vw,1.25rem);line-height:1.45;color:rgba(16,14,19,.78);}
/* bloque de fecha destacado (estilo event-card) */
.loc2__datebox{display:flex;align-items:center;gap:1.1rem;margin:1.6rem 0 .2rem;padding:1.1rem 1.3rem;
  border-radius:16px;background:var(--black);color:var(--cream);width:fit-content;}
.loc2__date-d{font-family:var(--display);font-size:clamp(2.4rem,5vw,3.4rem);line-height:.9;color:var(--gold);letter-spacing:.02em;}
.loc2__date-m{display:grid;gap:.2rem;}
.loc2__date-m b{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1rem,1.6vw,1.25rem);}
.loc2__date-m i{font-style:normal;font-size:.8rem;letter-spacing:.04em;color:rgba(221,216,210,.7);text-transform:uppercase;}
.loc2__btn{display:inline-block;margin:1.4rem 0 .5rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(.95rem,1.5vw,1.1rem);padding:.7em 1.5em;border-radius:999px;background:var(--black);color:var(--cream);
  transition:transform .25s ease,background .25s ease,color .25s ease;}
.loc2__btn:hover{transform:translateY(-3px);background:var(--cream);color:var(--black);}
.loc2__transport{list-style:none;margin:1.8rem 0 0;padding:1.8rem 0 0;border-top:1px solid rgba(16,14,19,.14);display:grid;gap:1.3rem;}
.loc2__transport li{display:grid;gap:.25rem;}
.loc2__transport b{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;color:var(--black);font-size:1rem;}
.loc2__transport span{font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.5;color:rgba(16,14,19,.7);}
.loc2__map{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 36px 70px rgba(16,14,19,.32);background:#0c0b11;}

/* ===== Mapa ilustrado animado ===== */
.ymap{position:relative;width:100%;height:clamp(320px,46vw,520px);}
.ymap__svg{display:block;width:100%;height:100%;}

/* retícula */
.ymap__grid{opacity:0;transition:opacity 1.1s ease .15s;}
.is-active .ymap__grid{opacity:1;}

/* silueta: se dibuja a trazo */
.ymap__outline{stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  filter:drop-shadow(0 0 10px rgba(239,233,223,.18));
  transition:stroke-dashoffset 2.2s cubic-bezier(.65,0,.35,1) .2s;}
.is-active .ymap__outline{stroke-dashoffset:0;}

/* islas */
.ymap__isles path,.ymap__isles circle{stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset 1s ease 1.9s;}
.is-active .ymap__isles path,.is-active .ymap__isles circle{stroke-dashoffset:0;}

/* rutas que convergen (marcha de hormigas) */
.ymap__route{stroke:var(--gold);stroke-width:2;stroke-dasharray:5 9;stroke-linecap:round;
  opacity:0;transition:opacity .9s ease 1.5s;}
.is-active .ymap__route{opacity:.55;animation:ymapDash 1.1s linear infinite;}
@keyframes ymapDash{to{stroke-dashoffset:-28;}}

/* punto + etiqueta + chincheta */
.ymap__dot{opacity:0;transition:opacity .5s ease 2.05s;}
.is-active .ymap__dot{opacity:.9;}

.ymap__city{fill:#efe9df;font-family:var(--display);letter-spacing:.18em;font-size:22px;font-weight:700;
  opacity:0;transform:translateY(8px);transform-box:fill-box;transform-origin:center;
  transition:opacity .6s ease 2.5s,transform .6s ease 2.5s;}
.is-active .ymap__city{opacity:.92;transform:translateY(0);}

.ymap__pin{opacity:0;transform:translateY(-34px) scale(.5);transform-box:fill-box;transform-origin:50% 100%;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.45));
  transition:opacity .35s ease 2.1s,transform .7s cubic-bezier(.34,1.56,.64,1) 2.1s;}
.is-active .ymap__pin{opacity:1;transform:translateY(0) scale(1);}

/* onda expansiva en el punto */
.ymap__ripple circle{stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;}
.is-active .ymap__ripple circle{animation:ymapRipple 2.6s ease-out infinite;animation-delay:2.6s;}
.is-active .ymap__ripple circle:nth-child(2){animation-delay:3.9s;}
@keyframes ymapRipple{0%{opacity:.7;transform:scale(.3);}70%{opacity:0;transform:scale(3.2);}100%{opacity:0;transform:scale(3.2);}}

/* chip flotante con la dirección */
.ymap__tag{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:.7rem;
  padding:.7rem .95rem;border-radius:12px;background:rgba(18,16,24,.82);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.1);box-shadow:0 14px 30px rgba(0,0,0,.35);
  opacity:0;transform:translateY(-10px);transition:opacity .6s ease 1s,transform .6s ease 1s;}
.is-active .ymap__tag{opacity:1;transform:translateY(0);}
.ymap__tagdot{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(230,205,76,.25);flex:none;}
.ymap__tag b{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--cream);font-size:.9rem;line-height:1.15;}
.ymap__tag small{display:block;color:rgba(221,216,210,.6);font-size:.78rem;margin-top:.15rem;}

@media(prefers-reduced-motion:reduce){
  .ymap__outline,.ymap__isles path,.ymap__isles circle{stroke-dashoffset:0;transition:none;}
  .ymap__grid,.ymap__route,.ymap__dot,.ymap__city,.ymap__pin,.ymap__tag{opacity:1;transform:none;transition:none;}
  .ymap__route{opacity:.55;}
  .ymap__ripple circle{display:none;}
}

@media(max-width:780px){
  .loc2__grid{grid-template-columns:1fr;}
  .loc2__map{order:-1;}
}

/* =========================================================================
   AUDITORIO EN VIVO — aforo del festival que se va dibujando y llenando
   ========================================================================= */
.aud{background:var(--black);padding:clamp(.5rem,2vw,2rem) var(--pad) clamp(2.4rem,5vw,4rem);}
.aud__head{max-width:760px;margin:0 auto clamp(1.4rem,3vw,2.4rem);text-align:center;}
.aud__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-size:clamp(.78rem,1.3vw,1rem);margin-bottom:.5rem;}
.aud__title{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;line-height:.98;font-size:clamp(1.7rem,4.6vw,3rem);color:var(--cream);}
.aud__sub{margin-top:.7rem;color:rgba(221,216,210,.72);font-size:clamp(.95rem,1.5vw,1.12rem);}
.aud__sub b{color:var(--gold);font-style:normal;}

.aud__stagewrap{position:relative;max-width:920px;margin:0 auto;border-radius:22px;overflow:hidden;
  border:1px solid rgba(230,205,76,.16);box-shadow:0 30px 80px rgba(0,0,0,.5),inset 0 0 80px rgba(0,0,0,.4);}
.aud__svg{display:block;width:100%;height:auto;}

/* haz de luz */
.aud__spot{fill:rgba(230,205,76,.05);opacity:0;transition:opacity 1.4s ease .25s;}
.aud.is-active .aud__spot{opacity:1;}

/* arcos guía (curvas tenues bajo las filas) */
.aud__guide{stroke:rgba(255,255,255,.08);stroke-width:1.4;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s ease;}
.aud.is-active .aud__guide{stroke-dashoffset:0;}

/* escenario */
.aud__stagebeam{fill:url(#audStageFill);opacity:0;transition:opacity .9s ease .15s;filter:drop-shadow(0 0 22px rgba(230,205,76,.45));}
.aud.is-active .aud__stagebeam{opacity:.92;}
.aud__stagelabel{fill:var(--black);font-family:var(--display);letter-spacing:.26em;font-size:19px;font-weight:700;
  opacity:0;transition:opacity .7s ease .55s;}
.aud.is-active .aud__stagelabel{opacity:1;}

/* animación YES — a la derecha del escenario */
.aud__yes{position:absolute;right:clamp(14px,5%,56px);bottom:clamp(10px,9%,64px);
  display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;
  opacity:0;transform:translateY(14px) scale(.9);transition:opacity .8s ease .4s,transform .8s cubic-bezier(.2,1.3,.3,1) .4s;}
.aud.is-active .aud__yes{opacity:1;transform:translateY(0) scale(1);}
.aud__yesword{position:relative;display:inline-flex;font-family:var(--display);font-weight:800;
  font-size:clamp(2.6rem,9vw,5.4rem);line-height:.8;letter-spacing:.02em;}
.aud__yesword span{display:inline-block;line-height:1.1;padding:.08em 0;
  background:linear-gradient(180deg,#fff6cf 0%,#f3dd6b 42%,#e6cd4c 70%,#b89a2f 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  text-shadow:0 0 26px rgba(230,205,76,.55);
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.45));
  animation:audYesPop .7s cubic-bezier(.2,1.5,.3,1) both,audYesFloat 3.4s ease-in-out infinite;}
.aud.is-active .aud__yesword span:nth-child(1){animation-delay:.45s,.95s;}
.aud.is-active .aud__yesword span:nth-child(2){animation-delay:.58s,1.08s;}
.aud.is-active .aud__yesword span:nth-child(3){animation-delay:.71s,1.21s;}
@keyframes audYesPop{0%{opacity:0;transform:translateY(40px) rotate(-8deg) scale(.5);}
  100%{opacity:1;transform:translateY(0) rotate(0) scale(1);}}
@keyframes audYesFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
/* anillo de luz que late detrás del YES */
.aud__yesring{position:absolute;width:128%;height:128%;border-radius:50%;
  background:radial-gradient(circle,rgba(230,205,76,.32) 0%,rgba(230,205,76,.08) 45%,transparent 70%);
  opacity:0;animation:audYesGlow 3.4s ease-in-out infinite;animation-delay:1.2s;}
@keyframes audYesGlow{0%,100%{opacity:.5;transform:scale(.92);}50%{opacity:1;transform:scale(1.08);}}
@media(max-width:560px){
  .aud__yes{right:10px;bottom:8px;}
  .aud__yesword{font-size:clamp(2rem,11vw,3.2rem);}
}

/* butacas */
.aud__seat{transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0;
  transition:transform .5s cubic-bezier(.2,1.4,.3,1),opacity .4s ease,fill .5s ease,stroke .5s ease;
  transition-delay:calc(var(--i) * 7ms);}
.aud.is-active .aud__seat{transform:scale(1);opacity:1;}
/* disponible: sólo contorno tenue del color del tramo */
.aud__seat{fill:transparent;stroke-width:1.6;}
.aud__seat--convivencia{stroke:rgba(230,205,76,.5);}
.aud__seat--experiencia{stroke:rgba(232,217,176,.45);}
.aud__seat--festival{stroke:rgba(150,144,168,.5);}
/* disponible: parpadeo suave para invitar a reservar (no afecta el fade-in de entrada) */
@keyframes audSeatBlink{0%,100%{stroke-opacity:1;}50%{stroke-opacity:.28;}}
.aud.is-active .aud__seat:not(.aud__seat--on){
  animation:audSeatBlink 2.6s ease-in-out infinite;
  animation-delay:calc(var(--i) * -137ms);
}
/* ocupada: encendida con su color */
.aud__seat--on{stroke:none;}
.aud__seat--on.aud__seat--convivencia{fill:var(--gold);filter:drop-shadow(0 0 6px rgba(230,205,76,.85));}
.aud__seat--on.aud__seat--experiencia{fill:#e8d9b0;filter:drop-shadow(0 0 5px rgba(232,217,176,.6));}
.aud__seat--on.aud__seat--festival{fill:#9690a8;filter:drop-shadow(0 0 4px rgba(150,144,168,.55));}
/* el asiento que se acaba de vender hace un pequeño latido */
@keyframes audPop{0%{transform:scale(1);}40%{transform:scale(1.7);}100%{transform:scale(1);}}
.aud__seat--just{animation:audPop .7s cubic-bezier(.2,1.4,.3,1);}

/* butaca CON foto: el círculo de color queda como fino aro y la cara va dentro.
   La imagen NO se anima en cada repintado (estable) → no parpadea. */
.aud__seat--on.aud__seat--photo{stroke-width:1.6;}
.aud__seat--on.aud__seat--photo.aud__seat--convivencia{stroke:var(--gold);}
.aud__seat--on.aud__seat--photo.aud__seat--experiencia{stroke:#e8d9b0;}
.aud__seat--on.aud__seat--photo.aud__seat--festival{stroke:#9690a8;}
.aud__faces{pointer-events:none;}
/* el recorte circular lo aplica el clipPath del SVG (#audSeatClip); aquí sólo
   la aparición suave (sin re-disparar en cada repintado → no parpadea) */
.aud__face{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4);
  transition:opacity .45s ease,transform .45s cubic-bezier(.2,1.4,.3,1);
  transition-delay:calc(var(--i) * 7ms);}
.aud.is-active .aud__face{opacity:1;transform:scale(1);}

/* leyenda / contador */
.aud__legend{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.4rem;
  max-width:920px;margin:clamp(1.1rem,2.5vw,1.8rem) auto 0;padding:0;}
.aud__leg{display:inline-flex;align-items:center;gap:.55rem;font-size:clamp(.86rem,1.3vw,.98rem);color:rgba(221,216,210,.82);}
.aud__leg b{color:var(--cream);font-weight:600;}
.aud__chip{width:13px;height:13px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.05);}
.aud__leg[data-tk="convivencia"] .aud__chip{background:var(--gold);}
.aud__leg[data-tk="experiencia"] .aud__chip{background:#e8d9b0;}
.aud__leg[data-tk="festival"]    .aud__chip{background:#9690a8;}
.aud__count{font-family:var(--display);letter-spacing:.04em;color:var(--gold);font-style:normal;font-size:.92em;}

/* aviso legal del aforo */
.aud__note{max-width:760px;margin:clamp(.9rem,2vw,1.4rem) auto 0;text-align:center;
  font-size:.82rem;line-height:1.45;color:rgba(221,216,210,.5);font-style:italic;}

/* butaca interactiva */
.aud__seat{cursor:pointer;}
.aud.is-active .aud__seat.is-hot{transform:scale(1.85);}
.aud__seat.is-hot{stroke:var(--gold)!important;stroke-width:2;filter:drop-shadow(0 0 7px rgba(230,205,76,.9));}

/* tooltip de butaca */
.aud__tip{position:absolute;left:0;top:0;z-index:5;transform:translate(-50%,calc(-100% - 12px));
  min-width:128px;max-width:220px;background:rgba(20,17,26,.97);border:1px solid rgba(230,205,76,.4);
  border-radius:12px;padding:.6rem .75rem;text-align:center;pointer-events:none;
  box-shadow:0 16px 40px rgba(0,0,0,.55);opacity:0;transition:opacity .14s ease;}
.aud__tip:not([hidden]){opacity:1;}
.aud__tip.is-interactive{pointer-events:auto;}
.aud__tip::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%) rotate(45deg);
  width:12px;height:12px;background:rgba(20,17,26,.97);border-right:1px solid rgba(230,205,76,.4);border-bottom:1px solid rgba(230,205,76,.4);}
.aud__tip--below{transform:translate(-50%,12px);}
.aud__tip--below::after{bottom:auto;top:-7px;border-right:none;border-bottom:none;
  border-left:1px solid rgba(230,205,76,.4);border-top:1px solid rgba(230,205,76,.4);}
.aud__tip b{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.03em;
  color:var(--cream);font-size:.92rem;line-height:1.15;}
.aud__tip small{display:block;color:rgba(221,216,210,.62);font-size:.72rem;margin-top:.18rem;letter-spacing:.02em;}
.aud__tip--free b{color:var(--gold);}
.aud__tipnote{display:block;margin-top:.4rem;font-style:normal;font-size:.7rem;line-height:1.35;color:rgba(221,216,210,.6);}
.aud__tipbtn{margin-top:.55rem;display:inline-block;background:var(--gold);color:var(--black);border:0;cursor:pointer;
  font:inherit;font-weight:700;font-size:.78rem;padding:.45em .9em;border-radius:999px;transition:transform .15s,background .15s;}
.aud__tipbtn:hover{transform:translateY(-1px);background:var(--cream);}
/* plaza con perfil: foto en el tooltip + acento en la butaca */
.aud__tipava{display:block;width:46px;height:46px;border-radius:50%;object-fit:cover;margin:0 auto .4rem;
  border:2px solid rgba(230,205,76,.7);box-shadow:0 4px 14px rgba(0,0,0,.45);background:#26232b;}
.aud__seat--named{stroke:rgba(255,255,255,.85);stroke-width:1.4px;cursor:pointer;}

/* destello de la tarjeta de entrada al elegir desde una butaca */
@keyframes tkFlash{0%,100%{box-shadow:0 0 0 0 rgba(230,205,76,0);}25%{box-shadow:0 0 0 5px rgba(230,205,76,.55);}}
.tk2.is-flash{animation:tkFlash 1.5s ease;}

@media(prefers-reduced-motion:reduce){
  .aud__seat{transition:fill .3s ease,stroke .3s ease;transform:scale(1);opacity:1;transition-delay:0s;}
  .aud.is-active .aud__seat.is-hot{transform:scale(1);}
  .aud.is-active .aud__seat:not(.aud__seat--on){animation:none;}
  .aud__spot,.aud__stagebeam,.aud__stagelabel{opacity:1;transition:none;}
  .aud__guide{stroke-dashoffset:0;transition:none;}
  .aud__seat--just{animation:none;}
  .aud__yes{opacity:1;transform:none;transition:none;}
  .aud__yesword span{animation:none;}
  .aud__yesring{animation:none;opacity:.7;}
}
@media(max-width:560px){
  .aud__stagewrap{border-radius:16px;}
  .aud__legend{gap:.4rem 1rem;}
}

/* ---------- Asistentes con cara (tarjetas bajo el aforo) ---------- */
.ppl{max-width:920px;margin:clamp(2.6rem,6vw,4.6rem) auto 0;}
.ppl__head{text-align:center;max-width:760px;margin:0 auto clamp(1.6rem,3.5vw,2.6rem);}
.ppl__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.22em;
  color:var(--gold);font-size:clamp(.74rem,1.2vw,.92rem);margin-bottom:.5rem;}
.ppl__title{font-family:var(--display);text-transform:uppercase;line-height:1;
  font-size:clamp(1.5rem,3.6vw,2.5rem);color:var(--cream);}
.ppl__title b{color:var(--gold);font-weight:inherit;}
.ppl__sub{margin-top:.7rem;color:rgba(221,216,210,.66);font-size:clamp(.92rem,1.4vw,1.06rem);}
.ppl__grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,2vw,1.6rem);}
.ppl__card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  background:rgba(221,216,210,.04);border:1px solid rgba(221,216,210,.12);border-radius:20px;
  padding:clamp(1rem,2vw,1.4rem) 1rem clamp(1.1rem,2.2vw,1.5rem);
  transition:transform .25s ease,border-color .25s ease,background .25s ease;}
.ppl__card:hover{transform:translateY(-6px);border-color:rgba(230,205,76,.4);background:rgba(221,216,210,.06);}
.ppl__photo{display:block;width:clamp(86px,12vw,116px);aspect-ratio:1;border-radius:50%;overflow:hidden;
  border:2px solid rgba(230,205,76,.55);box-shadow:0 10px 28px rgba(0,0,0,.45);background:#26232b;}
.ppl__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.ppl__tier{margin-top:.85rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:.64rem;padding:.22em .7em;border-radius:999px;color:var(--black);background:#9690a8;}
.ppl__tier--convivencia{background:var(--gold);}
.ppl__tier--experiencia{background:#e8d9b0;}
.ppl__tier--festival{background:#9690a8;}
.ppl__name{margin-top:.6rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(.95rem,1.6vw,1.12rem);color:var(--cream);line-height:1.1;}
.ppl__role{margin-top:.25rem;font-size:.82rem;line-height:1.35;color:rgba(221,216,210,.62);}
.ppl__more{display:block;margin:clamp(1.6rem,3.5vw,2.4rem) auto 0;cursor:pointer;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:.86rem;
  color:var(--cream);background:transparent;border:1px solid rgba(230,205,76,.5);border-radius:999px;
  padding:.7em 1.7em;transition:background .2s,color .2s;}
.ppl__more[hidden]{display:none;}
.ppl__more:hover{background:var(--gold);border-color:var(--gold);color:var(--black);}
@media(max-width:560px){
  .ppl__grid{grid-template-columns:repeat(2,1fr);gap:.7rem;}
}

/* ---------- FAQ + WhatsApp directo ---------- */
.faq{background:var(--gold);color:var(--black);padding:clamp(3rem,7vw,6rem) var(--pad) clamp(5rem,11vw,11rem);max-width:none;margin:0 auto;}
.faq__kicker{font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;color:var(--black);opacity:.6;font-size:clamp(.8rem,1.4vw,1.05rem);text-align:center;}
.faq__title{font-family:var(--display);text-transform:uppercase;line-height:.95;font-size:clamp(2rem,5vw,3.6rem);text-align:center;margin:.5rem auto clamp(2.4rem,5vw,3.6rem);}
.faq__list{max-width:840px;margin:0 auto;}
.faq__cat{display:flex;align-items:center;gap:.7rem;margin:clamp(1.8rem,3vw,2.4rem) 0 .4rem;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.92rem;color:rgba(16,14,19,.55);}
.faq__cat:first-child{margin-top:0;}
.faq__cat::after{content:"";height:1px;flex:1;background:rgba(16,14,19,.22);}
.faq__qlabel{display:inline;}
.faq__qico{display:inline-block;margin-right:.35em;font-size:1.05em;line-height:1;}
.faq__item{border-top:1px solid rgba(16,14,19,.2);transition:background .25s ease;border-radius:10px;}
.faq__item:hover{background:rgba(16,14,19,.05);}
.faq__list .faq__item:last-of-type{border-bottom:1px solid rgba(16,14,19,.2);}
.faq__q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1rem;
  font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;line-height:1.1;
  font-size:clamp(1.15rem,2.4vw,1.7rem);padding:clamp(1.1rem,2.5vw,1.6rem) 0;transition:opacity .2s;}
.faq__q::-webkit-details-marker{display:none;}
.faq__q::after{content:"+";margin-left:auto;flex:none;font-family:var(--display);font-size:1.4em;line-height:1;
  color:var(--black);transition:transform .3s ease;}
.faq__item[open] .faq__q::after{transform:rotate(45deg);}
.faq__q:hover{opacity:.62;}
.faq__a{padding:0 2.6rem clamp(1.2rem,2.5vw,1.7rem) 0;max-width:62ch;
  font-family:var(--body);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.55;color:rgba(16,14,19,.78);}
.faq__a p{margin:0;}
.faq__hours{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.45rem;}
.faq__hours li{font-size:.98em;}
.faq__hours b{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--black);margin-right:.35em;}
.faq__hours span{opacity:.6;}
.faq__item[open] .faq__a{animation:faqIn .35s ease both;}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

.faq__wa{max-width:840px;margin:clamp(3rem,6vw,4.5rem) auto 0;text-align:center;
  background:var(--black);color:var(--cream);
  border:1px solid rgba(16,14,19,.25);border-radius:28px;padding:clamp(2.2rem,5vw,3.4rem) clamp(1.4rem,5vw,3rem);}
.faq__wa-status{display:inline-flex;align-items:center;gap:.5em;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.14em;font-size:.8rem;color:var(--gold);}
.faq__wa-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(230,205,76,.6);animation:waPulse 2s infinite;}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(230,205,76,.5);}70%{box-shadow:0 0 0 9px rgba(230,205,76,0);}100%{box-shadow:0 0 0 0 rgba(230,205,76,0);}}
.faq__wa-title{font-family:var(--display);text-transform:uppercase;line-height:1;font-size:clamp(1.6rem,3.6vw,2.6rem);margin:.7rem 0 .5rem;}
.faq__wa-msg{font-family:var(--body);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.5;color:rgba(221,216,210,.8);max-width:46ch;margin:0 auto 1.8rem;}
.faq__wa-btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;
  font-size:clamp(1rem,1.6vw,1.25rem);padding:.85em 1.8em;background:var(--gold);color:var(--black);border-radius:999px;
  transition:transform .2s,background .2s;}
.faq__wa-btn svg{width:1.3em;height:1.3em;fill:currentColor;}
.faq__wa-btn:hover{transform:translateY(-3px);background:var(--cream);}
.faq__wa-num{display:block;margin-top:1rem;font-family:var(--display);letter-spacing:.12em;font-size:.95rem;color:rgba(221,216,210,.55);}

/* ---------- Patrocinadores: tarjetas clicables → modal ---------- */
/* el micrologo pasa a ser <button>: reseteamos su aspecto de botón */
button.mlogo{appearance:none;-webkit-appearance:none;background:none;border:0;padding:0;margin:0;
  font:inherit;color:inherit;text-align:center;cursor:pointer;}
[data-spon]{cursor:pointer;}
.official[data-spon],.day[data-spon]{transition:transform .35s ease,box-shadow .35s ease;}

/* ---------- Modal patrocinador (protagonista) ---------- */
.sponmodal{position:fixed;inset:0;z-index:120;display:none;}
.sponmodal.is-open{display:block;}
.sponmodal__backdrop{position:absolute;inset:0;background:rgba(16,14,19,.72);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:sponFade .3s ease both;}
.sponmodal__card{--accent:var(--gold);
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(92vw,560px);max-height:88vh;overflow-y:auto;
  background:var(--white);color:var(--black);border-radius:24px;
  padding:clamp(2rem,5vw,3.2rem) clamp(1.6rem,5vw,3rem) clamp(2rem,5vw,3rem);
  text-align:center;box-shadow:0 30px 80px rgba(16,14,19,.4);
  animation:sponPop .42s cubic-bezier(.2,.9,.3,1.2) both;}
.sponmodal__card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;
  border-radius:24px 24px 0 0;background:var(--accent);}
.sponmodal__close{position:absolute;top:.9rem;right:1.1rem;width:2.4rem;height:2.4rem;
  display:grid;place-items:center;border:0;border-radius:50%;background:rgba(16,14,19,.06);
  color:var(--black);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .2s,transform .2s;}
.sponmodal__close:hover{background:rgba(16,14,19,.12);transform:rotate(90deg);}
.sponmodal__tag{display:inline-block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.12em;font-size:clamp(.72rem,1.4vw,.86rem);color:var(--black);
  background:var(--accent);padding:.35em .9em;border-radius:999px;margin-bottom:1.4rem;}
.sponmodal__logo{display:grid;place-items:center;width:100%;margin-bottom:1.2rem;}
.sponmodal__logo img{max-height:150px;max-width:80%;width:auto;height:auto;object-fit:contain;}
.sponmodal__logo:empty,.sponmodal__logo.is-hidden{display:none;}
.sponmodal__name{font-family:var(--display);text-transform:uppercase;line-height:1.02;
  font-size:clamp(1.8rem,4.6vw,2.8rem);margin:0 0 1rem;}
.sponmodal__why{font-size:clamp(1rem,1.7vw,1.15rem);line-height:1.6;color:rgba(16,14,19,.78);
  max-width:46ch;margin:0 auto 1.8rem;}
.sponmodal__cta{display:inline-block;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.04em;font-size:clamp(1rem,1.6vw,1.15rem);padding:.9em 1.8em;border-radius:999px;
  background:var(--black);color:var(--white);transition:transform .25s,background .25s,color .25s;}
.sponmodal__cta span{display:inline-block;transition:transform .3s;}
.sponmodal__cta:hover{transform:translateY(-3px);background:var(--accent);color:var(--black);}
.sponmodal__cta:hover span{transform:translateX(5px);}
/* acentos por tipo de patrocinio */
.sponmodal__card[data-accent="day1"]{--accent:var(--white);}
.sponmodal__card[data-accent="day1"]::before{background:rgba(16,14,19,.18);}
.sponmodal__card[data-accent="day2"]{--accent:var(--gold);}
.sponmodal__card[data-accent="day3"]{--accent:#17141a;}
.sponmodal__card[data-accent="day3"] .sponmodal__tag{color:var(--gold);}
@keyframes sponFade{from{opacity:0;}to{opacity:1;}}
@keyframes sponPop{from{opacity:0;transform:translate(-50%,-46%) scale(.94);}to{opacity:1;transform:translate(-50%,-50%) scale(1);}}
@media (prefers-reduced-motion:reduce){
  .sponmodal__backdrop,.sponmodal__card{animation:none;}
}

/* =========================================================================
   MÓVIL — ajustes finos de layout (≤600px)
   La hoja ya es muy fluida (clamp + vw); aquí sólo se corrigen los puntos
   concretos que en pantallas pequeñas dejaban huecos o estrechaban el texto.
   ========================================================================= */
@media (max-width:600px){
  /* Gutter lateral más ajustado → más ancho de lectura para titulares y prosa
     (con un mínimo seguro para que el contenido no toque el borde). */
  :root{--pad:max(1.15rem,6vw);}

  /* Bandas amarillas: quitar el +125px de relleno que en móvil dejaba casi
     media pantalla vacía; el alto de banda compartido ya da aire suficiente. */
  .statement--gold{
    padding-top:var(--band-pad);
    padding-bottom:var(--band-pad);
  }
  /* Statement de palabras iluminadas: alto vertical más contenido. */
  .statement{padding-top:clamp(3.5rem,11vh,6rem);padding-bottom:clamp(3.5rem,11vh,6rem);}

  /* Footer GRACIAS: centrado y con aire inferior para que el botón flotante
     de WhatsApp no tape los enlaces legales (Términos / Ver versión clásica). */
  .gblock--gracias .gblock__foot{align-items:center;text-align:center;padding-bottom:4.5rem;}
  .gblock--gracias .gblock__legal{text-align:center;}
  .footer2{padding-bottom:4.5rem;}

  /* Mapa de historias: la barra de controles (vista + zoom) envuelve sin
     desbordar en anchos muy estrechos. */
  .hmap__bar{flex-wrap:wrap;}
}
