/* ============================================================
   Front — componentes interiores generados desde los datos JSON
   (subnavegación de tarjetas, tablas de cifras, programación,
   compañías, premios, descargas, etc.). Usa los tokens de site.css.
   ============================================================ */

.page-body{max-width:1160px;}
.page-body.is-wide{max-width:var(--maxw);}

/* Cabecera de página interior: más compacta y títulos más contenidos */
.page-hero__inner{padding:clamp(44px,6.5vw,86px) var(--gut) clamp(28px,4vw,50px);}
.page-hero .crumbs{margin-bottom:13px;}
.page-hero h1{font-size:clamp(1.85rem,4.3vw,3.3rem);line-height:.96;}
.page-hero .lead{font-size:clamp(.96rem,1.2vw,1.08rem);margin-top:15px;}
/* Cabecera compacta: la mitad de alto. Para páginas a las que se vuelve a menudo
   (galería fotográfica), donde una cabecera alta obliga a desplazarse cada vez.
   Lo que fija el alto es el min-height de .page-hero--img, no el relleno: hay que
   reducir los dos, y con la misma especificidad o más para ganarle. */
.page-hero--img.page-hero--compact{min-height:clamp(150px,17vw,250px);}
.page-hero--img.page-hero--compact .page-hero__inner{padding-top:clamp(22px,3.2vw,43px);padding-bottom:clamp(14px,2vw,25px);}
.page-hero--compact .page-hero__inner{padding:clamp(22px,3.2vw,43px) var(--gut) clamp(14px,2vw,25px);}
.page-hero--compact .crumbs{margin-bottom:8px;}
.page-hero--compact h1{font-size:clamp(1.5rem,3.2vw,2.4rem);}
.page-hero--compact .lead{margin-top:9px;}

/* Texto interior: párrafos algo más pequeños y JUSTIFICADOS (más elegante) */
.page-body p,
.prose p,
.comp__body p,
.entity p,
.award__body p{font-size:.96rem;line-height:1.72;text-align:justify;hyphens:auto;-webkit-hyphens:auto;}
.prose-list li{font-size:.95rem;}
.page-body .lead,
.prose p.lead{font-size:1.12rem;line-height:1.55;text-align:left;color:var(--ink);hyphens:none;}
/* No justificar textos cortos/fichas */
.showcard__meta,.space__meta,.team__name,.infobox span,.histrow__v,.estab li{text-align:left;}

/* Detalle del cartel: acento en degradado bajo los títulos de sección + kicker serif coral */
.section-h::after{content:"";display:block;width:62px;height:4px;border-radius:4px;background:var(--grad-poster);margin-top:16px;}
.kicker{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:none;letter-spacing:.01em;font-size:1.15rem;font-style:italic;color:var(--coral-600);}
.prose-h{border-left:3px solid var(--coral);padding-left:14px;}

/* ---- Subnavegación de sección (rejilla de tarjetas) ---- */
.subnav{background:var(--cream);border-bottom:1px solid var(--line);}
.subnav .wrap{padding-top:22px;padding-bottom:22px;padding-left:24px;padding-right:24px;}
.subnav__grid{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,230px));justify-content:center;gap:16px;align-items:stretch;}
.subnav__card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .18s, box-shadow .18s, border-color .18s;}
.subnav__card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--coral);}
.subnav__media{aspect-ratio:16/10;background-size:cover;background-position:center;}
.subnav__label{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:2.6em;padding:9px 8px 11px;font-family:var(--serif);font-weight:var(--serif-wt);
  text-transform:uppercase;font-size:.86rem;line-height:1.06;letter-spacing:.012em;color:var(--ink);}
.subnav__card.is-active{border-color:var(--coral);box-shadow:0 0 0 1.5px var(--coral),var(--shadow-sm);}
.subnav__card.is-active .subnav__label{color:var(--coral-600);}

/* ---- Presentación (texto traducible + cartel vertical) ---- */
.presgrid{display:grid;grid-template-columns:1.55fr .85fr;gap:clamp(28px,4vw,56px);align-items:start;}
.prestext{min-width:0;}
.presposter{margin:0;position:sticky;top:90px;}
.presposter img{width:100%;height:auto;border-radius:16px;box-shadow:var(--shadow-lg);display:block;}
.pres__sub{font-family:var(--serif);font-style:italic;color:var(--coral-600);font-size:1.25rem;margin:2px 0 22px;}
.intro__flags{display:flex;gap:9px;margin-bottom:18px;}
.flag{width:34px;height:22px;border-radius:4px;overflow:hidden;padding:0;cursor:pointer;border:1px solid var(--line-ink);background:none;display:block;opacity:.6;transition:opacity .15s,box-shadow .15s,transform .15s;}
.flag svg{width:100%;height:100%;display:block;}
.flag:hover{opacity:1;}
.flag.is-active{opacity:1;box-shadow:0 0 0 2px var(--coral);transform:translateY(-1px);}
@media(max-width:860px){.presgrid{grid-template-columns:1fr;}.presposter{position:static;max-width:400px;margin:10px auto 0;}}

/* ---- Cuerpo editorial: párrafos a 2 columnas + listas en celda de color ---- */
.bodyblocks{max-width:100%;}
.txtflow{max-width:70ch;}
.txtcols{columns:2;column-gap:clamp(30px,4vw,52px);}
/* Intro a dos columnas: anula el tope de ancho de .prose (interior.css) para ocupar toda la columna */
.prose.txtcols{max-width:none;}
.txtcols p{break-inside:avoid;margin:0 0 16px;}
.txtcols .lead{column-span:all;margin:0 0 18px;}
.bodyblocks .section-h{margin-top:10px;}
.two .txtcols{column-count:1;}
@media(max-width:760px){.txtcols{column-count:1;}}

.objbox{background:linear-gradient(135deg,rgba(0,0,0,.08),rgba(194,168,143,.09));
  border:1px solid var(--line);border-left:4px solid var(--coral);border-radius:16px;
  padding:22px clamp(20px,3vw,30px);margin:22px 0;}
.objbox ul{columns:2;column-gap:clamp(28px,3.5vw,44px);list-style:none;padding:0;margin:0;}
.objbox li{break-inside:avoid;position:relative;padding:7px 0 7px 24px;font-size:.94rem;line-height:1.55;color:var(--ink-soft);text-align:left;}
.objbox li::before{content:"";position:absolute;left:0;top:13px;width:9px;height:9px;border-radius:50%;background:var(--coral);}
@media(max-width:620px){.objbox ul{columns:1;}}

/* ---- Prose ---- */
.prose--wide{max-width:72ch;}
.prose-list{margin:0 0 20px;padding-left:1.2em;color:var(--ink-soft);}
.prose-list li{margin:0 0 9px;line-height:1.55;}
.prose-h{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.5rem;color:var(--ink);margin:28px 0 12px;line-height:1.1;}
.prose-h4{font-family:var(--serif);font-size:1.2rem;color:var(--violet-700);margin:22px 0 8px;}
.prose-closing{font-family:var(--serif);font-weight:var(--serif-wt);font-style:italic;color:var(--coral-600);font-size:1.3rem;margin-top:18px;}
.page-figure{border-radius:18px;overflow:hidden;margin:0;box-shadow:var(--shadow-md);aspect-ratio:4/5;}
.page-figure--wide{aspect-ratio:16/9;max-height:480px;margin:0 auto 8px;}
.page-figure--natural{aspect-ratio:auto;}
.page-figure--poster{aspect-ratio:auto;background:transparent;box-shadow:none;display:flex;justify-content:center;}
/* object-fit cover (faltaba en interiores: estaba solo en home.css) */
.imgfill{width:100%;height:100%;object-fit:cover;display:block;}
.imgnat{width:100%;height:auto;display:block;}
.page-figure--poster img{width:auto;max-width:100%;max-height:760px;height:auto;border-radius:16px;box-shadow:var(--shadow-lg);}
.page-note{color:var(--ink-soft);font-size:.9rem;margin:14px 0;}
.footnote{color:var(--ink-soft);font-size:.82rem;border-left:2px solid var(--line);padding-left:12px;margin:10px 0;}

/* ---- Tablas de datos (cifras / alojamientos) ---- */
.datatable{margin:0 0 34px;}
.datatable__cap{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.3rem;color:var(--ink);margin:0 0 12px;}
.datatable__scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;}
.datatable table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--paper);}
.datatable th{background:var(--ink);color:var(--cream);text-align:left;font-family:var(--sans);font-weight:700;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:12px 14px;}
.datatable td{padding:10px 14px;border-top:1px solid var(--line);color:var(--ink-soft);}
.datatable tr:nth-child(even) td{background:rgba(0,0,0,.035);}
.datatable .is-total td,.datatable .is-avg td{font-weight:700;color:var(--ink);background:rgba(194,168,143,.10);border-top:2px solid var(--coral);}
.datatable__note{font-size:.82rem;color:var(--ink-soft);margin-top:10px;}

.highlights{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0;}
.highlight{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:18px 22px;}
.highlight__v{display:block;font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.8rem;color:var(--violet-700);}
.highlight__l{font-size:.82rem;color:var(--ink-soft);}

/* ---- Espacios de Feria (foto redondeada + texto limpio, sin caja) ---- */
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,34px);}
.space{display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.space:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.space__fig{position:relative;aspect-ratio:4/3;overflow:hidden;margin:0;line-height:0;}
.space__count{position:absolute;bottom:10px;right:10px;background:rgba(20,12,35,.72);color:#fff;
  font-family:var(--sans);font-size:.7rem;font-weight:700;padding:4px 9px;border-radius:999px;line-height:1;}
.space__more{display:inline-block;margin-top:12px;font-family:var(--sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;font-size:.7rem;color:var(--coral-600);}
.venue__meta{font-family:var(--sans);font-weight:700;font-size:.78rem;color:var(--coral-600);text-transform:uppercase;letter-spacing:.04em;margin:0 0 16px;}
.space__fig img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.space:hover .space__fig img{transform:scale(1.04);}
.space__body{border:0;padding:18px 20px 22px;background:none;display:flex;flex-direction:column;flex:1 1 auto;}
.space__body h3{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.5rem;line-height:1.04;color:var(--violet-700);margin:0 0 12px;}
.space__meta{font-family:var(--sans);font-weight:700;font-size:.72rem;color:var(--coral-600);margin:0 0 14px;
  text-transform:uppercase;letter-spacing:.07em;line-height:1.5;}
.space__body p{margin:0;color:var(--ink-soft);font-size:.88rem;line-height:1.65;text-align:left;hyphens:none;}

/* ---- Programación ---- */
.showlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.showcard{display:flex;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;transition:border-color .16s,transform .16s;}
.showcard:hover{border-color:var(--violet);transform:translateY(-2px);}
.showcard__time{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.3rem;color:var(--coral-600);flex:none;min-width:54px;}
.showcard__company{font-family:var(--sans);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--violet-700);}
.showcard__title{font-family:var(--serif);font-size:1.15rem;color:var(--ink);margin:3px 0 6px;line-height:1.1;}
.showcard__meta{font-size:.8rem;color:var(--ink-soft);margin:0 0 8px;}

/* ---- Compañías ---- */
.complist{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.comp{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.comp__fig{aspect-ratio:16/10;overflow:hidden;margin:0;line-height:0;background:var(--cream);}
.comp__body{padding:20px;}
.comp__name{font-family:var(--sans);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--coral-600);}
.comp__show{font-family:var(--serif);font-size:1.3rem;color:var(--ink);margin:4px 0 10px;}
.comp__body p{color:var(--ink-soft);font-size:.9rem;}
.comp__links{font-size:.84rem;color:var(--violet-700);}
.comp__links a{text-decoration:underline;text-decoration-color:var(--coral);}

/* ---- Premios ---- */
.awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;}
.award{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.award__fig{aspect-ratio:16/10;overflow:hidden;margin:0;line-height:0;background:var(--cream);}
.award__body{padding:20px;}
.award__cat{font-family:var(--sans);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--coral-600);}
.award__show{font-family:var(--serif);font-size:1.35rem;color:var(--ink);margin:6px 0 4px;}
.award__company{color:var(--violet-700);font-weight:600;margin:0;}

/* ---- Listas de enlaces ---- */
.linklist{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:8px;}
.linklist li{padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);}
.linklist a{color:var(--violet-700);text-decoration:underline;text-decoration-color:var(--coral);font-weight:600;}
.linklist__label{font-weight:700;color:var(--ink);}
.linklist__desc{color:var(--ink-soft);}

/* ---- Patrocinadores (Organización) ---- */
/* Banda blanca continua con todos los logos (Organización) */
.sponsorboard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 34px;}
.sponsorgrp{margin:0 0 26px;}
.sponsorgrp:last-child{margin-bottom:0;}
.sponsorgrp__h{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--coral-600);margin:0 0 16px;}
.sponsorgrp__logos{display:flex;flex-wrap:wrap;gap:26px 34px;align-items:center;}
.sponsorgrp__logo{display:flex;align-items:center;justify-content:center;padding:4px;}
/* Alto por defecto; cada logo puede llevar su propio alto (style="height:NNpx") desde el panel */
.sponsorgrp__logo img{height:60px;width:auto;max-width:260px;object-fit:contain;}
@media (max-width:560px){ .sponsorboard{padding:22px 20px;} .sponsorgrp__logos{gap:20px 24px;} }

/* ---- Equipo ---- */
.team{border-top:1px solid var(--line);margin-top:18px;}
.team__row{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.team__role{font-family:var(--sans);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--violet-700);}
.team__name{font-family:var(--serif);font-size:1.2rem;color:var(--ink);}

/* ---- Ediciones anteriores (con banner/cartel) ---- */
.editions{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.edition{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;overflow:hidden;transition:transform .16s,box-shadow .16s,border-color .16s;}
.edition:hover{border-color:var(--coral);transform:translateY(-3px);box-shadow:var(--shadow-md);}
.edition__banner{display:block;line-height:0;aspect-ratio:267/65;background:var(--ink);overflow:hidden;}
.edition__banner img{width:100%;height:100%;object-fit:cover;display:block;}
.edition__meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:11px 15px;}
.edition__label{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.2rem;color:var(--ink);}
.edition__year{font-size:.82rem;color:var(--ink-soft);font-weight:600;}
@media (max-width:560px){ .editions{grid-template-columns:1fr 1fr;gap:12px;} }

/* ---- Contacto / entidades / info ---- */
.contactbox{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:520px;}
.contactbox h3{font-family:var(--serif);font-size:1.5rem;color:var(--ink);margin:0 0 10px;}
.contactbox p{margin:6px 0;color:var(--ink-soft);}
.contactbox a{color:var(--violet-700);text-decoration:underline;text-decoration-color:var(--coral);}

.entities{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;}
.entity{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:14px;padding:22px;}
.entity h3{font-family:var(--serif);font-size:1.3rem;color:var(--ink);margin:0 0 8px;}
.entity p{margin:0;color:var(--ink-soft);font-size:.92rem;}

.infobox{border:1px solid var(--line);border-left:4px solid var(--coral);border-radius:14px;overflow:hidden;
  max-width:560px;margin:14px 0 26px;background:var(--cream);box-shadow:var(--shadow-sm);}
.infobox__row{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line);}
.infobox__row:last-child{border-bottom:0;}
.infobox__ic{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--coral-600);}
.infobox__ic svg{width:18px;height:18px;fill:currentColor;}
.infobox__ic svg[stroke]{fill:none;}
.infobox__k{font-family:var(--sans);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--coral-600);flex:0 0 auto;}
.infobox__v{margin-left:auto;text-align:right;font-weight:600;color:var(--ink);font-size:.95rem;word-break:break-word;}
.infobox__v a{color:var(--ink);text-decoration:none;}
.infobox__v a:hover{text-decoration:underline;text-decoration-color:var(--coral);}

.infogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.infocard{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;}
.infocard h4{font-family:var(--serif);font-size:1.15rem;color:var(--ink);margin:0 0 8px;}
.infocard p{margin:3px 0;color:var(--ink-soft);font-size:.88rem;}

/* ---- Chips / categorías / establecimientos ---- */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{font-family:var(--sans);font-weight:600;font-size:.78rem;padding:7px 13px;border-radius:999px;background:rgba(0,0,0,.08);border:1px solid var(--line-ink);color:var(--violet-700);}
.catblock{margin:0 0 26px;}
.estab{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;}
.estab li{padding:8px 0;border-bottom:1px dotted var(--line);color:var(--ink-soft);font-size:.92rem;}
.estab strong{color:var(--ink);}

/* ---- Bases (premios) ---- */
.bases .base{border-top:1px solid var(--line);padding:22px 0;}
.base__h{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;font-size:1.25rem;color:var(--violet-700);margin:0 0 12px;}

/* ---- Vídeos ---- */
.videoblock{margin:6px 0 18px;}
.videoblock .prose-h{margin-bottom:8px;}
.videoblock .lead{max-width:62ch;}
.videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;}
.videos--single{grid-template-columns:minmax(0,1fr);gap:30px;}
.video{margin:0;}
.video__frame{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:0 14px 34px rgba(40,24,70,.16);}
.video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video figcaption{margin-top:10px;font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.02rem;color:var(--violet-700);line-height:1.3;}

/* ---- Historia / créditos / recursos ---- */
.histlist{border-top:1px solid var(--line);}
.histrow{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.histrow__k{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.1rem;color:var(--ink);}
.histrow__k em{font-family:var(--sans);font-style:normal;font-size:.78rem;color:var(--ink-soft);font-weight:400;}
.histrow__v{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.02rem;color:var(--coral-600);text-align:right;}
.credits p,.resources p{margin:8px 0;color:var(--ink-soft);}
.credits__role{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;color:var(--violet-700);}
.credits a,.resources a{color:var(--violet-700);text-decoration:underline;text-decoration-color:var(--coral);}

/* ---- Recursos (tarjetas) ---- */
.reslist{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;margin:14px 0 8px;}
.rescard{display:flex;align-items:center;justify-content:space-between;gap:24px;text-decoration:none;
  padding:24px 28px;border:1px solid var(--line);border-radius:14px;background:#fff;
  transition:transform .18s,box-shadow .18s,border-color .18s;}
.rescard:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(40,24,70,.12);border-color:transparent;}
.rescard__title{display:block;font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.28rem;color:var(--violet-700);line-height:1.2;}
.rescard__desc{display:block;margin-top:6px;font-size:.92rem;color:var(--ink-soft);line-height:1.5;}
.rescard__cta{flex:0 0 auto;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  font-size:.72rem;color:var(--coral-600);white-space:nowrap;}
.rescard:hover .rescard__cta span{display:inline-block;transform:translateX(3px);transition:transform .18s;}

/* ---- Libro de Firmas (homenaje a Rosa Mª García Cano) ---- */
.lf__banner{max-width:1100px;margin:0 auto;padding:18px 20px 0;}
.lf__banner img{width:100%;height:auto;display:block;border-radius:16px;box-shadow:0 18px 46px rgba(40,24,70,.18);}
.lf__wrap{max-width:1100px;}
.lf__intro{max-width:62ch;margin:6px auto 4px;text-align:center;font-family:var(--serif);font-style:italic;
  font-size:1.22rem;line-height:1.55;color:var(--violet-700);}
.lf__count{text-align:center;font-family:var(--sans);text-transform:uppercase;letter-spacing:.12em;
  font-size:.72rem;color:var(--ink-soft);margin:8px 0 30px;}
.lf__grid{columns:3 300px;column-gap:20px;}
.firma{break-inside:avoid;margin:0 0 20px;position:relative;padding:22px 22px 18px;border-radius:14px;
  background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(40,24,70,.06);}
.firma__quote{position:absolute;top:2px;left:14px;font-family:var(--serif);font-size:3.4rem;line-height:1;
  color:var(--coral-600);opacity:.32;}
.firma blockquote{margin:10px 0 0;font-size:.92rem;line-height:1.55;color:var(--ink);}
.firma figcaption{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;}
.firma__name{font-family:var(--serif);font-weight:var(--serif-wt);color:var(--violet-700);font-size:1rem;line-height:1.2;}
.firma__date{font-size:.72rem;color:var(--ink-soft);white-space:nowrap;}
.lf__back{text-align:center;margin-top:18px;}
@media (max-width:760px){
  .lf__grid{columns:1;}
  .lf__intro{font-size:1.08rem;}
}

/* ---- Apartado multimedia: galerías ---- */
.galgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;}
.galcard{display:flex;flex-direction:column;text-decoration:none;border-radius:16px;overflow:hidden;
  background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(40,24,70,.07);
  transition:transform .2s,box-shadow .2s;}
.galcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(40,24,70,.16);}
.galcard__media{display:block;aspect-ratio:16/10;background-size:cover;background-position:center;}
.galcard__body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:3px;}
.galcard__title{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.2rem;color:var(--violet-700);line-height:1.2;}
.galcard__meta{font-size:.82rem;color:var(--ink-soft);}
.galcard__count{margin-top:6px;font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;
  font-size:.68rem;color:var(--coral-600);font-weight:700;}

/* ===================================================================
   DIVIERTEATRO — edición del año
   Paleta tomada del PDF del libro 2026: rosa y azul-violeta sobre blanco.
   Las franjas de color alternan con fondo blanco para separar los bloques.
   =================================================================== */
.dtwrap{
  /* Colores muestreados del cartel oficial 2026 (assets/img/brand/cartel-fondo-limpio.jpg):
     el fondo va de violeta arriba a coral abajo, y las campanillas son morado profundo. */
  --dt-violeta:#6456a1;
  --dt-violeta-hondo:#403080;
  --dt-coral:#f49081;
  --dt-coral-hondo:#e78882;
  --dt-degradado:linear-gradient(150deg,#6456a1 0%,#7b619e 42%,#c77f8d 74%,#f49081 100%);
  --dt-violeta-suave:#f2f0f8;
  --dt-coral-suave:#fdf1ee;
  margin-top:34px;
}
/* Las franjas se salen a 100vw, que incluye el ancho de la barra de desplazamiento
   y generaría scroll horizontal. Se recorta en el <main> de ESTA página (de ahí el
   :has), y no en el <html>: ahí rompería el "sticky" de la cabecera —comprobado—.
   El <main> no contiene ningún elemento fijo, así que recortarlo es inocuo. */
main:has(.dtwrap){overflow-x:clip;}
/* Franjas a TODO el ancho de la pantalla: se salen del contenedor de lectura y
   vuelven a meter el contenido dentro con el mismo margen que el resto de la web. */
.dtband{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  padding-block:clamp(34px,4.8vw,64px);}
/* Contenedor interno: devuelve el contenido al ancho de lectura de la web.
   Va en su propio div y no como «.dtband > *» para no pisar los estilos de las
   piezas que lleva dentro (la cartela lleva sus propios márgenes y relleno). */
.dtband__in{max-width:1160px;margin-left:auto;margin-right:auto;
  padding-left:var(--gut);padding-right:var(--gut);}
.dtband--blanca{background:#fff;}
.dtband--violeta{background:var(--dt-violeta-suave);}
.dtband--coral{background:var(--dt-coral-suave);}

/* Cartela: foto a un lado y los datos al otro; en móvil, apilado. */
.dtplay{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0;margin:0;
  border-radius:24px;overflow:hidden;background:var(--dt-degradado);color:#fff;
  box-shadow:0 18px 44px rgba(100,86,161,.30);}
.dtplay:has(.dtplay__body:only-child){grid-template-columns:1fr;}
/* El cartel se ve ENTERO sobre blanco: es un original vertical con fondo blanco,
   recortarlo se cargaría la ilustración. */
.dtplay__cartel{background:#fff;display:flex;align-items:center;justify-content:center;
  padding:clamp(18px,2.4vw,32px);}
/* La caja se adapta a la proporción del cartel (vertical) en vez de dejar franjas
   vacías a los lados: alto y ancho al gusto, ambos limitados. */
.dtplay__cartel img{width:auto;height:auto;max-width:100%;max-height:clamp(320px,42vw,540px);display:block;}
.dtplay__body{padding:clamp(24px,3.4vw,44px);display:flex;flex-direction:column;justify-content:center;gap:4px;}
.dtplay__kicker{font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;
  font-weight:800;color:rgba(255,255,255,.88);margin:0 0 6px;}
.dtplay__h{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;
  font-size:clamp(2.2rem,5.4vw,4rem);line-height:.92;margin:0 0 18px;color:#fff;
  text-shadow:0 3px 0 rgba(0,0,0,.10);}
.dtplay__datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 22px;margin:0;}
.dtplay__datos div{border-top:2px solid rgba(255,255,255,.45);padding-top:9px;}
.dtplay__datos dt{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  font-size:.66rem;color:rgba(255,255,255,.85);margin:0 0 3px;}
.dtplay__datos dd{margin:0;font-size:.95rem;line-height:1.35;color:#fff;font-weight:600;}
.dtplay__free{display:inline-block;margin:22px 0 0;align-self:flex-start;background:#fff;color:var(--dt-violeta-hondo);
  font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;
  padding:11px 22px;border-radius:999px;box-shadow:0 6px 16px rgba(0,0,0,.18);}

/* Título de sección dentro del bloque, en el violeta del cartel */
.dtwrap .section-h{color:var(--dt-violeta-hondo);}
/* El texto de la edición, a dos columnas como el resto de textos largos de la web. */
.dtprosa{columns:2;column-gap:clamp(30px,4vw,52px);}
.dtprosa p{break-inside:avoid;margin:0 0 16px;}
/* Adorno (la peonza) al final del texto: rellena la columna que queda más corta. */
.dtadorno{break-inside:avoid;margin:6px 0 0;text-align:center;}
.dtadorno img{width:clamp(120px,42%,190px);height:auto;display:inline-block;}
@media (max-width:760px){ .dtprosa{columns:1;} .dtadorno img{width:150px;} }

/* Franja de foto a todo el ancho, entre el texto y las compañías. */
.dtfoto{height:clamp(220px,26vw,380px);background-size:cover;background-position:center 62%;
  background-repeat:no-repeat;padding-block:0;}

/* Ficha de compañía: tarjeta blanca sobre la franja de color. */
.dtcia{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(18px,2.6vw,32px);
  align-items:center;margin:0 0 22px;padding:clamp(16px,2vw,24px);background:#fff;border-radius:20px;
  box-shadow:0 8px 26px rgba(0,0,0,.07);}
.dtcia:last-of-type{margin-bottom:0;}
.dtcia--sinfoto{grid-template-columns:1fr;}
.dtcia:nth-of-type(even) .dtcia__media{order:2;}
.dtcia__media{border-radius:14px;overflow:hidden;background:var(--dt-violeta-suave);}
.dtcia__media img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3;}
/* Recortes con transparencia (polaroids): enteros, sin marco ni fondo. */
.dtcia__media--recorte{background:none;border-radius:0;overflow:visible;
  display:flex;align-items:center;justify-content:center;}
.dtcia__media--recorte img{aspect-ratio:auto;width:auto;height:auto;max-width:100%;object-fit:contain;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.16));}
/* Los recortes son originales pequeños (400px): se les da la mitad de columna para
   no ampliarlos por encima de su tamaño real, que es cuando se ve la falta de nitidez.
   De paso el texto de la ficha gana ancho. */
.dtcia:has(.dtcia__media--recorte){grid-template-columns:minmax(0,.48fr) minmax(0,1.52fr);}
/* En las fichas pares la imagen va a la derecha (order:2), así que hay que
   invertir los anchos o la foto acabaría en la columna ancha y no se reduciría. */
.dtcia:nth-of-type(even):has(.dtcia__media--recorte){grid-template-columns:minmax(0,1.52fr) minmax(0,.48fr);}

/* Intro de compañías: el texto manda y la foto es un apunte pequeño a su derecha,
   en la MISMA fila. La columna de la foto se queda en algo más de 200px. */
.dtintro{display:grid;grid-template-columns:minmax(0,1fr) clamp(180px,20%,240px);
  gap:clamp(20px,3vw,36px);align-items:start;margin:0 0 30px;}
.dtintro--sinfoto{grid-template-columns:1fr;}
.dtintro__txt p{margin:0 0 14px;}
.dtintro__txt p:last-child{margin-bottom:0;}
.dtintro__foto{margin:0;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.12);}
.dtintro__foto img{width:100%;height:auto;object-fit:cover;display:block;aspect-ratio:3/4;}
.dtcia__tipo{display:inline-block;font-family:var(--sans);text-transform:uppercase;letter-spacing:.1em;
  font-size:.63rem;font-weight:800;color:#fff;background:var(--dt-coral-hondo);padding:5px 12px;
  border-radius:999px;margin:0 0 10px;}
.dtcia__nombre{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;
  font-size:clamp(1.3rem,2.3vw,1.8rem);line-height:1.02;margin:0 0 4px;color:var(--dt-violeta-hondo);}
.dtcia__esp{font-size:1.05rem;font-style:italic;color:var(--ink-soft);margin:0 0 14px;}
.dtcia__verso{margin:0 0 14px;padding:16px 20px;border:0;background:var(--dt-violeta-suave);
  border-radius:14px;font-family:var(--serif);font-size:1.02rem;line-height:1.55;color:var(--dt-violeta-hondo);}
.dtcia__txt{font-size:.95rem;line-height:1.62;margin:0 0 12px;text-align:justify;hyphens:auto;}
.dtcia__contacto{font-size:.85rem;color:var(--ink-soft);margin:8px 0 0;}
.dtcia__contacto a{color:var(--dt-coral-hondo);font-weight:700;text-decoration:underline;text-underline-offset:2px;}

/* Organiza: caja con el degradado del cartel */
.dtorg{margin:0;padding:26px 30px;border:0;border-radius:20px;background:var(--dt-degradado);color:#fff;
  box-shadow:0 14px 34px rgba(100,86,161,.26);}
.dtorg__h{font-family:var(--sans);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;
  font-weight:800;color:rgba(255,255,255,.82);margin:0 0 8px;}
.dtorg__ent{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;
  font-size:1.25rem;margin:0 0 8px;color:#fff;}
.dtorg__d{margin:0;font-size:.92rem;line-height:1.65;color:rgba(255,255,255,.88);}
.dtorg__d a{color:#fff;text-decoration:underline;text-underline-offset:2px;}

@media (max-width:820px){
  .dtintro{grid-template-columns:1fr;}
  /* Se repite el selector de las pares porque, si no, su mayor especificidad
     seguiría imponiendo las dos columnas también en móvil. */
  .dtcia:has(.dtcia__media--recorte),
  .dtcia:nth-of-type(even):has(.dtcia__media--recorte){grid-template-columns:1fr;}
  .dtplay{grid-template-columns:1fr;}
  .dtplay__media img{aspect-ratio:16/9;height:auto;}
  .dtcia{grid-template-columns:1fr;gap:16px;}
  .dtcia:nth-of-type(even) .dtcia__media{order:0;}
  /* En pantalla estrecha el texto justificado abre "ríos" feos entre palabras.
     Hace falta doble clase para ganarle a la regla global «.page-body p». */
  .dtcia .dtcia__txt{text-align:left;}
  .dtband{margin-left:calc(var(--gut) * -1);margin-right:calc(var(--gut) * -1);}
}

/* ---- Colaboradores: rejilla de logotipos ---- */
.colabgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;align-items:stretch;}
.colab{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;
  padding:18px 14px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .18s,box-shadow .18s,border-color .18s;}
a.colab:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.12);border-color:var(--coral);}
.colab__media{display:flex;align-items:center;justify-content:center;width:100%;height:74px;}
.colab__media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
.colab__name{font-family:var(--sans);font-size:.72rem;line-height:1.25;text-align:center;
  text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:700;}
a.colab:hover .colab__name{color:var(--coral-600);}
.colab__name--solo{font-size:.8rem;padding:14px 0;}
@media(max-width:600px){
  .colabgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;}
  .colab__media{height:58px;}
}

/* ---- Galería fotográfica: encabezado de cada día ---- */
.galday{font-family:var(--sans);text-transform:uppercase;letter-spacing:.09em;font-size:.82rem;
  font-weight:800;color:var(--coral-600);margin:34px 0 4px;display:flex;align-items:center;gap:12px;}
.galday::after{content:"";flex:1;height:1px;background:var(--line);}
.galgrid + .galday{margin-top:40px;}
.galday + .galgrid{margin-top:16px;}

/* ---- Vista de galería: rejilla de fotos ---- */
.gallery__meta{color:var(--ink-soft);margin:0 0 22px;font-size:.95rem;}
.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.photo{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--ink);
  aspect-ratio:4/3;box-shadow:0 6px 16px rgba(40,24,70,.08);cursor:zoom-in;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s;}
.photo:hover img{transform:scale(1.06);}
.photo__cap{position:absolute;left:0;right:0;bottom:0;padding:18px 12px 9px;color:#fff;font-size:.8rem;
  background:linear-gradient(transparent,rgba(20,12,35,.78));opacity:0;transition:opacity .2s;}
.photo:hover .photo__cap{opacity:1;}

/* ---- Lightbox ---- */
.lbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(18,10,32,.92);padding:30px;opacity:0;visibility:hidden;transition:opacity .2s;}
.lbox.open{opacity:1;visibility:visible;}
.lbox__img{max-width:92vw;max-height:84vh;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.5);}
.lbox__cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#fff;font-size:.95rem;padding:0 20px;}
.lbox__btn{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;width:52px;height:52px;
  border-radius:50%;font-size:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s;}
.lbox__btn:hover{background:rgba(255,255,255,.28);}
.lbox__prev{left:18px;}.lbox__next{right:18px;}
.lbox__close{top:18px;right:18px;width:46px;height:46px;font-size:1.3rem;}
@media (max-width:760px){
  .lbox__prev{left:6px;}.lbox__next{right:6px;}
  .lbox__btn{width:44px;height:44px;}
}

/* ---- Página de resultados de búsqueda ---- */
.page-hero--search .searchbig{display:flex;gap:10px;margin-top:18px;max-width:560px;}
.searchbig input{flex:1;border:0;border-radius:999px;padding:14px 22px;font-family:var(--sans);font-size:1rem;
  background:rgba(255,255,255,.95);color:var(--ink);box-shadow:0 8px 24px rgba(40,24,70,.18);}
.searchbig button{border:0;border-radius:999px;padding:0 26px;background:var(--coral);color:#fff;
  font-family:var(--sans);font-weight:700;cursor:pointer;font-size:.95rem;}
.searchbig button:hover{background:var(--coral-600);}
.search__count{color:var(--ink-soft);margin:0 0 20px;}
.searchres{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.searchres__item a{display:block;text-decoration:none;padding:18px 22px;border:1px solid var(--line);
  border-radius:14px;background:#fff;transition:transform .15s,box-shadow .15s,border-color .15s;}
.searchres__item a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(40,24,70,.12);border-color:transparent;}
.searchres__sec{display:block;font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;
  font-size:.68rem;font-weight:700;color:var(--coral-600);margin-bottom:3px;}
.searchres__title{display:block;font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.3rem;color:var(--violet-700);line-height:1.2;}
.searchres__snip{display:block;margin-top:6px;font-size:.9rem;color:var(--ink-soft);line-height:1.5;}
.searchres__snip mark{background:rgba(194,168,143,.28);color:inherit;padding:0 2px;border-radius:3px;}
@media (max-width:560px){ .searchbig{flex-direction:column;} .searchbig button{padding:12px;} }

/* ---- Layout tabla + notas al lado (cifras) ---- */
.tableaside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start;}
.tableaside__main{min-width:0;}
.tableaside__main .datatable{margin:0;}
.tableaside__side{padding-top:4px;}
.tableaside__side .lead{font-size:1.08rem;line-height:1.55;margin:0 0 20px;}
.tableaside__side .page-note{font-size:.92rem;line-height:1.6;color:var(--ink-soft);
  border-left:3px solid var(--coral);padding-left:18px;margin:0 0 20px;text-align:left;}
.highlights--stack{display:flex;flex-direction:column;gap:14px;margin:0 0 22px;}
.highlights--stack .highlight{background:var(--cream);border-radius:14px;padding:16px 20px;}
.highlights--stack .highlight__v{display:block;font-family:var(--serif);font-weight:var(--serif-wt);
  font-size:1.5rem;color:var(--violet-700);line-height:1.1;}
.highlights--stack .highlight__l{display:block;margin-top:4px;font-size:.85rem;color:var(--ink-soft);line-height:1.4;}
@media (max-width:860px){
  .tableaside{grid-template-columns:1fr;gap:22px;}
  .tableaside__side{padding-top:0;}
}

/* ---- Próximamente (secciones 2026 sin contenido) ---- */
.comingsoon{max-width:680px;margin:40px auto;text-align:center;padding:48px 36px;
  background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 40px rgba(40,24,70,.08);}
.comingsoon__badge{display:inline-block;font-family:var(--sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:.72rem;color:#fff;background:var(--grad-poster,linear-gradient(120deg,var(--violet-700),var(--coral)));
  padding:8px 18px;border-radius:999px;margin-bottom:22px;}
.comingsoon__h{font-family:var(--serif);font-weight:var(--serif-wt);font-size:clamp(1.6rem,3.4vw,2.3rem);
  color:var(--violet-700);line-height:1.1;margin:0 0 16px;}
.comingsoon__p{font-size:1.05rem;line-height:1.6;color:var(--ink-soft);margin:0 auto 26px;max-width:52ch;}
.comingsoon__cta{margin:0;}

/* ---- Noticias / Notas de prensa (estilo WordPress) ---- */
.wpnews{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;}
.wpcard{display:flex;flex-direction:column;text-decoration:none;background:#fff;border:1px solid var(--line);
  border-radius:16px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.wpcard:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(40,24,70,.16);}
.wpcard__media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--cream);}
.wpcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s;}
.wpcard:hover .wpcard__media img{transform:scale(1.05);}
.wpcard__body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:9px;flex:1 1 auto;}
.wpcard__meta{font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;font-weight:700;color:var(--coral-600);}
.wpcard__title{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.3rem;line-height:1.22;color:var(--violet-700);}
.wpcard__excerpt{font-size:.9rem;line-height:1.55;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
.wpcard__more{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:14px;
  font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  font-size:.72rem;color:var(--coral-600);transition:gap .16s;}
.wpcard__more svg{width:18px;height:18px;}
.wpcard:hover .wpcard__more{gap:13px;}
.wpcard--big{grid-column:span 2;flex-direction:row;}
.wpcard--big .wpcard__media{flex:0 0 52%;aspect-ratio:auto;}
.wpcard--big .wpcard__body{justify-content:center;padding:28px 30px;}
.wpcard--big .wpcard__title{font-size:1.85rem;}
.wpcard--big .wpcard__excerpt{font-size:.98rem;}

/* ---- Artículo (estilo WordPress) ---- */
.wparticle{max-width:820px;margin:0 auto;}
.wparticle__meta{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:var(--coral-600);margin:8px 0 8px;}
.wparticle__title{font-family:var(--serif);font-weight:var(--serif-wt);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.12;color:var(--violet-700);margin:0 0 24px;}
.wparticle__fig{margin:0 0 28px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);}
.wparticle__fig img{width:100%;height:auto;display:block;}
.wparticle__body p{font-size:1.04rem;line-height:1.72;margin:0 0 18px;color:var(--ink);text-align:justify;hyphens:auto;}
.wparticle__dl{margin:26px 0;}
@media (max-width:760px){
  .wpcard--big{grid-column:span 1;flex-direction:column;}
  .wpcard--big .wpcard__media{flex:auto;aspect-ratio:16/10;}
}

/* ---- Avance de Programación: rejilla de espectáculos ---- */
.proggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;}
.progcard{display:flex;flex-direction:column;text-decoration:none;background:#fff;border:1px solid var(--line);
  border-radius:16px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.progcard:hover{transform:translateY(-5px);box-shadow:0 24px 46px rgba(40,24,70,.18);}
.progcard__media{position:relative;aspect-ratio:4/3;background:var(--cream);background-size:cover;background-position:center;
  display:flex;align-items:flex-start;}
.progcard__media--empty{background:var(--grad-poster,linear-gradient(160deg,var(--violet-700),var(--coral)));}
.progcard__body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:5px;}
.progcard__co{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;font-weight:700;color:var(--coral-600);}
.progcard__t{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.22rem;line-height:1.18;color:var(--violet-700);}
.progcard__g{font-size:.8rem;color:var(--ink-soft);}

/* ---- Badges (estrenos) ---- */
.badges{display:flex;flex-wrap:wrap;gap:6px;}
.badges--compact{padding:8px;}
.badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:.62rem;padding:4px 9px;border-radius:999px;color:#fff;background:var(--coral-600);line-height:1;}
.badge svg{width:11px;height:11px;fill:currentColor;}
.badge--absoluto{background:#b5294e;}
.badge--espana{background:#c0392b;}
.badge--idioma{background:var(--violet-700);}
.badges--compact .badge{box-shadow:0 2px 8px rgba(0,0,0,.3);}

/* ---- Ficha de espectáculo ---- */
.showficha{max-width:1000px;margin:0 auto;}
.showficha__co{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:var(--coral-600);margin:8px 0 4px;}
.showficha__t{font-family:var(--serif);font-weight:var(--serif-wt);font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.1;color:var(--violet-700);margin:0 0 14px;}
.showficha .badges{margin-bottom:26px;}
.showficha__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:start;}
.showficha__fig{margin:0 0 18px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);}
.showficha__fig img{width:100%;height:auto;display:block;}
.showmeta{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin:0 0 22px;}
.showmeta dt{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;font-size:.64rem;font-weight:700;color:var(--coral-600);}
.showmeta dd{margin:2px 0 0;font-size:.95rem;color:var(--ink);line-height:1.4;}
.showficha__syn p{font-size:1.02rem;line-height:1.7;color:var(--ink);margin:0 0 14px;text-align:justify;hyphens:auto;}
.showficha__links{margin:22px 0;}
.showficha__contact{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;}
.showficha__contact p{font-size:.92rem;color:var(--ink-soft);margin:6px 0;}
@media (max-width:860px){ .showficha__grid{grid-template-columns:1fr;gap:24px;} }

@media (max-width:980px){
  .awards,.complist{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  /* En móvil la subnavegación se oculta: ya está el menú principal */
  .subnav{display:none;}
}
@media (max-width:600px){
  .awards,.complist{grid-template-columns:1fr;}
  .showlist{grid-template-columns:1fr;}
  .team__row{flex-direction:column;gap:2px;}
}
.showmeta__empty{color:var(--ink-soft);opacity:.45;}

/* Suplementos de alojamiento (profesionales-inscripcion) */
.lodging{margin:30px 0 6px;}
.lodging__title{margin:0 0 16px;}
.lodging__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.lodging__card{background:var(--cream);border:1px solid var(--line);border-radius:14px;
  border-left:4px solid var(--coral);padding:16px 20px;}
.lodging__h{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  font-size:.82rem;color:var(--coral-600);margin:0 0 10px;}
.lodging__t{width:100%;border-collapse:collapse;}
.lodging__t th{text-align:left;font-weight:600;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--line);font-size:.95rem;}
.lodging__t td{text-align:right;color:var(--ink-soft);padding:7px 0;border-bottom:1px solid var(--line);white-space:nowrap;}
.lodging__t tr:last-child th,.lodging__t tr:last-child td{border-bottom:0;}
@media (max-width:680px){ .lodging__grid{grid-template-columns:1fr;} }

/* Páginas a todo el ancho (flag "wide"): suelta los topes de lectura
   para que párrafos y columnas lleguen al ancho del contenido (p.ej. precios). */
.page-body--flush .txtflow{max-width:none;}
.page-body--flush .prose--wide{max-width:none;}

/* Página de noticias (rejilla) al ancho del vídeo: 1280 + gutter 24px */
.page-body--wide-media{max-width:var(--maxw);padding-left:24px;padding-right:24px;}

/* Shows: comunidad junto a estrenos, logo por defecto y tarjeta sin enlace */
.showficha__tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 26px;}
.showficha__tags .badges{margin:0;}
.badge--comunidad{background:var(--coral-600);}
.progcard--static{cursor:default;}
.progcard--static:hover{transform:none;}
.progcard__media--logo{background-size:62%;background-repeat:no-repeat;background-position:center;background-color:#fff;}
.showficha__fig--logo{display:flex;align-items:center;justify-content:center;background:#fff;
  aspect-ratio:4/3;padding:30px;box-shadow:var(--shadow-md);border-radius:16px;}
.showficha__fig--logo img{width:72%;height:auto;}

/* Botones de acción (inscripción + panel de gestión) */
.actionbtns{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:6px 0 30px;}
.btn--panel{background:#000;color:#fff;border:0;padding:12px 14px 12px 24px;gap:12px;}
.btn--panel:hover{background:#1f1f1f;transform:translateY(-2px);}
.btn__circle{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;
  background:var(--coral);color:#111;flex:0 0 auto;}
.btn__circle svg{width:17px;height:17px;}

/* Tablas dentro de prosa (p.ej. Política de cookies) */
.prose table,.ck-table{width:100%;border-collapse:collapse;margin:18px 0 24px;font-size:.88rem;}
.prose th,.ck-table th{background:var(--ink);color:#fff;text-align:left;padding:10px 12px;
  font-family:var(--sans);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;}
.prose td,.ck-table td{padding:10px 12px;border-top:1px solid var(--line);color:var(--ink-soft);vertical-align:top;text-align:left;}
.prose table tr:nth-child(even) td{background:rgba(0,0,0,.03);}

/* Aviso de previsualización de ficha (solo visible al editor logueado) */
.preview-note{margin:0 0 1rem;padding:.6rem .9rem;border-radius:8px;background:#fff5e6;border:1px solid #e0c089;color:#6b4f2a;font-size:.92rem;}
.preview-note strong{color:#835f3a;}

/* ===== Cuadrante de programación (rejilla días × horas) ===== */
/* En PC ocupa el 95% del ancho de la ventana (rompe el contenedor centrado). */
@media (min-width:1000px){ .cuadrante{width:95vw;max-width:95vw;margin-left:calc(50% - 47.5vw);} }

.cuadrante-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 22px;margin:0 0 18px;}
.cuadrante-top .cuadrante-legend{margin:0;}
.cuadrante-dl{flex:0 0 auto;white-space:nowrap;}
.cuadrante-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 18px;font-size:.9rem;color:var(--ink-soft);}
.cuadrante-legend__item{display:inline-flex;align-items:center;gap:6px;}
.cuadrante-legend__item img{vertical-align:middle;}
.cuadrante-legend__item strong{color:var(--coral-600);}

/* ---- Tabla completa (PC) ---- */
.cuadrante-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);}
.cuadro{border-collapse:separate;border-spacing:0;width:100%;min-width:1040px;font-size:.86rem;}
.cuadro__day{position:sticky;top:0;z-index:3;background:var(--coral-600);color:#fff;font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700;padding:12px 10px;text-align:center;}
.cuadro__corner{position:sticky;top:0;left:0;z-index:4;background:var(--coral-600);}
.cuadro__time{position:sticky;left:0;z-index:2;background:var(--cream);color:var(--coral-600);font-weight:800;font-size:.82rem;white-space:nowrap;padding:10px 12px;text-align:right;vertical-align:middle;border-bottom:1px solid var(--line);border-right:2px solid var(--coral-600);}
.cuadro__cell{vertical-align:top;padding:11px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:#fff;width:19%;transition:background .12s;}
.cuadro tbody tr:hover .cuadro__cell{background:#fdfbf8;}
.cuadro__cell.is-empty{background:#faf8f5;}
.cuadro__cell--note{text-align:center;font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:700;color:var(--coral-600);background:#f5efe7;vertical-align:middle;}

/* ---- Casilla (compartida por la tabla PC y las tarjetas móvil) ---- */
.cev{display:flex;flex-direction:column;gap:4px;}
.cev__top{display:flex;align-items:flex-start;gap:6px;}
.cev__marks{display:inline-flex;gap:3px;flex:0 0 auto;margin-top:3px;}
.cev__mark{width:16px;height:16px;}
/* El título ocupa el resto y envuelve internamente; el icono se queda en su primera línea */
.cev__title{flex:1;min-width:0;font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.02rem;line-height:1.14;color:var(--ink);text-decoration:none;}
.cev__title:hover{color:var(--coral-600);text-decoration:underline;}
.cev__co{font-style:italic;font-size:.82rem;color:var(--coral-600);text-decoration:none;line-height:1.2;}
.cev__co:hover{color:var(--ink);text-decoration:underline;}
.cev__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:1px;}
.cev__price{display:inline-block;background:rgba(131,95,58,.12);color:var(--coral-600);font-weight:800;font-size:.72rem;padding:1px 9px;border-radius:999px;}
/* Etiqueta especial (p. ej. Espectáculo inaugural) */
.cev__flag{display:inline-block;font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;font-size:.62rem;font-weight:800;color:#fff;background:var(--coral-600);padding:2px 8px;border-radius:999px;margin:2px 0 1px;}
.cev__aud{font-size:.76rem;color:var(--ink-soft);}
.cev__venue{display:inline-flex;align-items:center;gap:5px;color:#5c5c5c;text-decoration:none;margin-top:1px;}
.cev__venuename{font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:.7rem;}
.cev__venue:hover{color:var(--coral-600);}
.cev__venue:hover .cev__venuename{text-decoration:underline;}
.cev__venue--plain{color:var(--ink-soft);}
.cev__pin{width:14px;height:14px;fill:var(--coral-600);flex:0 0 auto;}
.cev__venue--plain .cev__pin{fill:#b3a89b;}
.cev__salida{display:block;font-weight:400;font-style:italic;text-transform:none;letter-spacing:0;font-size:.68rem;line-height:1.2;color:var(--ink-soft);padding-left:19px;margin-top:1px;}
.cev__pases{font-size:.72rem;color:var(--ink-soft);font-style:italic;}
.cev__paseslbl{font-style:normal;font-weight:700;color:var(--coral-600);}
/* Separador entre funciones apiladas en la misma casilla (misma hora y día) */
.cev-sep{border-top:1px dashed var(--line);margin:10px 0;}
/* Actividad sin ficha (Divierteatro, apertura…) */
.cev--note .cev__note{font-family:var(--sans);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700;color:var(--ink-soft);}
.cev--note a.cev__note{color:var(--coral-600);text-decoration:none;}
.cev--note a.cev__note:hover{text-decoration:underline;}
.cev__actdesc{font-size:.74rem;line-height:1.2;color:var(--ink-soft);text-transform:none;font-weight:400;margin:2px 0 1px;}
/* Sub-fila de actividades (banda superior de una hora): tinte suave para diferenciarla */
.cuadro__cell--acts{background:#faf7f1;}
.cuadro tbody tr:hover .cuadro__cell--acts{background:#f6f1e8;}

/* ---- Vista por días (móvil) ---- */
.cuadrante-mobile{display:none;}
.cmob__tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:0 0 14px;}
.cmob__tabs[data-cmob-tabs="bottom"]{margin:18px 0 0;}
.cmob__tab{flex:0 0 auto;font-family:var(--sans);font-weight:700;font-size:.82rem;padding:9px 15px;border-radius:999px;border:1px solid var(--coral-600);background:#fff;color:var(--coral-600);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s;}
.cmob__tab.is-active{background:var(--coral-600);color:#fff;}
.cmob__panel{display:none;}
.cmob__panel.is-active{display:block;}
.cmob__card{display:flex;gap:12px;padding:13px 14px;border:1px solid var(--line);border-left:3px solid var(--coral-600);border-radius:12px;background:#fff;margin:0 0 10px;box-shadow:var(--shadow-sm);}
.cmob__card--note{border-left-color:#cbb89f;background:#f7f1e9;}
.cmob__time{flex:0 0 auto;min-width:54px;font-weight:800;font-size:.82rem;color:var(--coral-600);padding-top:2px;}
.cmob__body{flex:1;min-width:0;}
.cmob__empty{color:var(--ink-soft);font-style:italic;padding:10px 2px;}

.cuadrante-notes{margin:20px 0 0;font-size:.82rem;color:var(--ink-soft);}
.cuadrante-notes p{margin:.4rem 0;}

@media (max-width:760px){
  .cuadrante-scroll{display:none;}
  .cuadrante-mobile{display:block;}
}

/* ===== Portada de Programación: banners grandes (imagen + título) ===== */
.progbanners{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin:6px 0 8px;}
.progbanner{position:relative;display:flex;align-items:flex-end;width:100%;min-height:clamp(190px,19vw,240px);border-radius:18px;overflow:hidden;text-decoration:none;box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--coral-600),var(--ink));transition:transform .18s,box-shadow .18s;}
.progbanner:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.progbanner__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.progbanner::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.74) 0%,rgba(0,0,0,.18) 55%,rgba(0,0,0,0) 100%);}
.progbanner__t{position:relative;z-index:1;width:100%;padding:22px 24px;font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.05;color:#fff;letter-spacing:.01em;}
/* Reclamo bajo el título del banner (p. ej. «3 galerías · 47 fotos») */
.progbanner__sub{display:block;margin-top:7px;font-family:var(--sans);font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;color:rgba(255,255,255,.85);}
@media (max-width:560px){ .progbanners{grid-template-columns:1fr;} .progbanner{min-height:170px;} }

/* ===== Galardonados (Premios Rosa Mª García Cano): contenedores imagen + texto ===== */
.ganadores{margin:clamp(32px,4.5vw,54px) 0 10px;}
/* Título algo más contenido para que entre en una línea */
.ganadores .section-h{font-size:clamp(1.35rem,3vw,2.5rem);}
.ganadores__intro{margin-bottom:10px;}
.ganador{display:grid;grid-template-columns:240px 1fr;gap:clamp(20px,3vw,40px);align-items:start;padding:28px 0;border-top:1px solid var(--line);}
.ganadores .ganador:first-of-type{border-top:none;}
.ganador__img{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;box-shadow:var(--shadow-sm);position:sticky;top:90px;}
.ganador__img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;}
.ganador__t{font-family:var(--serif);font-weight:var(--serif-wt);font-size:clamp(1.2rem,2vw,1.5rem);color:var(--coral-600);margin:0 0 12px;line-height:1.12;}
.ganador__body p{font-size:.95rem;line-height:1.7;text-align:justify;hyphens:auto;-webkit-hyphens:auto;}
.ganadores__cierre{margin:26px 0 0;font-style:italic;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:18px;}
@media (max-width:680px){ .ganador{grid-template-columns:1fr;gap:16px;padding:22px 0;} .ganador__img{aspect-ratio:16/10;max-width:360px;position:static;} }
