/* ============ Festival de la Cerveza Original · V2 ============
   Identidad tomada de la campaña entregada por el cliente (cartel, posts y videos).
   Estos estilos solo se cargan en /v2. */
:root{
  /* Paleta del LEEME de posts */
  /* Paleta oficial del festival (Paleta de colores.ai, entrega del 11-nov): principales, fondo y secundarios */
  --coral:#FF694A; --azul:#0094F0; --naranja:#FF8C00; --fondo:#F3DBCF;
  --amarillo:#FFD67D; --menta:#73D6AB; --rosa:#FF94E0;
  /* Tinta para texto (posts de campaña) y una crema clara derivada del fondo para tarjetas */
  --tinta:#00385A; --crema:#FBF1EC;
  /* Variantes más oscuras para texto: los tonos de marca no dan contraste sobre arena */
  --coral-txt:#D93B1F; --azul-txt:#005FA6; --naranja-txt:#C45C00;
  /* Fondos muestreados de las piezas */
  --arena:var(--fondo); --durazno:#F3D2B8; --azul-prof:#0068B5;
  --linea:rgba(0,56,90,.16);
  --pad:clamp(18px,4.5vw,64px);
  --ancho:1240px;
  --sup:env(safe-area-inset-top,0px);
  --inf:env(safe-area-inset-bottom,0px);
  --alto-nav:calc(64px + var(--sup));
  --display:"Boldonse","Arial Black",Impact,sans-serif;
  --texto:"Rethink Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --radio:22px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--alto-nav) + 12px);-webkit-text-size-adjust:100%;background:var(--arena)}
html.is-intro,html.sin-scroll{overflow:hidden;overscroll-behavior:none}
html.sin-scroll body{touch-action:none}
body{margin:0;background:var(--arena);color:var(--tinta);font:400 17px/1.55 var(--texto);overflow-x:hidden}
/* grano, como el de las piezas */
body::after{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.14;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
address{font-style:normal}
:focus-visible{outline:3px solid var(--tinta);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.salto{position:fixed;left:12px;top:-60px;z-index:200;background:var(--tinta);color:var(--crema);padding:10px 16px;border-radius:8px}
.salto:focus{top:12px}

/* ---- tipografía ---- */
.d{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:1.5;letter-spacing:-.01em}
.antetitulo{font:800 13px/1.3 var(--texto);letter-spacing:.24em;text-transform:uppercase;color:var(--tinta)}
.chip{display:inline-block;vertical-align:middle;padding:3px 9px;border-radius:999px;background:var(--crema);border:1px solid var(--linea);
  font:700 11px/1.3 var(--texto);letter-spacing:.06em;text-transform:uppercase;font-style:normal;color:var(--tinta);white-space:nowrap}
.sec--crema .chip,.ficha .chip{background:var(--arena)}
.chip.chip--pendiente,.sec--crema .chip--pendiente,.ficha .chip--pendiente,.dj .chip--pendiente{background:var(--rosa);border-color:transparent}
.pastilla,.leyenda{display:inline-block;width:fit-content;padding:7px 16px;border-radius:999px;background:var(--crema);color:var(--tinta);font:600 15px/1.3 var(--texto)}
.leyenda{padding:5px 12px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.nota{max-width:70ch;font-size:14px;color:rgba(0,56,90,.82)}
.liga{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;font-weight:700;color:var(--azul-txt);text-decoration:underline;text-underline-offset:4px}
.liga:hover{color:var(--tinta)}

/* ---- botones ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 26px;border:2px solid var(--tinta);border-radius:999px;
  background:var(--coral);color:var(--tinta);font:800 16px/1 var(--texto);letter-spacing:.01em;text-decoration:none;white-space:nowrap;
  transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease;box-shadow:0 4px 0 var(--tinta)}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--tinta);background:#FF7B60}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--tinta)}
.btn--claro{background:var(--crema)}
.btn--claro:hover{background:#fff}
.btn--chico{min-height:44px;padding:0 18px;font-size:14px;box-shadow:0 3px 0 var(--tinta)}

/* ============ INTRO ============ */
#viejo,.telon{display:none}
.js.is-intro #viejo{display:grid;place-items:center;position:fixed;inset:0;z-index:120;background:#fff;color:#0095F0;font-family:"Rethink Sans",system-ui,sans-serif}
.viejo__centro{display:grid;justify-items:center;gap:22px;padding:24px;transform:translateY(-4vh)}
.viejo__sello{width:min(235px,50vw);height:auto}
.viejo__texto{max-width:660px;text-align:center;font-weight:600;font-size:clamp(15px,1.6vw,20px);line-height:1.3;letter-spacing:-.01em}
.viejo__nota{position:absolute;left:20px;bottom:calc(18px + var(--inf));font:500 12px/1 ui-monospace,Menlo,Consolas,monospace;color:#6B7686}
.viejo__nota span{color:#47566A}
.viejo__saltar{position:absolute;right:16px;bottom:calc(10px + var(--inf));min-height:44px;padding:0 14px;background:none;border:0;font:500 13px/1 var(--texto);color:#6B7686}
.viejo__saltar:hover{color:var(--tinta)}

/* Telón: el muro de hojas y espigas de la cortinilla de los videos.
   Sube desde abajo con una corona de hojas como borde, se queda mientras las hojas siguen subiendo
   y vuelve a bajar destapando primero la esquina superior derecha. */
.js .telon{display:block;position:fixed;inset:0;z-index:130;pointer-events:none;overflow:hidden;visibility:hidden}
/* Una sola imagen (scripts/v2/generar-cortinilla.py) que cubre el ancho; solo se anima transform. */
.telon__muro{position:absolute;left:50%;top:0;width:max(104vw,calc(135vh * 1920 / 1500));height:auto;max-width:none;margin-left:calc(max(104vw,calc(135vh * 1920 / 1500)) / -2);
  transform:translate3d(0,110vh,0);will-change:transform;backface-visibility:hidden}
@media (orientation:portrait){
  .telon__muro{width:max(104vw,calc(135vh * 1080 / 2280));margin-left:calc(max(104vw,calc(135vh * 1080 / 2280)) / -2)}
}

/* ============ NAVEGACIÓN ============ */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;align-items:center;gap:18px;height:var(--alto-nav);padding:var(--sup) var(--pad) 0;
  transition:background-color .25s ease,box-shadow .25s ease}
.nav.fija{background:rgba(243,219,207,.94);box-shadow:0 1px 0 var(--linea);backdrop-filter:blur(8px)}
.is-intro .nav,.is-intro .asistente-lanzador{visibility:hidden}
.nav__marca{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;margin-right:auto}
.nav__marca img{width:auto;height:46px}
.nav__ligas{display:flex;gap:4px}
.nav__ligas a{display:inline-flex;align-items:center;min-height:44px;padding:0 11px;border-radius:999px;font-weight:700;font-size:15px;text-decoration:none}
.nav__ligas a:hover{background:var(--crema)}
.nav__menu{display:none;position:relative;width:46px;height:46px;border:2px solid var(--tinta);border-radius:50%;background:var(--crema)}
.nav__menu span:not(.sr){position:absolute;left:12px;right:12px;height:2px;background:var(--tinta);transition:transform .2s ease,top .2s ease}
.nav__menu span:nth-child(1){top:17px}
.nav__menu span:nth-child(2){top:25px}
.nav__menu[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg)}
.nav__menu[aria-expanded="true"] span:nth-child(2){top:21px;transform:rotate(-45deg)}
@media (max-width:1160px){
  .nav{gap:10px}
  .nav__menu{display:block}
  .nav__ligas{position:fixed;inset:var(--alto-nav) 0 auto 0;display:grid;gap:0;padding:8px var(--pad) 18px;background:var(--arena);box-shadow:0 12px 24px rgba(0,56,90,.18);
    visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
  .nav__ligas.abierto{max-height:calc(100dvh - var(--alto-nav));overflow-y:auto;visibility:visible;opacity:1;pointer-events:auto;transform:none}
  .nav__ligas a{min-height:52px;padding:0 6px;border-radius:0;border-bottom:1px solid var(--linea);font-size:18px}
  .nav:has(.nav__ligas.abierto){background:var(--arena)}
}
@media (max-width:420px){
  .nav__marca img{height:40px}
  .nav__cta{padding:0 14px}
}

/* ============ PORTADA ============ */
.hero{position:relative;display:grid;align-items:center;min-height:max(100svh,660px);padding:calc(var(--alto-nav) + 16px) var(--pad) clamp(120px,17vh,190px);
  background:linear-gradient(var(--durazno) 40%,var(--fondo));overflow:hidden;isolation:isolate}
.hero__foto{position:absolute;inset:0 0 0 auto;width:54%;z-index:-3;container-type:size;opacity:.78;
  --foco-foto:43cqh;
  -webkit-mask-image:linear-gradient(to right,transparent 1%,#000 20%);mask-image:linear-gradient(to right,transparent 1%,#000 20%)}
/* Los rostros están al 55% de la foto. El recorte los alinea sin dejar huecos. */
.hero__foto img{--alto-foto:max(100cqh,calc(100cqw * 1600 / 892));width:100%;height:100%;object-fit:cover;
  object-position:50% clamp(calc(100cqh - var(--alto-foto)),calc(var(--foco-foto) - var(--alto-foto) * .55),0px)}
/* «Filtro para fotografías y vídeos» de la entrega del cliente */
.filtro{isolation:isolate}
.filtro::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;mix-blend-mode:multiply;
  background:linear-gradient(135deg,#FFE2DB,#FFE5D4 50%,#FFE8CD)}
.hero__cuerpo{display:grid;justify-items:center;gap:clamp(14px,2.4vh,26px);width:min(44%,540px);margin-left:clamp(0px,6.5vw,120px)}
.hero__marca{display:grid;justify-items:center;gap:clamp(8px,1.4vh,16px);width:100%;font-size:inherit}
.hero__escudo{width:clamp(70px,7.4vw,112px)}
/* Nombre del festival en texto, con el orden, colores y filetes del logotipo.
   Cada renglón ocupa todo el ancho del bloque: su tamaño va en cqi (unidades del contenedor). */
.hero__nombre{container-type:inline-size;display:grid;justify-items:center;width:min(100%,clamp(260px,33vw,500px));margin:0;
  font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:1.22;letter-spacing:0;text-align:center}
.hero__linea{display:block;white-space:nowrap}
.hero__linea--festival{font-size:var(--t-festival,20.7cqi);color:var(--coral)}
.hero__linea--cerveza{font-size:var(--t-cerveza,11.8cqi);color:var(--azul);margin-top:.05em}
.hero__linea--original{position:relative;font-size:var(--t-original,16.4cqi);color:var(--naranja);padding-top:.3em;margin-top:.04em}
/* filete partido sobre «Original», como en el logotipo */
.hero__linea--original::before{content:"";position:absolute;left:0;right:0;top:0;height:max(2px,.6cqi);
  background:linear-gradient(to right,var(--naranja) 0 34%,transparent 34% 66%,var(--naranja) 66%)}
.hero__linea--descriptor{display:flex;align-items:center;gap:.45em;width:100%;font-size:var(--t-descriptor,4.9cqi);color:var(--coral);margin-top:.35em}
.hero__linea--descriptor::before,.hero__linea--descriptor::after{content:"";flex:1;height:max(2px,.45cqi);background:var(--naranja)}
.hero__datos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,3vw,36px);width:100%;max-width:540px}
.hero__datos dd{display:grid;gap:2px}
.hero__datos div:last-child{text-align:right}
.hero__datos b{font-size:clamp(11.5px,1.22vw,17px);line-height:1.7;color:var(--azul-txt);white-space:nowrap}
.hero__datos span{font-size:clamp(12.5px,1.05vw,15px);line-height:1.35;font-weight:500;color:var(--tinta)}
.hero__acciones{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.hero__paisaje{position:absolute;left:50%;bottom:-1px;width:max(100%,1100px);max-width:none;translate:-50% 0;z-index:-2}
.hero__espigas{position:absolute;bottom:-3%;height:min(82%,760px);width:auto;max-width:none;z-index:-1;pointer-events:none}
.hero__espigas--izq{left:-12px;transform-origin:0 100%;--vaiven-espigas:-3deg}
.hero__espigas--der{right:-20px;transform-origin:100% 100%;--vaiven-espigas:3deg}
.hero__vaso{position:absolute;left:59%;bottom:clamp(8px,2vh,22px);width:clamp(210px,23vw,360px);translate:-50% 0;pointer-events:none}
.hero__leyenda{position:absolute;left:var(--pad);bottom:calc(14px + var(--inf));z-index:2}
@media (min-width:720px) and (max-height:760px){
  .hero__escudo{width:64px}
  .hero__nombre{width:clamp(240px,27vw,360px)}
  .hero__vaso{width:clamp(190px,19vw,280px)}
}
@media (min-width:720px) and (max-width:1100px){
  .hero__espigas{height:min(68%,620px)}
}
@media (width < 720px), (width < 900px) and (max-aspect-ratio:11/10){
  .hero{--alto-hero:max(100svh,700px,430px + 45vw);grid-template-columns:minmax(0,1fr);align-items:start;min-height:var(--alto-hero);padding:calc(var(--alto-nav) + 10px) 20px 0}
  .hero__foto{--inicio-foto:max(calc(var(--alto-nav) + 44vw + 30px),calc(var(--alto-hero) - 100vw * 1600 / 892));
    inset:var(--inicio-foto) 0 0;width:100%;
    --foco-foto:max(35cqh,calc(clamp(445px,65vw + 230px,575px) + var(--sup) - var(--inicio-foto)));
    -webkit-mask-image:linear-gradient(transparent,#000 14%);mask-image:linear-gradient(transparent,#000 14%)}
  .hero__cuerpo{position:relative;z-index:1;width:100%;max-width:440px;margin:0 auto;gap:12px}
  .hero__escudo{width:clamp(52px,14vw,72px)}
  .hero__nombre{width:clamp(190px,56vw,280px)}
  .hero__datos{gap:10px;max-width:360px}
  .hero__datos b{font-size:clamp(10px,2.95vw,13px)}
  .hero__datos span{font-size:clamp(11px,3vw,13px)}
  .hero__paisaje{width:max(100%,760px)}
  .hero__espigas{height:min(42%,400px);bottom:-2%}
  .hero__espigas--der{right:-12px}
  .hero__acciones{flex-wrap:nowrap;gap:8px}
  .hero__acciones .btn{min-height:46px;padding:0 16px;font-size:15px}
  .hero__vaso{left:50%;width:clamp(155px,min(50vw,24svh),250px);bottom:34px}
  .hero__leyenda{left:50%;translate:-50% 0;bottom:calc(8px + var(--inf));white-space:nowrap}
}
@media (max-width:374px){
  .hero__acciones .btn{padding-inline:10px;font-size:13px}
}

/* ============ CIFRAS (numeralia) ============ */
.cifras{position:relative;display:grid;justify-items:center;gap:clamp(22px,4vw,40px);padding:clamp(56px,9vw,110px) var(--pad);
  background:var(--fondo);text-align:center}
.cifras__lista{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,3vw,44px);width:min(100%,var(--ancho))}
.cifras__lista li{display:grid;justify-items:center;align-content:start;gap:6px}
.cifras__lista b{font-size:clamp(46px,8.4vw,116px);line-height:1.25;font-variant-numeric:tabular-nums}
.cifras__lista li:nth-child(3n+1) b{color:var(--coral)}
.cifras__lista li:nth-child(3n+2) b{color:var(--azul)}
.cifras__lista li:nth-child(3n) b{color:var(--naranja)}
.cifras__lista span{max-width:22ch;font-weight:700;font-size:clamp(14px,1.3vw,17px);line-height:1.35}
@media (max-width:760px){.cifras__lista{grid-template-columns:1fr 1fr;row-gap:30px}}

/* ============ SECCIONES ============ */
.sec{position:relative;padding:clamp(64px,9vw,120px) max(var(--pad),calc((100% - var(--ancho)) / 2));overflow:hidden}
.sec--crema{background:var(--crema)}
.sec > *{position:relative}
.cab{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px)}
.cab h2,.llegar h2,.cierre h2{display:grid;font-size:clamp(25px,4.7vw,58px);line-height:1.45;text-wrap:balance}
.cab h2 > span:first-child,.llegar h2 > span:first-child,.cierre h2 > span:first-child{color:var(--coral-txt)}
.cab h2 > span:last-child,.llegar h2 > span:last-child,.cierre h2 > span:last-child{color:var(--azul-txt)}
.cab__bajada{max-width:58ch;font-size:clamp(17px,1.5vw,20px);font-weight:500}
.sec > .sec__espigas{position:absolute;top:0;width:auto;max-width:none;height:min(520px,60%);pointer-events:none}
.sec__espigas--der{right:0;left:auto}
@media (max-width:900px){.sec__espigas{display:none}}

.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.filtros button{min-height:44px;padding:0 18px;border:2px solid var(--tinta);border-radius:999px;background:transparent;font-weight:700;font-size:15px;transition:background-color .15s ease}
.filtros button:hover{background:rgba(0,56,90,.08)}
.filtros button.on{background:var(--tinta);color:var(--crema)}

/* ---- pabellones ---- */
.pab__lista{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.pabellon{display:grid;align-content:start;gap:12px;padding:clamp(20px,2.4vw,30px);border-radius:var(--radio);background:#fff;border:1px solid var(--linea);border-top:10px solid var(--c)}
.pabellon--coral{--c:var(--coral);--ct:var(--coral-txt)}
.pabellon--azul{--c:var(--azul);--ct:var(--azul-txt)}
.pabellon--naranja{--c:var(--naranja);--ct:var(--naranja-txt)}
.pabellon__num{font-size:clamp(30px,3.4vw,44px);line-height:1.3;color:var(--c)}
.pabellon h3{font-size:clamp(17px,1.7vw,22px);line-height:1.5;color:var(--tinta)}
.pabellon__sub{margin-top:8px;padding-top:14px;border-top:1px solid var(--linea);font:800 12px/1.3 var(--texto);letter-spacing:.16em;text-transform:uppercase}
.pabellon__muestra:not([hidden]){display:grid}
.pabellon__muestra li{display:grid;gap:1px;padding:9px 0;border-bottom:1px solid var(--linea)}
.pabellon__muestra li:last-child{border-bottom:0}
.pabellon__muestra b{font-weight:700}
.pabellon__muestra span{font-size:14px;color:rgba(0,56,90,.82)}
.ademas{margin-top:clamp(40px,6vw,72px)}
.ademas__lista{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:16px;border-top:2px solid var(--tinta)}
.ademas__lista li{display:grid;align-content:start;gap:6px;padding:18px 18px 4px 0}
.ademas__lista li + li{padding-left:18px;border-left:1px solid var(--linea)}
.ademas__lista h3{font:800 18px/1.25 var(--texto)}
.ademas__lista p{font-size:15px}
@media (max-width:980px){
  .pab__lista{grid-template-columns:1fr}
  .ademas__lista{grid-template-columns:1fr}
  .ademas__lista li,.ademas__lista li + li{padding:14px 0;border-left:0;border-bottom:1px solid var(--linea)}
}

/* ---- cervecerías ---- */
.muro{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.muro li[hidden]{display:none}
.tesela{position:relative;display:grid;grid-template-rows:auto 1fr;width:100%;height:100%;padding:0;border:1px solid var(--linea);border-radius:18px;background:var(--crema);text-align:left;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.tesela:hover{transform:translateY(-3px);border-color:var(--tinta);box-shadow:0 6px 0 var(--tinta)}
.tesela__logo{position:relative;display:block;aspect-ratio:4/3;background:#fff}
.tesela__logo img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:contain}
.tesela.oscuro .tesela__logo{background:var(--tinta)}
.tesela__pie{display:grid;grid-template-columns:1fr auto;column-gap:8px;padding:10px 14px 12px}
.tesela__pie b{font-weight:800;line-height:1.25}
.tesela__pie small{grid-column:1;font-size:13px;color:rgba(0,56,90,.82)}
.tesela__ir{grid-column:2;grid-row:1/3;align-self:center;font-weight:800;color:var(--azul-txt)}
.tesela__local{position:absolute;left:10px;top:10px;z-index:1;padding:3px 9px;border-radius:999px;background:var(--menta);font:800 11px/1.3 var(--texto);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:480px){.muro{grid-template-columns:1fr 1fr;gap:10px}}

/* ---- ficha de cervecería ---- */
.ficha{width:min(900px,calc(100vw - 24px));height:fit-content;max-height:calc(100dvh - 24px);padding:0;border:2px solid var(--tinta);border-radius:var(--radio);background:var(--crema);color:var(--tinta);overflow:auto}
.ficha[open]{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr)}
.ficha::backdrop{background:rgba(0,56,90,.7)}
.ficha__logo,.ficha__cerrar{grid-area:1/1}
.ficha__logo{display:grid;place-items:center;padding:16px 56px;background:#fff;border-right:1px solid var(--linea)}
.ficha__logo.oscuro{background:var(--tinta)}
.ficha__logo img{max-height:112px;width:auto;object-fit:contain}
.ficha__cuerpo{display:grid;gap:8px;align-content:start;padding:20px 24px}
.ficha__cuerpo h3{font-size:clamp(20px,3vw,32px);line-height:1.45;color:var(--coral-txt);overflow-wrap:anywhere}
.ficha__datos{display:flex;flex-wrap:wrap;gap:6px}
.ficha__datos:empty{display:none}
.ficha__resumen{font-size:16px;max-width:60ch}
.ficha__cerrar{position:sticky;top:8px;place-self:start end;z-index:2;width:44px;height:44px;margin:8px 8px 0 0;border:2px solid var(--tinta);border-radius:50%;background:var(--crema);font-size:24px;line-height:1}
.ficha__cerrar:hover{background:#fff}
@media (max-width:700px){
  .ficha[open]{grid-template-columns:1fr}
  .ficha__logo{border-right:0;border-bottom:1px solid var(--linea)}
  .ficha__logo img{max-height:72px}
  .ficha__cuerpo{padding:16px 18px}
}

/* ---- catálogo: tabla para comparar ---- */
.tabla{border-top:2px solid var(--tinta)}
.tabla__cab,.lista li{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 72px 56px;gap:8px 20px;align-items:center}
.tabla__cab{padding:10px 0;border-bottom:1px solid var(--tinta);font:800 12px/1.3 var(--texto);letter-spacing:.16em;text-transform:uppercase}
.tabla__cab span:nth-child(n+3),.lista .abv,.lista .ibu{text-align:right}
.lista li{padding:13px 0;border-bottom:1px solid var(--linea)}
.lista li[hidden]{display:none}
.lista h3{font:800 18px/1.25 var(--texto)}
.lista .quien{font-size:14px;color:rgba(0,56,90,.82)}
.lista .estilo{font-size:15px}
.lista .premio{font-weight:700;font-size:13px;color:var(--naranja-txt)}
.lista .abv,.lista .ibu{font-weight:800;font-variant-numeric:tabular-nums}
.lista small{display:none}
.cat__mas{margin-top:22px}
.cat .nota{margin-top:20px}
@media (max-width:640px){
  .tabla__cab{display:none}
  .lista li{grid-template-columns:1fr auto auto;gap:4px 14px}
  .lista li > div:first-child{grid-column:1/-1}
  .lista .estilo{grid-column:1}
  .lista small{display:inline;margin-right:5px;font:800 10px/1 var(--texto);letter-spacing:.1em;color:rgba(0,56,90,.82)}
}

/* ---- música ---- */
.djs__lista{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.dj{display:grid;align-content:start;gap:10px;padding:clamp(20px,2.4vw,30px);border-radius:var(--radio);background:var(--crema);border:1px solid var(--linea)}
.dj--coral{--c:var(--coral);--ct:var(--coral-txt)}
.dj--azul{--c:var(--azul);--ct:var(--azul-txt)}
.dj--naranja{--c:var(--naranja);--ct:var(--naranja-txt)}
.dj__num{font-size:clamp(28px,3vw,40px);line-height:1.3;color:var(--c)}
.dj__alias{font:800 12px/1.3 var(--texto);letter-spacing:.16em;text-transform:uppercase}
.dj h3{font-size:clamp(22px,2.6vw,34px);line-height:1.45;color:var(--ct)}
.dj__tags{display:flex;flex-wrap:wrap;gap:6px}
.dj .chip{background:var(--arena)}
.dj__bio{font-size:16px}
@media (max-width:980px){.djs__lista{grid-template-columns:1fr}}

/* ---- boletos: mismas filas en todas las tarjetas ---- */
.bol__lista{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.boleto{display:grid;grid-template-rows:subgrid;grid-row:span 5;gap:10px;padding:clamp(18px,2vw,26px);border-radius:var(--radio);background:#fff;border:1px solid var(--linea)}
.boleto h3{font-size:clamp(14px,1.35vw,18px);line-height:1.6;color:var(--tinta);align-self:start}
.boleto__horario{width:fit-content;padding:4px 12px;border-radius:999px;background:var(--arena);font-weight:700;font-size:14px;align-self:start}
.boleto__precio{font-size:clamp(30px,3.3vw,46px);line-height:1.35;font-variant-numeric:tabular-nums}
.boleto:nth-child(3n+1) .boleto__precio{color:var(--coral-txt)}
.boleto:nth-child(3n+2) .boleto__precio{color:var(--azul-txt)}
.boleto:nth-child(3n) .boleto__precio{color:var(--naranja-txt)}
.boleto__cond{font-size:15px;padding-top:12px;border-top:1px solid var(--linea)}
.boleto .btn{display:block;align-self:end;min-height:0;white-space:normal;text-align:center;line-height:1.2;padding-block:13px}
.bol .nota{margin-top:22px}
@media (max-width:1080px){.bol__lista{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.bol__lista{grid-template-columns:1fr}.boleto{grid-template-rows:auto;grid-row:auto}}

/* ---- cómo llegar ---- */
.llegar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.llegar__dir{display:grid;justify-items:start;gap:16px}
.llegar address{font-size:clamp(18px,1.8vw,22px);font-weight:600;line-height:1.4}
.llegar__foto{width:100%;margin-top:12px}
.llegar__marco{position:relative;border-radius:var(--radio);overflow:hidden}
.llegar__foto img{width:100%;aspect-ratio:16/9;object-fit:cover}
.llegar__foto figcaption{margin-top:8px;font-size:14px;color:rgba(0,56,90,.82)}
.llegar__info{display:grid;border-top:2px solid var(--tinta)}
.llegar__info li{display:grid;gap:4px;padding:20px 0;border-bottom:1px solid var(--linea)}
.llegar__info b{font:800 clamp(19px,1.9vw,24px)/1.25 var(--texto);color:var(--azul-txt)}
@media (max-width:860px){.llegar{grid-template-columns:1fr}}

/* ---- preguntas ---- */
.faq__lista{display:grid;gap:10px;max-width:860px}
.faq details{border:1px solid var(--linea);border-radius:16px;background:#fff}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:14px 20px;font-weight:800;font-size:18px;line-height:1.3;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--arena);font-size:22px;font-weight:600;line-height:1;transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 20px 18px;max-width:68ch}
.faq__mas{margin-top:22px;font-weight:600}

/* ---- la vibra ---- */
.vibra{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,5vw,72px);align-items:center}
.vibra__txt{display:grid;gap:22px}
.vibra__manifiesto{font:700 clamp(24px,3.1vw,42px)/1.22 var(--texto);letter-spacing:-.015em;text-wrap:pretty}
.vibra__manifiesto b{font-weight:800;color:var(--coral-txt)}
.vibra__pie{max-width:56ch;font-size:18px}
.vibra__video{justify-self:center;width:min(100%,400px)}
.vibra__video video{width:100%;aspect-ratio:4/5;border-radius:var(--radio);border:2px solid var(--tinta);background:var(--durazno);object-fit:cover}
@media (max-width:860px){.vibra{grid-template-columns:1fr}}

/* ============ CIERRE ============ */
.cierre{position:relative;display:grid;justify-items:center;gap:20px;padding:clamp(70px,10vw,130px) var(--pad) clamp(300px,36vw,500px);background:var(--fondo);text-align:center;overflow:hidden;isolation:isolate}
.cierre h2{font-size:clamp(32px,7vw,92px)}
.cierre__olas{position:absolute;left:50%;bottom:-2px;width:max(100%,900px);max-width:none;translate:-50% 0;z-index:-1}
.cierre__mesa{position:absolute;left:50%;bottom:clamp(10px,1.6vw,24px);height:clamp(250px,32vw,440px);width:auto;max-width:none;translate:-50% 0;z-index:-2}
.cierre__espigas{position:absolute;bottom:clamp(20px,3vw,40px);height:clamp(220px,30vw,420px);width:auto;max-width:none;z-index:-3}
.cierre__espigas--izq{left:calc(50% - clamp(150px,22vw,360px));translate:-100% 0}
.cierre__espigas--der{left:calc(50% + clamp(150px,22vw,360px))}
@media (max-width:640px){.cierre__espigas--izq{left:24%}.cierre__espigas--der{left:58%}}

/* ============ PIE ============ */
.pie{display:grid;grid-template-columns:1fr auto;gap:22px 40px;align-items:center;padding:40px var(--pad) calc(96px + var(--inf));background:var(--tinta);color:var(--crema)}
.pie__org{display:flex;align-items:center;gap:16px}
.pie__org img{width:60px;flex:none}
.pie__ligas{display:flex;flex-wrap:wrap;gap:4px 18px}
.pie__ligas a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.pie__legal{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:20px;border-top:1px solid rgba(241,246,229,.25);font-size:14px}
.pie :focus-visible{outline-color:var(--crema)}
@media (max-width:700px){.pie{grid-template-columns:1fr}}

/* ============ REVELADO ============ */
.rev{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.rev.en{opacity:1;transform:none}

/* ============ ASISTENTE ============ */
.asistente-lanzador{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + var(--inf));z-index:85;display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 20px 0 16px;
  border:2px solid var(--tinta);border-radius:999px;background:var(--tinta);color:var(--crema);font:800 15px/1 var(--texto);box-shadow:0 8px 22px rgba(0,56,90,.3);transition:transform .15s ease}
.asistente-lanzador:hover{transform:translateY(-2px)}
.asistente-lanzador:active{transform:scale(.97)}
@media (max-width:520px){.asistente-lanzador span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.asistente-lanzador{padding:0;width:56px;height:56px;justify-content:center}}
html:has(dialog[open]){overflow:hidden}
.asistente{--borde:16px;--base:calc(16px + var(--inf));position:fixed;inset:auto var(--borde) var(--base) auto;margin:0;width:min(440px,calc(100% - 2 * var(--borde)));max-width:none;
  height:min(660px,calc(100dvh - var(--base) - max(8px,var(--sup))));max-height:none;padding:0;border:2px solid var(--tinta);border-radius:var(--radio);overflow:hidden;background:var(--arena);color:var(--tinta);box-shadow:0 18px 48px rgba(0,56,90,.3)}
.asistente[open]{display:grid;grid-template-rows:auto minmax(0,1fr);animation:entra-asistente .2s cubic-bezier(.2,.8,.2,1) both}
.asistente::backdrop{background:rgba(0,56,90,.4)}
@keyframes entra-asistente{from{opacity:0;transform:translateY(8px)}}
.asistente__cabecera{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:12px 14px;border-bottom:2px solid var(--tinta);background:var(--crema)}
.asistente__cabecera h2{font-size:17px;line-height:1.5;color:var(--coral-txt)}
.asistente__cabecera p{font-size:13px;font-weight:600}
.asistente__control{min-height:44px;padding:0 12px;border:2px solid var(--tinta);border-radius:999px;background:var(--crema);font-size:14px;font-weight:700}
.asistente__cerrar{width:44px;padding:0;font-size:24px;line-height:1}
.asistente__control:hover{background:#fff}
.asistente__conversacion{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}
.asistente__conversacion[hidden],.recinto[hidden],.asistente__guias[hidden]{display:none}
.asistente__historial,.recinto,.asistente__guias{min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px}
.asistente__historial{position:relative}
.asistente__historial:focus-visible{outline-offset:-3px}
.asistente__sugerencias{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.asistente__sugerencias button,.asistente__ubicar{min-height:44px;padding:0 14px;border:1px solid var(--tinta);border-radius:999px;background:var(--crema);font-size:14px;font-weight:600;text-align:left}
.asistente__sugerencias button:hover,.asistente__ubicar:hover{background:#fff}
.asistente__guias-entrada{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 16px;border:2px solid var(--tinta);border-radius:14px;background:var(--menta);font-weight:800}
.asistente__guias-entrada:hover{background:#8FDFBC}
.asistente__guias{display:grid;align-content:start;gap:12px}
.asistente__guias > .asistente__control{justify-self:start}
#contenido-guias{display:grid;gap:12px}
.asistente__guia-titulo{font:800 clamp(21px,5vw,26px)/1.15 var(--texto)}
.asistente__guia-paso{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--azul-txt)}
.asistente__guia-opciones,.asistente__guia-referencia{display:grid;gap:7px}
.asistente__guia-opcion{min-height:44px;display:grid;gap:3px;padding:10px 14px;text-align:left;border:1px solid var(--tinta);border-radius:14px;background:var(--crema)}
.asistente__guia-opcion:hover,.asistente__guia-opcion[aria-pressed="true"]{background:var(--menta)}
.asistente__guia-opcion span{font-size:13px;font-weight:400}
.asistente__guia-referencia select{width:100%;min-height:44px;padding:7px 10px;border:1px solid var(--tinta);border-radius:10px;background:var(--crema);color:var(--tinta);font:inherit}
.asistente__guia-referencia button:disabled{opacity:.65;cursor:default}
.asistente__guia-form{display:grid;gap:10px}
.asistente__guia-form label{font-weight:700}
.asistente__guia-form textarea{width:100%;min-height:58px;resize:vertical;padding:8px 10px;border:1px solid var(--tinta);border-radius:10px;background:var(--crema);color:var(--tinta);font:inherit}
.asistente__guia-form .btn{min-height:46px;white-space:normal}
.asistente__guia-form .btn:disabled{opacity:.6;cursor:default;transform:none}
.asistente__guia-acciones{display:flex;flex-wrap:wrap;gap:6px}
#contenido-guias > .asistente__ficha,.asistente__estilo{padding:12px;border:1px solid var(--linea);border-radius:14px;background:var(--crema)}
.asistente__estilo{display:grid;gap:8px}
.asistente__estilo h4{margin:0;font-size:19px}
.asistente__estilo h5{margin:0;font-size:15px}
.asistente__estilo a{width:fit-content;color:var(--azul-txt);font-size:13px;text-underline-offset:3px}
.asistente__estilo-vaso{font-weight:600}
.asistente__estilo summary{min-height:44px;padding-block:10px;font-weight:700;cursor:pointer}
.asistente__entrada{padding:10px 12px;border-top:1px solid var(--linea);background:var(--crema)}
.asistente__form{display:flex;align-items:end;gap:8px}
.asistente__form textarea{min-width:0;min-height:44px;max-height:calc(4.2em + 20px);flex:1;padding:10px 12px;border:1px solid var(--tinta);border-radius:14px;background:#fff;color:var(--tinta);font:inherit;font-size:16px;resize:none}
.asistente__form button{box-shadow:none}
.asistente__form button:hover{transform:none;box-shadow:none}
.asistente__form button:disabled{opacity:.65;cursor:wait}
.asistente__aviso,.asistente__modo{margin-top:7px;font-size:13px;color:rgba(0,56,90,.82)}
.asistente__estado:not(:empty){margin:8px 0;font-size:14px;font-weight:600}
.asistente__estado--escribiendo::after{content:"";display:inline-block;width:5px;height:5px;margin:0 15px 2px 8px;border-radius:50%;background:currentColor;box-shadow:7px 0 currentColor,14px 0 currentColor;animation:asistente-espera 1s ease-in-out infinite alternate}
@keyframes asistente-espera{from{opacity:.4}to{opacity:1}}
.asistente__pregunta,.asistente__respuesta{max-width:100%;margin-bottom:8px;padding:10px 14px;border-radius:16px;font-size:15px;overflow-wrap:anywhere}
.asistente__pregunta{width:fit-content;max-width:88%;margin-left:auto;border-bottom-right-radius:4px;background:var(--tinta);color:var(--crema)}
.asistente__respuesta{border-bottom-left-radius:4px;background:var(--crema)}
.asistente__respuesta a{font-weight:700;color:var(--azul-txt);text-underline-offset:4px}
.asistente__respuesta h3{font-weight:800}
.asistente__seguimiento{font-weight:700;color:var(--azul-txt)}
.asistente__respuesta > * + *{margin-top:10px}
.asistente__parte{animation:asistente-parte .22s cubic-bezier(.2,.8,.2,1) both}
@keyframes asistente-parte{from{opacity:0;transform:translateY(5px)}}
.asistente__ficha{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding-top:10px;border-top:1px solid var(--linea)}
.asistente__ficha img{width:40px;height:40px;object-fit:contain;padding:3px;border-radius:8px;background:#fff}
.asistente__ficha img.oscuro{background:var(--tinta)}
.asistente__ficha p{margin:4px 0}
.recinto{margin:0}
.recinto figcaption{margin-bottom:12px;font-size:14px}
.recinto h3{font-size:17px;line-height:1.5;margin-bottom:6px;color:var(--azul-txt)}
#detalle-recinto:not(:empty){margin-top:10px;padding:10px 12px;background:var(--crema);border-radius:12px;font-size:14px}
.recinto__plano{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(48px,auto));gap:6px;padding:8px;border:2px solid var(--tinta);border-radius:14px;background:var(--crema)}
.recinto__plano::before{content:"";grid-column:2;grid-row:1/-1;background:var(--arena);border-inline:1px dashed var(--tinta)}
.recinto__zona{position:relative;min-width:0;min-height:48px;padding:5px;border:1px solid var(--tinta);border-radius:10px;background:var(--menta);font-size:13px;font-weight:700;line-height:1.2}
.recinto__zona[aria-pressed="true"]{color:var(--crema);background:var(--tinta)}
@media (max-width:500px){.asistente{--borde:8px;--base:calc(8px + var(--inf))}.recinto__zona{font-size:12px;padding-inline:3px}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .rev{opacity:1;transform:none}
}

/* =====================================================================
   VIDA: color, carácter y movimiento con la paleta oficial del festival.
   Todo lo animado usa transform, translate, rotate u opacidad.
   ===================================================================== */
@keyframes gira{to{rotate:360deg}}
@keyframes corre{to{transform:translateX(-50%)}}
@keyframes mece{from{rotate:-2.2deg}to{rotate:2.2deg}}
@keyframes flota{from{translate:-50% -4px}to{translate:-50% 5px}}
@keyframes onda{to{-webkit-mask-position:240px 100%;mask-position:240px 100%}}

/* ---- ondas entre secciones ---- */
.sec{overflow:visible;overflow-x:clip}
.onda{position:relative}
.onda::before{content:"";position:absolute;left:0;right:0;top:-30px;height:32px;background:inherit;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 240 32%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0 16Q60-6 120 16T240 16V32H0Z%22/%3E%3C/svg%3E") 0 100%/240px 32px repeat-x;
  mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 240 32%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0 16Q60-6 120 16T240 16V32H0Z%22/%3E%3C/svg%3E") 0 100%/240px 32px repeat-x;
  animation:onda 9s linear infinite}
.sec:not([class*="sec--"]){background:var(--fondo)}

/* ---- bloques de color ---- */
.sec--amarillo{background:var(--amarillo)}
.sec--menta{background:var(--menta)}
.sec--coral{background:var(--coral)}
.sec--noche{background:var(--tinta);color:var(--crema)}
.sec--menta .cab h2 > span:first-child{color:var(--tinta)}
.sec--menta .cab h2 > span:last-child{color:var(--azul-prof)}
.sec--menta .nota,.sec--amarillo .nota,.sec--coral .nota{color:var(--tinta)}
.sec--noche .antetitulo{color:var(--crema)}
.sec--noche .cab h2 > span:first-child{color:var(--amarillo)}
.sec--noche .cab h2 > span:last-child{color:var(--rosa)}
.sec--noche :focus-visible{outline-color:var(--amarillo)}

/* ---- hojas decorativas que se mecen y se desplazan con el scroll ---- */
.sec > .deco{position:absolute;z-index:0;top:clamp(20px,5vw,70px);width:auto;height:clamp(200px,26vw,380px);max-width:none;pointer-events:none;
  translate:0 calc(var(--d,0) * 1px);transform-origin:50% 100%;animation:mece 5.5s ease-in-out infinite alternate}
.sec > .deco--der{right:clamp(-30px,-1vw,0px)}
.sec > .deco--chica{height:clamp(120px,15vw,220px);animation-duration:4.2s}
@media (max-width:900px){.sec > .deco{opacity:.55;height:150px;top:8px}.sec > .deco--chica{height:96px}}

/* ---- portada: espigas que se mecen, paralaje y sticker ---- */
/* El borde recto de cada imagen se mantiene fuera del hero durante el vaivén. */
@keyframes mece-espigas{from{rotate:0deg}to{rotate:var(--vaiven-espigas)}}
.hero__espigas{animation:mece-espigas 6s ease-in-out infinite alternate}
.hero__espigas--der{animation-duration:7.2s;animation-direction:alternate-reverse}
.hero__vaso{translate:-50% calc(var(--s,0) * -.1px)}
.hero__cuerpo{translate:0 calc(var(--s,0) * -.06px)}
.sticker{position:absolute;right:calc(var(--pad) + 1vw);top:calc(var(--alto-nav) + 22px);z-index:2;width:clamp(92px,9.5vw,140px);aspect-ratio:1;display:grid;place-items:center;
  background:var(--rosa);border:2px solid var(--tinta);border-radius:50%;rotate:12deg;box-shadow:4px 4px 0 var(--tinta)}
.sticker svg{position:absolute;inset:0;animation:gira 16s linear infinite}
.sticker text{font:800 17.5px var(--texto);letter-spacing:.06em;fill:var(--tinta)}
.sticker b{font-size:clamp(15px,1.7vw,24px);line-height:1;color:var(--tinta)}
.is-intro .sticker,.is-intro .reloj{visibility:hidden}
@media (max-width:899px){.sticker{right:10px;top:calc(var(--alto-nav) + 4px);width:74px;box-shadow:3px 3px 0 var(--tinta)}.sticker b{font-size:12px}}

/* ---- cinta en movimiento ---- */
.cinta__marco{position:relative;z-index:3;margin-block:-12px;overflow-x:clip}
.cinta{background:var(--tinta);color:var(--amarillo);overflow:hidden;transform:rotate(-1.1deg) scale(1.03)}
.cinta__pista{display:flex;align-items:center;gap:26px;width:max-content;padding:13px 0;animation:corre 34s linear infinite;
  font:400 clamp(12px,1.35vw,19px)/1.6 var(--display);text-transform:uppercase;white-space:nowrap}
.cinta i{font-style:normal;font-size:.7em;color:var(--coral)}

/* ---- reloj del festival: de las 13:00 a la 01:00 según avanza la página ---- */
.reloj{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:calc(16px + var(--inf));z-index:70;display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;
  background:var(--tinta);color:var(--crema);border:2px solid var(--crema);font:600 13px/1 var(--texto);opacity:0;transform:translateY(16px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
.reloj.ver{opacity:1;transform:none}
.reloj i{width:22px;height:22px;border-radius:50%;background:var(--naranja);transition:background-color .4s,box-shadow .4s}
.reloj.noche i{background:var(--amarillo);box-shadow:inset -6px -2px 0 var(--tinta)}
.reloj b{min-width:50px;font:400 13px/1.5 var(--display);font-variant-numeric:tabular-nums}
.reloj span{opacity:.75}
@media (max-width:700px){.reloj span{display:none}}

/* ---- cifras sobre azul, con las 12 llaves ---- */
.cifras{background:var(--azul-prof);color:var(--crema);padding-top:clamp(64px,9vw,110px)}
.cifras .antetitulo{color:var(--amarillo)}
.cifras__lista li:nth-child(4n+1) b{color:var(--amarillo)}
.cifras__lista li:nth-child(4n+2) b{color:var(--rosa)}
.cifras__lista li:nth-child(4n+3) b{color:var(--menta)}
.cifras__lista li:nth-child(4n) b{color:var(--crema)}
.llaves{display:flex;justify-content:center;align-items:flex-end;gap:clamp(4px,1.3vw,18px);min-height:clamp(40px,5.6vw,72px)}
.llaves img{width:auto;height:clamp(38px,5.4vw,70px);opacity:0;transform:translateY(-34px) scale(.5) rotate(-14deg);
  transition:opacity .35s ease,transform .6s cubic-bezier(.2,.9,.25,1.5);transition-delay:calc(var(--i) * 70ms)}
.llaves.en img{opacity:1;transform:none}

/* ---- títulos que entran renglón por renglón ---- */
.cab h2.rev{opacity:1;transform:none}
.cab h2 > span{display:block;transition:opacity .5s ease,transform .75s cubic-bezier(.2,.9,.2,1.2)}
.cab h2 > span:last-child{transition-delay:.12s}
.cab h2.rev:not(.en) > span{opacity:0;transform:translateY(46%) rotate(-3deg)}

/* ---- tarjetas con carácter: borde, sombra dura y una ligera inclinación ---- */
.pabellon,.dj,.boleto{--giro:0deg;position:relative;border:2px solid var(--tinta);box-shadow:6px 6px 0 var(--tinta);rotate:var(--giro);
  transition:opacity .5s ease,transform .7s cubic-bezier(.2,.9,.25,1.25),rotate .3s ease,box-shadow .25s ease}
.pabellon.rev,.dj.rev,.boleto.rev{transform:translateY(46px) scale(.94)}
.pabellon.rev.en,.dj.rev.en,.boleto.rev.en{transform:none}
.pabellon:nth-child(3n+1),.dj:nth-child(3n+1),.boleto:nth-child(odd){--giro:-1.3deg}
.pabellon:nth-child(3n+2),.dj:nth-child(3n+2),.boleto:nth-child(even){--giro:1deg}
.pabellon:nth-child(3n),.dj:nth-child(3n){--giro:-.7deg}
.pabellon.en:hover,.dj.en:hover,.boleto.en:hover,.pabellon:not(.rev):hover,.dj:not(.rev):hover,.boleto:not(.rev):hover{rotate:0deg;transform:translate(-3px,-5px);box-shadow:10px 11px 0 var(--tinta)}

/* pabellones: claras en amarillo, lupuladas en menta, oscuras en tinta */
.pabellon{border-top-width:2px;overflow:hidden}
.pabellon--coral{background:var(--amarillo);--c:var(--coral-txt)}
.pabellon--azul{background:var(--menta);--c:var(--azul-prof)}
.pabellon--naranja{background:var(--tinta);color:var(--crema);--c:var(--naranja);--linea:rgba(251,241,236,.28)}
.pabellon h3{color:inherit;max-width:calc(100% - 84px)}
.pabellon--naranja .pabellon__muestra span{color:rgba(251,241,236,.82)}
.pabellon:not(.pabellon--naranja) .pabellon__muestra span{color:rgba(0,56,90,.86)}
.pabellon__vaso{position:absolute;right:14px;top:14px;width:auto;height:clamp(96px,9vw,132px);rotate:9deg;transition:rotate .35s cubic-bezier(.2,.9,.25,1.6),translate .35s ease}
.pabellon:hover .pabellon__vaso{rotate:-6deg;translate:0 -4px}

/* cervecerías: teselas que saltan */
.tesela{border:2px solid var(--tinta);transition:transform .25s cubic-bezier(.2,.9,.25,1.5),box-shadow .2s ease}
.tesela:hover,.tesela:focus-visible{transform:translate(-3px,-4px) rotate(-1.4deg);box-shadow:6px 7px 0 var(--tinta)}
.tesela__logo img{transition:scale .3s cubic-bezier(.2,.9,.25,1.5)}
.tesela:hover .tesela__logo img{scale:1.08}
.tesela__ir{transition:translate .2s ease}
.tesela:hover .tesela__ir{translate:4px 0}
.filtros button{transition:background-color .15s ease,transform .2s cubic-bezier(.2,.9,.25,1.6)}
.filtros button:hover{transform:translateY(-2px) rotate(-1.5deg)}

/* música: de noche, con discos que giran */
.djs__lista{padding-top:44px}
.dj{color:var(--tinta);box-shadow:6px 6px 0 var(--amarillo)}
.dj.en:hover,.dj:not(.rev):hover{box-shadow:10px 11px 0 var(--amarillo)}
.dj--coral{background:var(--coral)}
.dj--azul{background:var(--rosa)}
.dj--naranja{background:var(--menta)}
.dj__num,.dj h3{color:var(--tinta)}
.dj .liga{color:var(--tinta)}
.dj .chip{background:var(--crema)}
.dj__disco{position:absolute;right:18px;top:-46px;width:clamp(84px,8vw,112px);aspect-ratio:1;border-radius:50%;border:2px solid var(--crema);
  background:radial-gradient(circle,var(--amarillo) 0 17%,var(--tinta) 17.5% 20%,transparent 20.5%),repeating-radial-gradient(circle,#0A2A3F 0 2px,#143F5C 2px 4px);
  animation:gira 5s linear infinite}
.dj__disco::after{content:"";position:absolute;left:50%;top:8%;width:3px;height:16%;margin-left:-1.5px;border-radius:2px;background:rgba(251,241,236,.5)}
.dj:hover .dj__disco{animation-duration:1.2s}

/* boletos: talones perforados sobre menta */
.boleto{background:var(--crema)}
.boleto:nth-child(4n+1){background:var(--amarillo)}
.boleto:nth-child(4n+3){background:#fff}
.boleto::before,.boleto::after{content:"";position:absolute;top:calc(50% - 12px);width:24px;height:24px;border-radius:50%;background:var(--menta);border:2px solid var(--tinta)}
.boleto::before{left:-14px;clip-path:inset(-2px -2px -2px 50%)}
.boleto::after{right:-14px;clip-path:inset(-2px 50% -2px -2px)}
.boleto__cond{border-top:2px dashed rgba(0,56,90,.45)}
.boleto__horario{background:var(--tinta);color:var(--crema)}

/* preguntas y llegada */
.faq details{border:2px solid var(--tinta);transition:transform .2s cubic-bezier(.2,.9,.25,1.5),box-shadow .2s ease,background-color .2s ease}
.faq details:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--tinta)}
.faq details[open]{background:var(--amarillo);box-shadow:4px 4px 0 var(--tinta)}
.faq summary::after{background:var(--coral);border:2px solid var(--tinta)}
.llegar__marco{border:2px solid var(--tinta);box-shadow:6px 6px 0 var(--tinta);rotate:-1.2deg;transition:rotate .3s ease}
.llegar__marco:hover{rotate:0deg}
.llegar__info li{transition:translate .25s ease}
.llegar__info li:hover{translate:8px 0}

/* la vibra sobre coral */
.vibra__manifiesto b{display:inline-block;max-width:100%;color:var(--tinta);
  background:linear-gradient(var(--amarillo),var(--amarillo)) left center/100% 92% no-repeat;padding:0 .16em}
@media (prefers-reduced-motion:no-preference){
  .vibra__manifiesto.en b{animation:resaltar-manifiesto .55s cubic-bezier(.16,1,.3,1) .2s backwards}
  @keyframes resaltar-manifiesto{from{background-size:0 92%}to{background-size:100% 92%}}
}
.vibra__video video{box-shadow:8px 8px 0 var(--tinta);rotate:2deg;transition:rotate .3s ease}
.vibra__video video:hover{rotate:0deg}

/* cierre: atardecer con el sol detrás de la mesa */
.cierre{background:linear-gradient(var(--fondo),var(--amarillo) 62%,#FFB98F)}
.cierre__sol{position:absolute;left:50%;bottom:clamp(-80px,-5vw,-30px);z-index:-4;width:clamp(300px,46vw,640px);aspect-ratio:1;border-radius:50%;background:var(--coral);
  translate:-50% calc(var(--d,0) * 1px)}
.cierre__mesa{animation:flota 3.6s ease-in-out infinite alternate}
.cierre__espigas{transform-origin:50% 100%;animation:mece 6s ease-in-out infinite alternate}
.cierre__espigas--der{animation-direction:alternate-reverse;animation-duration:7s}

/* botones con gesto */
.btn span[aria-hidden]{display:inline-block;transition:translate .2s cubic-bezier(.2,.9,.25,1.6)}
.btn:hover span[aria-hidden]{translate:3px -3px}
.nav__ligas a{transition:background-color .15s ease,transform .2s cubic-bezier(.2,.9,.25,1.6)}
.nav__ligas a:hover{transform:rotate(-2deg) translateY(-1px)}
.asistente-lanzador svg{transition:rotate .3s cubic-bezier(.2,.9,.25,1.6)}
.asistente-lanzador:hover svg{rotate:-14deg}

@media (prefers-reduced-motion:reduce){
  .onda::before,.sec > .deco,.hero__espigas,.sticker svg,.cinta__pista,.dj__disco,.cierre__mesa,.cierre__espigas{animation:none}
  .hero__cuerpo,.sec > .deco{translate:none}
  .hero__vaso,.cierre__sol{translate:-50% 0}
  .pabellon.rev,.dj.rev,.boleto.rev,.cab h2.rev:not(.en) > span{opacity:1;transform:none}
  .llaves img{opacity:1;transform:none}
}

.pie__participa{grid-column:1/-1;padding-top:15px}
.pie__participa a{color:inherit;text-underline-offset:4px;overflow-wrap:anywhere}
.asistente-lanzador{text-decoration:none}
.vibra__pie p+p{margin-top:1em}

/* ============ GASTRONOMÍA ============ */
.gastro__cab h2{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0 .24em;
  font-size:clamp(26px,5vw,62px);
}
.gastro__cartel{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:clamp(14px,2.4vw,30px);
}
.gastro__ficha{
  background:var(--papel);
  color:var(--tinta);
  border-radius:var(--radio);
  box-shadow:0 5px 0 var(--sombra);
}
.gastro__ficha--la-matera{--papel:var(--coral);--sombra:#C84532}
.gastro__ficha--cafe-fugaz{--papel:var(--amarillo);--sombra:#B88034}
.gastro__ficha--grumo{--papel:var(--rosa);--sombra:#B2549D}
.gastro__ficha--la-panga{--papel:var(--menta);--sombra:#348A69}
.gastro__ficha summary{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(12px,2vw,26px);
  min-height:154px;
  padding:clamp(14px,2vw,24px);
  border-radius:inherit;
  cursor:pointer;
  list-style:none;
}
.gastro__ficha summary::-webkit-details-marker{display:none}
.gastro__ficha :focus-visible{outline-offset:4px}
.gastro__marca{
  display:grid;
  place-items:center;
  width:clamp(64px,8vw,106px);
  height:clamp(64px,8vw,106px);
  border-radius:50%;
  background:var(--tinta);
  border:2px solid var(--tinta);
  box-shadow:0 0 0 2px var(--papel),0 0 0 3px var(--tinta);
}
.gastro__marca img{width:auto;height:auto;max-width:76%;max-height:68%;object-fit:contain}
.gastro__ficha--grumo img{max-width:74px;width:77%}
.gastro__nombre{display:grid;justify-items:start;gap:6px}
.gastro__nombre strong{font-size:clamp(22px,2.7vw,39px);font-weight:800;line-height:1.05}
.gastro__tipo{
  font:800 11px/1.3 var(--texto);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.gastro__abrir{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--crema);
  border:1.5px solid var(--tinta);
}
.gastro__abrir::after{
  content:"";
  width:8px;
  height:8px;
  border:solid var(--tinta);
  border-width:0 2px 2px 0;
  rotate:45deg;
  translate:0 -2px;
}
.gastro__ficha[open] .gastro__abrir::after{rotate:225deg;translate:0 2px}
.gastro__ficha summary:hover .gastro__abrir{background:var(--tinta)}
.gastro__ficha summary:hover .gastro__abrir::after{border-color:var(--crema)}
.gastro__detalle{margin:0 20px;padding:14px 0 10px;border-top:1px solid var(--tinta)}
.gastro__detalle p{max-width:56ch}
.gastro__detalle .liga{color:inherit}
@media (max-width:690px){
  .gastro__cartel{grid-template-columns:1fr}
  .gastro__ficha summary{min-height:104px}
}

/* ============ AVISO DE COOKIES ============
   Tarjeta de la misma familia que boletos y pabellones: crema, borde de tinta, sombra dura y un giro leve. */
.galleta{position:fixed;left:max(20px,env(safe-area-inset-left));bottom:calc(20px + var(--inf));z-index:86;display:grid;gap:8px;
  width:min(410px,calc(100vw - 40px));padding:20px 22px 18px;border:2px solid var(--tinta);border-radius:var(--radio);background:var(--crema);color:var(--tinta);
  box-shadow:6px 6px 0 var(--tinta);rotate:-1deg;animation:galleta-entra .55s cubic-bezier(.2,.9,.25,1.25) both}
.galleta[hidden],.js.is-intro .galleta{display:none}
.galleta::before{content:"";position:absolute;top:-16px;right:22px;width:44px;height:44px;border:2px solid var(--tinta);border-radius:50%;rotate:12deg;
  background:radial-gradient(circle at 32% 34%,var(--tinta) 0 3px,transparent 3.5px),radial-gradient(circle at 64% 30%,var(--tinta) 0 2.5px,transparent 3px),
  radial-gradient(circle at 55% 66%,var(--tinta) 0 3px,transparent 3.5px),radial-gradient(circle at 28% 70%,var(--tinta) 0 2px,transparent 2.5px),var(--amarillo)}
.galleta__titulo{font-size:clamp(17px,1.6vw,20px);line-height:1.45;color:var(--coral-txt);padding-right:40px}
.galleta__texto{font-size:15px;line-height:1.45}
.galleta__acciones{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:6px}
.galleta__acciones .liga{min-height:44px;font-size:15px}
@keyframes galleta-entra{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
/* En pantallas angostas la tarjeta ocupa el ancho y el botón de Messenger espera a que se elija */
@media (max-width:760px){
  .galleta{left:10px;right:10px;bottom:calc(10px + var(--inf));width:auto;max-width:520px;margin-inline:auto;padding:18px 18px 16px;rotate:-.6deg}
  .galleta__acciones .btn{flex:1}
  body:has(.galleta:not([hidden])) .asistente-lanzador{visibility:hidden}
  .js.is-intro body:has(.galleta:not([hidden])) .asistente-lanzador{visibility:visible}
}

.aviso{width:min(560px,calc(100vw - 24px));height:fit-content;max-height:calc(100dvh - 24px);padding:0;border:2px solid var(--tinta);border-radius:var(--radio);
  background:var(--crema);color:var(--tinta);box-shadow:8px 8px 0 var(--tinta);overflow:auto}
.aviso[open]{display:grid}
.aviso::backdrop{background:rgba(0,56,90,.7)}
.aviso .ficha__cerrar{grid-area:1/1}
.aviso__cuerpo{grid-area:1/1;display:grid;gap:12px;padding:26px 28px 28px;font-size:16px}
.aviso__cuerpo h2{font-size:clamp(20px,3vw,28px);line-height:1.45;color:var(--coral-txt);padding-right:44px}
.aviso__estado{font-weight:700}
@media (max-width:520px){.aviso__cuerpo{padding:22px 18px 22px}}

.pie__cookies{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--crema);font:700 14px/1 var(--texto);text-decoration:underline;text-underline-offset:4px}
.pie__cookies:hover{color:#fff}

/* ============ PÁGINA LEGAL (aviso de privacidad) ============ */
.legal-barra{display:flex;align-items:center;gap:16px;padding:calc(10px + var(--sup)) var(--pad) 10px;background:var(--arena);border-bottom:1px solid var(--linea)}
.legal{width:min(820px,100%);margin:clamp(28px,5vw,56px) auto clamp(48px,7vw,88px);padding:clamp(24px,4vw,48px) clamp(20px,4vw,52px);
  background:var(--crema);border:2px solid var(--tinta);border-radius:var(--radio);box-shadow:8px 8px 0 var(--tinta)}
@media (max-width:860px){.legal{width:auto;margin-inline:16px;box-shadow:5px 5px 0 var(--tinta)}}
.legal__cab{display:grid;gap:10px;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--linea)}
.legal__cab h1{font-size:clamp(26px,4.4vw,46px);line-height:1.4;color:var(--coral-txt)}
.legal__fecha{font-size:14px;color:rgba(0,56,90,.75)}
.legal section{display:grid;gap:12px;padding:20px 0;border-bottom:1px solid var(--linea)}
.legal section:last-of-type{border-bottom:0}
.legal h2{font:800 clamp(15px,1.6vw,17px)/1.35 var(--texto);letter-spacing:.08em;text-transform:uppercase;color:var(--azul-txt)}
.legal h3{margin-top:6px;font:800 16px/1.35 var(--texto);color:var(--tinta)}
.legal__intro{padding-bottom:8px;font-size:16px;line-height:1.6}
.legal__datos{display:grid;gap:6px;margin:4px 0 0;padding:14px 16px;border:1px solid var(--linea);border-radius:14px;background:var(--arena)}
.legal__datos div{display:flex;flex-wrap:wrap;gap:4px 10px}
.legal__datos dt{min-width:150px;font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.legal__datos dd{margin:0}
.legal p,.legal li{max-width:68ch;font-size:16px;line-height:1.6}
.legal ul{display:grid;gap:8px;padding-left:22px;list-style:disc}
.legal li::marker{color:var(--coral-txt)}
.legal__volver{margin-top:24px}
/* Huecos que debe llenar el organizador antes de publicar */
.pendiente{padding:1px 8px;border-radius:8px;background:var(--rosa);font-weight:700;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.legal-pagina .pie{padding-bottom:calc(40px + var(--inf))}
