/* =====================================================================
   TEATRO BUENOS AIRES — style.css
   Los colores y la estética se eligen desde el admin (pestaña Estilo).
   ===================================================================== */

/* ---------- Paletas (base oscura) ---------- */
:root, [data-paleta="tba"]{
  --bg:#0C0C0C; --bg2:#141414; --bg3:#1C1C1C; --line:#2A2A2A;
  --tx:#F2F2F2; --tx2:#A8A8A8; --tx3:#8A8A8A;
  --acc:#C0392B; --acc2:#E0503F; --on-acc:#FFFFFF; --acc-tx:#E86A5C;
  --ok:#7FCB8F; --warn:#E9A23B;
  color-scheme:dark;
}
[data-paleta="bordo"]{
  --bg:#110A0C; --bg2:#1B1114; --bg3:#26181C; --line:#3B2A2F;
  --tx:#F4ECEA; --tx2:#BCACA9; --tx3:#9D8D8A;
  --acc:#A8323E; --acc2:#C4424F; --on-acc:#FFFFFF; --acc-tx:#E07A84;
}
[data-paleta="dorado"]{
  --bg:#0D0C0A; --bg2:#171512; --bg3:#221F1A; --line:#37322A;
  --tx:#F3EFE7; --tx2:#B8B0A1; --tx3:#9A9283;
  --acc:#C9A227; --acc2:#DDB53A; --on-acc:#141210; --acc-tx:#D8B444;
}
[data-paleta="noche"]{
  --bg:#0A0D14; --bg2:#111624; --bg3:#19202F; --line:#2A3346;
  --tx:#EEF1F6; --tx2:#A8B0BF; --tx3:#8C95A5;
  --acc:#3E6FC4; --acc2:#5584D6; --on-acc:#FFFFFF; --acc-tx:#7EA3E6;
}
[data-paleta="grafito"]{
  --bg:#121212; --bg2:#1B1B1B; --bg3:#252525; --line:#383838;
  --tx:#F5F5F5; --tx2:#B3B3B3; --tx3:#949494;
  --acc:#E8E8E8; --acc2:#FFFFFF; --on-acc:#121212; --acc-tx:#E8E8E8;
}
/* ---------- Invertida (base clara) ---------- */
[data-invertida="true"]{ color-scheme:light; }
[data-invertida="true"], [data-invertida="true"][data-paleta="tba"]{
  --bg:#F5F4F1; --bg2:#EBE9E5; --bg3:#E0DDD8; --line:#CFCBC4;
  --tx:#131313; --tx2:#454545; --tx3:#5C5C5C;
  --acc:#B0302A; --acc2:#942620; --on-acc:#FFFFFF; --acc-tx:#A62D27;
}
[data-invertida="true"][data-paleta="bordo"]{
  --bg:#F6F1F0; --bg2:#ECE3E1; --bg3:#E2D6D3; --line:#D2C3BF;
  --tx:#1A1012; --tx2:#4A3B3E; --tx3:#634F53;
  --acc:#8E2733; --acc2:#74202A; --on-acc:#FFFFFF; --acc-tx:#8E2733;
}
[data-invertida="true"][data-paleta="dorado"]{
  --bg:#F6F3EC; --bg2:#ECE7DC; --bg3:#E2DBCC; --line:#D3CAB6;
  --tx:#17140F; --tx2:#473F33; --tx3:#5F5646;
  --acc:#7A5E10; --acc2:#5F4A0C; --on-acc:#FFFFFF; --acc-tx:#7A5E10;
}
[data-invertida="true"][data-paleta="noche"]{
  --bg:#F1F3F7; --bg2:#E5E9F0; --bg3:#D9DFE8; --line:#C6CEDB;
  --tx:#0E1320; --tx2:#3C4556; --tx3:#546074;
  --acc:#2C5AA8; --acc2:#224A8C; --on-acc:#FFFFFF; --acc-tx:#2C5AA8;
}
[data-invertida="true"][data-paleta="grafito"]{
  --bg:#F4F4F4; --bg2:#E9E9E9; --bg3:#DEDEDE; --line:#CACACA;
  --tx:#111111; --tx2:#404040; --tx3:#595959;
  --acc:#1A1A1A; --acc2:#000000; --on-acc:#FFFFFF; --acc-tx:#1A1A1A;
}

/* ---------- Estética (controles del admin) ---------- */
:root{
  --f:'Raleway',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r:0px; --rb:0px; --gut:clamp(16px,4vw,48px); --gut2:clamp(16px,6vw,80px);
  --shade:12,12,12;
}
[data-invertida="true"]{ --shade:245,244,241; }
[data-botones="redondeado"]{ --rb:8px; }
[data-botones="pildora"]{ --rb:999px; }

*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--tx)}
body{margin:0;font-family:var(--f);font-size:16px;line-height:1.55;font-variant-numeric:oldstyle-nums;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--acc2);outline-offset:3px}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;margin:-1px!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--tx3)}
.tt{text-transform:lowercase}
[data-titulos="mayus"] .tt{text-transform:uppercase;letter-spacing:.02em}
[data-titulos="normal"] .tt{text-transform:none}
.acc-line{color:var(--acc-tx)}
[data-invertida="true"] .acc-line{color:var(--acc)}
[data-acento="false"] .acc-line{color:inherit}

/* Encabezado */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--acc);color:var(--on-acc);padding:10px 14px}
.skip:focus{left:10px;top:10px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gut);background:linear-gradient(180deg,rgba(var(--shade),.96),rgba(var(--shade),.7));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;letter-spacing:-.01em;text-decoration:none;line-height:1}
.logo b{color:var(--acc-tx);font-weight:700}
[data-invertida="true"] .logo b{color:var(--acc)}
.logo img{height:40px;width:auto}
.logo-nom{font-size:16px;font-weight:700;letter-spacing:-.005em;white-space:nowrap;line-height:1.1}
.logo.con-nom{gap:9px}
@media (max-width:420px){.logo-nom{font-size:14px}.logo.con-nom img{height:34px}}
@media (max-width:340px){.logo-nom{display:none}}
nav.menu{display:flex;align-items:center;gap:22px;font-size:14px;letter-spacing:.08em}
nav.menu a{text-decoration:none;color:var(--tx2);padding:4px 0;border-bottom:1px solid transparent}
nav.menu a:hover{color:var(--tx)}
nav.menu a[aria-current="page"]{color:var(--tx);background:rgba(192,57,43,.2);background:color-mix(in srgb,var(--acc) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acc) 38%,transparent);border-radius:min(var(--rb),999px);padding:4px 12px;margin:0 -4px}
[data-botones="recto"] nav.menu a[aria-current="page"]{border-radius:999px}
.hamb{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font-size:13px;letter-spacing:.1em;border-radius:var(--rb)}
@media (max-width:900px){
  nav.menu{display:none}
  .hamb{display:block}
  nav.menu.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;gap:0;background:var(--bg2);border-bottom:1px solid var(--line)}
  nav.menu.open a{padding:14px var(--gut);border-top:1px solid var(--line)}
}

/* Redes */
.redes{display:flex;align-items:center;gap:6px}
.red{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:min(var(--rb),999px);color:var(--tx2);text-decoration:none;transition:color .2s,border-color .2s,background .2s}
.red svg{width:18px;height:18px}
.red:hover{color:var(--on-acc);background:var(--acc);border-color:var(--acc)}
header.top nav.menu{margin-left:auto}
header.top .redes-top{margin-left:10px}
.red-sm .red{width:32px;height:32px}
.menu-redes{display:none}
@media (max-width:900px){.redes-top{display:none}nav.menu.open .menu-redes{display:flex;gap:8px;padding:14px var(--gut);border-top:1px solid var(--line)}}
@media (max-width:1100px) and (min-width:901px){nav.menu{gap:16px}.redes-top .red{width:32px;height:32px}}
.redes-pie{margin-top:22px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;padding:14px 26px;font-size:14px;font-weight:600;letter-spacing:.14em;text-decoration:none;border-radius:var(--rb);transition:background .2s,border-color .2s;line-height:1.2;text-transform:lowercase}
[data-titulos="mayus"] .btn{text-transform:uppercase}
[data-titulos="normal"] .btn{text-transform:none}
.btn-r{background:var(--acc);color:var(--on-acc)}
.btn-r:hover{background:var(--acc2)}
[data-boton-estilo="contorno"] .btn-r{background:transparent;color:var(--tx);border-color:var(--acc)}
[data-boton-estilo="contorno"] .btn-r:hover{background:var(--acc);color:var(--on-acc)}
.btn-g{background:rgba(127,127,127,.14);color:var(--tx);border-color:rgba(127,127,127,.35)}
.btn-g:hover,.btn-g:focus-visible{background:rgba(127,127,127,.24);border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.obra-sl .btn-g:hover,.obra-sl .btn-g:focus-visible{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.btn-s{padding:10px 16px;font-size:12px}
.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.btns{display:flex;gap:10px;flex-wrap:wrap}

.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.16em;padding:5px 9px;background:var(--acc);color:var(--on-acc);text-transform:lowercase;border-radius:min(var(--rb),6px)}
.tag.g{background:rgba(127,127,127,.22);color:var(--tx)}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;letter-spacing:.12em;color:var(--tx2)}

/* Imagen de relleno cuando todavía no hay póster */
.art{position:relative;overflow:hidden;background:var(--bg3);border-radius:var(--r)}
.art.gen{background:var(--c1,#1a1a1a)}
.art.gen::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 30% 22%,var(--c2,#C0392B) 0%,transparent 60%),radial-gradient(90% 70% at 90% 100%,var(--c3,#222) 0%,transparent 70%)}
.art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art .ttl{position:absolute;left:10%;right:10%;bottom:9%;z-index:2;font-weight:800;line-height:.95;letter-spacing:-.02em;text-transform:lowercase;color:#F2F2F2;text-shadow:0 2px 20px rgba(0,0,0,.5)}

/* Portada (dirección A · telón) */
.hero{position:relative;overflow:hidden;background:var(--bg)}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s}
.slide.on{opacity:1;visibility:visible;position:relative}
.brand{overflow:hidden;min-height:min(88vh,760px);display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,90px) var(--gut2)}
.brand .dir{font-size:clamp(12px,1.6vw,16px);letter-spacing:.35em;color:var(--tx3)}
.brand h1{margin:.2em 0 .35em;font-size:clamp(46px,10.5vw,170px);line-height:.92;font-weight:700;letter-spacing:-.02em}
.brand h1 span{display:block}
.brand > *{position:relative;z-index:1}
.brand .wm{position:absolute;z-index:0;right:clamp(-10px,2vw,40px);bottom:clamp(-30px,-2vw,0px);font-size:clamp(150px,24vw,400px);font-weight:700;line-height:.8;letter-spacing:.01em;text-transform:uppercase;color:var(--acc);opacity:.07;pointer-events:none;user-select:none}
[data-invertida="true"] .brand .wm{opacity:.08}
.brand p{max-width:34ch;font-size:clamp(17px,2vw,22px);color:var(--tx3);font-weight:300;letter-spacing:.04em;margin:0 0 2em}
.obra-sl{min-height:min(88vh,760px)}
.obra-sl > .art{position:absolute;inset:0;border-radius:0}
.obra-sl > .art .ttl{display:none}
.obra-sl video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.obra-sl .shade{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(12,12,12,.92) 0%,rgba(12,12,12,.5) 50%,rgba(12,12,12,.1) 85%),linear-gradient(0deg,var(--bg) 0%,transparent 35%)}
.obra-sl .txt{position:absolute;z-index:3;left:var(--gut2);bottom:clamp(64px,10vh,110px);max-width:min(580px,86%);color:#F2F2F2}
.obra-sl .txt .meta{color:#C9C9C9}
.obra-sl h2{margin:.25em 0 .2em;font-size:clamp(42px,7vw,92px);line-height:.92;font-weight:700;letter-spacing:-.02em}
.obra-sl p{color:#C9C9C9;font-size:17px;margin:.4em 0 1.4em;max-width:44ch}
.obra-sl .btn-g{color:#F2F2F2;border-color:rgba(242,242,242,.35);background:rgba(242,242,242,.12)}
.obra-sl .acc-line{color:#E86A5C}
[data-acento="false"] .obra-sl .acc-line{color:inherit}
/* Cápsulas de datos sobre la portada (abajo a la derecha) */
.caps{position:absolute;z-index:4;right:var(--gut2);bottom:clamp(28px,5vh,44px);display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:52%}
.cap{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;background:rgba(12,12,12,.72);border:1px solid rgba(242,242,242,.14);color:#F2F2F2;font-size:13px;letter-spacing:.04em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-variant-numeric:lining-nums}
.cap b{color:#E86A5C;font-weight:700}
[data-portada="marquesina"] .caps,[data-portada="cartel"] .caps{display:none}
@media (max-width:900px){.caps{display:none}}
/* Portada en burbuja (enmarcada, esquinas redondeadas) */
[data-marco="true"] .hero{margin:10px var(--gut) 0;border-radius:clamp(14px,1.6vw,24px);box-shadow:0 20px 60px rgba(0,0,0,.45);border:1px solid var(--line)}
[data-marco="true"] .brand{background:radial-gradient(120% 90% at 85% 100%,rgba(192,57,43,.14),transparent 60%),var(--bg2)}
[data-marco="true"] .brand,[data-marco="true"] .obra-sl{min-height:min(80vh,700px)}
[data-marco="true"] .obra-sl .txt,[data-marco="true"] .brand{padding-left:clamp(20px,4vw,56px)}
[data-marco="true"] .obra-sl .txt{left:clamp(20px,4vw,56px)}
[data-marco="true"] .dots{left:clamp(20px,4vw,56px)}
[data-marco="true"] .caps{right:clamp(20px,3vw,40px)}
@media (max-width:640px){[data-marco="true"] .hero{margin:6px 10px 0;border-radius:14px}}
/* Formato de portada elegible en el admin: telón (A), marquesina (B), cartel (C) */
.obra-sl .poster-side,.obra-sl .next{display:none}
.next{grid-template-columns:auto auto;gap:4px 18px;padding:12px 16px;border:1px solid rgba(242,242,242,.2);background:rgba(12,12,12,.7);margin:0 0 18px;font-size:13px;letter-spacing:.08em;border-radius:var(--r);width:max-content;max-width:100%}
.next small{grid-column:1/-1;font-size:11px;letter-spacing:.2em;color:#A8A8A8}
.next b{font-size:17px;font-variant-numeric:lining-nums}
.poster-side .art{aspect-ratio:2/3}
.poster-side .ttl{font-size:clamp(18px,2vw,30px)}
[data-portada="marquesina"] .obra-sl{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:clamp(20px,4vw,60px);padding:clamp(40px,7vw,80px) var(--gut2) clamp(70px,8vw,90px)}
[data-portada="marquesina"] .obra-sl > .art{opacity:.3;filter:blur(30px) saturate(.8);transform:scale(1.1)}
[data-portada="marquesina"] .obra-sl video{display:none}
[data-portada="marquesina"] .obra-sl .shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(var(--shade),.55) 60%,rgba(var(--shade),.35))}
[data-portada="marquesina"] .obra-sl .txt{order:1;position:relative;left:auto;bottom:auto;max-width:none;color:var(--tx)}
[data-portada="marquesina"] .obra-sl .txt .meta{color:var(--tx2)}
[data-portada="marquesina"] .obra-sl h2{font-size:clamp(48px,9vw,140px);line-height:.88;letter-spacing:-.03em}
[data-portada="marquesina"] .obra-sl p{color:var(--tx3);font-weight:300;font-size:clamp(16px,1.6vw,20px)}
[data-portada="marquesina"] .obra-sl .acc-line{color:var(--acc-tx)}
[data-portada="marquesina"][data-invertida="true"] .obra-sl .acc-line{color:var(--acc)}
[data-portada="marquesina"] .obra-sl .btn-g{color:var(--tx);border-color:rgba(127,127,127,.4);background:rgba(127,127,127,.14)}
[data-portada="marquesina"] .obra-sl .poster-side{order:2;display:block;position:relative;z-index:3;justify-self:center;width:min(100%,340px);box-shadow:0 30px 80px rgba(0,0,0,.5);transform:rotate(2deg)}
[data-portada="marquesina"] .dots{left:auto;right:var(--gut2)}
@media (max-width:760px){[data-portada="marquesina"] .obra-sl{grid-template-columns:1fr}[data-portada="marquesina"] .obra-sl .poster-side{order:-1;width:48%;justify-self:start}}
[data-portada="cartel"] .obra-sl{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:clamp(20px,4vw,56px);padding:clamp(80px,12vw,120px) var(--gut2) clamp(64px,8vw,90px)}
[data-portada="cartel"] .obra-sl .shade{background:linear-gradient(0deg,rgba(12,12,12,.97) 8%,rgba(12,12,12,.72) 50%,rgba(12,12,12,.38))}
[data-portada="cartel"] .obra-sl .txt{position:relative;left:auto;bottom:auto;max-width:640px}
[data-portada="cartel"] .obra-sl h2{font-size:clamp(36px,5.5vw,72px)}
[data-portada="cartel"] .obra-sl .poster-side{display:block;position:relative;z-index:3;width:clamp(140px,20vw,250px);border:1px solid rgba(242,242,242,.15);border-radius:var(--r)}
[data-portada="cartel"] .obra-sl .next{display:inline-grid}
[data-portada="cartel"] .dots{left:50%;transform:translateX(-50%);bottom:22px}
@media (max-width:640px){[data-portada="cartel"] .obra-sl{grid-template-columns:1fr}[data-portada="cartel"] .obra-sl .poster-side{width:120px}}
.dots{position:absolute;z-index:6;display:flex;gap:8px;left:var(--gut2);bottom:30px}
.dots button{width:28px;height:4px;border:0;padding:0;background:rgba(127,127,127,.45)}
.dots button.on{background:var(--acc)}
.hero-arw{position:absolute;z-index:6;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(242,242,242,.25);background:rgba(12,12,12,.5);color:#F2F2F2;font-size:20px;border-radius:var(--rb)}
.hero-arw.l{left:12px}.hero-arw.r{right:12px}
@media (max-width:760px){.hero-arw{display:none}}

/* Filas tipo streaming */
main{display:block;min-height:60vh}
.row{margin-top:clamp(28px,4vw,44px)}
.row-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 var(--gut);margin-bottom:10px}
.row-h h2{margin:0;font-size:clamp(18px,2.2vw,24px);font-weight:600;letter-spacing:.01em}
[data-intensidad="impactante"] .row-h h2{color:var(--acc-tx)}
.row-h a{font-size:12px;letter-spacing:.14em;color:var(--tx3);text-decoration:none;white-space:nowrap}
.row-h a:hover{color:var(--tx)}
.track-w{position:relative}
.track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px var(--gut) 22px;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
.arw{position:absolute;top:10px;bottom:22px;width:46px;z-index:5;border:0;background:linear-gradient(90deg,rgba(var(--shade),.92),transparent);font-size:26px;opacity:0;transition:opacity .2s}
.arw.r{right:0;background:linear-gradient(270deg,rgba(var(--shade),.92),transparent)}.arw.l{left:0}
.track-w:hover .arw{opacity:1}
@media (hover:none){.arw{display:none}}
.card{flex:0 0 clamp(140px,16vw,200px);scroll-snap-align:start;border:0;padding:0;background:none;text-align:left;transition:transform .3s ease;position:relative;text-decoration:none;display:block}
.card .art{aspect-ratio:2/3}
.card .art .ttl{font-size:clamp(17px,1.8vw,22px)}
.card .hov{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:10px;background:linear-gradient(0deg,rgba(12,12,12,.97) 55%,transparent);opacity:0;transform:translateY(8px);transition:.25s;font-size:12px;letter-spacing:.06em;color:#C9C9C9;border-radius:0 0 var(--r) var(--r)}
.card .hov strong{display:block;color:#F2F2F2;font-size:13px}
[data-hover="true"] .card:hover,[data-hover="true"] .card:focus-visible{transform:scale(1.07);z-index:4}
.card:hover .hov,.card:focus-visible .hov{opacity:1;transform:none}
@media (hover:none){.card .hov{opacity:1;transform:none;background:linear-gradient(0deg,rgba(12,12,12,.9) 40%,transparent)}}
/* la etiqueta de estado va debajo del póster, sin tapar el nombre de la obra */
.card .card-p{position:relative;display:block}
.card .ribbon{position:static;display:inline-block;margin-top:8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.wide{flex-basis:clamp(240px,26vw,320px)}.card.wide .art{aspect-ratio:16/9}
.row-grandes .track{scroll-snap-type:x mandatory}
.card.grande{flex:1 0 min(520px,84vw);max-width:760px;aspect-ratio:16/9;position:relative;overflow:hidden;border-radius:var(--r)}
.card.grande .art{position:absolute;inset:0;aspect-ratio:auto;border-radius:0}
.card.grande .art img{transition:transform .6s ease}
[data-hover="true"] .card.grande:hover{transform:none}
[data-hover="true"] .card.grande:hover .art img{transform:scale(1.05)}
.gp-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,12,12,.95) 0%,rgba(12,12,12,.55) 45%,rgba(12,12,12,.05) 80%)}
.gp-txt{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;gap:6px;justify-items:start;padding:clamp(14px,2.4vw,26px);color:#F2F2F2}
.gp-t{display:block;font-size:clamp(24px,3vw,40px);line-height:1;font-weight:700;letter-spacing:-.01em}
.gp-t .acc-line{color:#E86A5C}
[data-acento="false"] .gp-t .acc-line{color:inherit}
.gp-m{font-size:13px;letter-spacing:.1em;color:#C9C9C9}
.gp-next{font-size:13px;color:#F2F2F2;font-variant-numeric:lining-nums}
.gp-cta{margin-top:4px;font-size:12px;font-weight:600;letter-spacing:.16em;color:#F2F2F2;border-bottom:1px solid currentColor;padding-bottom:2px}
@media (max-width:640px){.card.grande{flex-basis:86vw;aspect-ratio:4/3}.gp-t{font-size:26px}}
.row-cinta .track{overflow:hidden;scroll-snap-type:none;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.row-cinta .arw{display:none}
.cinta{display:flex;gap:12px;width:max-content;animation:cinta var(--dur,30s) linear infinite}
.row-cinta .track:hover .cinta,.row-cinta .track:focus-within .cinta{animation-play-state:paused}
.cinta .card{flex:0 0 clamp(140px,16vw,200px)}
@keyframes cinta{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.rank{flex:0 0 auto;display:flex;align-items:flex-end;scroll-snap-align:start}
.rank-n{font-size:clamp(110px,13vw,190px);line-height:.78;font-weight:800;letter-spacing:-.06em;color:var(--bg);-webkit-text-stroke:3px var(--tx3);paint-order:stroke;margin-right:clamp(-26px,-2vw,-12px);user-select:none;font-variant-numeric:lining-nums}
.rank .card{flex:0 0 clamp(120px,12vw,170px);position:relative;z-index:1}
[data-hover="true"] .rank .card:hover{transform:scale(1.05)}
@media (max-width:640px){.rank-n{font-size:96px;-webkit-text-stroke-width:2px}.rank .card{flex-basis:110px}}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:10px var(--gut2) 20px}
.grid .card{flex:none;width:100%}

/* Cajas */
.box{background:var(--bg2);border-radius:var(--r)}
[data-cajas="borde"] .box{border:1px solid var(--line)}
[data-cajas="sombra"] .box{box-shadow:0 10px 30px rgba(0,0,0,.35)}
[data-cajas="sombra"][data-invertida="true"] .box{box-shadow:0 10px 30px rgba(0,0,0,.12)}

/* Bloque teatro + taquilla en inicio */
.band{margin:clamp(40px,6vw,70px) var(--gut) 0;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(20px,4vw,48px);padding:clamp(24px,4vw,44px);background:var(--bg2);border-top:2px solid var(--acc);border-radius:var(--r)}
[data-intensidad="impactante"] .band{border-top-width:6px}
.band h3{margin:0 0 .4em;font-size:clamp(26px,3.4vw,40px);font-weight:700;line-height:1}
.band p{color:var(--tx2);margin:0 0 1em;max-width:52ch}
@media (max-width:760px){.band{grid-template-columns:1fr}}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:1.2em}
.stats div{font-size:12px;letter-spacing:.14em;color:var(--tx3)}
.stats strong{display:block;font-size:30px;color:var(--tx);letter-spacing:0;font-weight:700;font-variant-numeric:lining-nums}
.taq h4{margin:0 0 10px;font-size:12px;letter-spacing:.2em;color:var(--tx3);font-weight:600}
.taq ul{list-style:none;margin:0 0 14px;padding:0}
.taq li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.taq li span:last-child{color:var(--tx2);text-align:right}
.taq .nota{font-size:13px;color:var(--tx3);margin:10px 0 0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:12px;padding:5px 10px;border:1px solid var(--line);color:var(--tx2);border-radius:min(var(--rb),999px)}
.open{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;color:var(--ok);margin-bottom:10px}
.open::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.open.cerrada{color:var(--warn)}
[data-invertida="true"] .open{color:#2E7D3E}
[data-invertida="true"] .open.cerrada{color:#8A5A00}

/* Pie */
footer.pie{margin-top:70px;padding:34px var(--gut) calc(34px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);font-size:13px;color:var(--tx3);letter-spacing:.04em}
.pie-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px}
.pie h4{margin:0 0 10px;font-size:12px;letter-spacing:.2em;color:var(--tx2);font-weight:600}
.pie a{text-decoration:none}.pie a:hover{color:var(--tx)}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pie .logo{margin-bottom:12px;font-size:18px;color:var(--tx)}
.sponsors-w{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.sponsors{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 26px}
.spon{display:grid;justify-items:center;gap:8px;text-decoration:none;color:var(--tx3);font-size:12px;letter-spacing:.06em;text-align:center;max-width:140px}
.spon img{height:44px;width:auto;max-width:140px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:.2s}
.spon:hover img{filter:none;opacity:1}
.spon:hover{color:var(--tx)}
.spon .sin{display:grid;place-items:center;height:44px;padding:0 12px;border:1px solid var(--line);color:var(--tx2);font-weight:600;border-radius:var(--r)}
.f-body .sponsors .spon img{height:56px}
.pie-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.pie-bottom .acc{display:flex;gap:16px;flex-wrap:wrap}
.pie-bottom .acc a{font-size:12px;letter-spacing:.14em;text-decoration:underline;text-underline-offset:4px}
@media (max-width:760px){.pie-grid{grid-template-columns:1fr}}

/* Burbujas (avisos) y WhatsApp flotante */
.bubbles{position:fixed;right:clamp(12px,3vw,28px);bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:45;display:grid;gap:10px;max-width:310px}
[data-burbuja-pos="izq"] .bubbles{right:auto;left:clamp(12px,3vw,28px)}
.bubble{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg3);border:1px solid var(--line);border-left:3px solid var(--acc);font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
[data-burbuja-forma="redondeada"] .bubble{border-radius:12px}
[data-burbuja-forma="pildora"] .bubble{border-radius:999px;border-left-width:1px;padding-left:18px}
.bubble .live{width:9px;height:9px;border-radius:50%;background:var(--acc);flex:none;box-shadow:0 0 0 0 rgba(192,57,43,.7);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(192,57,43,0)}100%{box-shadow:0 0 0 0 rgba(192,57,43,0)}}
.bubble a,.bubble .go{text-decoration:none;flex:1;background:none;border:0;padding:0;text-align:left;font-size:13px}
.bubble small{display:block;color:var(--tx3);letter-spacing:.06em;font-variant-numeric:lining-nums tabular-nums}
.bubble .x{background:none;border:0;font-size:18px;color:var(--tx3);padding:2px 4px;line-height:1}
.wa-float{position:fixed;left:clamp(12px,3vw,28px);bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:44;width:52px;height:52px;border-radius:50%;background:#17753F;color:#fff;display:grid;place-items:center;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.35)}
[data-burbuja-pos="izq"] .wa-float{left:auto;right:clamp(12px,3vw,28px)}
.wa-float svg{width:26px;height:26px}
/* Que los flotantes no tapen contenido */
footer.pie{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.bubbles.min .bubble{padding:8px 12px}
.bubbles.min .bubble small{display:none}
.bubbles.min .bubble a,.bubbles.min .bubble .go{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
body.menu-open .bubbles,body.menu-open .wa-float,body.ficha-open .bubbles,body.ficha-open .wa-float{display:none}
@media (max-width:760px){
  .bubbles{right:12px;left:auto;max-width:calc(100vw - 88px)}
  [data-burbuja-pos="izq"] .bubbles{left:12px;right:auto}
  .bubble{font-size:12px;padding:8px 10px}
  .bubble small{font-size:11px}
  .wa-float{left:12px;right:auto;width:48px;height:48px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  [data-burbuja-pos="izq"] .wa-float{right:12px;left:auto}
  .bubbles{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}

/* Ficha (ventana centrada) */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.78);opacity:0;visibility:hidden;transition:.3s}
.scrim.on{opacity:1;visibility:visible}
.ficha{position:fixed;top:4vh;bottom:4vh;left:50%;width:min(920px,94vw);z-index:70;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translate(-50%,30px);transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s,visibility .4s}
.ficha.on{visibility:visible;opacity:1;transform:translate(-50%,0)}
.ficha.page{position:static;transform:none;opacity:1;visibility:visible;width:auto;max-width:1000px;margin:0 auto;border:0;overflow:visible;background:transparent}
@media (max-width:640px){.ficha:not(.page){top:0;bottom:0;width:100vw;border:0;border-radius:0}}
.f-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(180deg,rgba(var(--shade),.92),rgba(var(--shade),0))}
.f-bar .btn{padding:9px 14px;font-size:12px}
.f-hero{position:relative;margin-top:-62px}
.ficha.page .f-hero{margin-top:0}
.f-hero .art{aspect-ratio:16/9;max-height:62vh;width:100%;border-radius:0}
.f-hero .art .ttl{display:none}
.f-hero .shade{position:absolute;inset:0;background:linear-gradient(0deg,var(--bg) 2%,rgba(var(--shade),.15) 55%,rgba(var(--shade),.45))}
.f-head{position:relative;z-index:2;margin-top:clamp(-120px,-12vw,-60px);padding:0 clamp(16px,4vw,44px)}
.f-head h1,.f-head h2{margin:.25em 0 .3em;font-size:clamp(34px,5.5vw,64px);line-height:.95;font-weight:700;letter-spacing:-.02em}
.f-body{padding:14px clamp(16px,4vw,44px) 40px;display:grid;gap:34px}
.f-body h3{margin:0 0 12px;font-size:12px;letter-spacing:.22em;color:var(--tx3);font-weight:600;text-transform:uppercase}
.sinop{font-size:17px;color:var(--tx2);max-width:62ch;margin:0;white-space:pre-line}
.fun{display:grid;gap:8px}
.fun-i{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 14px}
.fun-d{text-align:center;min-width:52px}
.fun-d b{display:block;font-size:24px;line-height:1;font-weight:700;font-variant-numeric:lining-nums}
.fun-d small{font-size:11px;letter-spacing:.16em;color:var(--tx3)}
.fun-x{font-size:14px;color:var(--tx2)}
/* funciones semanales: "todos los sábados" */
.fun-sem{border-left:3px solid var(--acc)}
.fun-sem .fun-d{min-width:96px}
.fun-sem .fun-d b{font-size:19px;text-transform:lowercase;color:var(--acc-tx)}
[data-invertida="true"] .fun-sem .fun-d b{color:var(--acc)}
.fun-sub{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:14px 0 6px}
.fun-x strong{color:var(--tx);font-size:15px}
.fun-x em{font-style:normal;display:block;font-size:12px;letter-spacing:.06em;color:var(--tx3);margin-top:2px}
.st{font-size:11px;font-weight:700;letter-spacing:.14em;margin-left:8px}
.st.pocas{color:var(--warn)}.st.agot{color:var(--tx3)}
[data-invertida="true"] .st.pocas{color:#8A5A00}
@media (max-width:560px){.fun-i{grid-template-columns:auto 1fr}.fun-i .btn{grid-column:1/-1}}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.list li span:last-child{color:var(--tx2);text-align:right}
.cast{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.person{flex:0 0 128px;scroll-snap-align:start;border:0;background:none;padding:0;text-align:left}
.person .ph{aspect-ratio:1;background:var(--bg3);position:relative;overflow:hidden;display:grid;place-items:center;font-size:34px;font-weight:700;color:var(--tx3);border-radius:var(--r)}
.person .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* borde rojo al pasar el mouse: se dibuja por dentro de la foto, así la fila deslizable no lo corta en ningún lado */
.person .ph::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;box-shadow:inset 0 0 0 2px transparent;transition:box-shadow .15s;pointer-events:none}
.person:hover .ph::after,.person:focus-visible .ph::after,.person[aria-expanded="true"] .ph::after{box-shadow:inset 0 0 0 2px var(--acc)}
.person:focus-visible{outline:none}
.person b{display:block;margin-top:8px;font-size:14px;font-weight:600}
.person small{font-size:12px;color:var(--tx3);letter-spacing:.04em}
.pdet{display:grid;grid-template-columns:160px 1fr;gap:22px;padding:20px;margin-top:14px;position:relative}
/* X para cerrar la ficha de persona (esquina superior derecha) */
.pdet-x{position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;display:grid;place-items:center;font-size:24px;line-height:1;color:var(--tx);background:var(--bg3);border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:border-color .2s,background .2s}
.pdet-x:hover,.pdet-x:focus-visible{border-color:var(--acc);background:var(--bg2)}
.pdet h4{padding-right:44px}
.pdet .ph{aspect-ratio:1;background:var(--bg3);display:grid;place-items:center;font-size:48px;font-weight:700;color:var(--tx3);position:relative;overflow:hidden;border-radius:var(--r)}
.pdet .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdet h4{margin:0;font-size:24px;font-weight:700}
.pdet .rol{font-size:13px;letter-spacing:.1em;color:var(--acc-tx);margin-bottom:10px;text-transform:uppercase}
[data-invertida="true"] .pdet .rol{color:var(--acc)}
.pdet p{color:var(--tx2);margin:0 0 14px;font-size:15px;white-space:pre-line}
@media (max-width:560px){.pdet{grid-template-columns:1fr}.pdet .ph{max-width:140px}}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.gal button{border:0;padding:0;background:none}
.gal .art{aspect-ratio:3/2}
.eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ep{text-decoration:none;overflow:hidden}
.ep .art{aspect-ratio:16/9;border-radius:0}
.ep .play{position:absolute;inset:0;z-index:3;display:grid;place-items:center;font-size:30px;color:#F2F2F2}
.ep .t{padding:10px 12px;font-size:14px}
.ep .t small{display:block;color:var(--tx3);font-size:12px;letter-spacing:.06em}
.countdown{display:flex;gap:10px;margin:6px 0 16px}
.countdown div{padding:10px 12px;text-align:center;min-width:64px}
.countdown b{display:block;font-size:26px;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.countdown small{font-size:10px;letter-spacing:.2em;color:var(--tx3)}
/* tráiler / video: con marco para que se distinga del fondo y botón con forma (sigue el estilo de botones elegido en el admin) */
.trailer{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r);text-decoration:none;border:2px solid color-mix(in srgb,var(--tx) 38%,transparent);outline:1px solid rgba(0,0,0,.5);outline-offset:-3px;box-shadow:0 12px 34px rgba(0,0,0,.5);background:var(--bg2);transition:border-color .2s,transform .2s}
.trailer:hover,.trailer:focus-visible{border-color:var(--acc)}
.trailer .play{position:absolute;inset:0;display:grid;place-items:center;z-index:3;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.5))}
.trailer .play-b{pointer-events:none;box-shadow:0 6px 20px rgba(0,0,0,.5);font-size:14px}
.trailer:hover .play-b{background:var(--acc2)}
[data-boton-estilo="contorno"] .trailer .play-b{background:rgba(0,0,0,.6);color:#F2F2F2;border-color:var(--acc)}
[data-boton-estilo="contorno"] .trailer:hover .play-b{background:var(--acc);color:var(--on-acc)}
.coment{display:grid;gap:10px}
.coment .c{padding:14px 16px}
.coment .c b{display:block;font-size:14px}
.coment .c p{margin:4px 0 0;color:var(--tx2);font-size:15px;white-space:pre-line}

/* Páginas internas */
.pg-head{padding:clamp(50px,8vw,90px) var(--gut2) clamp(20px,3vw,30px)}
.eyebrow{font-size:12px;letter-spacing:.3em;color:var(--tx3);text-transform:uppercase}
.pg-head h1{margin:.2em 0 .25em;font-size:clamp(46px,8vw,110px);line-height:.92;font-weight:700;letter-spacing:-.02em;text-wrap:balance}
.pg-head p{max-width:56ch;color:var(--tx2);font-size:17px;margin:0;white-space:pre-line}
.pg-sec{padding:clamp(24px,4vw,40px) var(--gut2)}
.pg-sec h2{margin:0 0 14px;font-size:clamp(22px,2.6vw,30px);font-weight:700}
.pg-sec p{color:var(--tx2);max-width:64ch;white-space:pre-line}
.pg-sec.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,60px);align-items:start}
@media (max-width:760px){.pg-sec.two{grid-template-columns:1fr}}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:0 var(--gut2) 18px;font-size:12px;letter-spacing:.16em;color:var(--tx3)}
.filters select{width:auto;min-width:150px}
select,input:not([type]),input[type=search],input[type=text],input[type=email],input[type=url],input[type=tel],input[type=date],input[type=datetime-local],input[type=number],input[type=password],textarea{background:var(--bg2);border:1px solid var(--line);color:var(--tx);padding:10px 12px;font-size:15px;width:100%;border-radius:min(var(--r),8px)}
textarea{resize:vertical}
.timeline{list-style:none;margin:18px 0 0;padding:0;border-left:2px solid var(--acc)}
.timeline li{padding:6px 0 12px 16px}
.timeline b{display:block;font-size:18px;font-variant-numeric:lining-nums}.timeline span{color:var(--tx3);font-size:14px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px}
.form .full{grid-column:1/-1}
.form label{display:block;font-size:12px;letter-spacing:.16em;color:var(--tx3);margin-bottom:6px;text-transform:uppercase}
.form .ok{color:var(--ok)}
@media (max-width:560px){.form{grid-template-columns:1fr}}
.channels{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ch{display:block;text-decoration:none;padding:18px}
a.ch{border:1px solid transparent;transition:border-color .2s,background .2s}
a.ch:hover,a.ch:focus-visible{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 8%,var(--bg2))}
a.ch:hover small{color:var(--acc-tx)}
.ch small{display:block;font-size:11px;letter-spacing:.2em;color:var(--tx3);margin-bottom:6px;text-transform:uppercase}
.ch b{display:block;font-size:16px;word-break:break-word;user-select:all}
details{border-bottom:1px solid var(--line);padding:14px 0;max-width:780px}
summary{cursor:pointer;font-size:16px;font-weight:600}
details p{margin:10px 0 0}
.news{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:20px var(--gut2);border-top:2px solid var(--acc)}
.news form{display:flex;gap:8px;flex:1;max-width:440px}
.empty{padding:30px var(--gut2);color:var(--tx3)}
.loading{padding:60px var(--gut2);color:var(--tx3);letter-spacing:.14em;font-size:13px}

/* Mensajes cortos */
.toast{position:fixed;left:50%;top:20px;transform:translate(-50%,-90px);z-index:100;background:var(--tx);color:var(--bg);padding:10px 18px;font-size:14px;font-weight:600;transition:.3s;border-radius:var(--rb);max-width:90vw}
.toast.on{transform:translate(-50%,0)}
.share-pop{position:absolute;right:16px;top:54px;z-index:8;display:grid;min-width:210px;background:var(--bg3);border:1px solid var(--line);border-radius:var(--r)}
.share-pop a,.share-pop button{display:block;text-align:left;padding:11px 14px;font-size:14px;text-decoration:none;background:none;border:0;border-bottom:1px solid var(--line)}
.share-pop a:hover,.share-pop button:hover{background:var(--bg2)}
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:20px}
.lightbox img{max-height:84vh;max-width:min(100%,1400px);width:auto;display:block;margin:0 auto}
.lb-fig{margin:0;display:grid;gap:10px;justify-items:center;max-width:100%}
.lb-fig figcaption{color:#D8D8D8;font-size:14px;text-align:center;max-width:70ch}
.lightbox .lb-x{position:absolute;top:16px;right:16px;background:rgba(0,0,0,.4);border:1px solid #555;color:#fff;padding:8px 12px;cursor:pointer}
.lightbox .lb-x:hover,.lightbox .lb-x:focus-visible{border-color:#C0392B}
.lb-ant,.lb-sig{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(20,20,20,.72);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:34px;line-height:1;padding:0 0 4px;cursor:pointer;transition:background .2s,border-color .2s}
.lb-ant{left:clamp(8px,2vw,28px)}.lb-sig{right:clamp(8px,2vw,28px)}
.lb-ant:hover,.lb-sig:hover,.lb-ant:focus-visible,.lb-sig:focus-visible{background:#C0392B;border-color:#C0392B;outline:none}
.lb-n{position:absolute;top:22px;left:50%;transform:translateX(-50%);color:#D8D8D8;font-size:13px;letter-spacing:.12em;font-variant-numeric:tabular-nums}
@media (max-width:700px){.lb-ant,.lb-sig{width:44px;height:44px;font-size:28px;top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:none}.lb-ant{left:18px}.lb-sig{right:18px}.lightbox img{max-height:74vh}}

/* 404 */
.e404{min-height:70vh;display:flex;flex-direction:column;justify-content:center;padding:0 var(--gut2)}
.e404 h1{font-size:clamp(90px,18vw,220px);margin:0;line-height:.9}

[data-animaciones="false"] *,[data-animaciones="false"] *::before,[data-animaciones="false"] *::after{transition:none!important;animation:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* aviso por WhatsApp después de enviar un formulario */
.wa-aviso{grid-column:1/-1;margin-top:10px;padding:14px 16px;border:1px solid #17753F;border-left-width:4px;border-radius:var(--r);background:color-mix(in srgb,#17753F 12%,var(--bg2))}
.wa-aviso p{margin:0 0 10px;color:var(--tx2);font-size:14px}
.btn-wa{background:#17753F;color:#fff;gap:8px}
.btn-wa:hover{background:#1E8C4D}
.btn-wa svg{width:18px;height:18px;flex:none}
/* canal de contacto con dos acciones (whatsapp y llamar) */
.ch-2{border:1px solid transparent;transition:border-color .2s}
.ch-2:hover,.ch-2:focus-within{border-color:var(--acc)}
.ch-acc{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ch-acc .btn{padding:9px 14px}
/* patrocinador con enlace: el logo es un botón a su web */
.spon-link{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);transition:border-color .2s,background .2s}
.spon-link:hover,.spon-link:focus-visible{border-color:var(--acc);background:var(--bg3)}
.spon-link::after{content:"visitar web ↗";font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3)}
.spon-link:hover::after{color:var(--acc-tx)}
/* patrocinador con web e Instagram: dos botoncitos debajo del logo */
.spon-2{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2);transition:border-color .2s}
.spon-2:hover,.spon-2:focus-within{border-color:var(--acc)}
.spon-2:hover img{filter:none;opacity:1}
.spon-acc{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.spon-acc a{display:inline-flex;align-items:center;gap:4px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx2);text-decoration:none;padding:4px 8px;border:1px solid var(--line);border-radius:999px}
.spon-acc a:hover,.spon-acc a:focus-visible{border-color:var(--acc);color:var(--acc-tx)}
.spon-acc svg{width:12px;height:12px}
.spon-link.es-ig::after{content:"instagram ↗"}

/* cupos limitados (talleres y eventos) */
.cupo-dest{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--acc);border-left-width:4px;border-radius:var(--r,8px);background:color-mix(in srgb,var(--acc) 12%,transparent);max-width:560px}
.cupo-n{flex:none;min-width:52px;height:52px;padding:0 10px;display:grid;place-items:center;border-radius:999px;background:var(--acc);color:var(--on-acc,#fff);font-size:24px;font-weight:800;line-height:1}
.cupo-tx{display:grid;gap:2px}
.cupo-tx b{font-size:18px;color:var(--tx);letter-spacing:.01em}
.cupo-tx small{font-size:13px;color:var(--tx2)}
.cupo-dest.lleno{border-color:var(--tx3);background:transparent}
.cupo-dest:not(.lleno) .cupo-n{animation:cupo-late 2.2s ease-in-out infinite}
@keyframes cupo-late{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 55%,transparent)}50%{box-shadow:0 0 0 8px transparent}}
.card .cupo-tag{display:inline-block;margin:6px 0 0 6px;padding:3px 8px;border-radius:4px;background:var(--acc);color:var(--on-acc,#fff);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
.card .cupo-tag.lleno{background:var(--bg3);color:var(--tx2)}
@media (prefers-reduced-motion:reduce){.cupo-dest .cupo-n{animation:none}}

/* bajada corta como frase de entrada en fichas de talleres y eventos */
.f-lead{margin:0;max-width:62ch;font-size:clamp(18px,2.2vw,22px);line-height:1.45;color:var(--tx);font-weight:500;border-left:3px solid var(--acc);padding-left:14px}

/* botones de consulta de talleres y eventos (whatsapp y web): borde rojo siempre, se rellenan al pasar el mouse */
.btn-g.btn-con{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.btn-g.btn-con:hover,.btn-g.btn-con:focus-visible{background:var(--acc);color:var(--on-acc);border-color:var(--acc);box-shadow:none}

/* ================= AVISOS: ubicaciones ================= */
.avz{position:fixed;z-index:45;display:grid;gap:10px;max-width:min(360px,calc(100vw - 24px))}
.avz-abajo-der{right:clamp(12px,3vw,28px);bottom:calc(20px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.avz-abajo-izq{left:clamp(12px,3vw,28px);bottom:calc(20px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.avz-arriba-der{right:clamp(12px,3vw,28px);top:calc(var(--hdr,68px) + var(--fr-ar,0px) + 12px)}
.avz-arriba-izq{left:clamp(12px,3vw,28px);top:calc(var(--hdr,68px) + var(--fr-ar,0px) + 12px)}
/* el botón de WhatsApp está abajo a la izquierda (o a la derecha si las burbujas van a la izquierda): el aviso se sube */
.con-wa .avz-abajo-izq{bottom:calc(86px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.con-wa [data-burbuja-pos="izq"] .avz-abajo-der,[data-burbuja-pos="izq"].con-wa .avz-abajo-der{bottom:calc(86px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.con-franja-abajo .bubbles{bottom:calc(20px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.con-franja-abajo .wa-float{bottom:calc(20px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
.avz-franja-arriba,.avz-franja-abajo{left:0;right:0;max-width:none;gap:0}
.avz-franja-arriba{position:sticky;top:var(--hdr,68px);z-index:39}
.avz-franja-abajo{bottom:0;padding-bottom:env(safe-area-inset-bottom,0px)}
.avz-franja-arriba .av,.avz-franja-abajo .av{border-radius:0;max-width:none;width:100%}
.avz-pagina{position:static;max-width:var(--max,1240px);margin:16px auto 0;padding:0 var(--gut);display:grid;gap:10px}
.avz-pagina .av{max-width:none}
.avz-centro{inset:0;max-width:none;place-items:center;padding:16px;background:rgba(0,0,0,.6);z-index:80;opacity:0;transition:opacity .3s}
.avz-centro.on{opacity:1}
.avz-centro[hidden]{display:none}
.avz-centro .av{width:min(460px,100%);max-width:none;transform:translateY(12px) scale(.97);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.avz-centro.on .av{transform:none}
body.menu-open .avz:not(.avz-pagina),body.ficha-open .avz:not(.avz-pagina){display:none}

/* ================= AVISOS: piezas comunes ================= */
.av{position:relative;color:var(--tx);font-size:13px;line-height:1.35}
.av .x{position:absolute;top:6px;right:6px;background:none;border:0;font-size:18px;line-height:1;color:inherit;opacity:.75;padding:2px 6px;cursor:pointer}
.av .x:hover{opacity:1}
.av a{color:inherit}
.av-t{display:block;font-size:15px;line-height:1.25}
.av small{display:block;margin-top:2px;font-size:12px;letter-spacing:.04em;opacity:.85;font-variant-numeric:tabular-nums}
.av-eti{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.av-eti .live{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.8s infinite}
.av-btn{display:inline-block;margin-top:8px;padding:6px 12px;border:1px solid currentColor;border-radius:min(var(--rb,0px),999px);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.av-btn:hover{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.av-in{display:flex;align-items:center;gap:14px;padding-right:22px}
.av-cuerpo{flex:1;min-width:0}
.av-in .av-btn{margin-top:0}

/* 1 · clásica: la burbuja de siempre (usa la forma elegida en Estilo) */
.av-clasica{position:relative}
.av-clasica .x{position:static}

/* 2 · cinta: franja roja llamativa */
.av-cinta{background:var(--acc);color:var(--on-acc,#fff);padding:12px 16px;box-shadow:0 10px 30px rgba(0,0,0,.35);border-radius:min(var(--rb,0px),14px)}
.av-cinta .av-eti{background:rgba(0,0,0,.28);padding:4px 8px;border-radius:3px;white-space:nowrap}
.av-cinta .av-btn:hover{background:#fff;color:var(--acc);border-color:#fff}
.avz-franja-arriba .av-cinta,.avz-franja-abajo .av-cinta{padding:10px var(--gut);box-shadow:none}
.avz-franja-arriba .av-in,.avz-franja-abajo .av-in{max-width:var(--max,1240px);margin:0 auto;justify-content:center}
.avz-franja-arriba .av-cuerpo,.avz-franja-abajo .av-cuerpo{flex:0 1 auto;text-align:center}

/* 3 · marquesina: cartel de teatro con lucecitas que se prenden en cadena */
.av-marquesina{padding:7px;border-radius:12px;background:radial-gradient(circle,#F6C35B 0 2.2px,transparent 2.9px) 0 0/13px 13px,#2A1712;box-shadow:0 12px 34px rgba(0,0,0,.5)}
.av-marquesina::before{content:"";position:absolute;inset:0;border-radius:12px;background:radial-gradient(circle,#FFF4D0 0 2.2px,transparent 2.9px) 6.5px 6.5px/13px 13px;animation:av-luces 1.1s steps(2) infinite;pointer-events:none}
.av-marquesina .av-in{position:relative;z-index:1;background:#140C0A;color:#F7E9C8;border-radius:7px;padding:12px 30px 12px 14px;border:1px solid #5A3A22}
.av-marquesina .av-t{font-size:16px;text-transform:uppercase;letter-spacing:.08em;color:#FFF4D6}
.av-marquesina .av-eti{color:#F6C35B}
.av-marquesina .x{z-index:2;color:#F7E9C8;top:10px;right:10px}
.av-marquesina .av-btn{color:#F6C35B}
.av-marquesina .av-btn:hover{background:#F6C35B;color:#140C0A;border-color:#F6C35B}
@keyframes av-luces{0%{opacity:1}100%{opacity:0}}
.avz-franja-arriba .av-marquesina,.avz-franja-abajo .av-marquesina{border-radius:0}
.avz-franja-arriba .av-marquesina::before,.avz-franja-abajo .av-marquesina::before{border-radius:0}

/* 4 · entrada: ticket de teatro con talón troquelado */
.av-entrada{display:flex;align-items:stretch;background:#F3EBDD;color:#1C1512;border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.4);
  -webkit-mask:radial-gradient(circle 9px at calc(100% - 86px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 86px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle 9px at calc(100% - 86px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 86px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.av-entrada .av-cuerpo{padding:12px 14px 12px 16px;border-left:5px solid var(--acc)}
.av-entrada .av-eti{color:#9B2A20}
.av-entrada small{color:#4A3F38;opacity:1}
.av-entrada .av-talon{flex:none;width:86px;display:grid;place-items:center;border-left:2px dashed #BFB2A0;text-align:center;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9B2A20;padding:10px 6px}
.av-entrada .av-talon a{text-decoration:none;display:grid;gap:4px;justify-items:center}
.av-entrada .av-talon a span{font-size:18px}
.av-entrada .av-talon a:hover{color:#1C1512}
.av-entrada .x{color:#1C1512;right:88px}
.avz-franja-arriba .av-entrada,.avz-franja-abajo .av-entrada{border-radius:0}

/* 5 · neón: cartel luminoso rojo */
.av-neon{padding:12px 16px;background:rgba(8,8,8,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid #FF5A48;border-radius:min(var(--rb,0px),16px);color:#FFE9E6;box-shadow:0 0 0 1px rgba(255,90,72,.25),0 0 18px rgba(255,90,72,.45),inset 0 0 14px rgba(255,90,72,.25)}
.av-neon .av-t{color:#FFF;text-shadow:0 0 6px #FF5A48,0 0 16px rgba(255,90,72,.8);letter-spacing:.03em}
.av-neon .av-eti{color:#FF8A7C;text-shadow:0 0 8px rgba(255,90,72,.9)}
.av-neon .av-btn{color:#FF8A7C;box-shadow:0 0 10px rgba(255,90,72,.45)}
.av-neon .av-btn:hover{background:#FF5A48;color:#0A0A0A;border-color:#FF5A48}
.av-neon .av-t{animation:av-parpadeo 6s infinite}
@keyframes av-parpadeo{0%,92%,100%{opacity:1}93%{opacity:.55}95%{opacity:1}96%{opacity:.7}}
.avz-franja-arriba .av-neon,.avz-franja-abajo .av-neon{border-radius:0;border-left:0;border-right:0}

/* 6 · cuenta regresiva grande */
.av-contador{padding:14px 16px;background:var(--bg2);border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:min(var(--rb,0px),14px);box-shadow:0 12px 30px rgba(0,0,0,.4);text-align:center;display:grid;gap:6px;justify-items:center}
.av-contador .av-eti{color:var(--acc-tx)}
.av-reloj{display:flex;gap:6px}
.av-reloj span{display:grid;gap:2px;min-width:48px;padding:6px 4px;background:var(--acc);color:var(--on-acc,#fff);border-radius:min(var(--rb,0px),8px)}
.av-reloj b{font-size:22px;line-height:1;font-variant-numeric:tabular-nums}
.av-reloj i{font-style:normal;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.9}
.avz-franja-arriba .av-contador,.avz-franja-abajo .av-contador{border-radius:0;display:flex;justify-content:center;align-items:center;gap:16px;border-left:0;border-right:0;padding:10px 40px}

/* 7 · tarjeta con imagen */
.av-tarjeta{display:flex;gap:12px;align-items:stretch;padding:10px 30px 10px 10px;background:var(--bg2);border:1px solid var(--line);border-radius:min(var(--rb,0px),14px);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.av-tarjeta .av-img{flex:none;width:76px;border-radius:min(var(--rb,0px),8px);overflow:hidden;background:var(--bg3)}
.av-tarjeta .av-img img{width:100%;height:100%;min-height:76px;object-fit:cover;display:block}
.av-sinimg{display:grid;place-items:center;width:100%;height:100%;min-height:76px;background:var(--acc);color:var(--on-acc,#fff);font-size:30px;font-weight:800;text-transform:uppercase}
.av-tarjeta .av-eti{color:var(--acc-tx)}
.avz-franja-arriba .av-tarjeta,.avz-franja-abajo .av-tarjeta{border-radius:0;justify-content:center}

/* avisos en el centro: más grandes */
.avz-centro .av-t{font-size:20px}
.avz-centro .av-reloj span{min-width:62px}.avz-centro .av-reloj b{font-size:28px}

/* celular */
@media (max-width:700px){
  .avz{max-width:calc(100vw - 24px)}
  .avz-abajo-der,.avz-abajo-izq{left:12px;right:12px;max-width:none}
  .con-wa .avz-abajo-der,.con-wa .avz-abajo-izq{bottom:calc(76px + var(--fr-ab,0px) + env(safe-area-inset-bottom,0px))}
  .avz-arriba-der,.avz-arriba-izq{left:12px;right:12px;max-width:none;top:calc(var(--hdr,60px) + var(--fr-ar,0px) + 8px)}
  .av-t{font-size:14px}
  .av-in{gap:10px;flex-wrap:wrap}
  .av-in .av-btn{order:3}
  .avz-franja-arriba .av-in,.avz-franja-abajo .av-in{flex-wrap:nowrap}
  .avz-franja-arriba .av-btn,.avz-franja-abajo .av-btn{padding:5px 9px;font-size:11px}
  .av-entrada .av-talon{width:70px}
  .av-entrada{-webkit-mask:radial-gradient(circle 8px at calc(100% - 70px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 8px at calc(100% - 70px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;mask:radial-gradient(circle 8px at calc(100% - 70px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 8px at calc(100% - 70px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
  .av-entrada .x{right:72px}
  .av-reloj span{min-width:42px}.av-reloj b{font-size:19px}
  .avz-franja-arriba .av-contador,.avz-franja-abajo .av-contador{flex-direction:column;gap:6px;padding:10px 36px}
  .avz-centro{place-items:end center;padding:0}
  .avz-centro .av{width:100%;border-radius:18px 18px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .avz-centro .av-marquesina .av-in{border-radius:12px 12px 0 0}
  .avz-centro .av-entrada{border-radius:0}
}
@media (prefers-reduced-motion:reduce){.av-marquesina::before,.av-neon .av-t,.av-eti .live{animation:none}}
/* ajustes: la etiqueta va arriba del título, y el talón de la entrada entra en celular */
.av-cuerpo .av-eti{margin-bottom:4px}
.av-entrada .av-talon{font-size:10px;letter-spacing:.05em;padding:8px 4px}
@media (max-width:700px){.av-entrada .av-talon{letter-spacing:.02em}}

.con-franja-abajo body{padding-bottom:var(--fr-ab,0px)}

/* botones de redes en la ficha de cada persona */
.pdet-redes{display:flex;flex-wrap:wrap;gap:8px}
.btn-red{display:inline-flex;align-items:center;gap:7px}
.btn-red svg{width:16px;height:16px;flex:none}
@media (max-width:700px){.pdet-redes .btn-red{padding-left:10px;padding-right:12px}}

/* títulos que se ven tal cual se escribieron en el admin (ej: GALERÍA) */
.tt.tt-libre,[data-titulos] .tt.tt-libre{text-transform:none}

/* línea de tiempo (hitos) en El teatro */
.tl-t{margin:22px 0 0;font-size:12px;letter-spacing:.22em;color:var(--tx3);font-weight:600;text-transform:uppercase}
.timeline span{white-space:pre-line}
.tl-ver{margin-top:16px}
.tl-caja{animation:tl-abre .35s ease}
@keyframes tl-abre{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tl-caja{animation:none}}

/* galería en carrusel (El teatro) */
.gal-carr{position:relative}
.gal.gal-fila{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px 0;overscroll-behavior-x:contain}
.gal.gal-fila::-webkit-scrollbar{display:none}
.gal.gal-fila > button{flex:0 0 clamp(240px,31%,420px);scroll-snap-align:start}
.gal-fila:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
.gc-ant,.gc-sig{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(12,12,12,.78);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:30px;line-height:1;padding:0 0 4px;cursor:pointer;transition:opacity .2s,background .2s,border-color .2s}
.gc-ant{left:-14px}.gc-sig{right:-14px}
.gc-ant:hover,.gc-sig:hover,.gc-ant:focus-visible,.gc-sig:focus-visible{background:var(--acc);border-color:var(--acc);outline:none}
.gc-ant:disabled,.gc-sig:disabled{opacity:0;pointer-events:none}
.gal-carr.sin-flechas .gc-ant,.gal-carr.sin-flechas .gc-sig{display:none}
@media (max-width:700px){.gal.gal-fila > button{flex-basis:78%}.gc-ant,.gc-sig{width:38px;height:38px;font-size:24px}.gc-ant{left:4px}.gc-sig{right:4px}}

/* patrocinadores en carrusel (se desliza solo, se frena al pasar el mouse) */
.sponsors.sponsors-carr{display:block;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.spon-pista{display:flex;width:max-content;gap:26px;align-items:flex-start;animation:spon-corre var(--dur,38s) linear infinite}
.spon-copia{display:flex;gap:26px;align-items:flex-start;padding-right:0}
.sponsors-carr:hover .spon-pista,.sponsors-carr:focus-within .spon-pista{animation-play-state:paused}
.sponsors-carr .spon{flex:none}
@keyframes spon-corre{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 13px))}}
.sponsors-carr.quieto{-webkit-mask:none;mask:none}
.sponsors-carr.quieto .spon-pista{animation:none;flex-wrap:wrap;width:auto}
.sponsors-carr.quieto .spon-copia{display:none}
@media (prefers-reduced-motion:reduce){.spon-pista{animation:none;flex-wrap:wrap;width:auto}.spon-copia{display:none}.sponsors.sponsors-carr{-webkit-mask:none;mask:none}}

/* galería de cada persona: carrusel chico dentro de su ficha (cada foto no más ancha que la foto de la persona) */
.pdet-gal:empty{display:none}
.pgal{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:6px;margin-top:6px}
.pg-fila{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px}
.pg-fila::-webkit-scrollbar{display:none}
.pg-it{flex:0 0 128px;aspect-ratio:2/3;scroll-snap-align:start;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--bg3);padding:0;cursor:zoom-in}
.pg-it img,.pg-it video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pg-it:hover,.pg-it:focus-visible{border-color:var(--acc);outline:none}
.pg-play{position:absolute;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:11px;display:grid;place-items:center;padding-left:2px}
.pg-ant,.pg-sig{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg3);border:1px solid var(--line);color:var(--tx);font-size:22px;line-height:1;padding:0 0 3px;cursor:pointer;transition:background .2s,border-color .2s}
.pg-ant:hover,.pg-sig:hover,.pg-ant:focus-visible,.pg-sig:focus-visible{background:var(--acc);border-color:var(--acc);color:var(--on-acc);outline:none}
.pgal.pg-cabe{grid-template-columns:minmax(0,1fr)}
.pgal.pg-cabe .pg-ant,.pgal.pg-cabe .pg-sig{display:none}
@media (max-width:560px){.pg-it{flex-basis:110px}.pgal{grid-template-columns:30px minmax(0,1fr) 30px}.pg-ant,.pg-sig{width:30px;height:30px;font-size:20px}}

/* foto o video ampliado dentro de una burbuja que lo enmarca, con su texto */
.lb-burbuja .vb{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:clamp(14px,1.6vw,24px);box-shadow:0 20px 60px rgba(0,0,0,.55);padding:14px;max-width:min(92vw,640px);display:grid;gap:10px;justify-items:center}
.lb-burbuja .vb-m{display:grid;place-items:center;max-width:100%}
.lb-burbuja .vb-m img,.lb-burbuja .vb-m video{max-height:72vh;max-width:100%;width:auto;display:block;border-radius:clamp(8px,1vw,14px)}
.lb-burbuja .vb-t{margin:0;color:var(--tx);font-size:15px;line-height:1.55;text-align:center;max-width:60ch;white-space:pre-line}
.lb-burbuja .vb-n{color:var(--tx2);font-size:12px;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.lb-burbuja .vb-x{position:absolute;top:-14px;right:-14px;z-index:2;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:26px;line-height:1;padding:0 0 3px;color:var(--tx);background:var(--bg3);border:1px solid var(--line);cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.4);transition:background .2s,border-color .2s}
.lb-burbuja .vb-x:hover,.lb-burbuja .vb-x:focus-visible{background:var(--acc);border-color:var(--acc);color:var(--on-acc);outline:none}
@media (max-width:700px){.lb-burbuja .vb{padding:10px}.lb-burbuja .vb-x{top:-10px;right:-6px}.lb-burbuja .vb-m img,.lb-burbuja .vb-m video{max-height:64vh}}
.pgal.pg-auto .pg-fila{scroll-snap-type:none}
.pgal.pg-auto .pg-it{scroll-snap-align:none}
/* presentá tu obra o evento: género / fechas / horarios en una sola línea */
.form .po-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.form .po-otro{margin-top:8px}
@media (max-width:560px){.form .po-3{grid-template-columns:1fr}}
.pdet-comp{margin:10px 0 4px;position:relative}
.pdet-comp .share-pop{left:0;right:auto;top:calc(100% + 6px)}
/* galería del teatro con el mismo carrusel que la de personas (fotos más grandes, 3:2) */
.pgal-teatro{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}
.pgal-teatro .pg-fila{gap:12px}
.pgal-teatro .pg-it{flex-basis:clamp(240px,31%,420px);aspect-ratio:3/2}
.pgal-teatro .pg-ant,.pgal-teatro .pg-sig{width:44px;height:44px;font-size:28px}
@media (max-width:700px){.pgal-teatro{grid-template-columns:34px minmax(0,1fr) 34px}.pgal-teatro .pg-it{flex-basis:78%}.pgal-teatro .pg-ant,.pgal-teatro .pg-sig{width:34px;height:34px;font-size:22px}}

/* ===== Efectos de los títulos (portada de marca y títulos de las páginas) =====
   .fxt = título con efectos · .fx-go = se dispara (al aparecer la diapositiva o al entrar a la página)
   .bl = cada parte (blanca / roja) · .bl-t = el texto de esa parte · .fx-l = cada letra (efectos letra a letra) */
.fxt{--fxd:1.1s;--fxl:.07s;position:relative}
.fxt[data-vel="lenta"]{--fxd:1.8s;--fxl:.11s}
.fxt[data-vel="rapida"]{--fxd:.6s;--fxl:.04s}
.brand-t .bl{display:block}
.fxt .bl-t{display:inline-block;position:relative;max-width:100%}
.fxt-pg .bl{display:inline}
/* la segunda parte entra un poquito después de la primera */
.fxt .bl2{--fxdl:0s}
.fxt:not([data-e1="ninguno"]) .bl2{--fxdl:calc(var(--fxd) * .55)}
.fxt .fx-w{display:inline;white-space:nowrap}
.fxt .fx-l{display:inline;padding:0;margin:0}
/* telón: se descubre de izquierda a derecha con el borde difuminado (sin corte recto). Tiene lugar de sobra alrededor para el brillo */
@property --fxp{syntax:'<percentage>';inherits:false;initial-value:130%}
.fxe-telon{padding:.3em .45em;margin:-.3em -.45em}
.fx-go .fxe-telon{-webkit-mask-image:linear-gradient(90deg,#000 calc(var(--fxp) - 22%),transparent var(--fxp));mask-image:linear-gradient(90deg,#000 calc(var(--fxp) - 22%),transparent var(--fxp));animation:fx-telon var(--fxd) cubic-bezier(.6,0,.25,1) var(--fxdl,0s) both}
@keyframes fx-telon{from{--fxp:0%}to{--fxp:130%}}
.fx-go .fxe-telon{animation-fill-mode:backwards}
.fx-go .fxe-telon.fx-fin{-webkit-mask-image:none;mask-image:none}
.fx-go .fxe-fundido{animation:fx-fundido var(--fxd) ease var(--fxdl,0s) both}
@keyframes fx-fundido{from{opacity:0}to{opacity:1}}
.fx-go .fxe-subida{animation:fx-subida var(--fxd) cubic-bezier(.2,.7,.2,1) var(--fxdl,0s) both}
@keyframes fx-subida{from{opacity:0;transform:translateY(.4em)}to{opacity:1;transform:none}}
.fx-go .fxe-letras .fx-l{animation:fx-fundido .35s ease both;animation-delay:calc(var(--fxdl,0s) + var(--i) * var(--fxl))}
.fxe-destello::after{content:"";position:absolute;top:-25%;bottom:-25%;left:-35%;width:35%;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at center,rgba(255,244,220,.55),rgba(255,244,220,.18) 45%,transparent 72%);mix-blend-mode:screen}
/* seguidor de luz: dos reflectores que buscan por el título (como una lámpara que mira a su alrededor) y lo van mostrando;
   al final se enciende entero. Las luces son redondas y difuminadas: ningún borde recto */
@property --r1x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --r1y{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --r2x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --r2y{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --fxrb{syntax:'<number>';inherits:true;initial-value:1}
.fxe-seguidor{padding:.45em .7em;margin:-.45em -.7em}
/* el texto se pinta solo donde caen las dos luces (sin máscaras ni recortes: nada queda con bordes rectos) */
.fx-go .fxe-seguidor{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;
  background-image:radial-gradient(circle at var(--r1x) var(--r1y),currentColor 0,currentColor .42em,transparent 1.05em),radial-gradient(circle at var(--r2x) var(--r2y),currentColor 0,currentColor .38em,transparent .98em),linear-gradient(color-mix(in srgb,currentColor calc(var(--fxrb) * 100%),transparent),color-mix(in srgb,currentColor calc(var(--fxrb) * 100%),transparent));
  animation:fx-reflector calc(var(--fxd) * 2.7) cubic-bezier(.45,0,.4,1) var(--fxdl,0s) both}
.fx-go .fxe-seguidor.fx-fin{-webkit-text-fill-color:currentColor;background:none}
@keyframes fx-reflector{
  0%{--r1x:14%;--r1y:34%;--r2x:86%;--r2y:66%;--fxrb:0;text-shadow:0 0 0 transparent}
  22%{--r1x:34%;--r1y:64%;--r2x:62%;--r2y:36%;--fxrb:0}
  46%{--r1x:20%;--r1y:42%;--r2x:80%;--r2y:58%;--fxrb:0}
  70%{--r1x:62%;--r1y:56%;--r2x:38%;--r2y:44%;--fxrb:.12;text-shadow:0 0 0 transparent}
  100%{--r1x:76%;--r1y:50%;--r2x:26%;--r2y:50%;--fxrb:1}}
/* el halo de cada reflector: luz cálida y marcada, redonda y difuminada, que se apaga cuando se enciende todo el título */
.fxe-seguidor::before,.fxe-seguidor::after{content:"";position:absolute;width:2.2em;height:2.2em;margin:-1.1em 0 0 -1.1em;border-radius:50%;pointer-events:none;opacity:0;mix-blend-mode:screen;-webkit-text-fill-color:initial;
  background:radial-gradient(circle,rgba(255,250,236,.62) 0,rgba(255,238,205,.34) 22%,rgba(255,224,180,.12) 45%,rgba(255,215,165,.04) 60%,transparent 71%)}
.fxe-seguidor::before{left:var(--r1x);top:var(--r1y)}
.fxe-seguidor::after{left:var(--r2x);top:var(--r2y)}
.fx-go .fxe-seguidor::before,.fx-go .fxe-seguidor::after{animation:fx-halo calc(var(--fxd) * 2.7) ease var(--fxdl,0s) both}
@keyframes fx-halo{0%{opacity:0}8%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes fx-haz{0%{left:-35%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}
/* destello de sol: un reflejo dorado, rápido y en diagonal, como el sol en el agua (luz redondeada, sin bordes rectos) */
.fxe-destello::after{width:38%;left:-40%;background:radial-gradient(ellipse at center,rgba(255,246,220,.75),rgba(255,216,140,.38) 26%,rgba(255,196,100,.12) 48%,transparent 70%);transform:skewX(-14deg);filter:blur(2px)}
.fx-go .fxe-destello{animation:fx-dorado calc(var(--fxd) * 1.6) ease var(--fxdl,0s) both}
.fx-go .fxe-destello::after{animation:fx-reflejo calc(var(--fxd) * .9) cubic-bezier(.5,0,.3,1) calc(var(--fxdl,0s) + var(--fxd) * .25) both}
/* el reflejo termina dentro del título (no se sale de la pantalla) */
@keyframes fx-reflejo{0%{left:-40%;opacity:0}15%{opacity:1}80%{opacity:1}100%{left:62%;opacity:0}}
@keyframes fx-dorado{0%{opacity:0}25%{opacity:1;text-shadow:0 0 .25em rgba(255,200,110,.55)}100%{opacity:1;text-shadow:0 0 0 transparent}}
/* vaho en el vidrio: aparece desde un empañado blanco, como si se pasara la mano por el vidrio */
.fx-go .fxe-vaho{animation:fx-vaho calc(var(--fxd) * 2) cubic-bezier(.3,.6,.3,1) var(--fxdl,0s) both}
@keyframes fx-vaho{0%{opacity:.2;filter:blur(14px) brightness(1.8) saturate(.2)}40%{opacity:.75;filter:blur(6px) brightness(1.4) saturate(.5)}100%{opacity:1;filter:none}}
/* ola: las letras entran de a una con un vaivén, como una ola que llega a la orilla */
.fx-go .fxe-ola .fx-l{display:inline-block;animation:fx-ola calc(var(--fxd) * .9) cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--fxdl,0s) + var(--i) * var(--fxl))}
@keyframes fx-ola{0%{opacity:0;transform:translateY(.55em) rotate(-10deg)}60%{opacity:1;transform:translateY(-.08em) rotate(3deg)}100%{opacity:1;transform:none}}
/* bolitas de navidad: el texto aparece suave mientras aparecen y se apagan bolitas de árbol alrededor */
.fx-go .fxe-navidad{animation:fx-fundido calc(var(--fxd) * 1.6) ease calc(var(--fxdl,0s) + var(--fxd) * .15) both}
/* nevada: el texto aparece suave mientras caen copos (los copos los dibuja el script) */
.fx-go .fxe-nevada{animation:fx-fundido calc(var(--fxd) * 1.8) ease calc(var(--fxdl,0s) + var(--fxd) * .2) both}
/* polvo de hadas, ventisca, ráfaga de máscaras y murciélagos: cada letra aparece cuando le toca (el script pone --dl y dibuja las partículas) */
.fx-go .fxe-hadas .fx-l,.fx-go .fxe-ventisca .fx-l,.fx-go .fxe-mascaras .fx-l,.fx-go .fxe-murcielagos .fx-l{display:inline-block;opacity:0}
.fx-go.fx-js .fxe-hadas .fx-l{animation:fx-hadas .9s cubic-bezier(.2,.7,.2,1) var(--dl,0s) both}
@keyframes fx-hadas{0%{opacity:0;filter:blur(6px);transform:translateY(.05em)}40%{opacity:1;filter:none;text-shadow:0 0 6px rgba(255,240,200,.75),0 0 16px rgba(240,200,120,.35)}100%{opacity:1;transform:none;text-shadow:0 0 0 transparent}}
.fx-go.fx-js .fxe-ventisca .fx-l{animation:fx-ventisca 2.4s cubic-bezier(.25,.7,.3,1) var(--dl,0s) both}
@keyframes fx-ventisca{0%{opacity:0;filter:blur(8px);transform:translateX(-.25em) skewX(-8deg);color:#eaf6ff}
  18%{opacity:1;filter:blur(1.5px);transform:translateX(.03em) skewX(2deg);color:#eaf6ff;text-shadow:0 0 8px rgba(200,230,255,.6)}
  45%{filter:none;transform:none;color:#eaf6ff;text-shadow:0 0 5px rgba(200,230,255,.4)}100%{opacity:1;filter:none;transform:none}}
.fx-go.fx-js .fxe-mascaras .fx-l{animation:fx-mascaras 2.2s cubic-bezier(.25,.7,.3,1) var(--dl,0s) both}
@keyframes fx-mascaras{0%{opacity:0;filter:blur(8px);transform:translateX(-.2em) rotate(-6deg)}20%{opacity:1;filter:blur(1px);transform:translateX(.02em) rotate(1deg);text-shadow:0 0 10px rgba(255,220,160,.6)}
  50%{filter:none;transform:none;text-shadow:0 0 6px rgba(255,220,160,.35)}100%{opacity:1;filter:none;transform:none}}
.fx-go.fx-js .fxe-murcielagos .fx-l{animation:fx-fundido .7s ease var(--dl,0s) both}
/* calor que ondula: el script mueve las ondas; detrás pasa un pequeño sol */
.fx-sol{position:absolute;z-index:-1;top:36%;left:0;width:1em;height:1em;margin:-.5em 0 0 -.5em;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#fff6d8 0 6%,#ffd27a 16%,rgba(255,150,60,.55) 34%,rgba(255,120,40,0) 68%);filter:blur(2px)}
.fx-con-sol{isolation:isolate;width:fit-content;max-width:100%}
.fx-go .fxe-calor{animation:fx-calor-luz calc(var(--fxd) * 1.3) ease-out var(--fxdl,0s) both}
@keyframes fx-calor-luz{0%{opacity:0;text-shadow:0 0 30px rgba(255,170,60,.9)}50%{opacity:1;text-shadow:0 0 22px rgba(255,170,60,.55)}100%{opacity:1;text-shadow:0 0 0 transparent}}
.fx-go .fx-sol{animation:fx-sol calc(var(--fxd) * 2.7) cubic-bezier(.45,0,.35,1) var(--fxdl,0s) both}
@keyframes fx-sol{0%{left:-6%;opacity:0;transform:scale(.7)}12%{opacity:1}50%{transform:scale(1)}80%{opacity:.9}100%{left:calc(100% - .55em);opacity:0;transform:scale(.8)}}
/* pulso de luz (debajo): una línea fina corre arrastrada por un punto de luz y al final desaparece */
.fx-pulso{position:absolute;left:0;right:0;bottom:-.06em;height:6px;pointer-events:none}
.fx-pulso i,.fx-pulso b{position:absolute;left:0;bottom:2px;opacity:0}
.fx-pulso i{right:0;height:2px;border-radius:2px;background:var(--acc);transform-origin:left;transform:scaleX(0);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.fx-pulso b{width:18%;height:6px;bottom:0;border-radius:6px;background:radial-gradient(ellipse at center,#fff 0%,var(--acc-tx,#E86A5C) 35%,transparent 75%);filter:blur(1px);box-shadow:0 0 18px 4px color-mix(in srgb,var(--acc-tx,#E86A5C) 55%,transparent)}
.fx-go .fx-pulso i{animation:fx-pl calc(var(--fxd) * 2.4) cubic-bezier(.5,0,.3,1) calc(var(--fxdl,0s) + var(--fxd) * .4) forwards}
.fx-go .fx-pulso b{animation:fx-pb calc(var(--fxd) * 2.4) cubic-bezier(.5,0,.3,1) calc(var(--fxdl,0s) + var(--fxd) * .4) forwards}
@keyframes fx-pl{0%{transform:scaleX(0);opacity:1}60%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes fx-pb{0%{left:-9%;opacity:0}8%{opacity:1}60%{left:91%;opacity:1}78%,100%{left:91%;opacity:0}}
/* lienzo de partículas (copos, máscaras, brillos, murciélagos) */
.fx-cv{position:absolute;pointer-events:none;z-index:3}
/* efectos que quedan (empiezan cuando terminó la entrada) */
.fxt .fxc-marquesina{animation:fx-marquesina 3.4s ease-in-out calc(var(--fxdl,0s) + var(--fxd)) infinite}
@keyframes fx-marquesina{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 .12em color-mix(in srgb,currentColor 55%,transparent),0 0 .35em color-mix(in srgb,currentColor 25%,transparent)}}
.fxt .fxc-neon,.fxt .fxc-parpadeo{text-shadow:0 0 .04em color-mix(in srgb,currentColor 80%,transparent),0 0 .18em color-mix(in srgb,var(--acc) 70%,transparent),0 0 .5em color-mix(in srgb,var(--acc) 40%,transparent)}
.fxt .fxc-neon{animation:fx-neon 4.5s ease-in-out calc(var(--fxdl,0s) + var(--fxd)) infinite}
@keyframes fx-neon{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}
.fxt .fxc-parpadeo{animation:fx-parpadeo 6s linear calc(var(--fxdl,0s) + var(--fxd)) infinite}
@keyframes fx-parpadeo{0%,88%,92%,96%,100%{opacity:1}90%,94%{opacity:.55}}
/* quien pidió "reducir movimiento" ve el texto quieto (el resplandor fijo del neón se mantiene) */
@media (prefers-reduced-motion: reduce){
  .fxt .bl,.fxt .bl-t,.fxt .fx-l{animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important;filter:none!important}
  .fxe-seguidor::before,.fxe-seguidor::after,.fxe-destello::after,.fx-pulso,.fx-sol,.fx-cv{display:none}
  .fxe-seguidor,.fxe-telon{-webkit-mask-image:none!important;mask-image:none!important;background:none!important;-webkit-text-fill-color:currentColor!important}
}
.priv h2.tt{font-size:clamp(18px,2.4vw,24px);margin:26px 0 8px}
.priv p{color:var(--tx2);max-width:75ch;line-height:1.7;white-space:pre-line;margin:0 0 10px}
/* Video del teatro en "la sala": portada con botón rojo ▶ */
.sala-video{position:relative;overflow:hidden;background:#000}
.sv-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
.sv-play img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,filter .3s}
.sv-play::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(0,0,0,.05),rgba(0,0,0,.45))}
.sv-btn{position:absolute;left:50%;top:50%;z-index:1;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:var(--acc,#C0392B);color:var(--on-acc,#fff);display:grid;place-items:center;box-shadow:0 8px 28px rgba(0,0,0,.45);transition:transform .2s}
.sv-btn svg{width:34px;height:34px;margin-left:5px}
.sv-play:hover .sv-btn,.sv-play:focus-visible .sv-btn{transform:scale(1.08)}
.sv-play:hover img{transform:scale(1.03)}
.sv-play:focus-visible{outline:3px solid var(--acc);outline-offset:-3px}
@media (max-width:560px){.sv-btn{width:60px;height:60px;margin:-30px 0 0 -30px}.sv-btn svg{width:26px;height:26px}}
/* Reseñas en Google (El teatro, debajo del video de la sala) */
.resenas{margin-top:18px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg2,transparent)}
.resenas h3.tt{font-size:clamp(18px,2.2vw,22px);margin:0 0 6px}
.resenas p{color:var(--tx2);margin:0 0 14px;line-height:1.6}
.resenas .btn{display:inline-flex;align-items:center;gap:8px}
.resenas .g-ico{font-size:1.1em;line-height:1}
/* Pósters (archivo): mismo tamaño que la galería de las personas */
#posters .pgal{margin-top:12px}
/* Resumen en texto para buscadores (lo agrega el servidor; la página real lo reemplaza) */
.seo-resumen{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip:rect(0 0 0 0)}
