/* FestCineQueer V2 · Sistema "corte y unión"
   Capa permanente (este archivo) + capa de edición (variables --ed-* impresas por PHP desde la ficha de cada edición). */

/* ===== Fuentes autoalojadas (SIL OFL 1.1) ===== */
@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/brygada-1918-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/brygada-1918-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Brygada 1918";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/brygada-1918-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Brygada 1918";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/brygada-1918-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/brygada-1918-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/brygada-1918-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Brygada 1918";font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/brygada-1918-latin-700-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Brygada 1918";font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/brygada-1918-latin-ext-700-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/hanken-grotesk-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/hanken-grotesk-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/hanken-grotesk-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/hanken-grotesk-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Reservas con métricas ajustadas para evitar saltos al cargar las fuentes */
@font-face{font-family:"Brygada Fallback";src:local("Times New Roman"),local("Liberation Serif"),local("Tinos");size-adjust:115%;ascent-override:80%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:"Hanken Fallback";src:local("Arial"),local("Liberation Sans"),local("Arimo");size-adjust:99.7%;ascent-override:100%;descent-override:30%;line-gap-override:0%}

/* ===== Capa permanente ===== */
:root{
  --ink-0:#0B0B0C;--ink-1:#141415;--ink-2:#1E1E20;--seam:#2E2E31;--seam-strong:#4A4A4F;
  --fg:#F2F0EA;--fg-2:#B9B7B0;--fg-3:#8F8D88;
  --font-sans:"Hanken Grotesk","Hanken Fallback",Arial,sans-serif;
  --t-xs:.8125rem;--t-sm:.9375rem;--t-base:1.0625rem;--t-md:1.25rem;
  --t-lg:clamp(1.5rem,1.2rem + 1vw,2rem);--t-xl:clamp(2rem,1.4rem + 2.2vw,3.25rem);
  --t-2xl:clamp(2.75rem,1.6rem + 4.2vw,5.5rem);--t-mark:clamp(4rem,2.4rem + 5vw,6rem);
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;
  --d-press:100ms;--d-state:180ms;--d-view:320ms;--d-focal:700ms;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.4,0,1,1);
  --margin:16px;--max:1440px;--header:64px;
  /* Valores neutros si la edición no define identidad (PHP los sobrescribe) */
  --ed-accent:#F2F0EA;--ed-accent-2:#F2F0EA;--ed-grad:linear-gradient(90deg,#F2F0EA,#F2F0EA);--ed-display:"Brygada 1918","Brygada Fallback",Georgia,serif;--ed-cut-shape:none;--ed-focus:50% 35%;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header) + 16px)}
body{margin:0;background:var(--ink-0);color:var(--fg);font:400 var(--t-base)/1.55 var(--font-sans);font-variant-numeric:tabular-nums;min-height:100vh}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
a{color:inherit;text-decoration-color:var(--ed-accent);text-underline-offset:.2em;text-decoration-thickness:1px}
button,input,select{font:inherit;color:inherit}
::selection{background:var(--ed-accent);color:var(--ink-0)}
input,select{caret-color:var(--ed-accent)}
*{scrollbar-width:thin;scrollbar-color:var(--seam-strong) transparent}
:focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px}
[tabindex="-1"]:focus{outline:none}
[hidden]{display:none!important}
.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--margin)}
main{display:block;container:main/inline-size}
@media (min-width:600px){:root{--margin:32px}}
@media (min-width:1024px){:root{--margin:clamp(32px,4vw,64px)}}
.spacer{height:var(--s-8)}
.note{font-size:var(--t-sm);color:var(--fg-3);max-width:65ch;margin-top:var(--s-3)}
.tag{display:inline-block;font-size:var(--t-xs);font-weight:600;padding:1px 8px;border:1px solid var(--seam-strong);color:var(--fg-2)}
.tag--open{border-color:var(--ed-accent);color:var(--ed-accent)}

/* ===== Botones y enlaces ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border:1px solid var(--seam-strong);background:transparent;font-size:var(--t-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:background-color var(--d-state),border-color var(--d-state),color var(--d-state),transform var(--d-press) var(--ease-out)}
.btn:hover{border-color:var(--fg-2)}
.btn:active{transform:scale(.97)}
.btn--primary{background:var(--ed-accent);border-color:var(--ed-accent);color:var(--ink-0)}
.btn--primary:hover{background:var(--fg);border-color:var(--fg)}
.btn--quiet{border-color:transparent;padding-inline:12px}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:var(--t-sm);text-decoration:none;min-height:44px}
.link span{text-decoration:underline;text-decoration-color:var(--ed-accent);text-underline-offset:.3em}
.link:hover{color:var(--ed-accent)}
.link .icon{transition:transform var(--d-state) var(--ease-out)}
.link:hover .icon{transform:translateX(3px)}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:var(--s-3);font-size:var(--t-sm);color:var(--fg-2);text-decoration:none}
.back:hover{color:var(--fg)}
.doc__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;margin-top:var(--s-5)}

/* ===== Aviso de prototipo y cabecera ===== */
.skip{position:absolute;left:16px;top:8px;z-index:60;background:var(--ed-accent);color:var(--ink-0);padding:12px 16px;font-weight:600}
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}
.protobar{font-size:var(--t-xs);color:var(--fg-3);border-bottom:1px solid var(--seam)}
.protobar .wrap{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;min-height:32px}
.protobar strong{color:var(--fg-2);font-weight:600}
.header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ink-0) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--seam)}
.header .wrap{display:flex;align-items:center;gap:16px;min-height:var(--header)}
.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none;white-space:nowrap}
.brand__name{font-family:var(--ed-display);font-weight:700;font-size:1.375rem;letter-spacing:-.01em}
.brand__name em{font-style:italic}
.brand__ed{font-size:var(--t-xs);font-weight:600;color:var(--ed-accent)}
.nav{display:none;gap:4px;margin-left:auto}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;font-size:var(--t-sm);text-decoration:none;color:var(--fg-2);transition:color var(--d-state)}
.nav a:hover,.nav a[aria-current]{color:var(--fg)}
.nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--ed-accent);text-underline-offset:.5em}
.header__prog{margin-left:auto;min-height:40px;padding:0 14px}
.header__menu{width:44px;height:44px;padding:0;border:0;display:inline-flex}
@media (min-width:1024px){.nav{display:flex}.header__prog{margin-left:12px}.header__menu{display:none}}
@media (max-width:380px){.brand__name{font-size:1.2rem}.header__prog{padding:0 10px}}

/* ===== Edición consultada: franja y subnavegación ===== */
.past-banner{background:var(--ink-1);border-bottom:1px solid var(--seam);font-size:var(--t-sm)}
.past-banner .wrap{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;min-height:48px}
.past-banner a{color:var(--ed-accent);font-weight:600}
.ednav{border-bottom:1px solid var(--seam)}
.ednav ol{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.ednav ol::-webkit-scrollbar{display:none}
.ednav li{scroll-snap-align:start;flex:none}
.ednav a{display:flex;align-items:center;min-height:48px;padding:0 12px;font-size:var(--t-sm);color:var(--fg-2);text-decoration:none;white-space:nowrap}
.ednav li:first-child a{padding-left:0}
.ednav a:hover{color:var(--fg)}
.ednav a[aria-current]{color:var(--fg);box-shadow:inset 0 -2px 0 var(--ed-accent)}
.mark--sm{font-size:1.125rem!important}

/* ===== Marca de edición ===== */
.mark{display:block;font-family:var(--ed-display);font-weight:700;font-size:var(--t-mark);line-height:.95;letter-spacing:-.02em;background:var(--ed-grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content;max-width:100%}
.mark i{font-weight:400;font-style:italic;letter-spacing:-.04em;padding-right:.02em}
@media (forced-colors:active){.mark{color:CanvasText;background:none}}

/* ===== Portada · hero ===== */
.hero{border-bottom:1px solid var(--seam)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6);padding-block:var(--s-6) var(--s-7)}
.hero__name{font-family:var(--ed-display);font-weight:700;font-size:var(--t-xl);line-height:1.05;margin-top:var(--s-3)}
.hero__name em{font-style:italic}
.hero__dates{font-family:var(--ed-display);font-size:var(--t-lg);margin-top:var(--s-3)}
.hero__dates em{font-style:italic;font-weight:700}
.hero__motto{font-family:var(--ed-display);font-style:italic;font-size:var(--t-md);color:var(--ed-accent);margin-top:var(--s-3)}
.hero__lead{color:var(--fg-2);max-width:52ch;margin-top:var(--s-5)}
.zigzag{display:grid;font-size:var(--t-lg);line-height:1.25;color:var(--fg-2);margin-top:var(--s-6)}
.zigzag span:nth-child(2){padding-left:3.2em}.zigzag span:nth-child(3){padding-left:1.2em}.zigzag span:nth-child(4){padding-left:4.6em}.zigzag span:nth-child(5){padding-left:.4em}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.hero__note{margin-top:var(--s-5);font-size:var(--t-xs);color:var(--fg-3);max-width:48ch}
.edimg{position:relative;aspect-ratio:4/5;background:var(--ink-1);clip-path:var(--ed-cut-shape);overflow:hidden}
.edimg img{width:100%;height:100%;object-fit:cover;object-position:var(--ed-focus)}
.edimg__slice{position:absolute;inset:0;display:block}
.edimg__slice img{position:absolute;inset:0}
.edimg__slice:nth-child(1){clip-path:polygon(0 0,33.2% 0,30.2% 100%,0 100%)}
.edimg__slice:nth-child(2){clip-path:polygon(33.6% 0,66.4% 0,69.4% 100%,30.6% 100%)}
.edimg__slice:nth-child(3){clip-path:polygon(66.8% 0,100% 0,100% 100%,69.8% 100%)}
.edimg.is-assembling .edimg__slice{animation:unite var(--d-focal) var(--ease-out) both}
.edimg.is-assembling .edimg__slice:nth-child(1){--from:-7%;animation-delay:80ms}
.edimg.is-assembling .edimg__slice:nth-child(2){--from:5%;animation-delay:0ms}
.edimg.is-assembling .edimg__slice:nth-child(3){--from:-3.5%;animation-delay:150ms}
@keyframes unite{from{transform:translateY(var(--from))}to{transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.edimg figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--s-4) var(--s-4) calc(var(--s-4) + 2%);font-size:var(--t-xs);color:var(--fg-2);background:linear-gradient(transparent,rgba(0,0,0,.72))}
@container main (min-width:1024px){
  .hero__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;padding-block:var(--s-8) var(--s-9);align-items:stretch}
  .hero__text{grid-column:1/7;display:flex;flex-direction:column;justify-content:center;padding-right:var(--s-6)}
  .hero__figure{grid-column:7/13;position:relative;padding-left:24px;border-left:1px solid var(--seam)}
  .edimg{aspect-ratio:auto;height:100%;min-height:560px}
}
@container main (max-width:599px){.edimg{aspect-ratio:4/4.4}.zigzag{font-size:var(--t-md)}}
@media (min-width:1440px){.hero__figure{margin-right:calc((var(--max) - 100vw)/2)}}
/* ===== Portada · composición tipográfica FEST / CINE / QUEER (2.0.2) =====
   Proporciones de la V1: tres líneas apretadas, la última al 80 % con punto cuadrado en blanco roto
   y el bloque de edición alineado a la derecha junto a FEST · CINE. Tipografía y color de la edición. */
.hero__type{--hf:clamp(4.25rem,24.5cqi,9rem);position:relative;margin:0;font-size:var(--hf);display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:.12em;padding-top:.07em;font-family:var(--ed-display);font-weight:700;color:var(--ed-accent)}
.hero__word{grid-column:1;text-transform:uppercase;letter-spacing:-.035em;line-height:.8}
.hero__word--last{grid-column:1/-1;font-size:.8em;line-height:1.03}
.hero__dot{display:inline-block;width:.15em;height:.15em;margin-left:.05em;background:var(--fg);vertical-align:baseline}
.hero__cap{grid-column:2;align-self:start;min-width:0;container-type:inline-size;display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-family:var(--font-sans);font-weight:400;color:var(--fg)}
.hero__cap .mark{font-size:min(.34em,28cqi);max-width:100%}
.hero__short{font-family:var(--ed-display);font-weight:700;font-size:min(.19em,17cqi);max-width:100%;line-height:1.05;letter-spacing:-.01em;color:var(--fg);margin-top:.3em;text-wrap:balance}
.hero__year{font-size:max(.1em,.8125rem);letter-spacing:.06em;color:var(--fg-2);margin-top:.25em}
.hero--home .zigzag{margin-top:var(--s-6)}
.hero--home .hero__actions{margin-top:var(--s-6)}
@container main (min-width:600px){.hero__type{--hf:min(18cqi,9.5rem)}.hero--home .zigzag{font-size:var(--t-md)}}
@container main (min-width:1024px){.hero__type{--hf:min(10.8cqi,10rem)}.hero--home .zigzag{margin-top:var(--s-5)}}
@media (forced-colors:active){.hero__dot{background:CanvasText}}
@media print{.hero__dot{background:#000}}

/* ===== Bloques ===== */
.block{padding-block:var(--s-8);border-bottom:1px solid var(--seam)}
.block--tight{padding-block:var(--s-7)}
.block--flush{padding-block:var(--s-6) 0;border-bottom:0}
.block__head{display:flex;align-items:end;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap}
.block h2,.section-title{font-family:var(--ed-display);font-weight:700;font-size:var(--t-lg);line-height:1.1}
.section-title{margin-bottom:var(--s-5)}
.block__lead{color:var(--fg-2);max-width:60ch;margin-top:var(--s-2)}
@container main (min-width:1024px){.block{padding-block:var(--s-9)}.block--tight{padding-block:var(--s-7)}.block--flush{padding-block:var(--s-7) 0}}
.demo{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:var(--s-3) 0;margin-block:var(--s-3);border-top:1px solid var(--seam);font-size:var(--t-sm);color:var(--fg-2);max-width:80ch}
.demo b{font-weight:600;color:var(--fg)}

/* ===== Fila de sesión ===== */
.rows{border-top:1px solid var(--seam)}
.row{position:relative;display:grid;grid-template-columns:4.75rem 1px minmax(0,1fr);column-gap:var(--s-4);padding-block:var(--s-4);border-bottom:1px solid var(--seam);transition:background-color var(--d-state)}
.row__when{grid-row:1/3}
.row__time{display:block;font-family:var(--ed-display);font-size:var(--t-md);font-weight:700;line-height:1.2}
.row__day{display:block;font-size:var(--t-xs);color:var(--fg-3)}
.row__seam{grid-row:1/3;background:var(--seam);transition:background-color var(--d-state)}
.row__title{font-family:var(--ed-display);font-size:var(--t-md);font-weight:700;line-height:1.2}
.row__title a{text-decoration:none}
.row__title a::after{content:"";position:absolute;inset:0}
.row__meta,.row__films{font-size:var(--t-sm);color:var(--fg-2);margin-top:2px}
.row__films{color:var(--fg-3)}
.row__demo{color:var(--fg-3)}
.row__where{grid-column:3;display:flex;flex-wrap:wrap;gap:0 8px;margin-top:var(--s-2);font-size:var(--t-sm)}
.row__city{font-weight:600}
.row__venue{color:var(--fg-3)}
.row__state{display:inline-block;font-size:var(--t-xs);font-weight:600;color:var(--ink-0);background:var(--ed-accent);padding:1px 8px;margin-bottom:6px}
.row__state[data-kind="next"]{background:transparent;color:var(--ed-accent);padding:0}
.row:hover{background:var(--ink-1)}
.row:hover .row__seam,.row:focus-within .row__seam{background:var(--ed-accent)}
.row.is-now .row__seam{background:var(--ed-grad)}
@container main (min-width:768px){
  .row{grid-template-columns:7.5rem 1px minmax(0,1fr) minmax(12rem,16rem);padding-block:var(--s-5);align-items:start}
  .row__when{grid-row:auto}.row__seam{grid-row:auto;align-self:stretch}
  .row__time{font-size:var(--t-lg)}
  .row__where{grid-column:4;flex-direction:column;margin-top:4px;text-align:right}
  .row__city{font-size:var(--t-md);font-family:var(--ed-display)}
}
.film__body .row{grid-template-columns:4.75rem 1px minmax(0,1fr)}
.film__body .row__when,.film__body .row__seam{grid-row:1/3}
.film__body .row__where{grid-column:3;flex-direction:row;text-align:left;margin-top:var(--s-2)}
.film__body .row__city{font-family:var(--font-sans);font-size:var(--t-sm)}
.film__body .row__time{font-size:var(--t-md)}

/* ===== Red de localidades ===== */
.net{display:flex;flex-wrap:wrap;border-top:1px solid var(--seam);border-left:1px solid var(--seam)}
.net li{flex:1 1 auto}
.net a{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-4);min-height:96px;height:100%;padding:var(--s-4);border-right:1px solid var(--seam);border-bottom:1px solid var(--seam);text-decoration:none;transition:background-color var(--d-state)}
.net strong{font-family:var(--ed-display);font-size:var(--t-md);line-height:1.15;transition:color var(--d-state)}
.net small{font-size:var(--t-xs);color:var(--fg-3)}
.net a:hover{background:var(--ink-1)}.net a:hover strong{color:var(--ed-accent)}
.net__fact{margin-top:var(--s-5);font-size:var(--t-sm);color:var(--fg-2);max-width:68ch}

/* ===== Piezas de película, cartel y cartela ===== */
.tiles{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,72%);gap:var(--s-4);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--s-3)}
.tile{scroll-snap-align:start;position:relative}
.tile h3{font-family:var(--ed-display);font-size:var(--t-md);font-weight:700;margin-top:var(--s-3);line-height:1.2}
.tile h3 a{text-decoration:none}.tile h3 a::after{content:"";position:absolute;inset:0}
.tile p{font-size:var(--t-sm);color:var(--fg-3)}
.tile:hover .cartela,.tile:hover .poster{border-color:var(--seam-strong)}
.tile:hover h3{color:var(--ed-accent)}
@container main (min-width:600px){.tiles{grid-auto-columns:minmax(220px,40%)}}
@container main (min-width:1024px){.tiles{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}}
.tiles--grid{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));overflow:visible}
.tiles--inline{grid-auto-columns:minmax(160px,45%)}
@container main (min-width:1024px){.tiles--inline{grid-template-columns:repeat(3,minmax(0,1fr))}}
.poster{aspect-ratio:3/4;background:var(--ink-1);border:1px solid var(--seam);display:flex;align-items:center;justify-content:center;transition:border-color var(--d-state)}
.poster img{width:100%;height:100%;object-fit:contain}
.cartela{container-type:inline-size;position:relative;aspect-ratio:3/4;background:var(--ink-1);border:1px solid var(--seam);overflow:hidden;transition:border-color var(--d-state)}
.cartela__piece{position:absolute;inset:0;background:var(--ink-2);clip-path:polygon(0 0,100% 0,100% 36%,0 50%);transform:translateX(2.5cqi)}
.cartela__cut{position:absolute;left:-2%;right:-2%;top:50%;height:1px;background:var(--seam-strong);transform:rotate(-7.8deg);transform-origin:0 0}
.cartela__mark{position:absolute;top:8cqi;left:10.5cqi;font-size:max(11px,4.5cqi);font-weight:600;color:var(--fg-3);letter-spacing:.02em}
.cartela__title{position:absolute;left:8cqi;right:8cqi;bottom:22cqi;font-family:var(--ed-display);font-weight:700;font-size:clamp(.95rem,var(--ct,14cqi),5rem);line-height:1.02;letter-spacing:-.02em;color:var(--fg);text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:manual}
.cartela__meta{position:absolute;left:8cqi;bottom:8cqi;font-size:max(11px,4.4cqi);color:var(--fg-3)}
.frames{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.frames img{aspect-ratio:16/9;object-fit:contain;background:var(--ink-1);width:100%}
.cycle{padding-block:var(--s-6);border-top:1px solid var(--seam)}
.cycle__head{display:grid;gap:var(--s-2);margin-bottom:var(--s-5);max-width:70ch}
.cycle__head h2,.cycle__head h3{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.1}
.cycle__head p{color:var(--fg-2)}
.cycle__head .btn{justify-self:start;margin-top:var(--s-2)}

/* ===== Tira de archivo ===== */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(132px,22cqi,200px);gap:var(--s-3);overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:var(--s-3)}
.strip li{scroll-snap-align:start}
.strip__item{display:block;text-decoration:none;position:relative}
.strip__poster{aspect-ratio:3/4;background:var(--ink-1);border:1px solid var(--seam);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color var(--d-state)}
.strip__poster img{width:100%;height:100%;object-fit:contain}
.strip__hole{flex-direction:column;justify-content:space-between;align-items:flex-start;padding:12px;border-style:dashed;color:var(--fg-3);font-size:var(--t-xs)}
.strip__hole b{font-family:var(--ed-display);font-size:2.5rem;line-height:1;color:var(--fg-2)}
.strip__label{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:var(--t-xs);color:var(--fg-3)}
.strip__label strong{color:var(--fg);font-weight:600}
a.strip__item:hover .strip__poster{border-color:var(--ed-accent)}
a.strip__item:hover strong{color:var(--ed-accent)}

/* ===== Noticias ===== */
.news li{display:grid;grid-template-columns:7rem 1px 1fr;gap:var(--s-4);padding-block:var(--s-4);border-bottom:1px solid var(--seam);position:relative}
.news li:first-child{border-top:1px solid var(--seam)}
.news__when{font-size:var(--t-sm);color:var(--fg-3)}
.news i{background:var(--seam);transition:background-color var(--d-state)}
.news h3{font-family:var(--ed-display);font-size:var(--t-md);line-height:1.2}
.news h3 a{text-decoration:none}.news h3 a::after{content:"";position:absolute;inset:0}
.news li:hover i{background:var(--ed-accent)}
.news li:hover h3{color:var(--ed-accent)}
.news p{font-size:var(--t-sm);color:var(--fg-2);margin-top:4px}
.news__cat{font-size:var(--t-xs)!important;color:var(--fg-3)!important;margin:0 0 4px!important}
@container main (max-width:479px){.news li{grid-template-columns:1fr}.news i{display:none}}

/* ===== Páginas ===== */
.page-head{padding-block:var(--s-7) var(--s-5)}
.page-head h1{font-family:var(--ed-display);font-weight:700;font-size:var(--t-xl);line-height:1.05;letter-spacing:-.01em;max-width:24ch}
.page-head p{color:var(--fg-2);margin-top:var(--s-3);max-width:62ch}
.proglinks{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:var(--s-4);font-size:var(--t-sm)}
.proglinks a{display:inline-flex;align-items:center;min-height:44px;color:var(--fg-2);text-decoration:underline;text-decoration-color:var(--seam-strong);text-underline-offset:.3em}
.proglinks a:hover,.proglinks a[aria-current]{color:var(--fg);text-decoration-color:var(--ed-accent)}
.prose{max-width:72ch}
.prose h2{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.15;margin:var(--s-7) 0 var(--s-3)}
.prose p{margin-bottom:var(--s-4)}
.prose a{color:var(--fg)}
.article{padding-bottom:var(--s-8);max-width:calc(72ch + 2 * var(--margin))}
.article h1{font-family:var(--ed-display);font-weight:700;font-size:var(--t-xl);line-height:1.05;margin-top:var(--s-5)}
.article__lead{font-size:var(--t-md);color:var(--fg-2);margin-block:var(--s-4)}
.article .prose{margin-top:var(--s-5)}

/* ===== Programa ===== */
.days{position:sticky;top:var(--header);z-index:10;background:var(--ink-0);border-block:1px solid var(--seam)}
.days ol{position:relative;display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.days ol::-webkit-scrollbar{display:none}
.days li{flex:1 0 auto;scroll-snap-align:start}
.days a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;min-height:64px;padding:6px 10px;text-decoration:none;color:var(--fg-2);transition:color var(--d-state)}
.days a b{font-family:var(--ed-display);font-size:var(--t-md);line-height:1.1;color:var(--fg)}
.days a small{font-size:11px;color:var(--fg-3)}
.days a[aria-current="true"],.days a:hover{color:var(--fg)}
.days a[aria-current="true"] b{color:var(--ed-accent)}
.days a.is-empty b,.days a.is-empty small{color:var(--fg-3)}.days a.is-empty b{font-weight:400}
.no-js .days a[aria-current="true"]{box-shadow:inset 0 -2px 0 var(--ed-accent)}
.days__light{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--ed-grad);pointer-events:none;flex:none!important;transition:transform var(--d-view) var(--ease-out),width var(--d-view) var(--ease-out)}
.no-js .days__light{display:none}
.filters{display:grid;gap:var(--s-4);padding-block:var(--s-5)}
.field label{display:block;font-size:var(--t-sm);color:var(--fg-2);margin-bottom:6px}
.field select,.field input{width:100%;min-height:48px;padding:0 14px;background:var(--ink-2);border:1px solid var(--seam-strong);border-radius:0;font-size:var(--t-base)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fg-2) 50%),linear-gradient(135deg,var(--fg-2) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.field input::placeholder{color:var(--fg-3)}
.group-toggle{display:inline-flex;flex-wrap:wrap;border:1px solid var(--seam-strong)}
.group-toggle a{display:flex;align-items:center;min-height:44px;padding:0 16px;font-size:var(--t-sm);text-decoration:none;color:var(--fg-2)}
.group-toggle a[aria-current="true"]{background:var(--fg);color:var(--ink-0);font-weight:600}
.group-toggle--prov{margin-block:var(--s-5)}
.filters__bar{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.chips:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 6px 0 12px;border:1px solid var(--seam-strong);background:var(--ink-1);font-size:var(--t-sm);text-decoration:none;cursor:pointer;transition:border-color var(--d-state),transform var(--d-press)}
.chip:hover{border-color:var(--ed-accent)}.chip:active{transform:scale(.97)}
.chip .icon{width:16px;height:16px}
.count{font-size:var(--t-sm);color:var(--fg-2)}
.count b{color:var(--fg);font-weight:600}
h2 .count,h2 small{font-family:var(--font-sans);font-size:var(--t-sm);font-weight:400;color:var(--fg-3);margin-left:8px}
.results h2{font-family:var(--ed-display);font-size:var(--t-lg);font-weight:700;padding-top:var(--s-7);padding-bottom:var(--s-3)}
.results h3.loc{font-family:var(--ed-display);font-size:var(--t-md);padding-top:var(--s-5);padding-bottom:var(--s-2)}
.empty{padding-block:var(--s-8)}
.empty h2{font-family:var(--ed-display);font-size:var(--t-lg)}
.empty p{color:var(--fg-2);margin-block:var(--s-2) var(--s-4)}
.filters__open{display:none}
@container main (min-width:768px){.filters{grid-template-columns:1.2fr 1fr 1.4fr auto;align-items:end}}
.js .filters__submit{display:none}
@media (max-width:767px){.js .filters__open{display:inline-flex}.js #filters:not(.in-sheet){display:none}}

/* ===== Hojas inferiores (<dialog>) ===== */
.sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:85dvh;overflow:auto;background:var(--ink-1);color:var(--fg);border:0;border-top:1px solid var(--seam-strong);padding:0 16px calc(24px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform var(--d-view) var(--ease-out),overlay var(--d-view) allow-discrete,display var(--d-view) allow-discrete}
.sheet[open]{transform:none}
@starting-style{.sheet[open]{transform:translateY(105%)}}
.sheet.is-closing{transform:translateY(105%);transition-timing-function:var(--ease-in);transition-duration:220ms}
.sheet.is-dragging{transition:none!important}
.sheet::backdrop{background:rgba(0,0,0,.6);opacity:1;transition:opacity var(--d-view),overlay var(--d-view) allow-discrete,display var(--d-view) allow-discrete}
@starting-style{.sheet[open]::backdrop{opacity:0}}
.sheet.is-closing::backdrop{opacity:0}
.sheet__head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:var(--ink-1);padding-top:8px;touch-action:none;cursor:grab}
.sheet__grip{position:absolute;left:50%;top:6px;width:40px;height:4px;margin-left:-20px;background:var(--seam-strong)}
.sheet__head h2{font-family:var(--ed-display);font-size:var(--t-md);padding-top:12px}
.sheet__close{width:44px;height:44px;padding:0;border:0;margin-top:8px}
.sheet nav a{display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid var(--seam);font-family:var(--ed-display);font-size:var(--t-lg);text-decoration:none}
.sheet nav a:hover{color:var(--ed-accent)}
.sheet__sub{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:var(--s-4);font-size:var(--t-sm);color:var(--fg-2)}
.sheet__sub a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.sheet__done{width:100%;margin-top:var(--s-3)}
.sheet .filters{padding-block:var(--s-3)}
@media (min-width:768px){.sheet{inset:0 0 0 auto;width:420px;max-height:none;height:100dvh;border-top:0;border-left:1px solid var(--seam-strong);transform:translateX(105%)}.sheet[open]{transform:none}@starting-style{.sheet[open]{transform:translateX(105%)}}.sheet.is-closing{transform:translateX(105%)}.sheet .sheet__grip{display:none}.sheet__head{cursor:default}}

/* ===== Ficha (película, sesión, sede) ===== */
.film{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6);padding-block:var(--s-3) var(--s-8)}
.film__art .cartela,.film__art .poster{max-width:520px}
.film h1{font-family:var(--ed-display);font-weight:700;font-size:var(--t-2xl);line-height:1;letter-spacing:-.02em;overflow-wrap:break-word;hyphens:auto}
.session h1,.venue h1{font-size:var(--t-xl);line-height:1.05}
.film__meta{font-size:var(--t-md);color:var(--fg-2);margin-top:var(--s-3)}
.film__sec{margin-top:var(--s-7)}
.film__sec>h2,.film__body>h2{font-family:var(--ed-display);font-size:var(--t-lg);font-weight:700;margin-bottom:var(--s-3)}
.film__syn{font-size:var(--t-md);line-height:1.5;max-width:60ch;margin-top:var(--s-3)}
.film__body>p+p{margin-top:var(--s-3)}
.facts{display:grid;border-top:1px solid var(--seam)}
.facts div{display:grid;grid-template-columns:9rem 1fr;gap:var(--s-4);padding-block:var(--s-3);border-bottom:1px solid var(--seam);font-size:var(--t-sm)}
.facts dt{color:var(--fg-3)}
.facts dd.pending{color:var(--fg-3);font-style:italic}
.when{display:grid;gap:var(--s-2);align-content:start;padding-block:var(--s-4);border-top:1px solid var(--seam)}
.when .btn{justify-self:start;margin-top:var(--s-3)}
.when__time{font-family:var(--ed-display);font-weight:700;font-size:var(--t-2xl);line-height:1}
.when__time--place{font-size:var(--t-xl);line-height:1.05}
.when__time--place em{font-style:italic}
.when__time--big{font-size:clamp(5rem,3rem + 8vw,10rem);line-height:.9}
.when__day{color:var(--fg-2);font-size:var(--t-md)}
.when__h{font-family:var(--ed-display);font-size:var(--t-md);margin-top:var(--s-4)}
.when__count{font-size:var(--t-lg);font-family:var(--ed-display)}
.when__place a{display:grid;text-decoration:none;margin-top:var(--s-3)}
.when__place strong{font-family:var(--ed-display);font-size:var(--t-lg)}
.when__place span{color:var(--fg-2);text-decoration:underline;text-decoration-color:var(--ed-accent);text-underline-offset:.25em}
.venue__img{margin-top:var(--s-5)}
.logo-panel{background:#fff;padding:var(--s-6);display:flex;align-items:center;justify-content:center;max-width:420px}
.call .film__body--first{order:0}
@container main (min-width:1024px){
  .film{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .film__art{grid-column:1/6;position:sticky;top:calc(var(--header) + 32px);align-self:start}
  .film__body{grid-column:6/13;padding-left:24px;border-left:1px solid var(--seam)}
  .session .film__art,.venue .film__art{grid-column:1/5}.session .film__body,.venue .film__body{grid-column:5/13}
  .call .film__body--first{grid-column:1/8;padding-left:0;border-left:0;padding-right:24px}
  .call .film__art{grid-column:8/13;order:1;padding-left:24px;border-left:1px solid var(--seam);border-top:0}
}
@container main (max-width:599px){.film__art .cartela{aspect-ratio:4/3}.film__art .cartela .cartela__title{font-size:12cqi;bottom:16cqi}.film__art .cartela .cartela__meta{bottom:6cqi}.film__art .poster{max-width:280px}}
.film__art .cartela{view-transition-name:film-art}
.rules-viewer{width:100%;height:80vh;min-height:420px;border:1px solid var(--seam);background:var(--ink-1);margin-top:var(--s-3)}
.status{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding-block:var(--s-3);border-block:1px solid var(--seam);margin-bottom:var(--s-6);font-size:var(--t-sm);color:var(--fg-2)}

/* ===== Localidades ===== */
.province{padding-top:var(--s-6)}
.province>h2{font-family:var(--ed-display);font-size:var(--t-lg);padding-bottom:var(--s-3);border-bottom:1px solid var(--seam)}
.place{display:grid;gap:var(--s-3);padding-block:var(--s-5);border-bottom:1px solid var(--seam)}
.place__head{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:baseline;justify-content:space-between}
.place__head h3{font-family:var(--ed-display);font-size:var(--t-xl);line-height:1}
.venues{display:grid;gap:var(--s-4)}
.venues li{display:grid;gap:4px;padding-left:var(--s-4);border-left:1px solid var(--seam)}
.venues li:hover{border-left-color:var(--ed-accent)}
.venues h4{font-family:var(--ed-display);font-size:var(--t-md)}
.venues h4 a{text-decoration:none}.venues h4 a:hover{color:var(--ed-accent)}
.venues p{font-size:var(--t-sm);color:var(--fg-2)}
.venues__meta{display:flex;gap:8px;align-items:center}
@container main (min-width:768px){.place{grid-template-columns:minmax(12rem,1fr) 2fr;column-gap:var(--s-6)}.place__head{flex-direction:column}.venues{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}

/* ===== Edición: presentación ===== */
.hub{display:grid;border-top:1px solid var(--seam);border-left:1px solid var(--seam);margin-top:var(--s-7)}
.hub a{display:grid;gap:var(--s-2);align-content:start;min-height:160px;height:100%;padding:var(--s-5);border-right:1px solid var(--seam);border-bottom:1px solid var(--seam);text-decoration:none;transition:background-color var(--d-state)}
.hub h2,.hub h3{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.1}
.hub h3{font-size:var(--t-md)}
.hub p{color:var(--fg-2);font-size:var(--t-sm)}
.hub small{color:var(--fg-3);font-size:var(--t-xs);align-self:end}
.hub a:hover{background:var(--ink-1)}.hub a:hover h2,.hub a:hover h3{color:var(--ed-accent)}
.hub--small{margin-top:0;border-top:0}.hub--small a{min-height:72px;padding:var(--s-4)}
@container main (min-width:768px){.hub{grid-template-columns:repeat(3,1fr)}.hub--small{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
.edimg--still{clip-path:var(--ed-cut-shape)}

/* ===== Archivo y ficha de edición ===== */
.archive-list{margin-top:var(--s-7)}
.archive-list li{display:grid;grid-template-columns:5rem 1px 1fr auto;gap:var(--s-4);align-items:center;padding-block:var(--s-4);border-bottom:1px solid var(--seam);position:relative}
.archive-list li:first-child{border-top:1px solid var(--seam)}
.archive-list b{font-family:var(--ed-display);font-size:var(--t-xl);line-height:1}
.archive-list i{align-self:stretch;background:var(--seam)}
.archive-list h2{font-family:var(--ed-display);font-size:var(--t-md)}
.archive-list h2 a{text-decoration:none}.archive-list h2 a::after{content:"";position:absolute;inset:0}
.archive-list p{font-size:var(--t-sm);color:var(--fg-3)}
.archive-list li:hover h2{color:var(--ed-accent)}
.edition{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6);padding-block:var(--s-3) var(--s-8)}
.edition__poster img{width:100%;max-width:440px;height:auto;border:1px solid var(--seam)}
.edition__hole{max-width:440px}
.edition__poster figcaption{font-size:var(--t-xs);color:var(--fg-3);margin-top:8px}
.edition h1{font-family:var(--ed-display);font-weight:700;font-size:var(--t-xl);line-height:1.05}
.edition__motto{font-family:var(--ed-display);font-style:italic;font-size:var(--t-lg);color:var(--ed-accent);margin-top:var(--s-2)}
.edition__dates{margin-top:var(--s-3);color:var(--fg-2)}
.edition__summary{margin-top:var(--s-5);max-width:60ch}
.awards li{display:grid;gap:2px;padding-block:var(--s-4);border-bottom:1px solid var(--seam)}
.awards li:first-child{border-top:1px solid var(--seam)}
.awards span{font-size:var(--t-sm);color:var(--fg-3)}
.awards strong{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.15}
.awards em{font-style:normal;color:var(--fg-2);font-size:var(--t-sm)}
.prevnext{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--seam);padding-block:var(--s-4);margin-top:var(--s-7)}
@container main (min-width:1024px){
  .edition{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .edition__poster{grid-column:1/6}
  .edition__body{grid-column:6/13;padding-left:24px;border-left:1px solid var(--seam)}
}

/* ===== Apartados, documentos, personas, contacto, colaboradores ===== */
.info{display:grid;border-top:1px solid var(--seam)}
.info li{display:grid;gap:4px;padding-block:var(--s-4);border-bottom:1px solid var(--seam)}
.info h2{font-family:var(--ed-display);font-size:var(--t-md)}
.info p{color:var(--fg-2);font-size:var(--t-sm)}
@container main (min-width:768px){.info li{grid-template-columns:16rem 1fr;gap:var(--s-5)}}
.people{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.people li{display:grid;gap:var(--s-3);border-top:1px solid var(--seam);padding-top:var(--s-4)}
.people img{aspect-ratio:3/4;object-fit:cover;width:100%;max-width:240px}
.people h2{font-family:var(--ed-display);font-size:var(--t-md)}
.docs{display:grid;gap:var(--s-4)}
.doc{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);padding-block:var(--s-5);border-top:1px solid var(--seam);max-width:80ch}
.doc>.icon{width:28px;height:28px;color:var(--ed-accent)}
.doc h2{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.1}
.doc p{color:var(--fg-2);margin-top:var(--s-2)}
.doc .btn{margin-top:var(--s-4)}
.contacts{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.contacts li{border-top:1px solid var(--seam);padding-top:var(--s-4)}
.contacts h2{font-family:var(--ed-display);font-size:var(--t-lg)}
.partners{display:grid;gap:var(--s-6)}
.partners h3{font-size:var(--t-sm);font-weight:600;color:var(--fg-2);margin-bottom:var(--s-3)}
.partners ul{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.partner{min-width:180px;min-height:96px;display:flex}
.partner>*{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--s-4);border:1px solid var(--seam);text-decoration:none}
.partner--logo>*{background:#fff;border-color:#fff}
.partner img{max-height:64px;width:auto}
.partner__text{font-size:var(--t-sm);line-height:1.25;color:var(--fg)}
@container main (min-width:1024px){.partners{grid-template-columns:auto 1fr}}
.activity{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);padding-block:var(--s-5);border-top:1px solid var(--seam)}
.activity .row__seam{display:none}
.activity h2{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.1}
.activity h2 a{text-decoration:none}.activity h2 a:hover{color:var(--ed-accent)}
.activity__where{display:flex;gap:8px;align-items:center;font-size:var(--t-sm);margin-top:var(--s-3)}
@container main (min-width:768px){.activity{grid-template-columns:12rem 1px 1fr;gap:var(--s-5)}.activity .row__seam{display:block;background:var(--seam)}}

/* ===== Pie ===== */
.footer{padding-block:var(--s-8) var(--s-6);font-size:var(--t-sm);color:var(--fg-2);border-top:1px solid var(--seam)}
.footer__grid{display:grid;gap:var(--s-6)}
.footer__brand{font-size:1.5rem;color:var(--fg);margin-bottom:var(--s-3)}
.footer__by{margin-top:var(--s-3)}
.footer h2{font-size:var(--t-sm);font-weight:600;color:var(--fg);margin-bottom:var(--s-3)}
.footer ul{display:grid;gap:2px}
.footer li a{display:inline-flex;min-height:32px;align-items:center}
.footer a{text-decoration:none}.footer a:hover{color:var(--fg);text-decoration:underline}
.footer__legal{margin-top:var(--s-7);padding-top:var(--s-4);border-top:1px solid var(--seam);display:flex;flex-wrap:wrap;gap:var(--s-4);justify-content:space-between;color:var(--fg-3);font-size:var(--t-xs)}
@media (min-width:768px){.footer__grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.setup{min-height:60vh}

/* ===== Transiciones de vista (entre documentos, donde el navegador las soporte) ===== */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--d-view);animation-timing-function:var(--ease-out)}
::view-transition-group(*){animation-duration:var(--d-view);animation-timing-function:var(--ease-out)}

/* ===== Movimiento reducido: una alternativa por interacción, no supresión global ===== */
@media (prefers-reduced-motion:reduce){
  .edimg.is-assembling .edimg__slice{animation:fade 200ms ease-out both;animation-delay:0ms!important}
  .days__light,.link .icon{transition:none}
  .btn,.chip{transition-property:background-color,color,border-color}
  .btn:active,.chip:active{transform:none}
  .sheet,.sheet::backdrop{transition-duration:0s!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:150ms}
}
@media print{.header,.footer,.days,.filters,.filters__bar,.ednav,.protobar,.sheet{display:none!important}body{background:#fff;color:#000}.mark{color:#000;background:none}}

/* 2.2.0 · Archivo histórico: nombre histórico verificado y estado de la documentación (tokens existentes) */
.edition__name{font-size:var(--t-sm);font-weight:600;letter-spacing:.02em;color:var(--fg-2);margin-top:var(--s-2)}
.doc-st{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s-2)}
.archive-list .doc-st{margin-top:var(--s-2)}
.edition .doc-st{margin-top:var(--s-3)}
.tag--pending{border-style:dashed;color:var(--fg-3);font-weight:500}
.archive-list li.is-off h2,.archive-list li.is-off:hover h2{color:var(--fg-3)}
.archive-list li.is-off b{color:var(--fg-3)}

/* ===== 2.2.2-propuesta · correcciones puntuales de la auditoría visual 29 ===== */
/* M-01 · fotograma como imagen principal cuando no hay cartel */
.still{position:relative;aspect-ratio:3/4;background:var(--ink-1);border:1px solid var(--seam);overflow:hidden;transition:border-color var(--d-state)}
.still img{width:100%;height:100%;object-fit:cover}
.still__mark{position:absolute;left:10px;bottom:8px;font-size:11px;font-weight:600;color:#fff;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.still--wide{aspect-ratio:auto;max-width:none;background:var(--ink-1)}
.still--wide img{height:auto;object-fit:contain;display:block}
.film__art .still--wide{max-width:640px}
.tile:hover .still{border-color:var(--seam-strong)}
/* M-01 · ficha en móvil: cartela compacta sin repetir el título */
@container main (max-width:599px){.film__art .cartela{aspect-ratio:16/7}.film__art .cartela .cartela__title{display:none}.film__art .cartela .cartela__meta{bottom:6cqi}}
/* A-04 · B-03 · móvil: dos columnas por ciclo y fotogramas en dos columnas */
@container main (max-width:599px){
  .tiles--m2{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
  .tiles--m2 .tile h2,.tiles--m2 .tile h3,.tiles--m2 .tile h4{font-size:var(--t-sm);line-height:1.2}
  .tiles--m2 .tile p{font-size:12px}
  .frames{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
  .cycle{padding-block:var(--s-5)}
}
.tile h2,.tile h4{font-family:var(--ed-display);font-size:var(--t-md);font-weight:700;margin-top:var(--s-3);line-height:1.2}
.tile h2 a,.tile h4 a{text-decoration:none}.tile h2 a::after,.tile h4 a::after{content:"";position:absolute;inset:0}
/* A-04 · índice de ciclos con anclas */
.cycleidx{margin:var(--s-4) 0 var(--s-2)}
.cycleidx ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.cycleidx a{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--seam-strong);border-radius:999px;color:var(--fg);text-decoration:none;font-size:var(--t-sm)}
.cycleidx a:hover{border-color:var(--ed-accent)}
.cycleidx small{color:var(--fg-3)}
.cycle{scroll-margin-top:calc(var(--header) + 16px)}
.cycle__top{margin-top:var(--s-4);font-size:var(--t-sm)}
@container main (min-width:600px){.cycle__top{display:none}}
/* M-03 · sinopsis provisional */
.note--prov{margin-top:var(--s-2);font-size:var(--t-sm)}
/* M-05 · «Dónde verla» al final cuando aún no hay sesiones */
.film__sec--quiet h2{font-size:var(--t-md)}
/* Navegación entre películas del ciclo */
.filmnav{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--seam)}
.filmnav__cycle{grid-column:1/-1;font-size:var(--t-sm);color:var(--fg-2)}
.filmnav__cycle a{color:var(--fg)}
.filmnav a.filmnav__prev,.filmnav a.filmnav__next{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;border:1px solid var(--seam);color:var(--fg);text-decoration:none}
.filmnav a:hover{border-color:var(--seam-strong)}
.filmnav__next{grid-column:2;justify-content:flex-end;text-align:right}
.filmnav span{display:grid;font-family:var(--ed-display);font-weight:700;line-height:1.15;overflow-wrap:break-word;min-width:0}
.filmnav small{font-family:inherit;font-weight:400;font-size:12px;color:var(--fg-3)}
.filmnav .icon{flex:none}
/* B-04 · indicación de submenú desplazable */
@container main (max-width:799px){.ednav ol{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}}
/* 2.2.2 · créditos de imagen y varios ciclos */
.credit{display:block;margin-top:6px;font-size:12px;line-height:1.3;color:var(--fg-3)}
.frames li{display:block}
.filmnav+.filmnav{margin-top:var(--s-4)}
/* 2.2.3 · Agenda interactiva de portada (mismo selector de días que el programa) y estado provisional */
.row__films a{position:relative;z-index:1;color:inherit;text-decoration-color:var(--seam-strong);text-underline-offset:3px}
.row__films a:hover,.row__films a:focus-visible{color:var(--fg);text-decoration-color:var(--ed-accent)}
.row__time--tbc{font-family:var(--font-sans);font-size:var(--t-xs);font-weight:600;line-height:1.3;color:var(--fg-3)}
.tag--prov{border-style:dashed;border-color:var(--ed-accent);color:var(--ed-accent);font-weight:600;padding:0 6px;margin-left:2px;vertical-align:1px}
.row.is-prov .row__seam{background:repeating-linear-gradient(to bottom,var(--ed-accent) 0 6px,transparent 6px 12px)}
.agenda .block__head{margin-bottom:var(--s-4)}
.days--agenda{position:relative;top:auto;z-index:1;margin-bottom:var(--s-5)}
.days--agenda a:focus-visible{outline:2px solid var(--ed-accent);outline-offset:-4px}
.agenda__day:focus{outline:none}
.agenda__day:focus-visible{outline:2px solid var(--ed-accent);outline-offset:4px}
.agenda__date{font-family:var(--ed-display);font-size:var(--t-lg);line-height:1.15;margin-bottom:var(--s-3)}
.agenda__date small{display:block;font-family:var(--font-sans);font-size:var(--t-sm);font-weight:400;color:var(--fg-3);margin-top:4px}
.agenda__more{margin-top:var(--s-4)}
.agenda__empty{padding-block:var(--s-6);border-top:1px solid var(--seam)}
.agenda__empty p{margin:0 0 var(--s-3)}
.agenda__prov{margin-bottom:var(--s-3)}
@media (prefers-reduced-motion:no-preference){.agenda__day.is-in{animation:fcq-ag-in var(--d-view,.32s) var(--ease-out,ease-out)}@keyframes fcq-ag-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
/* 2.2.4 · Navegación: «N.ª edición» agrupa programa, selección, actividades, sedes y PDF */
.nav{align-items:center}
.navdd{position:relative}
.navdd>summary{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;font-size:var(--t-sm);color:var(--fg-2);cursor:pointer;list-style:none;transition:color var(--d-state)}
.navdd>summary::-webkit-details-marker{display:none}
.navdd>summary .icon{width:16px;height:16px;transition:transform var(--d-state)}
.navdd[open]>summary .icon{transform:rotate(180deg)}
.navdd>summary:hover,.navdd[open]>summary,.navdd>summary[aria-current]{color:var(--fg)}
.navdd>summary[aria-current]{text-decoration:underline;text-decoration-color:var(--ed-accent);text-underline-offset:.5em}
.navdd>summary:focus-visible{outline:2px solid var(--ed-accent);outline-offset:-2px}
.navdd__panel{position:absolute;top:calc(100% + 6px);left:-8px;z-index:30;min-width:17rem;padding:var(--s-3) 0;background:var(--ink-0);border:1px solid var(--seam-strong);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.navdd__panel ul{list-style:none;margin:0;padding:0}
.navdd__panel a{display:flex;align-items:center;min-height:44px;padding:0 var(--s-4);font-size:var(--t-sm);color:var(--fg-2);text-decoration:none}
.navdd__panel a:hover,.navdd__panel a:focus-visible,.navdd__panel a[aria-current]{color:var(--fg);background:var(--ink-1)}
.navdd__panel a[aria-current]{box-shadow:inset 2px 0 0 var(--ed-accent)}
.navdd__panel a:focus-visible{outline:2px solid var(--ed-accent);outline-offset:-2px}
.navdd__home{gap:10px;border-bottom:1px solid var(--seam);margin-bottom:var(--s-2);padding-bottom:var(--s-2)!important;color:var(--fg)!important}
@media (prefers-reduced-motion:no-preference){.navdd[open] .navdd__panel{animation:fcq-ag-in .18s var(--ease-out,ease-out)}}
.sheet__group{margin:var(--s-5) 0 0;font-size:var(--t-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ed-accent)}
.sheet__list{list-style:none;margin:0 0 var(--s-2);padding:0}
.sheet__list a{font-family:var(--font-sans)!important;font-size:var(--t-md)!important;min-height:48px!important}
.doc--home{margin-top:var(--s-4)}
.cycle__screens{margin-top:var(--s-5)}
.cycle__screens h3,.features__screens h2{font-family:var(--ed-display);font-size:var(--t-md);margin-bottom:var(--s-2)}
.features__screens{margin-top:var(--s-7)}
.activity__dates{list-style:none;margin:var(--s-3) 0 0;padding:0;display:grid;gap:var(--s-2)}
.activity__dates li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding-top:var(--s-2);border-top:1px solid var(--seam);font-size:var(--t-sm)}
.activity__dates time{font-weight:600}
.activity__dates a{color:var(--fg-2)}
.pdflink{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:var(--s-3);font-size:var(--t-sm)}
.pdflink .link{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.pdflink small{color:var(--fg-3)}
.doc h2 small{display:block;font-family:var(--font-sans);font-size:var(--t-sm);font-weight:400;color:var(--fg-3);margin-top:4px}
.hero__pdf{margin-top:var(--s-3);font-size:var(--t-sm)}
.hero__pdf .link{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.hero__pdf small{color:var(--fg-3)}
.block__links{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0}
.cycle__intro{max-width:62ch;color:var(--fg-2)}.cycle__intro p+p{margin-top:var(--s-2)}
.navdd__panel a,.navdd__panel a[aria-current]{text-decoration:none}
.cycle__meta{font-size:var(--t-sm);color:var(--fg-3);margin-top:4px}
.when__time--n small{display:block;font-family:var(--font-sans);font-size:var(--t-sm);font-weight:600;color:var(--fg-2);margin-top:2px}
/* 2.2.5 · Programación «Próximamente» */
.soon{position:relative;padding:var(--s-7) 0 var(--s-6);border-top:1px solid var(--seam);border-bottom:1px solid var(--seam)}
.soon__mark{margin-bottom:var(--s-4)}
.soon__title{font-family:var(--ed-display);font-size:clamp(2.6rem,9vw,7rem);line-height:.92;letter-spacing:-.01em;margin:0}
.soon__title span{display:block;font-size:.42em;letter-spacing:.02em;color:var(--fg-2);margin-bottom:.15em}
.soon__title em{font-style:italic;background:var(--ed-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
@supports not (background-clip:text){.soon__title em{color:var(--ed-accent)}}
.soon__lead{max-width:46ch;margin-top:var(--s-4);font-size:var(--t-md);color:var(--fg-2)}
.soon__dates{margin-top:var(--s-2);font-family:var(--ed-display);font-size:var(--t-md)}
.soon__links{margin-top:var(--s-5);gap:12px}
.page-head--soon{padding-bottom:0}
.block--soon{margin-top:var(--s-4)}

/* ===== 2.2.7 · Portadas de ciclo (sistema 29.ª: paleta --ed-1…5, degradado y corte) ===== */
.cyc{container-type:inline-size;position:relative;aspect-ratio:3/4;background:var(--ink-1);border:1px solid var(--seam);overflow:hidden;isolation:isolate;transition:border-color var(--d-state)}
.cyc__field,.cyc__shape{position:absolute;pointer-events:none;transition:transform var(--d-focal) var(--ease-out),opacity var(--d-view)}
.cyc__field{inset:0;background:var(--cy)}
.cyc__num{position:absolute;top:7cqi;left:8cqi;font-family:var(--ed-display);font-weight:700;font-size:max(12px,7cqi);line-height:1;color:var(--ink-0);letter-spacing:-.02em;z-index:2}
.cyc__name{position:absolute;left:8cqi;right:8cqi;bottom:19cqi;display:grid;gap:1.5cqi;z-index:2;color:var(--ink-0)}
.cyc__name small{color:inherit;font-size:max(11px,5.2cqi);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.cyc__name b{font-family:var(--ed-display);font-weight:700;font-size:var(--cn,19cqi);line-height:.9;letter-spacing:-.035em;overflow-wrap:normal;word-break:normal;hyphens:manual}
.cyc__meta{position:absolute;left:8cqi;bottom:7cqi;font-size:max(11px,4.4cqi);color:var(--ink-0);z-index:2;opacity:.8}
.cyc__rule{position:absolute;left:0;right:0;bottom:0;height:max(3px,1.4cqi);background:var(--ed-grad);z-index:3}
/* 01 · Deseo: campo con corte diagonal ascendente y el nombre a sangre */
.cyc--deseo .cyc__field{top:14%;clip-path:polygon(0 18.6%,100% 0,100% 100%,0 100%)}
.cyc--deseo .cyc__num{color:var(--cy)}
.cyc--deseo .cyc__name b{font-style:italic}
.cyc--deseo .cyc__shape{width:70cqi;height:70cqi;right:-26cqi;top:-26cqi;border-radius:50%;border:1px solid var(--cy);opacity:.55}
/* 02 · Disidencia: franja vertical y nombre girado, a contrapelo */
.cyc--disidencia{background:var(--ink-2)}
.cyc--disidencia .cyc__field{left:auto;width:30%;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
.cyc--disidencia .cyc__num{color:var(--cy)}
.cyc--disidencia .cyc__name{left:7cqi;right:auto;top:20cqi;bottom:17cqi;color:var(--cy);align-content:end}
.cyc--disidencia .cyc__name b{writing-mode:vertical-rl;transform:rotate(180deg);justify-self:start;line-height:1}
.cyc--disidencia .cyc__name small{order:2}
.cyc--disidencia .cyc__meta{color:var(--fg-2);opacity:1}
.cyc--disidencia .cyc__shape{right:6cqi;top:12cqi;width:14cqi;height:14cqi;background:var(--ink-1);transform:rotate(45deg)}
/* 03 · Destino: horizonte y sol que asoma */
.cyc--destino .cyc__field{background:none}
.cyc--destino .cyc__shape{left:50%;top:22%;width:78cqi;height:78cqi;margin-left:-39cqi;border-radius:50%;background:var(--cy);clip-path:inset(0 0 50% 0)}
.cyc--destino .cyc__field::after{content:"";position:absolute;left:0;right:0;top:calc(22% + 39cqi);height:1px;background:var(--cy)}
.cyc--destino .cyc__num{color:var(--cy)}
.cyc--destino .cyc__name,.cyc--destino .cyc__meta{color:var(--cy)}
.cyc--destino .cyc__meta{color:var(--fg-2);opacity:1}
/* 04 · Documental: visor de cámara y nombre centrado */
.cyc--documental .cyc__field{inset:9cqi;background:none;border:0;
  background:linear-gradient(var(--cy),var(--cy)) top left/14cqi 1.2cqi,linear-gradient(var(--cy),var(--cy)) top left/1.2cqi 14cqi,
  linear-gradient(var(--cy),var(--cy)) top right/14cqi 1.2cqi,linear-gradient(var(--cy),var(--cy)) top right/1.2cqi 14cqi,
  linear-gradient(var(--cy),var(--cy)) bottom left/14cqi 1.2cqi,linear-gradient(var(--cy),var(--cy)) bottom left/1.2cqi 14cqi,
  linear-gradient(var(--cy),var(--cy)) bottom right/14cqi 1.2cqi,linear-gradient(var(--cy),var(--cy)) bottom right/1.2cqi 14cqi;background-repeat:no-repeat}
.cyc--documental .cyc__shape{left:50%;top:44%;width:6cqi;height:6cqi;margin:-3cqi;border-radius:50%;background:var(--cy)}
.cyc--documental .cyc__num{top:14cqi;left:15cqi;color:var(--cy)}
.cyc--documental .cyc__name{left:15cqi;right:15cqi;bottom:24cqi;color:var(--cy)}
.cyc--documental .cyc__name b{letter-spacing:-.02em}
.cyc--documental .cyc__meta{left:15cqi;bottom:14cqi;color:var(--fg-2);opacity:1}
/* 05 · Joven: bloque superior y nombre de gran cuerpo */
.cyc--joven .cyc__field{bottom:auto;height:72%;clip-path:polygon(0 0,100% 0,100% 88.9%,0 100%)}
.cyc--joven .cyc__name{bottom:auto;top:24cqi}
.cyc--joven .cyc__name b{line-height:.82}
.cyc--joven .cyc__meta{color:var(--fg-2);opacity:1}
.cyc--joven .cyc__shape{left:8cqi;bottom:20cqi;width:30cqi;height:1.2cqi;background:var(--cy)}
/* Movimiento sutil al pasar por encima */
@media (prefers-reduced-motion:no-preference){
  .tile--cycle:hover .cyc--deseo .cyc__shape{transform:translate(-4cqi,4cqi)}
  .tile--cycle:hover .cyc--disidencia .cyc__field{transform:translateX(-3cqi)}
  .tile--cycle:hover .cyc--destino .cyc__shape{transform:translateY(-5cqi)}
  .tile--cycle:hover .cyc--documental .cyc__field{transform:scale(.96)}
  .tile--cycle:hover .cyc--joven .cyc__shape{transform:scaleX(1.8);transform-origin:left}
}
.tile--cycle:hover .cyc{border-color:var(--cy)}
.tile--cycle:hover h3,.tile--cycle:hover .tile__name{color:var(--cy)}
.tile__name{font-family:var(--ed-display);font-size:var(--t-md);font-weight:700;margin-top:var(--s-3);line-height:1.2}
.tile__name a{text-decoration:none}.tile__name a::after{content:"";position:absolute;inset:0}
.tile a:focus-visible{outline:none}.tile:has(a:focus-visible) .cyc,.tile:has(a:focus-visible) .cartela{outline:2px solid var(--fg);outline-offset:3px}
/* Índice de ciclos con portadas (Cortometrajes) */
.cycleidx--cards{margin:var(--s-5) 0 var(--s-4)}
.cycleidx--cards ol.cycards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,46%);gap:var(--s-3);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--s-3)}
.cycleidx--cards li{scroll-snap-align:start}
.cycleidx--cards li p:last-child{font-size:var(--t-sm);color:var(--fg-3)}
@container main (min-width:600px){.cycleidx--cards ol.cycards{grid-auto-columns:minmax(170px,30%)}}
@container main (min-width:1024px){.cycleidx--cards ol.cycards{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}}
/* Secciones de ciclo teñidas con su color */
.cycle--tinted{border-top:0;position:relative}
.cycle--tinted::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--cy)}
.cycle--tinted .cycle__head::before{content:"";display:block;width:48px;height:6px;background:var(--cy);margin-bottom:var(--s-2)}

/* ===== 2.2.7 · Cartela de respaldo para obras sin cartel ni fotogramas ===== */
.cartela{background:var(--ink-1);isolation:isolate}
.cartela__piece,.cartela__cut{display:none}
.cartela__band{position:absolute;left:0;right:0;top:0;height:46%;background:var(--cc);clip-path:polygon(0 0,100% 0,100% 80%,0 100%)}
.cartela__num{position:absolute;right:-3cqi;top:-2cqi;font-family:var(--ed-display);font-weight:700;font-size:44cqi;line-height:1;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:max(1px,.5cqi) var(--ink-0);opacity:.55;z-index:1}
.cartela__mark{top:8cqi;left:8cqi;color:var(--ink-0);font-size:max(10px,4cqi);line-height:1.35;letter-spacing:.08em;text-transform:uppercase;font-weight:700;z-index:2;max-width:46%}
.cartela__title{bottom:27cqi;z-index:2}
.cartela__meta{z-index:2;right:8cqi;bottom:8cqi;display:grid;gap:.6cqi;color:var(--fg-3);line-height:1.3}.cartela__meta b{font-weight:600;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cartela__rule{position:absolute;left:8cqi;bottom:0;width:30cqi;height:max(3px,1.4cqi);background:var(--cc)}
.tile:hover .cartela{border-color:var(--cc)}
@container main (max-width:599px){.film__art .cartela .cartela__band{height:100%;clip-path:polygon(0 0,62% 0,46% 100%,0 100%)}.film__art .cartela .cartela__num{right:auto;left:30cqi;font-size:40cqi}.film__art .cartela .cartela__meta{left:auto;right:6cqi;text-align:right;max-width:44%}}

.cycleidx--cards a{display:inline;min-height:0;padding:0;border:0;border-radius:0;font-size:inherit}
.cycleidx--cards .tile__name{font-size:var(--t-base)}
@container main (max-width:599px){.film__art .cartela .cartela__meta{display:none}.film__art .cartela .cartela__num{display:block;left:auto;right:4cqi;top:auto;bottom:-6cqi;font-size:34cqi;-webkit-text-stroke-color:var(--cc);opacity:.9}.film__art .cartela .cartela__rule{display:none}}

/* ===== 2.2.9 · Franja institucional (orden del cartel oficial, logos en blanco, sin cajas) ===== */
.inst{--lh:46px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-6) clamp(var(--s-6),5vw,var(--s-9));padding:var(--s-6) 0 var(--s-5);border-top:1px solid var(--seam);border-bottom:1px solid var(--seam)}
.inst__group{display:grid;gap:var(--s-4);min-width:0}
.inst__group--org{padding-right:clamp(var(--s-6),5vw,var(--s-9));border-right:1px solid var(--seam)}
.inst__label{font-size:var(--t-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.inst ul{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-5) clamp(var(--s-6),4.5vw,var(--s-8));list-style:none;margin:0;padding:0}
.inst__item{display:flex;align-items:center;min-height:var(--lh)}
.inst__item a{display:flex;align-items:center;text-decoration:none}
.inst__item img{display:block;height:calc(var(--lh) * var(--k,1));width:auto;max-width:100%;object-fit:contain}
.inst__item--corp img{background:var(--fg);padding:8px 12px;border-radius:4px;box-sizing:content-box}
.inst__item--text .partner__text{font-family:var(--ed-display);font-size:var(--t-md);color:var(--fg)}
@container main (min-width:1024px){.inst{--lh:52px;flex-wrap:nowrap}.inst ul{flex-wrap:nowrap}}
@container main (max-width:599px){.inst{--lh:34px;display:grid;gap:var(--s-5)}.inst__group--org{padding-right:0;border-right:0;padding-bottom:var(--s-5);border-bottom:1px solid var(--seam)}
  .inst ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--s-5);align-items:center}.inst__item img{max-width:100%;height:auto;max-height:calc(var(--lh) * var(--k,1))}}
.cycle--special{position:relative;border-top:0;margin-top:var(--s-6);padding:var(--s-6) var(--s-5);background:linear-gradient(var(--ink-1),var(--ink-1)) padding-box,var(--ed-grad) border-box;border:1px solid transparent}
.cycle__kicker{font-size:var(--t-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
/* 2.2.10 · Fotografía de la dirección */
.dirphoto{display:flex;align-items:center;gap:var(--s-4);margin-top:var(--s-5)}
.dirphoto img{width:96px;height:96px;object-fit:cover;object-position:50% 30%;border-radius:50%;background:var(--ink-2)}
.dirphoto figcaption{font-size:var(--t-sm);color:var(--fg-2)}
/* 2.2.10 · Archivo: miniatura del cartel en cada fila (proporción íntegra) */
.archive-list li{grid-template-columns:4.5rem 1px minmax(0,1fr) 56px auto}
.archive-list__poster{width:56px;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;background:var(--ink-1)}
.archive-list__poster img{width:100%;height:100%;object-fit:contain}
.archive-list__poster:empty{background:none}
@container main (max-width:599px){.archive-list li{grid-template-columns:3.25rem 1px minmax(0,1fr) 48px;gap:var(--s-3)}.archive-list li>span:last-child{display:none}.archive-list b{font-size:var(--t-lg)}.archive-list__poster{width:48px}}
@container main (min-width:1024px){.archive-list li{grid-template-columns:5rem 1px minmax(0,1fr) 72px auto}.archive-list__poster{width:72px}}
/* 2.2.10 · Cartelas pequeñas: sin el número de fondo, para que la marca no se solape */
@container (max-width:240px){.cartela__num{display:none}.cartela__mark{max-width:80%}}

/* 2.2.11 · Créditos y textos legales */
.footer__credit{margin:var(--s-3) 0 0;color:var(--fg-3);font-size:var(--t-xs)}
.footer__credit a{color:inherit;text-decoration:underline;text-decoration-color:var(--seam-strong);text-underline-offset:2px}
.footer__credit a:hover{color:var(--fg);text-decoration-color:currentColor}
.footer__credit a:focus-visible{outline:2px solid var(--ed-accent);outline-offset:3px;border-radius:2px;color:var(--fg)}
.legal-doc ul{padding-left:1.2em;margin:0 0 var(--s-4)}.legal-doc li{margin:.3em 0}
.legal-doc .table-wrap{overflow-x:auto;margin:0 0 var(--s-4)}
.legal-doc table{border-collapse:collapse;width:100%;min-width:520px;font-size:var(--t-sm)}
.legal-doc th,.legal-doc td{border:1px solid var(--seam);padding:.5em .7em;text-align:left;vertical-align:top}
.legal-doc code{font-size:.92em}
.legal-doc a,.legal-doc li{overflow-wrap:anywhere}
.legal-doc .table-wrap:focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px}
.legal-doc .legal-date{color:var(--fg-3);font-size:var(--t-sm)}
.legal-pend{background:#ffe066;color:#111;padding:0 .2em;cursor:help}
.legal-note{border-left:3px solid #ffe066;padding:.4em .8em;font-size:var(--t-sm);color:var(--fg-2)}

/* 2.2.12 · Equipo (El Festival): lista editorial, sin tarjetas */
.team__list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));column-gap:var(--s-7);border-top:1px solid var(--seam)}
.team__list li{display:flex;flex-direction:column;gap:4px;padding:var(--s-4) 0;border-bottom:1px solid var(--seam)}
.team__name{font-family:var(--ed-display);font-size:var(--t-md);line-height:1.15;color:var(--fg)}
.team__role{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}

/* 2.2.13 · Noticias con imagen destacada (notas de prensa) */
.article__body--media{display:grid;gap:var(--s-6)}
@media (min-width:960px){.article__body--media{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.article__media{position:sticky;top:96px}}
.article__media{margin:0}.article__media img{width:100%;height:auto;display:block;border:1px solid var(--seam)}
@media (max-width:959px){.article__media{order:-1;max-width:420px}}
.prose .press-highlights{list-style:none;padding:0;border-left:2px solid var(--ed-accent);padding-left:var(--s-4);margin:0 0 var(--s-5);color:var(--fg)}
.article:has(.article__body--media){max-width:calc(72ch + 340px + var(--s-6) + 2 * var(--margin))}
