/* =====================================================================
   EL TELÓN — Sistema visual multipágina (versión final premium)
   Paleta: negro escénico · rojo telón · blanco/marfil
   ===================================================================== */
:root{
  --negro:#0b0406; --negro-2:#120609; --negro-3:#1c0a0f; --negro-soft:#241016;
  --rojo:#b01225; --rojo-claro:#d11f33; --rojo-osc:#6f0c18; --rojo-vino:#4a0a13;
  --marfil:#f5efe6; --marfil-2:#efe7da; --marfil-3:#e6dccb; --blanco:#ffffff;
  --gris-calido:#9b9088; --gris-tinta:#54494a; --tinta:#1a1012; --tinta-soft:#5b4f50;
  --line-dark:rgba(245,239,230,.12); --line-light:rgba(26,16,18,.12);
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Sora",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-hero:clamp(2.6rem,7.5vw,6.4rem); --fs-h1:clamp(2.2rem,5.5vw,4.4rem);
  --fs-h2:clamp(1.85rem,4.2vw,3.4rem); --fs-h3:clamp(1.15rem,2vw,1.5rem);
  --fs-lede:clamp(1.05rem,1.5vw,1.28rem); --fs-body:clamp(.98rem,1.05vw,1.05rem); --fs-kicker:.74rem;
  --wrap:1320px; --gut:clamp(1.2rem,4vw,3.2rem); --radius:6px; --radius-lg:14px;
  --ease:cubic-bezier(.22,1,.36,1); --shadow-soft:0 18px 50px -24px rgba(0,0,0,.55); --shadow-card:0 26px 60px -30px rgba(0,0,0,.6);
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:90px; overflow-x:clip; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ font-family:var(--sans); font-weight:400; color:var(--marfil); background:var(--negro); font-size:var(--fs-body); line-height:1.62; overflow-x:clip; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; display:block; }
video,iframe{ max-width:100%; }
svg{ max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.05; letter-spacing:-.01em; }
::selection{ background:var(--rojo); color:var(--marfil); }
body::after{ content:""; position:fixed; inset:0; z-index:9990; pointer-events:none; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.skip-link{ position:fixed; left:1rem; top:-100px; z-index:10000; background:var(--rojo); color:var(--marfil); padding:.7rem 1.1rem; border-radius:var(--radius); font-weight:600; transition:top .25s var(--ease); }
.skip-link:focus{ top:1rem; }
:focus-visible{ outline:2px solid var(--rojo-claro); outline-offset:3px; border-radius:2px; }
.theme-light :focus-visible{ outline-color:var(--rojo); }
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.section{ padding-block:clamp(4rem,8vw,8rem); position:relative; }
.section--tight{ padding-block:clamp(3rem,5vw,5rem); }
.section__head{ max-width:760px; margin-bottom:clamp(2.2rem,4.5vw,3.6rem); }
.section__head--center{ margin-inline:auto; text-align:center; }
.section__title{ font-size:var(--fs-h2); margin-top:.55rem; }
.section__intro{ color:var(--gris-calido); margin-top:1.05rem; font-size:var(--fs-lede); max-width:58ch; }
.theme-light .section__intro{ color:var(--tinta-soft); }
.section__head--center .section__intro{ margin-inline:auto; }
.kicker{ font-family:var(--sans); font-size:var(--fs-kicker); letter-spacing:.26em; text-transform:uppercase; color:var(--rojo-claro); display:inline-flex; align-items:center; gap:.7rem; font-weight:600; }
.theme-light .kicker{ color:var(--rojo); }
.kicker span{ font-family:var(--serif); font-style:italic; color:var(--gris-calido); letter-spacing:0; font-weight:500; }
.theme-light .kicker span{ color:var(--gris-tinta); }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55rem; padding:.9rem 1.7rem; font-size:.92rem; font-weight:600; letter-spacing:.01em; border-radius:var(--radius); transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .3s; border:1px solid transparent; }
.btn--red{ background:var(--rojo); color:var(--blanco); box-shadow:0 12px 30px -14px rgba(176,18,37,.8); }
.btn--red:hover{ background:var(--rojo-claro); transform:translateY(-2px); }
.btn--ghost{ border-color:var(--line-dark); color:var(--marfil); }
.btn--ghost:hover{ border-color:var(--rojo-claro); color:var(--blanco); }
.theme-light .btn--ghost{ border-color:var(--line-light); color:var(--tinta); }
.theme-light .btn--ghost:hover{ border-color:var(--rojo); color:var(--rojo); }
.btn--light{ background:var(--marfil); color:var(--tinta); }
.btn--light:hover{ background:var(--blanco); transform:translateY(-2px); }
.btn--block{ width:100%; }
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }
#preloader{ position:fixed; inset:0; z-index:9999; background:var(--negro); display:grid; place-items:center; transition:opacity .55s var(--ease),visibility .55s; }
#preloader.is-done{ opacity:0; visibility:hidden; }
.preloader__inner{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.preloader__logo{ width:96px; height:auto; animation:floaty 2.4s ease-in-out infinite; }
.preloader__text{ font-family:var(--serif); font-style:italic; color:var(--gris-calido); letter-spacing:.04em; font-size:.95rem; }
.dots::after{ content:""; animation:dots 1.4s steps(4,end) infinite; }
@keyframes dots{ 0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."} }
@keyframes floaty{ 0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)} }
.nav{ position:fixed; inset:0 0 auto 0; z-index:1000; transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s; border-bottom:1px solid transparent; }
.nav__bar{ max-width:var(--wrap); margin-inline:auto; padding:.85rem var(--gut); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.nav__brand{ display:flex; align-items:center; gap:.65rem; flex-shrink:0; }
.nav__logo{ height:50px; width:auto; object-fit:contain; }
.nav__logo--light{ display:block; } .nav__logo--dark{ display:none; }
.nav__links{ display:flex; gap:clamp(.6rem,1.4vw,1.5rem); }
.nav__links a{ position:relative; font-size:.84rem; font-weight:500; color:var(--marfil); opacity:.9; padding:.3rem 0; transition:opacity .25s,color .25s; white-space:nowrap; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:var(--rojo-claro); transition:width .3s var(--ease); }
.nav__links a:hover, .nav__links a[aria-current="page"]{ opacity:1; }
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after{ width:100%; }
.nav__links a[aria-current="page"]{ color:var(--rojo-claro); }
.nav__links a[aria-current="page"]::after{ height:3px; bottom:-4px; }
.nav__cta{ padding:.58rem 1.2rem; font-size:.82rem; }
.nav__burger{ display:none; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; }
.nav__burger span{ width:23px; height:2px; background:var(--marfil); transition:transform .35s var(--ease),opacity .25s; }
.nav[data-state="top"]{ background:transparent; }
.nav[data-state="scrolled"]{ background:rgba(11,4,6,.86); backdrop-filter:blur(14px); border-bottom-color:var(--line-dark); }
.theme-light .nav[data-state="top"]{ background:transparent; }
.theme-light .nav[data-state="top"] .nav__links a{ color:var(--marfil); }
.theme-light .nav[data-state="scrolled"]{ background:rgba(245,239,230,.92); backdrop-filter:blur(14px); border-bottom-color:var(--line-light); }
.theme-light .nav[data-state="scrolled"] .nav__links a{ color:var(--tinta); }
.theme-light .nav[data-state="scrolled"] .nav__links a[aria-current="page"],
.lighthero .nav[data-state="top"] .nav__links a[aria-current="page"]{ color:var(--rojo); }
.theme-light .nav[data-state="scrolled"] .nav__logo--light{ display:none; }
.theme-light .nav[data-state="scrolled"] .nav__logo--dark{ display:block; }
.theme-light .nav[data-state="scrolled"] .nav__burger span{ background:var(--tinta); }
.lighthero .nav[data-state="top"] .nav__logo--light{ display:none; }
.lighthero .nav[data-state="top"] .nav__logo--dark{ display:block; }
.lighthero .nav[data-state="top"] .nav__links a{ color:var(--tinta); }
.lighthero .nav[data-state="top"] .nav__burger span{ background:var(--tinta); }
.nav.is-open .nav__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2){ opacity:0; }
.nav.is-open .nav__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-menu{ position:fixed; inset:0; z-index:1500; background:linear-gradient(165deg,var(--rojo-vino),var(--negro) 60%); display:flex; flex-direction:column; justify-content:center; gap:.2rem; padding:5rem var(--gut) 2rem; transform:translateY(-100%); transition:transform .55s var(--ease); visibility:hidden; overflow-y:auto; }
.mobile-menu.is-open{ transform:translateY(0); visibility:visible; }
.mobile-menu__close{ position:absolute; top:1.1rem; right:var(--gut); width:44px; height:44px; font-size:1.5rem; color:var(--marfil); display:grid; place-items:center; }
.mobile-menu__links{ display:flex; flex-direction:column; }
.mobile-menu__links a{ font-family:var(--serif); font-size:clamp(1.5rem,7vw,2.2rem); color:var(--marfil); padding:.4rem 0; border-bottom:1px solid var(--line-dark); display:flex; align-items:baseline; gap:1rem; }
.mobile-menu__links a span{ font-family:var(--sans); font-size:.78rem; color:var(--rojo-claro); }
.mobile-menu__links a[aria-current="page"]{ color:var(--rojo-claro); }
.mobile-menu__cta{ margin-top:1.6rem; align-self:flex-start; }
.curtain-trans{ position:fixed; inset:0; z-index:9998; pointer-events:none; display:flex; transform:translateY(-100%); }
.curtain-trans.is-active{ pointer-events:all; transform:translateY(0); }
.curtain-trans__panel{ flex:1; background:linear-gradient(180deg,var(--rojo-osc),var(--rojo-vino)); transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease); }
.curtain-trans.is-active .curtain-trans__panel{ transform:scaleY(1); }
.hero{ position:relative; height:100svh; min-height:600px; overflow:hidden; }
.hero__stage{ position:absolute; inset:0; background:radial-gradient(120% 80% at 50% -10%, #2a0d12 0%, #14060a 45%, var(--negro) 100%); }
.hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62; }
.hero__overlay{ position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,rgba(11,4,6,.55) 0%,rgba(11,4,6,.2) 35%,rgba(11,4,6,.85) 100%),radial-gradient(80% 60% at 50% 40%,transparent,rgba(11,4,6,.5)); }
.hero__spotlight{ position:absolute; inset:0; z-index:3; pointer-events:none; background:radial-gradient(620px 620px at var(--mx,50%) var(--my,32%),rgba(255,245,235,.10),rgba(255,245,235,.03) 42%,transparent 66%); transition:background .15s linear; }
.curtain{ position:absolute; top:0; bottom:0; width:53%; z-index:5; pointer-events:none; background:repeating-linear-gradient(90deg,rgba(0,0,0,.40) 0 14px,rgba(120,16,28,0) 14px 42px),linear-gradient(90deg,var(--rojo-vino),var(--rojo-osc) 60%,var(--rojo)); box-shadow:inset 0 0 120px rgba(0,0,0,.6); transition:transform 1.5s var(--ease); }
.curtain--left{ left:0; transform-origin:left center; border-right:2px solid rgba(255,255,255,.08); -webkit-mask-image:linear-gradient(90deg,#000 78%,transparent); mask-image:linear-gradient(90deg,#000 78%,transparent); }
.curtain--right{ right:0; transform-origin:right center; border-left:2px solid rgba(255,255,255,.08); -webkit-mask-image:linear-gradient(270deg,#000 78%,transparent); mask-image:linear-gradient(270deg,#000 78%,transparent); }
.curtains-open .curtain--left{ transform:translateX(-88%) scaleX(.6); }
.curtains-open .curtain--right{ transform:translateX(88%) scaleX(.6); }
.hero__content{ position:relative; z-index:6; height:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); display:flex; flex-direction:column; justify-content:center; }
.hero__eyebrow{ font-size:var(--fs-kicker); letter-spacing:.3em; text-transform:uppercase; color:var(--rojo-claro); margin-bottom:1.3rem; font-weight:600; }
.hero__title{ font-size:var(--fs-hero); max-width:16ch; }
.hero__title .line{ display:block; }
.hero__title .accent{ font-style:italic; color:var(--rojo-claro); font-weight:500; }
.hero__lede{ margin-top:1.5rem; max-width:46ch; color:var(--marfil); opacity:.85; font-size:var(--fs-lede); }
.hero__actions{ margin-top:2.1rem; display:flex; gap:.9rem; flex-wrap:wrap; }
.hero__scroll{ position:absolute; left:50%; bottom:1.8rem; transform:translateX(-50%); z-index:6; display:flex; flex-direction:column; align-items:center; gap:.55rem; font-size:.66rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gris-calido); }
.hero__scroll-line{ width:1px; height:46px; background:linear-gradient(var(--rojo-claro),transparent); animation:scrolldn 2s ease-in-out infinite; }
@keyframes scrolldn{ 0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1} }
.subhero{ position:relative; min-height:62svh; display:flex; align-items:flex-end; overflow:hidden; padding-block:8rem 3rem; }
.subhero__media{ position:absolute; inset:0; z-index:0; }
.subhero__media img, .subhero__media video{ width:100%; height:100%; object-fit:cover; }
.subhero__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(11,4,6,.6),rgba(11,4,6,.4) 40%,rgba(11,4,6,.92)); }
.subhero--dark .subhero__veil{ background:linear-gradient(90deg,rgba(11,4,6,.9) 0%,rgba(11,4,6,.66) 42%,rgba(11,4,6,.25) 72%,rgba(11,4,6,.48) 100%),linear-gradient(180deg,rgba(11,4,6,.35) 0%,rgba(11,4,6,.25) 45%,rgba(11,4,6,.88) 100%); }
.subhero__inner{ position:relative; z-index:2; width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }
.subhero__title{ font-size:var(--fs-h1); max-width:18ch; margin-top:.5rem; }
.subhero__lede{ margin-top:1.1rem; max-width:52ch; color:var(--marfil); opacity:.85; font-size:var(--fs-lede); }
.breadcrumb{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gris-calido); margin-bottom:1rem; }
.breadcrumb a:hover{ color:var(--rojo-claro); }
.breadcrumb span{ color:var(--rojo-claro); }
.subhero--light .subhero__veil{ background:linear-gradient(180deg,rgba(245,239,230,.5),rgba(245,239,230,.72) 45%,rgba(245,239,230,.97)); }
.subhero--light .subhero__title, .subhero--light .breadcrumb{ color:var(--tinta); }
.subhero--light .subhero__lede{ color:var(--tinta-soft); opacity:1; }
.subhero--light .breadcrumb a{ color:var(--gris-tinta); }
.subhero--dark .subhero__title{ color:var(--marfil); text-shadow:0 3px 24px rgba(0,0,0,.55); }
.subhero--dark .subhero__lede{ color:var(--blanco); opacity:.96; font-weight:400; text-shadow:0 2px 16px rgba(0,0,0,.5); }
.subhero--dark .breadcrumb{ color:rgba(245,239,230,.82); }
.subhero--dark .breadcrumb a{ color:var(--marfil); opacity:.85; }
.subhero--dark .breadcrumb a:hover{ color:var(--rojo-claro); opacity:1; }
.subhero--dark .kicker, .subhero--dark .kicker span{ color:var(--rojo-claro); opacity:1; }
/* Refuerzo de contraste cuando el <main> es claro pero el subhero es oscuro (Nosotros, Eventos) */
main.theme-light .subhero.subhero--dark .subhero__title{ color:var(--marfil); opacity:1; text-shadow:0 3px 24px rgba(0,0,0,.55); }
main.theme-light .subhero.subhero--dark .subhero__lede{ color:var(--blanco); opacity:.96; font-weight:400; text-shadow:0 2px 16px rgba(0,0,0,.5); }
main.theme-light .subhero.subhero--dark .breadcrumb{ color:rgba(245,239,230,.82); }
main.theme-light .subhero.subhero--dark .breadcrumb a{ color:var(--marfil); }
main.theme-light .subhero.subhero--dark .kicker,
main.theme-light .subhero.subhero--dark .kicker span{ color:var(--rojo-claro); opacity:1; }
.section--portal{ padding-bottom:clamp(2.5rem,5vw,4rem); }
.portal__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
.portal-card{ position:relative; min-height:clamp(300px,30vw,340px); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; isolation:isolate; box-shadow:var(--shadow-card); }
.portal-card--full{ grid-column:1 / -1; min-height:clamp(270px,24vw,310px); }
.portal-card--full .portal-card__inner{ max-width:680px; }
.portal-card__media{ position:absolute; inset:0; z-index:-2; }
.portal-card__media img, .portal-card__media video{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.portal-card__veil{ position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(11,4,6,.1) 0%,rgba(11,4,6,.45) 55%,rgba(11,4,6,.92) 100%); transition:background .5s; }
.portal-card__red{ position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,transparent 40%,rgba(176,18,37,.85)); opacity:0; transition:opacity .5s var(--ease); }
.portal-card__glow{ position:absolute; inset:-1px; z-index:-1; pointer-events:none; opacity:0; transition:opacity .4s var(--ease); background:radial-gradient(260px 260px at var(--x,50%) var(--y,40%),rgba(209,31,51,.35),transparent 62%); }
.portal-card__inner{ padding:1.7rem; position:relative; z-index:1; }
.portal-card__num{ font-family:var(--serif); font-style:italic; font-size:.9rem; color:var(--rojo-claro); }
.portal-card__icon{ position:absolute; z-index:2; top:1.5rem; right:1.6rem; width:30px; height:30px; color:var(--marfil); opacity:.85; }
.portal-card__icon svg{ width:100%; height:100%; }
.portal-card h3{ font-size:clamp(1.4rem,2.4vw,2rem); margin:.3rem 0 .4rem; }
.portal-card p{ color:var(--marfil); opacity:.92; font-size:.95rem; max-width:38ch; text-shadow:0 1px 10px rgba(0,0,0,.5); }
.portal-card__go{ display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rojo-claro); transform:translateY(8px); opacity:0; transition:transform .45s var(--ease),opacity .45s; }
.portal-card--interactive{ transition:transform .5s var(--ease),box-shadow .5s var(--ease); }
.portal-card:hover .portal-card__media img, .portal-card:hover .portal-card__media video, .portal-card:focus-visible .portal-card__media img{ transform:scale(1.06); }
.portal-card:hover .portal-card__red, .portal-card:focus-visible .portal-card__red{ opacity:.5; }
.portal-card:hover .portal-card__glow, .portal-card:focus-visible .portal-card__glow{ opacity:1; }
.portal-card:hover .portal-card__go, .portal-card:focus-visible .portal-card__go{ transform:translateY(0); opacity:1; }
.portal-card:hover{ box-shadow:0 34px 70px -34px rgba(176,18,37,.55); }
.portal-card:active{ transform:scale(.992); }
.portal-card__go .arr{ transition:transform .4s var(--ease); }
.portal-card:hover .portal-card__go .arr{ transform:translateX(5px); }
.theme-dark{ background:var(--negro); color:var(--marfil); }
.theme-light{ background:var(--marfil); color:var(--tinta); }
.band-red{ background:linear-gradient(140deg,var(--rojo-osc),var(--rojo-vino)); color:var(--marfil); }
.band-black{ background:var(--negro-2); color:var(--marfil); }
.manifesto{ text-align:center; padding-block:clamp(4rem,8vw,7rem); position:relative; overflow:hidden; }
.manifesto__quote{ font-family:var(--serif); font-style:italic; font-size:clamp(1.6rem,3.6vw,2.9rem); max-width:20ch; margin:0 auto; line-height:1.2; }
.manifesto__sign{ margin-top:1.6rem; font-size:.9rem; letter-spacing:.2em; text-transform:uppercase; color:var(--marfil); opacity:.8; }
.manifesto .btn{ margin-top:2rem; }
.manifesto--rich{ background:radial-gradient(70% 120% at 50% 0%,rgba(176,18,37,.45),transparent 60%),linear-gradient(150deg,var(--rojo-osc),var(--rojo-vino)); }
.manifesto__mark{ position:absolute; top:-2.5rem; left:50%; transform:translateX(-50%); font-family:var(--serif); font-size:14rem; line-height:1; color:rgba(245,239,230,.07); pointer-events:none; }
.manifesto--rich .manifesto__quote{ color:var(--blanco); }
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
html:not(.js) .reveal{ opacity:1; transform:none; }
.ambient-light{ position:fixed; z-index:0; pointer-events:none; border-radius:50%; filter:blur(70px); opacity:.16; }
.ambient-light--1{ width:46vw; height:46vw; max-width:640px; max-height:640px; top:-10vh; right:0; background:radial-gradient(circle,var(--rojo-osc),transparent 68%); animation:drift1 20s ease-in-out infinite alternate; }
.ambient-light--2{ width:40vw; height:40vw; max-width:560px; max-height:560px; bottom:-12vh; left:0; background:radial-gradient(circle,rgba(245,239,230,.5),transparent 68%); opacity:.08; animation:drift2 24s ease-in-out infinite alternate; }
.theme-light .ambient-light--1{ opacity:.1; }
@keyframes drift1{ from{transform:translate(0,0) scale(1)} to{transform:translate(-2vw,5vh) scale(1.12)} }
@keyframes drift2{ from{transform:translate(0,0) scale(1)} to{transform:translate(2vw,-4vh) scale(1.1)} }
.kinetic-strip{ overflow:hidden; height:clamp(76px,9vw,96px); display:flex; align-items:center; background:linear-gradient(180deg,var(--negro-3),#160810); border-block:1px solid var(--line-dark); -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.kinetic-strip__track{ display:flex; width:max-content; align-items:center; will-change:transform; animation:kinetic 36s linear infinite; }
.kinetic-strip__group{ display:flex; flex:0 0 auto; align-items:center; gap:1.7rem; padding-right:1.7rem; font-family:var(--serif); font-size:clamp(1.15rem,2.4vw,1.7rem); letter-spacing:.02em; white-space:nowrap; }
.kinetic-strip__group > span{ color:var(--marfil); opacity:.7; }
.kinetic-strip__group .kinetic-strip__dot{ color:var(--rojo-claro); opacity:1; }
@keyframes kinetic{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
.kinetic-strip:hover .kinetic-strip__track{ animation-play-state:paused; }
.js .title-reveal{ clip-path:inset(0 0 110% 0); opacity:0; transition:clip-path .85s var(--ease),opacity .85s var(--ease); }
.js .title-reveal.is-in{ clip-path:inset(0 0 -10% 0); opacity:1; }
html:not(.js) .title-reveal{ clip-path:none; opacity:1; }
.js .media-reveal{ overflow:hidden; }
.js .media-reveal img, .js .media-reveal video{ clip-path:inset(0 0 0 100%); transform:scale(1.04); transition:clip-path .95s var(--ease),transform .95s var(--ease); }
.js .media-reveal.is-in img, .js .media-reveal.is-in video{ clip-path:inset(0 0 0 0); transform:scale(1); }
html:not(.js) .media-reveal img{ clip-path:none; transform:none; }
.about__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.about__big{ font-family:var(--serif); font-size:clamp(1.4rem,2.5vw,2rem); line-height:1.25; color:var(--tinta); }
.about__lead p+p{ margin-top:1.1rem; color:var(--tinta-soft); }
.about__media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); aspect-ratio:4/5; }
.about__media img{ width:100%; height:100%; object-fit:cover; }
.about__note{ font-size:.92rem; color:var(--gris-tinta); border-left:3px solid var(--rojo); padding-left:1rem; margin-top:1.6rem; }
.timeline{ position:relative; margin-top:1rem; padding-left:1.6rem; }
.timeline::before{ content:""; position:absolute; left:5px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--rojo),var(--rojo-osc)); }
.timeline__item{ position:relative; padding:0 0 1.8rem 1.4rem; }
.timeline__item::before{ content:""; position:absolute; left:-1.6rem; top:6px; width:12px; height:12px; border-radius:50%; background:var(--rojo); box-shadow:0 0 0 4px rgba(176,18,37,.15); }
.timeline__year{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rojo); font-weight:600; }
.timeline__item h3{ font-size:1.2rem; margin:.25rem 0 .3rem; color:var(--tinta); }
.timeline__item p{ color:var(--tinta-soft); font-size:.95rem; }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:clamp(2.5rem,5vw,4rem); }
.stat{ padding:1.6rem 1.4rem; border-radius:var(--radius-lg); background:var(--negro-2); color:var(--marfil); }
.stat__num{ display:block; font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.6rem); color:var(--rojo-claro); }
.stat__label{ display:block; margin-top:.4rem; font-size:.84rem; color:var(--gris-calido); }
.clip-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.clip{ padding:1.6rem; border-radius:var(--radius-lg); border:1px solid var(--line-light); background:var(--blanco); }
.theme-dark .clip{ background:var(--negro-2); border-color:var(--line-dark); }
.clip__type{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rojo); font-weight:600; }
.clip h3{ font-size:1.15rem; margin:.5rem 0 .35rem; color:var(--tinta); }
.theme-dark .clip h3{ color:var(--marfil); }
.clip p{ font-size:.92rem; color:var(--tinta-soft); }
.theme-dark .clip p{ color:var(--gris-calido); }
.clip--soon{ background:linear-gradient(150deg,var(--rojo-osc),var(--rojo-vino)); border:none; }
.clip--soon .clip__type, .clip--soon h3{ color:var(--marfil); }
.clip--soon p{ color:rgba(245,239,230,.8); }
.gallery-sheet{ display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.gallery-sheet figure{ overflow:hidden; border-radius:var(--radius); aspect-ratio:3/4; }
.gallery-sheet img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.gallery-sheet figure:hover img{ transform:scale(1.07); }
.gallery-sheet .span2{ grid-column:span 2; aspect-ratio:3/2; }
.school-band{ position:relative; height:46svh; min-height:300px; overflow:hidden; display:flex; align-items:flex-end; }
.school-band video, .school-band img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.school-band__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(11,4,6,.15) 0%,rgba(11,4,6,.45) 55%,rgba(11,4,6,.9) 100%); }
.school-band__cap{ position:relative; z-index:2; padding:var(--gut); max-width:var(--wrap); margin-inline:auto; width:100%; font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem,2.4vw,1.8rem); font-weight:600; color:var(--blanco); text-shadow:0 2px 18px rgba(0,0,0,.75); isolation:isolate; }
.school-band__cap::before{ content:""; position:absolute; inset:-.7rem auto -.7rem calc(var(--gut) * -.35); width:min(620px,92%); z-index:-1; border-left:3px solid var(--rojo-claro); background:linear-gradient(90deg,rgba(11,4,6,.78),rgba(11,4,6,.22),transparent); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.tabs{ margin-top:1rem; }
.tabs__list{ display:flex; flex-wrap:wrap; gap:.5rem; border-bottom:1px solid var(--line-light); padding-bottom:.2rem; }
.theme-dark .tabs__list{ border-color:var(--line-dark); }
.tabs__list--scroll{ flex-wrap:nowrap; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:.6rem; }
.tabs__list--scroll::-webkit-scrollbar{ height:4px; }
.tabs__list--scroll::-webkit-scrollbar-thumb{ background:var(--rojo); border-radius:4px; }
.tab{ flex:0 0 auto; scroll-snap-align:start; padding:.7rem 1.1rem; font-size:.9rem; color:var(--tinta-soft); border-radius:var(--radius) var(--radius) 0 0; position:relative; transition:color .25s,background .25s; font-weight:500; }
.theme-dark .tab{ color:var(--gris-calido); }
.tab::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--rojo); transform:scaleX(0); transition:transform .3s var(--ease); }
.tab[aria-selected="true"]{ color:var(--rojo); }
.theme-dark .tab[aria-selected="true"]{ color:var(--rojo-claro); }
.tab[aria-selected="true"]::after{ transform:scaleX(1); }
.tab:hover{ color:var(--rojo); }
.tabpanel{ padding-top:2rem; animation:panelin .45s var(--ease); }
.tabpanel[hidden]{ display:none; }
@keyframes panelin{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
.tab-layout{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.tab-media{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-card); }
.tab-media img{ width:100%; height:100%; object-fit:cover; }
.cloud{ position:absolute; padding:.85rem 1.15rem; border-radius:12px; font-size:.82rem; box-shadow:var(--shadow-soft); max-width:60%; }
.cloud--black{ background:var(--negro-2); color:var(--marfil); bottom:1rem; left:1rem; }
.cloud--red{ background:var(--rojo); color:var(--blanco); top:1rem; right:1rem; }
.cloud strong{ display:block; font-family:var(--serif); font-size:.95rem; margin-bottom:.1rem; }
.tab-body h3{ font-size:var(--fs-h3); color:var(--tinta); }
.theme-dark .tab-body h3{ color:var(--marfil); }
.tab-kicker{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--rojo); font-weight:600; margin-bottom:.5rem; }
.tab-body p.lead{ margin:.7rem 0 1.2rem; color:var(--tinta-soft); font-size:var(--fs-lede); }
.theme-dark .tab-body p.lead{ color:var(--gris-calido); }
.tab-meta{ display:grid; gap:.9rem; margin-bottom:1.6rem; }
.tab-meta > div{ border-left:3px solid var(--rojo); padding-left:.9rem; }
.tab-meta dt{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rojo); font-weight:600; }
.tab-meta dd{ font-size:.95rem; color:var(--tinta); margin-top:.15rem; }
.theme-dark .tab-meta dd{ color:var(--marfil); }
.works-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.work-card{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4; cursor:pointer; isolation:isolate; box-shadow:var(--shadow-card); transition:transform .5s var(--ease),box-shadow .5s var(--ease); }
.work-card:hover{ transform:translateY(-4px); box-shadow:0 30px 60px -30px rgba(176,18,37,.5); }
.work-card__img{ position:absolute; inset:0; z-index:-2; }
.work-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.work-card__veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(11,4,6,.05) 0%,rgba(11,4,6,.55) 60%,rgba(11,4,6,.95) 100%); }
.work-card:hover .work-card__img img, .work-card:focus-visible .work-card__img img{ transform:scale(1.07); }
.work-card__body{ position:absolute; inset:auto 0 0 0; padding:1.5rem; }
.work-card__tag{ display:inline-block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blanco); background:var(--rojo); padding:.25rem .6rem; border-radius:40px; }
.work-card__body h3{ font-size:1.35rem; margin:.7rem 0 .3rem; }
.work-card__body p{ font-size:.9rem; color:var(--gris-calido); }
.work-card__more{ display:inline-flex; margin-top:.7rem; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--rojo-claro); opacity:0; transform:translateY(6px); transition:.4s var(--ease); }
.work-card:hover .work-card__more, .work-card:focus-visible .work-card__more{ opacity:1; transform:none; }
.work-card--cta{ display:flex; align-items:center; justify-content:center; text-align:center; background:linear-gradient(150deg,var(--rojo-osc),var(--rojo-vino)); }
.theatre-grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:1.2rem; }
.billboard{ position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:440px; display:flex; align-items:flex-end; box-shadow:var(--shadow-card); }
.billboard__img{ position:absolute; inset:0; z-index:0; }
.billboard__img img{ width:100%; height:100%; object-fit:cover; }
.billboard__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(120deg,rgba(11,4,6,.92) 0%,rgba(11,4,6,.5) 60%,rgba(74,10,19,.6) 100%); }
.billboard__inner{ position:relative; z-index:2; padding:clamp(1.6rem,3vw,2.6rem); }
.billboard__pill{ display:inline-block; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; background:var(--rojo); color:var(--blanco); padding:.3rem .7rem; border-radius:40px; }
.billboard__status{ margin-left:.6rem; font-size:.8rem; color:var(--gris-calido); }
.billboard__title{ font-size:clamp(1.6rem,3vw,2.4rem); margin:1rem 0; }
.billboard__meta{ display:grid; grid-template-columns:repeat(2,1fr); gap:.9rem; max-width:480px; margin-bottom:1.6rem; }
.billboard__meta dt{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rojo-claro); }
.billboard__meta dd{ font-size:.95rem; margin-top:.15rem; }
.billboard__actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.theatre-exp{ position:relative; border-radius:var(--radius-lg); overflow:hidden; padding:clamp(1.6rem,3vw,2.4rem); display:flex; flex-direction:column; justify-content:flex-end; min-height:440px; }
.theatre-exp__img{ position:absolute; inset:0; z-index:0; }
.theatre-exp__img img{ width:100%; height:100%; object-fit:cover; }
.theatre-exp__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(11,4,6,.4),rgba(11,4,6,.92)); }
.theatre-exp__c{ position:relative; z-index:2; }
.theatre-exp h3{ font-size:1.4rem; margin-bottom:1rem; }
.ticks li{ position:relative; padding-left:1.5rem; margin-bottom:.7rem; font-size:.94rem; color:var(--marfil); opacity:.9; }
.ticks li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; background:var(--rojo); border-radius:2px; }
.theatre-credit{ margin-top:1.2rem; font-size:.9rem; color:var(--gris-calido); }
.theatre-credit strong{ color:var(--rojo-claro); }
.logo-inline{ height:60px; width:auto; object-fit:contain; margin-bottom:1.2rem; }
.events-list{ display:grid; gap:.9rem; }
.event{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.4rem; padding:1.2rem; border-radius:var(--radius-lg); background:var(--blanco); border:1px solid var(--line-light); transition:transform .4s var(--ease),box-shadow .4s; }
.theme-dark .event{ background:var(--negro-2); border-color:var(--line-dark); }
.event:hover{ transform:translateX(6px); box-shadow:0 18px 40px -26px rgba(176,18,37,.5); }
.event__media{ width:120px; height:90px; border-radius:var(--radius); overflow:hidden; flex-shrink:0; }
.event__media img{ width:100%; height:100%; object-fit:cover; }
.event__body h3{ font-size:1.3rem; color:var(--tinta); }
.theme-dark .event__body h3{ color:var(--marfil); }
.event__body p{ font-size:.93rem; color:var(--tinta-soft); margin-top:.3rem; }
.theme-dark .event__body p{ color:var(--gris-calido); }
.event__tag{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rojo); font-weight:600; align-self:flex-start; }
.producer-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.6rem,4vw,3rem); align-items:center; }
.reel{ position:relative; width:100%; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/10; display:block; box-shadow:var(--shadow-card); }
.reel video, .reel img{ width:100%; height:100%; object-fit:cover; }
.reel__veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,4,6,.1),rgba(11,4,6,.6)); }
.reel__play{ position:absolute; inset:0; margin:auto; width:74px; height:74px; border-radius:50%; background:var(--rojo); color:var(--blanco); display:grid; place-items:center; font-size:1.3rem; padding-left:4px; transition:transform .4s var(--ease),background .3s; }
.reel:hover .reel__play{ transform:scale(1.1); background:var(--rojo-claro); }
.reel__label{ position:absolute; left:1.2rem; bottom:1.1rem; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--marfil); }
.pipeline{ display:grid; gap:.6rem; margin-bottom:1.4rem; }
.pipeline li{ display:flex; align-items:baseline; gap:.9rem; padding:.7rem 0; border-bottom:1px solid var(--line-dark); font-size:1rem; }
.pipeline li span{ font-family:var(--serif); font-style:italic; color:var(--rojo-claro); font-size:.9rem; }
.stills{ display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; margin-top:clamp(2rem,4vw,3rem); }
.stills figure{ overflow:hidden; border-radius:var(--radius); aspect-ratio:4/3; }
.stills img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.stills figure:hover img{ transform:scale(1.07); }
.svc-panel-layout{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.svc-media{ border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-card); }
.svc-media img{ width:100%; height:100%; object-fit:cover; }
.svc-block{ margin-bottom:1.4rem; }
.svc-block h4{ font-size:1.05rem; color:var(--rojo); margin-bottom:.35rem; font-family:var(--sans); font-weight:600; letter-spacing:.02em; }
.svc-block p, .svc-block li{ color:var(--tinta-soft); font-size:.96rem; }
.svc-block ul{ display:grid; gap:.35rem; }
.svc-block li{ position:relative; padding-left:1.3rem; }
.svc-block li::before{ content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; background:var(--rojo); border-radius:2px; }
.theme-dark .svc-block p, .theme-dark .svc-block li{ color:var(--gris-calido); }
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.contact-aside{ position:relative; padding:clamp(2rem,4vw,3.2rem); color:var(--marfil); display:flex; flex-direction:column; justify-content:center; min-height:520px; }
.contact-aside__img{ position:absolute; inset:0; z-index:0; }
.contact-aside__img img{ width:100%; height:100%; object-fit:cover; }
.contact-aside__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(160deg,rgba(74,10,19,.92),rgba(11,4,6,.92)); }
.contact-aside__c{ position:relative; z-index:2; }
.contact-aside h3{ font-size:1.5rem; margin-bottom:1rem; }
.intent-list{ display:grid; gap:.6rem; margin:1.4rem 0; }
.intent{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.95rem 1.1rem; border:1px solid var(--line-dark); border-radius:var(--radius); transition:background .3s,border-color .3s,transform .3s var(--ease); }
.intent:hover{ background:rgba(176,18,37,.18); border-color:var(--rojo-claro); transform:translateX(4px); }
.intent h4{ font-family:var(--sans); font-weight:500; font-size:.98rem; }
.intent span{ color:var(--rojo-claro); }
.contact-direct a{ color:var(--rojo-claro); }
.contact-socials{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.8rem; font-size:.88rem; }
.contact-loc{ margin-top:1rem; font-size:.85rem; color:var(--gris-calido); }
.contact-direct .contact-map-link{ margin-top:.9rem; color:var(--marfil); }
.form{ background:var(--blanco); padding:clamp(2rem,4vw,3.2rem); }
.theme-dark .form{ background:var(--negro-2); }
.form__row{ margin-bottom:1.1rem; }
.form__row label{ display:block; font-size:.82rem; letter-spacing:.05em; color:var(--tinta-soft); margin-bottom:.4rem; font-weight:500; }
.theme-dark .form__row label{ color:var(--gris-calido); }
.form input, .form select, .form textarea{ width:100%; padding:.85rem 1rem; font-family:inherit; font-size:.98rem; color:var(--tinta); background:var(--marfil-2); border:1px solid var(--line-light); border-radius:var(--radius); transition:border-color .25s,background .25s; }
.theme-dark .form input, .theme-dark .form select, .theme-dark .form textarea{ background:var(--negro-3); color:var(--marfil); border-color:var(--line-dark); }
.form input:focus, .form select:focus, .form textarea:focus{ outline:none; border-color:var(--rojo); background:var(--blanco); }
.theme-dark .form input:focus, .theme-dark .form textarea:focus, .theme-dark .form select:focus{ background:var(--negro-soft); border-color:var(--rojo-claro); }
.form__submit{ margin-top:.6rem; }
.form__hint{ font-size:.82rem; color:var(--gris-tinta); margin-top:1rem; }
.theme-dark .form__hint{ color:var(--gris-calido); }
.hidden-field{ position:absolute; left:-9999px; }
.success{ min-height:70svh; display:grid; place-items:center; text-align:center; padding:6rem var(--gut) 3rem; }
.success__inner{ max-width:520px; }
.success__inner h1{ font-size:var(--fs-h1); margin:1rem 0; }
.success__inner p{ color:var(--gris-calido); margin-bottom:1.8rem; }
.footer{ position:relative; background:var(--negro-2); color:var(--marfil); padding-top:clamp(3rem,6vw,5rem); border-top:3px solid var(--rojo); z-index:1; }
.footer__inner{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:2rem; padding-bottom:2.5rem; }
.footer__brand img{ height:86px; width:auto; object-fit:contain; }
.footer__claim{ font-family:var(--serif); font-style:italic; color:var(--gris-calido); margin-top:1rem; max-width:26ch; }
.footer__col h4{ font-family:var(--sans); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rojo-claro); margin-bottom:1rem; font-weight:600; }
.footer__col a, .footer__col p{ display:block; font-size:.92rem; color:var(--gris-calido); margin-bottom:.55rem; transition:color .25s; }
.footer__col a:hover{ color:var(--marfil); }
.footer__legal{ border-top:1px solid var(--line-dark); padding-block:1.4rem; font-size:.82rem; color:var(--gris-calido); display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; }
.float-cta{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:900; display:inline-flex; align-items:center; gap:.5rem; background:var(--rojo); color:var(--blanco); padding:.8rem 1.2rem; border-radius:50px; font-size:.88rem; font-weight:500; box-shadow:0 16px 30px -12px rgba(176,18,37,.7); transform:translateY(120%); opacity:0; transition:transform .45s var(--ease),opacity .45s,background .3s; }
.float-cta.is-visible{ transform:translateY(0); opacity:1; }
.float-cta:hover{ background:var(--rojo-claro); }
.float-cta__dot{ width:9px; height:9px; border-radius:50%; background:var(--blanco); animation:pulse 1.8s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{transform:scale(.7);opacity:.6}50%{transform:scale(1);opacity:1} }
.modal{ position:fixed; inset:0; z-index:2000; display:grid; place-items:center; padding:1.5rem; overflow:hidden; opacity:0; visibility:hidden; transition:opacity .35s,visibility .35s; }
.modal.is-open{ opacity:1; visibility:visible; }
.modal__backdrop{ position:absolute; inset:0; background:rgba(5,2,3,.85); backdrop-filter:blur(4px); }
.modal__box{ position:relative; z-index:1; width:min(820px,100%); max-height:calc(100dvh - 3rem); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y; scrollbar-gutter:stable; background:var(--negro-2); border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:1.6rem; box-shadow:var(--shadow-card); transform:translateY(20px); transition:transform .4s var(--ease); }
.modal.is-open .modal__box{ transform:none; }
.modal__close{ position:sticky; top:0; z-index:3; width:44px; height:44px; margin:0 0 -44px auto; border-radius:50%; background:var(--negro-3); color:var(--marfil); display:grid; place-items:center; font-size:1rem; transition:background .25s; }
.modal__close:hover{ background:var(--rojo); }
.modal__title{ font-size:1.3rem; margin-bottom:1rem; padding-right:3.5rem; }
.modal__media{ border-radius:var(--radius); overflow:hidden; aspect-ratio:16/9; background:#000; }
.modal__media video, .modal__media img{ width:100%; height:100%; object-fit:cover; }
.modal__caption{ font-size:.88rem; color:var(--gris-calido); margin-top:1rem; }
.modal__caption a{ color:var(--rojo-claro); }
.modal__meta{ display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; margin-top:1rem; }
.modal__meta dt{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rojo-claro); }
.modal__meta dd{ font-size:.92rem; margin-top:.1rem; }
.modal__achievements{ margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--line-dark); }
.modal__achievements h3{ margin-bottom:.75rem; color:var(--marfil); font-size:1.15rem; }
.modal__achievements ul{ display:grid; gap:.55rem; }
.modal__achievements li{ position:relative; padding-left:1.15rem; color:var(--gris-calido); font-size:.92rem; }
.modal__achievements li::before{ content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:2px; background:var(--rojo-claro); }
.split-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.media-frame{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.media-frame img{ width:100%; height:100%; object-fit:cover; }
.text-center{ text-align:center; }
.mt-2{ margin-top:2rem; }
.cta-band{ text-align:center; padding-block:clamp(3.5rem,7vw,6rem); position:relative; z-index:1; }
@media (min-width:769px){
  .cta-band > .wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:clamp(1.75rem,2.2vw,2.5rem);
  }
  .cta-band h2{
    margin:0 auto;
    max-width:24ch;
    text-wrap:balance;
  }
  .cta-band .btn{
    margin:0;
    min-height:52px;
  }
}

/* =====================================================================
   ACTUALIZACIÓN 2026 — componentes nuevos + responsive
   ===================================================================== */
.timeline--years .timeline__year{ font-family:var(--serif); font-size:1.25rem; letter-spacing:0; text-transform:none; color:var(--rojo); }
.timeline--years .timeline__item{ padding-bottom:1.5rem; }
.timeline--years .timeline__item h3{ font-size:1.05rem; margin:.15rem 0 .25rem; }
.timeline--years sup{ font-size:.62em; }

.press-grid{ column-count:4; column-gap:14px; }
.press-grid--wide{ column-count:4; }
.press-item{ display:block; width:100%; margin:0 0 14px; padding:0; border:none; background:var(--negro-3); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); cursor:pointer; position:relative; break-inside:avoid; -webkit-column-break-inside:avoid; }
.press-item img{ width:100%; height:auto; display:block; transition:transform .6s var(--ease),filter .4s; }
.press-item::after{ content:"⤢"; position:absolute; top:.5rem; right:.6rem; width:30px; height:30px; border-radius:50%; background:rgba(11,4,6,.72); color:var(--marfil); display:grid; place-items:center; font-size:.85rem; opacity:0; transform:scale(.8); transition:opacity .3s,transform .3s; }
.press-item:hover img, .press-item:focus-visible img{ transform:scale(1.04); }
.press-item:hover::after, .press-item:focus-visible::after{ opacity:1; transform:scale(1); }

.director-grid{ display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; }
.director-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.director-photo img{ width:100%; height:auto; display:block; transform:scale(1.08); transform-origin:50% 34%; }
.director-photo figcaption{ position:absolute; inset:auto 0 0 0; padding:1rem 1.2rem; background:linear-gradient(transparent,rgba(11,4,6,.88)); color:var(--marfil); font-family:var(--serif); font-style:italic; font-size:.86rem; }
.director-body{ display:grid; gap:1.25rem; }
.director-block h3{ font-family:var(--sans); font-weight:600; font-size:1.1rem; letter-spacing:.01em; color:var(--rojo); margin-bottom:.3rem; }
.director-block p{ color:var(--tinta-soft); font-size:.96rem; }
.theme-dark .director-block p{ color:var(--gris-calido); }

.video-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.8rem; }
.video-card{ display:flex; align-items:center; gap:1rem; padding:1.1rem 1.2rem; border-radius:var(--radius-lg); background:linear-gradient(150deg,var(--rojo-osc),var(--rojo-vino)); color:var(--marfil); transition:transform .4s var(--ease),box-shadow .4s; }
.video-card:hover{ transform:translateY(-3px); box-shadow:0 22px 44px -26px rgba(176,18,37,.6); }
.video-card__play{ flex:0 0 44px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.16); display:grid; place-items:center; font-size:.95rem; padding-left:3px; }
.video-card__txt{ display:flex; flex-direction:column; gap:.1rem; }
.video-card__txt strong{ font-family:var(--serif); font-size:1.02rem; }
.video-card__txt span{ font-size:.8rem; opacity:.86; }

.video-embed{ position:relative; aspect-ratio:16/9; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); background:#000; }
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.playbill{ display:grid; grid-template-columns:.62fr 1.38fr; gap:clamp(1.6rem,4vw,3rem); align-items:center; background:var(--negro-2); border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:clamp(1.4rem,3vw,2.4rem); box-shadow:var(--shadow-card); }
.playbill__poster{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); }
.playbill__poster img{ width:100%; height:auto; display:block; }
.playbill__title{ font-size:clamp(1.9rem,3.4vw,2.8rem); margin:.6rem 0 1.1rem; }
.playbill__addr{ margin-top:1.2rem; font-size:.9rem; color:var(--gris-calido); }
.theatre-exp-wrap .theatre-exp{ min-height:380px; }

.section--alt{ background:var(--marfil-2); }
.event-feature{ align-items:center; }
.event-feature__lede{ font-family:var(--serif); font-size:clamp(1.2rem,2.3vw,1.75rem); line-height:1.3; color:var(--tinta); }
.event-feature__meta{ margin-top:1rem; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; color:var(--rojo); font-weight:600; }
.festival-gallery{ margin-top:1.25rem; }
@media (min-width:861px){
  .festival-gallery{ margin-top:clamp(2rem,3vw,2.5rem); }
}

.svc-pills{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; margin-top:1rem; }
.svc-pills li{ position:relative; padding:1rem 1.1rem 1rem 2.3rem; border-radius:var(--radius); background:var(--negro-2); border:1px solid var(--line-dark); color:var(--marfil); font-size:.96rem; }
.svc-pills li::before{ content:""; position:absolute; left:1.1rem; top:1.25em; width:8px; height:8px; background:var(--rojo); border-radius:2px; }

.logo-inline--xl{ height:clamp(82px,11vw,120px); margin-bottom:1.3rem; }
.logo-inline--films{ width:clamp(230px,22vw,360px); height:auto; max-width:min(620px,92vw); margin-bottom:clamp(1.4rem,2vw,2rem); filter:drop-shadow(0 8px 18px rgba(0,0,0,.38)); }

.modal__media{ aspect-ratio:16/10; margin-bottom:1rem; }
.modal__lede{ color:var(--gris-calido); font-size:1rem; line-height:1.6; }

.obras-fallback{ display:grid; gap:1rem; margin-top:1.5rem; }
.obras-fallback li{ border-left:3px solid var(--rojo); padding-left:1rem; }
.obras-fallback h3{ color:var(--marfil); font-size:1.1rem; }
.obras-fallback p{ color:var(--gris-calido); font-size:.9rem; }

.lightbox{ position:fixed; inset:0; z-index:2200; display:grid; place-items:center; padding:clamp(1rem,4vw,3rem); opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__backdrop{ position:absolute; inset:0; background:rgba(5,2,3,.93); backdrop-filter:blur(6px); }
.lightbox__box{ position:relative; z-index:1; display:flex; align-items:center; gap:clamp(.4rem,2vw,1.2rem); width:100%; max-width:min(1080px,100%); }
.lightbox__figure{ margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:.8rem; min-width:0; }
.lightbox__figure img{ max-width:100%; max-height:74svh; width:auto; height:auto; object-fit:contain; border-radius:var(--radius); box-shadow:var(--shadow-card); }
.lightbox__cap{ color:var(--marfil); font-size:.88rem; text-align:center; max-width:60ch; }
.lightbox__close{ position:absolute; top:-.6rem; right:-.6rem; z-index:3; width:44px; height:44px; border-radius:50%; background:var(--rojo); color:var(--blanco); display:grid; place-items:center; font-size:1rem; }
.lightbox__close:hover{ background:var(--rojo-claro); }
.lightbox__nav{ flex:0 0 auto; width:50px; height:50px; border-radius:50%; background:rgba(245,239,230,.12); color:var(--marfil); font-size:1.9rem; line-height:1; display:grid; place-items:center; transition:background .25s; }
.lightbox__nav:hover{ background:var(--rojo); }

@media (max-width:1024px){
  .nav__links{ display:none; }
  .nav__cta{ display:none; }
  .nav__burger{ display:flex; }
}
@media (max-width:900px){
  .works-grid{ grid-template-columns:repeat(2,1fr); }
  .press-grid, .press-grid--wide{ column-count:3; }
  .footer__inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .about__grid,
  .tab-layout,
  .svc-panel-layout,
  .contact-grid,
  .producer-grid,
  .director-grid,
  .playbill,
  .theatre-grid,
  .split-2{ grid-template-columns:1fr; }
  .director-photo{ max-width:420px; }
  .playbill__poster{ max-width:340px; }
  .contact-aside{ min-height:360px; }
  .video-cards{ grid-template-columns:1fr 1fr; }
}
@media (max-width:720px){
  .stills, .gallery-sheet, .clip-grid, .stats{ grid-template-columns:repeat(2,1fr); }
  .gallery-sheet .span2{ grid-column:span 2; }
  .svc-pills{ grid-template-columns:1fr; }
  .press-grid, .press-grid--wide{ column-count:2; }
  .footer__legal{ flex-direction:column; align-items:flex-start; }
  .manifesto__quote{ font-size:clamp(1.4rem,6vw,2rem); }
}
@media (max-width:520px){
  .works-grid{ grid-template-columns:1fr 1fr; }
  .footer__inner{ grid-template-columns:1fr; }
  .video-cards{ grid-template-columns:1fr; }
  .billboard__meta{ grid-template-columns:1fr 1fr; }
  .lightbox__nav{ width:42px; height:42px; font-size:1.5rem; }
}
@media (max-width:380px){
  .gallery-sheet{ grid-template-columns:1fr; }
  .gallery-sheet .span2{ grid-column:span 1; aspect-ratio:3/2; }
}

/* =====================================================================
   MOBILE REFINEMENT v2 — entrega iPhone/Android (sin tocar escritorio)
   ===================================================================== */

/* Ocultar el botón flotante cuando hay menú, modal o lightbox abierto */
html[data-overlay="open"] .float-cta{ opacity:0; visibility:hidden; pointer-events:none; transform:translateY(40%); }

/* Ícono + etiqueta del botón flotante (estructura nueva, degradable) */
.float-cta__icon{ width:18px; height:18px; flex:0 0 auto; }
.float-cta__label{ display:inline; }

/* Marquee con movimiento reducido: estático y desplazable a mano */
@media (prefers-reduced-motion: reduce){
  .kinetic-strip__track{ animation:none; }
  .kinetic-strip{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

/* ---------------- <= 768px ---------------- */
@media (max-width:768px){
  :root{ --gut:20px; }
  .wrap,
  .nav__bar,
  .subhero__inner,
  .hero__content{
    padding-left:max(20px,env(safe-area-inset-left));
    padding-right:max(20px,env(safe-area-inset-right));
  }

  /* Tipografía móvil */
  .hero__title{ font-size:clamp(2.6rem,13vw,3.6rem); max-width:none; text-wrap:balance; }
  .subhero__title{ font-size:clamp(2.3rem,11vw,3.3rem); max-width:none; text-wrap:balance; }
  .section__title{ font-size:clamp(2rem,9vw,2.7rem); text-wrap:balance; }
  .section__head .section__title{ text-wrap:balance; }
  .subhero__lede,.section__intro,.hero__lede{ font-size:1.05rem; line-height:1.6; }
  .about__big{ font-size:clamp(1.4rem,6.2vw,1.9rem); line-height:1.32; }
  .manifesto__quote{ font-size:clamp(1.5rem,7.5vw,2rem); }
  p{ text-wrap:pretty; }

  /* Header: alto 76–88, logo visible, alineación central, área táctil */
  .nav__bar{ padding-top:.55rem; padding-bottom:.55rem; min-height:78px; align-items:center; }
  .nav__logo{ height:56px; }
  .nav__brand{ gap:.5rem; }
  .nav__burger{ width:44px; height:44px; }
  /* el contenido interior no debe quedar bajo el header fijo */
  .subhero{ min-height:auto; padding-block:calc(78px + 1.6rem) 2.4rem; align-items:flex-end; }

  /* Heroes interiores: overlay localizado + texto claro garantizado */
  .subhero--dark .subhero__veil,
  main.theme-light .subhero.subhero--dark .subhero__veil{
    background:linear-gradient(180deg,rgba(11,4,6,.55) 0%,rgba(11,4,6,.35) 38%,rgba(11,4,6,.82) 78%,rgba(11,4,6,.94) 100%);
  }
  .subhero--dark .subhero__title,
  main.theme-light .subhero.subhero--dark .subhero__title{ color:var(--marfil); text-shadow:0 2px 16px rgba(0,0,0,.6); }
  .subhero--dark .subhero__lede,
  main.theme-light .subhero.subhero--dark .subhero__lede{ color:var(--blanco); text-shadow:0 1px 12px rgba(0,0,0,.55); }
  .subhero--eventos .subhero__veil{
    background:linear-gradient(180deg,rgba(11,4,6,.68) 0%,rgba(11,4,6,.43) 38%,rgba(11,4,6,.82) 78%,rgba(11,4,6,.94) 100%);
  }
  .subhero--eventos .kicker,
  .subhero--eventos .kicker span{ text-shadow:0 1px 8px rgba(0,0,0,.95); }
  .subhero--eventos .kicker{
    display:inline-flex;
    padding:.28rem .5rem;
    margin-left:-.5rem;
    border-radius:4px;
    background:rgba(11,4,6,.56);
  }
  [data-media-slot="hero-nosotros"] img{ object-position:50% 32%; }
  [data-media-slot="hero-eventos"] img{ object-position:50% 28%; }
  [data-media-slot="hero-obras"] img{ object-position:50% 40%; }
  [data-media-slot="hero-teatro"] img{ object-position:50% 45%; }

  /* Ticker en una sola línea, tamaño proporcionado */
  .kinetic-strip{ height:clamp(58px,15vw,74px); }
  .kinetic-strip__group{ font-size:clamp(1rem,4.6vw,1.35rem); gap:1.05rem; padding-right:1.05rem; }

  /* Inicio: ritmo entre tarjetas, ticker y cita */
  .section--portal{ padding-bottom:clamp(1.6rem,6vw,2.6rem); }
  .portal__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.85rem;
  }
  .portal-card{
    min-height:clamp(208px,58vw,248px);
    aspect-ratio:4/5;
    border-radius:12px;
    box-shadow:0 18px 42px -24px rgba(0,0,0,.75);
    touch-action:manipulation;
    --portal-mobile-overlay:
      linear-gradient(180deg,
        rgba(8,2,4,.16) 0%,
        rgba(8,2,4,.36) 36%,
        rgba(8,2,4,.72) 70%,
        rgba(8,2,4,.92) 100%);
  }
  .portal-card--full{
    min-height:clamp(208px,52vw,240px);
    aspect-ratio:16/9;
  }
  .portal-card__media{ z-index:-3; }
  .portal-card__veil{
    z-index:-2;
    background:var(--portal-mobile-overlay);
  }
  .portal-card__red,
  .portal-card__glow{ z-index:-1; }
  .portal-card[data-media-slot="portal-nosotros"]{
    --portal-mobile-overlay:
      linear-gradient(180deg,
        rgba(8,2,4,.22) 0%,
        rgba(8,2,4,.44) 38%,
        rgba(8,2,4,.78) 72%,
        rgba(8,2,4,.94) 100%);
  }
  .portal-card[data-media-slot="portal-escuela"]{
    --portal-mobile-overlay:
      linear-gradient(180deg,
        rgba(8,2,4,.10) 0%,
        rgba(8,2,4,.32) 38%,
        rgba(8,2,4,.70) 70%,
        rgba(8,2,4,.91) 100%);
  }
  .portal-card[data-media-slot="portal-obras"],
  .portal-card[data-media-slot="portal-eventos"]{
    --portal-mobile-overlay:
      linear-gradient(180deg,
        rgba(8,2,4,.12) 0%,
        rgba(8,2,4,.34) 38%,
        rgba(8,2,4,.74) 72%,
        rgba(8,2,4,.92) 100%);
  }
  .portal-card[data-media-slot="portal-teatro"],
  .portal-card[data-media-slot="portal-productora"],
  .portal-card[data-media-slot="portal-servicios"]{
    --portal-mobile-overlay:
      linear-gradient(180deg,
        rgba(8,2,4,.18) 0%,
        rgba(8,2,4,.42) 40%,
        rgba(8,2,4,.78) 72%,
        rgba(8,2,4,.94) 100%);
  }
  .portal-card__inner{
    padding:1rem;
    width:100%;
  }
  .portal-card__icon{
    top:1rem;
    right:1rem;
    width:28px;
    height:28px;
    color:var(--blanco);
    opacity:.95;
    filter:drop-shadow(0 2px 8px rgba(0,0,0,.55));
  }
  .portal-card__num{
    color:var(--rojo-claro);
    font-size:.92rem;
    font-weight:600;
    text-shadow:0 2px 10px rgba(0,0,0,.65);
  }
  .portal-card h3{
    color:var(--marfil);
    font-size:clamp(1.22rem,5vw,1.5rem);
    line-height:1.06;
    margin:.32rem 0 0;
    letter-spacing:0;
    text-wrap:balance;
    overflow-wrap:normal;
    hyphens:none;
    text-shadow:0 2px 14px rgba(0,0,0,.62);
  }
  .portal-card p{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
  }
  .portal-card__go{
    display:none;
  }
  .portal-card:active .portal-card__media img{ transform:scale(1.03); }
  .portal-card:active .portal-card__red{ opacity:.28; }
  .portal-card:focus-visible{
    outline:2px solid var(--rojo-claro);
    outline-offset:4px;
    box-shadow:0 0 0 4px rgba(245,239,230,.16), 0 18px 42px -24px rgba(0,0,0,.75);
  }
  .manifesto{ padding-block:clamp(3.2rem,11vw,4.5rem); }

  /* Secciones: alturas no rígidas, ritmo compacto */
  .section{ padding-block:clamp(3rem,9vw,4.5rem); }
  .school-band{ height:auto; min-height:0; aspect-ratio:16/11; }

  /* Nosotros: intro y timeline */
  .about__lead p+p{ margin-top:1rem; }
  .timeline--years .timeline__item{ padding-left:1.2rem; }
  .timeline--years .timeline__item h3{ font-size:1.05rem; }

  /* Galería de prensa: miniaturas uniformes 2 columnas */
  .press-grid,.press-grid--wide{ column-count:initial; -webkit-column-count:initial; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .press-item{ aspect-ratio:3/4; margin:0; }
  .press-item img{ width:100%; height:100%; object-fit:cover; object-position:top; }

  /* Director: retrato proporcionado 4:5 */
  .director-grid{ gap:1.6rem; }
  .director-photo{ aspect-ratio:4/5; max-height:60svh; max-width:420px; margin-inline:auto; }
  .director-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; transform:scale(1.06); transform-origin:50% 32%; }
  .director-block h3{ margin-top:.2rem; }
  .video-cards{ grid-template-columns:1fr; }
  .video-card{ min-height:60px; }

  /* Teatro: afiche contenido, sin recortes ni estiramiento */
  .playbill{ gap:1.4rem; }
  .playbill__poster{ display:flex; justify-content:center; max-width:none; }
  .playbill__poster img{ width:auto; max-width:100%; height:auto; max-height:72svh; object-fit:contain; }
  .playbill__info .billboard__actions .btn{ width:100%; }

  /* Eventos: títulos sin palabras sueltas */
  /* Obras/catalogo: lectura movil limpia y chips consistentes */
  .works-grid{
    gap:.85rem;
  }
  .work-card{
    aspect-ratio:3/4;
    border-radius:12px;
    box-shadow:0 18px 42px -24px rgba(0,0,0,.75);
  }
  .work-card__veil{
    background:linear-gradient(180deg,
      rgba(8,2,4,.14) 0%,
      rgba(8,2,4,.34) 38%,
      rgba(8,2,4,.72) 70%,
      rgba(8,2,4,.94) 100%);
  }
  .work-card__body{
    padding:1rem;
  }
  .work-card__tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    max-width:100%;
    padding:.32rem .62rem;
    border-radius:999px;
    font-size:.62rem;
    line-height:1;
    letter-spacing:.01em;
    text-transform:none;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    box-shadow:0 8px 18px -12px rgba(176,18,37,.9);
  }
  .work-card__body h3{
    color:var(--marfil);
    font-size:clamp(1.08rem,4.8vw,1.35rem);
    line-height:1.08;
    margin:.65rem 0 0;
    letter-spacing:0;
    text-wrap:balance;
    text-shadow:0 2px 14px rgba(0,0,0,.64);
  }
  .work-card__body p,
  .work-card__more{
    display:none;
  }
  .work-card:active .work-card__img img{
    transform:scale(1.03);
  }

  .event-feature__lede{ font-size:clamp(1.2rem,5.6vw,1.55rem); }

  /* Inicio: el indicador queda debajo de los CTA incluso en pantallas bajas */
  .hero__content{ padding-bottom:1.5rem; }
  .hero__scroll{ bottom:max(.3rem,env(safe-area-inset-bottom)); gap:.3rem; }
  .hero__scroll-line{ height:24px; }

  /* CTA inferiores unificados */
  .cta-band{ padding:clamp(56px,13vw,72px) 20px; min-height:0; }
  .cta-band h2{ font-size:clamp(1.55rem,7.5vw,2rem); margin:0 auto; max-width:18ch; }
  .cta-band .btn{ margin-top:1.7rem; }
  .band-black.section--tight .split-2,
  .band-red .wrap{ }

  /* Tabs y paneles */
  .tab-layout,.svc-panel-layout{ gap:1.6rem; }
  .cloud{ display:none; } /* nubes flotantes se solapan en móvil */

  /* Modales y lightbox dentro del viewport */
  .modal{ padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom)); }
  .modal__box{ max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
  .modal__media{ aspect-ratio:16/10; }
  .logo-inline--films{ width:clamp(150px,46vw,210px); height:auto; margin-bottom:1.5rem; }
  .lightbox{ padding:14px; }
  .lightbox__box{ flex-direction:column-reverse; gap:.9rem; }
  .lightbox__figure img{ max-height:68svh; }
  .lightbox__nav{ width:46px; height:46px; }
  .lightbox__close{ top:6px; right:6px; }

  /* Footer: aire inferior para no chocar con el botón flotante */
  .footer__brand img{ height:74px; }
  .footer__legal{ padding-bottom:calc(1.4rem + env(safe-area-inset-bottom)); }
}

/* ---------------- <= 480px ---------------- */
@media (max-width:480px){
  /* Botón flotante compacto y seguro */
  .float-cta{
    right:max(14px,env(safe-area-inset-right));
    bottom:calc(14px + env(safe-area-inset-bottom));
    width:54px; height:54px; padding:0; gap:0; border-radius:50%;
    justify-content:center;
  }
  .float-cta__label{ display:none; }
  .float-cta__dot{ display:none; }
  .float-cta__icon{ width:26px; height:26px; }
  /* Espacio para que el botón no tape el contenido final */
  .footer__legal{ padding-bottom:calc(1.4rem + 64px + env(safe-area-inset-bottom)); }
  .cta-band{ padding-bottom:clamp(64px,16vw,84px); }

  /* Press: bajo ~340px una columna */
}
@media (max-width:380px){
  .work-card__body{
    padding:.85rem;
  }
  .work-card__tag{
    padding-inline:.36rem;
    font-size:.52rem;
    letter-spacing:0;
  }
}
@media (max-width:340px){
  .portal__grid{ grid-template-columns:1fr; }
  .portal-card,
  .portal-card--full{
    grid-column:auto;
    min-height:220px;
    aspect-ratio:16/11;
  }
  .press-grid,.press-grid--wide{ grid-template-columns:1fr; }
  .works-grid{ grid-template-columns:1fr; }
}

@media (max-width:480px){
  .hero{ min-height:540px; }
}
