/* Pole Up 2027 · V3 — capa de ajustes visuales aprobados sobre tokens.css, sitio.css y paginas.css.
   Todo el refinamiento vive en este archivo: quitarlo del <head> devuelve la V2 aprobada.
   Decisiones aprobadas: Plus Jakarta Sans, logo 126 px en escritorio, fotos con color original, textura activada. */

/* ——— Tipografía (V2): Plus Jakarta Sans (texto e interfaz) + Bodoni Moda (titulares). Desde el 2026-10-16, Outfit en titulares: ver sección 11 ———
   Jakarta es más ancha que Nunito: se modera el peso 800 de etiquetas, botones y filtros. */
.pa-label, .pa-btn, .chip { font-weight: 700; }

/* ——— 8 · Textura escénica apenas perceptible en fondos oscuros ———
   Grano SVG por debajo del contenido (z-index -1 dentro de un contexto aislado). */
.pa-hero, .pi-hero, .pa-sec--stage, .pa-sec--night, .pa-foot { isolation: isolate; }
.pa-foot { position: relative; }
.pa-hero::after, .pi-hero::after, .pa-sec--stage::after, .pa-sec--night::after, .pa-foot::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url(../img/escena/grano.svg); background-size: 220px; opacity: .07; mix-blend-mode: soft-light; }

/* ——— 1 · Cabeceras interiores sin foto: escena gráfica discreta por página ——— */
.pi-hero__escena { display: none; }
.pi-hero--solo .pi-hero__escena { display: block; position: absolute; z-index: -1; pointer-events: none;
  top: var(--a-header-h); bottom: 0; right: max(0px, calc((100vw - var(--a-max)) / 2)); width: min(44%, 560px);
  background: var(--escena) no-repeat 50% 100% / contain;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%); mask-image: linear-gradient(90deg, transparent, #000 30%); }
.pi-hero--solo { min-height: clamp(26rem, 44vw, 34rem); display: flex; align-items: flex-end; }
.pi-hero--solo .pi-hero__grid { width: 100%; }
/* Ancho del titular en rem y no en ch: deja margen para EN/PT («Registration», «Regulamento e documentos»). */
.pi-hero--solo h1 { max-width: min(100%, 15em); }
.pi-hero--solo .pi-hero__grid > div { max-width: min(100%, 44rem); }
[data-pagina="categorias"] .pi-hero__escena { --escena: url(../img/escena/categorias.svg); }
[data-pagina="programa"] .pi-hero__escena { --escena: url(../img/escena/programa.svg); }
[data-pagina="inscripciones"] .pi-hero__escena { --escena: url(../img/escena/inscripciones.svg); }
[data-pagina="reglamento"] .pi-hero__escena { --escena: url(../img/escena/reglamento.svg); }
[data-pagina="ayuda"] .pi-hero__escena { --escena: url(../img/escena/ayuda.svg); }
@media (max-width: 860px) {
  .pi-hero--solo { min-height: 0; }
  .pi-hero--solo .pi-hero__escena { width: 70%; opacity: .55; }
}

/* ——— 2 · Estados pendientes: sin punteado; fondo sutil, filete continuo y acento lateral ——— */
.pi-state { border: 1px solid var(--a-stage-line); border-left: 2px solid var(--a-glow); background: rgba(255, 255, 255, .035); }
.pi-paper .pi-state, .pi-paper-2 .pi-state { border-color: var(--a-rule); border-left-color: var(--a-magenta); background: #fbf8f5; }
.pi-state__t { letter-spacing: .01em; }
.pa-tag--soft { border-style: solid; border-color: rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .05); }
.pa-sec--paper .pa-tag--soft, .pi-paper .pa-tag--soft, .pi-paper-2 .pa-tag--soft { border-color: var(--a-rule); background: var(--a-paper); }

/* ——— 3 · Tarjetas de categorías ——— */
.cat-list { gap: 1rem; }
.cat-card { position: relative; padding: 1.25rem 1.3rem 1rem; gap: .45rem; border-color: #e3d9d3; transition: border-color var(--a-dur-fast), box-shadow var(--a-dur-fast); }
.cat-card:hover { border-color: #c9bbb4; box-shadow: 0 6px 18px -12px rgba(29, 19, 32, .35); }
.cat-card h3 { font-size: clamp(1.55rem, 1.8vw, 1.8rem); line-height: 1.04; letter-spacing: -.01em; order: -1; }
.cat-card__meta { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--a-ink-muted); }
/* «Catálogo 2026»: etiqueta discreta en lugar de cápsula con borde. */
.cat-card .pa-tag--soft { order: 1; border: 0; background: none; padding: 0; border-radius: 0; font-size: .72rem; letter-spacing: .14em; color: var(--a-ink-muted); }
.cat-card .pa-tag--soft::before { content: ''; display: inline-block; width: 1.1rem; height: 1px; margin-right: .5rem; vertical-align: middle; background: currentColor; opacity: .6; }
.cat-card details { order: 2; }
/* Novedades 2027: papel cálido, filete superior magenta y nombre en tinta de acento. */
.cat-card.is-nueva { border-color: rgba(168, 40, 140, .45); box-shadow: none;
  background: radial-gradient(120% 80% at 100% 0%, rgba(229, 143, 208, .22), transparent 60%), #fffaf6; }
.cat-card.is-nueva::before { content: ''; position: absolute; inset: -1px -1px auto -1px; height: 3px; background: linear-gradient(90deg, var(--a-plum), var(--a-magenta) 55%, #e58fd0); border-radius: var(--a-radius) var(--a-radius) 0 0; }
.cat-card.is-nueva:hover { box-shadow: 0 10px 26px -14px rgba(168, 40, 140, .55); }
.cat-card.is-nueva h3 { color: var(--a-plum); }
.cat-card .pa-tag--nueva { order: -2; border: 0; background: none; padding: 0; border-radius: 0; color: var(--a-magenta); font-size: .72rem; letter-spacing: .14em; }
.cat-card .pa-tag--nueva::before { content: ''; display: inline-block; width: 7px; height: 7px; margin: 0 .55rem .1rem 0; border-radius: 50%; background: var(--a-magenta); box-shadow: 0 0 0 3px rgba(168, 40, 140, .18); vertical-align: middle; }
@media (max-width: 600px) {
  .cat-card { padding: 1rem 1.05rem .6rem; }
  .cat-card h3 { font-size: 1.5rem; }
}

/* ——— 6 · Duplas: composición gráfica propia (dos barras, haces cruzados), sin fotografía ——— */
.pa-poster__media.pa-poster__media--type, .cat-grupo__fig.is-sin-foto {
  background: url(../img/escena/duplas.svg) no-repeat 50% 100% / 100% auto,
    radial-gradient(70% 55% at 50% 10%, rgba(229, 143, 208, .28), transparent 70%),
    linear-gradient(170deg, #4a1752, #1f0b26 75%); }
.pa-poster__media--type span, .cat-grupo__fig.is-sin-foto span { display: none; }
.pa-poster--duplas .pa-poster__num { color: var(--a-glow); }
.cat-grupo__fig.is-sin-foto { background-size: auto 92%, auto, auto; background-position: 50% 100%, 0 0, 0 0; }

/* ——— 5 · Galería: díptico de dos fotos y aviso como pie de galería ——— */
.gal-fotos { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.gal-fotos + .pi-states .pi-state { border: 0; border-top: 1px solid var(--a-rule); background: none; padding: 1.1rem 0 0; max-width: none; }

/* ——— 7 · Filtros y buscadores: lenguaje editorial, mismo comportamiento ——— */
.chip { border-radius: var(--a-radius); padding: 0 1rem; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; border-color: var(--a-rule); background: rgba(255, 255, 255, .55); transition: background var(--a-dur-fast), border-color var(--a-dur-fast), color var(--a-dur-fast); }
.chip:hover { border-color: var(--a-ink-muted); background: #fff; }
.chip[aria-pressed="true"] { box-shadow: inset 0 -2px 0 var(--a-glow); }
.chip--glow:not([aria-pressed="true"]) { color: var(--a-accent-ink); border-color: rgba(168, 40, 140, .4); }
.pi-sec:not(.pi-paper) .chip { background: transparent; border-color: rgba(255, 255, 255, .22); }
.pi-sec:not(.pi-paper) .chip:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .6); }
.pi-sec:not(.pi-paper) .chip[aria-pressed="true"] { box-shadow: none; }
.cat-search label { color: var(--a-ink-muted); font-size: .72rem; }
.cat-search input { border: 0; border-bottom: 1px solid var(--a-ink); border-radius: 0; background: transparent; padding: 0 .2rem; font-size: 1rem;
  transition: border-color var(--a-dur-fast), box-shadow var(--a-dur-fast); }
.cat-search input::placeholder { color: #8f8389; font-style: italic; }
.cat-search input:hover { border-bottom-color: var(--a-magenta); }
.cat-search input:focus { outline: none; border-bottom-color: var(--a-magenta); box-shadow: 0 2px 0 var(--a-magenta); }
.cat-search input:focus-visible { outline: none; }
.cat-count { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }

/* ——— 4 · Cabecera móvil: el logo respira; Mi Pole Up pasa al menú desplegable ——— */
@media (max-width: 600px) {
  .pa-header__cta { display: none; }
  .pa-header__logo img { width: 104px; }
  .pa-menu__foot { order: -1; margin: 0 0 1.4rem; }
  .pa-menu__foot .pa-btn { display: inline-flex; width: 100%; letter-spacing: .1em; }
}
@media (max-width: 380px) {
  .pa-header__logo img { width: 100px; }
}

/* ——— Idiomas futuros: botones que pueden crecer sin partirse en sílabas ——— */
.pa-btn { text-align: center; }
@media (max-width: 600px) {
  .pa-btn { letter-spacing: .08em; }
}
.pa-nav ul { gap: clamp(.9rem, 1.6vw, 2rem); }

/* ——— Logo aprobado en escritorio: 126 px (mismo archivo provisional) ——— */
@media (min-width: 1101px) { .pa-header__logo img { width: 126px; } }

/* ——— Selector de idioma ES / EN / PT ———
   Escritorio: en la cabecera, antes de Mi Pole Up, con filete divisorio. Celular y tableta: dentro del menú desplegable.
   Cada enlace lleva el nombre completo del idioma (lang__largo) como nombre accesible; en la cabecera se ve el código. */
.lang ul { display: flex; align-items: center; gap: .1rem; }
.lang__item { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 2.4rem; padding: 0 .35rem; text-decoration: none;
  font-size: .78rem; font-weight: 700; letter-spacing: .14em; color: var(--a-on-stage-muted); position: relative; }
.lang__item:hover { color: #fff; }
.lang__item.is-current { color: #fff; border-bottom: 0; }
.lang__item.is-current::after { content: ''; position: absolute; left: 50%; bottom: 9px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--a-glow); }
.lang--cabecera { padding-right: var(--a-space-3); border-right: 1px solid rgba(255, 255, 255, .2); }
.lang--cabecera .lang__largo, .lang--pie .lang__largo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lang--menu .lang__corto { display: none; }
.lang--menu ul { gap: .2rem 1.4rem; flex-wrap: wrap; }
.lang--menu .lang__item { font-size: .95rem; letter-spacing: .04em; padding: 0; min-width: 0; }
.lang--menu .lang__item.is-current::after { bottom: 6px; left: 0; margin-left: 0; width: 100%; height: 1px; border-radius: 0; }
.lang--pie { margin-top: 1rem; }
.lang--pie ul { margin-left: -.35rem; }
@media (max-width: 1100px) {
  .lang--cabecera { display: none; }
  .pa-menu .lang--menu { display: block; }
  .pa-menu__foot { flex-direction: column; align-items: stretch; gap: 1rem; }
}
@media (min-width: 1101px) and (max-width: 1280px) {
  .pa-header__in { gap: var(--a-space-3); }
  .pa-nav ul { gap: clamp(.7rem, 1.2vw, 1.2rem); }
  .pa-nav__a { letter-spacing: .12em; }
  .pa-header__tools { gap: var(--a-space-2); }
  .lang--cabecera { padding-right: var(--a-space-2); }
}
/* Documentos: aviso destacado de versiones disponibles (portugués). */
.doc__banner--idiomas { background: #fbf8f5; border-left-color: var(--a-magenta); font-weight: 600; }

/* ——— 8 · Modalidades (2026-10-16): tres carteles; Duplas es subcategoría de Pole Art y de High Heels ——— */
.pa-bill { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 1101px) { .pa-poster { aspect-ratio: 2 / 3; } }
@media (max-width: 1100px) and (min-width: 601px) { .pa-bill { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pa-poster { aspect-ratio: 3 / 5; } }
@media (max-width: 600px) { .pa-bill { grid-template-columns: 1fr; } }
.cat-list[hidden], .cat-sub[hidden] { display: none; }
.cat-sub { margin-top: 1.8rem; padding-top: 1.3rem; border-top: 1px solid var(--a-rule); }
.cat-sub__t { font-family: var(--a-font-display); font-style: italic; font-size: clamp(1.5rem, 2.2vw, 1.9rem); line-height: 1.1; color: var(--a-ink); }
.cat-sub__txt { color: var(--a-ink-muted); margin-top: .25rem; }
.cat-sub .cat-list { margin-top: 1rem; }
/* Filtros (2026-10-17): .cat-card usa display:flex, que anulaba [hidden] y dejaba visibles tarjetas filtradas (p. ej. Novedades 2027). */
.cat-card[hidden] { display: none; }
/* Foto de cada sub-bloque Duplas (2026-10-17): encuadre original 3:4 completo, sin recorte. */
.cat-sub__body { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 1rem; align-items: start; margin-top: 1rem; }
.cat-sub__body .cat-list { margin-top: 0; }
.cat-sub__fig { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--a-radius); background: linear-gradient(160deg, #6a1f6e, #2a0f33 70%); }
.cat-sub__fig img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 600px) {
  .cat-sub__body { grid-template-columns: 1fr; }
  .cat-sub__fig { width: min(100%, 18rem); }
}

/* ——— 9 · Logos en sus colores originales, directamente sobre el fondo: sin filtros ni recuadros (decisión de Rodrigo, 2026-10-16). ——— */
.pa-foot__org img { filter: none; opacity: 1; }

/* ——— 10 · Jurados por edición (Programa 2027, Historia 2026): placas oficiales completas 9:16 ——— */
.jur-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(45%, 12.5rem), 1fr)); gap: clamp(.8rem, 1.6vw, 1.4rem); }
.jur img { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; border-radius: var(--a-radius); }
.jur figcaption { margin-top: .6rem; display: flex; flex-direction: column; gap: .15rem; }
.jur__nombre { font-weight: 700; font-size: 1rem; color: var(--a-ink); }
.jur__rol { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--a-accent-ink); }
.pa-sec--stage .jur__nombre { color: var(--a-on-stage); }
.pa-sec--stage .jur__rol { color: var(--a-glow); }

/* ——— 11 · Tipografía definitiva (2026-10-16): Outfit + Plus Jakarta Sans ———
   Outfit (--a-font-display): Hero 600; títulos principales, interiores y modalidades 700; menús, botones y encabezados de tarjetas 600.
   Plus Jakarta Sans (--a-font-text): párrafos, descripciones y textos de lectura, con sus pesos de siempre.
   Outfit no tiene cursiva: los elementos que eran cursivas de Bodoni pasan a rectos (sin cursiva sintética). */
:root { --a-fs-hero: clamp(2.6rem, 7.4vw, 7.8rem); --a-fs-h2: clamp(2rem, 4vw, 3.8rem); }

.pa-hero__title { font-weight: 600; line-height: .98; letter-spacing: -.035em; font-variation-settings: normal; max-width: none; }
.pa-hero__l2 { font-style: normal; }

:is(.pi-hero h1, .pa-h2, .pi-h2, .pa-h3, .pa-news__name, .pa-poster__name, .cat-grupo__head h2, .doc__head h2, .gal-ed__anio, .pa-figs__list dt) {
  font-weight: 700; letter-spacing: -.03em; line-height: 1.02; }
.pi-hero h1 em { font-style: normal; }

:is(.pa-nav__a, .pa-menu__a, .pa-menu__sub a, .pa-btn, .pa-header__cta, .chip, .lang__item) { font-family: var(--a-font-display); font-weight: 600; }
.pa-menu__a { letter-spacing: -.02em; }
:is(.pi-card h3, .cat-card h3, .doc-item__t, .pa-feat__name, .pa-plist__name, .pa-time__year, .cat-sub__t, .jur__nombre) {
  font-family: var(--a-font-display); font-weight: 600; letter-spacing: -.015em; }

/* Antes en cursiva de Bodoni: ahora rectos. */
:is(.pi-card__n, .pa-poster__num, .pa-news__num, .pa-feat__name, .pa-figs__t, .pa-time__fig--none span, .pa-steps__n, .pa-foot__lema, .vdlg__title,
    .cat-sub__t, .cat-grupo__fig.is-sin-foto span, .pa-poster__media--type span, .gal-ed__anio, .pa-h3, .pa-hero__year, .pa-notice__i) { font-style: normal; }
/* Plus Jakarta Sans está en la V3 solo en versión recta: sin cursiva sintética en el buscador. */
.cat-search input::placeholder { font-style: normal; }

/* ——— 12 · Reglamento (2026-10-16): 2027 como contenido principal; 2026 como archivo histórico discreto al final ——— */
.doc--2027 { border-top: 0; padding-top: 0; }
.doc--2027 .doc__intro { font-size: var(--a-fs-lead); max-width: 40rem; }
.doc-archivo-sec { padding: clamp(1.6rem, 4vw, 2.4rem) 0; }
.doc-archivo { max-width: 52rem; color: var(--a-ink-muted); font-size: .92rem; }
.doc-archivo summary { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; min-height: 44px; cursor: pointer; color: var(--a-ink); }
.doc-archivo__t { font-family: var(--a-font-display); font-weight: 600; font-size: 1.05rem; }
.doc-archivo__tag { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--a-ink-muted); }
.doc-archivo p { margin-top: .7rem; max-width: 46rem; }
.doc-archivo__lista { margin-top: .8rem; display: grid; gap: .5rem; }
.doc-archivo__lista li { display: flex; flex-wrap: wrap; gap: .1rem .6rem; align-items: baseline; }
.doc-archivo__meta { font-size: .82rem; color: var(--a-ink-muted); }

/* ——— 13 · Hero de Inicio (2026-10-16) ———
   Sin línea vertical: el zoom lento agrandaba la foto un 1 % y la hacía asomar unos píxeles fuera de su caja, a la izquierda del degradado,
   como una línea gris. Se quita la animación y la caja de la foto recorta su contenido. */
.pa-hero__media { overflow: hidden; }
.js-motion .pa-hero__media .m-img { animation: none; }

/* Celular: título más liviano y equilibrado, que deja respirar la foto. */
@media (max-width: 600px) {
  .pa-hero__kicker { margin-bottom: .9rem; gap: .25rem 1rem; }
  .pa-hero__title { font-size: clamp(1.95rem, 8.4vw, 2.3rem); line-height: 1.06; letter-spacing: -.025em; }
  .pa-hero__l2 { margin-top: .04em; }
  .pa-hero__lead { font-size: 1rem; line-height: 1.5; margin: 1rem 0 1.4rem; }
  .pa-hero__in { padding-bottom: 1.2rem; }
}
@media (max-width: 380px) {
  .pa-hero__title { font-size: clamp(1.9rem, 8.4vw, 2.1rem); }
}

.doc-archivo summary { list-style: none; }
.doc-archivo summary::-webkit-details-marker { display: none; }
.doc-archivo summary::after { content: '+'; font-family: var(--a-font-display); font-weight: 600; font-size: 1.1rem; color: var(--a-accent-ink); }
.doc-archivo[open] summary::after { content: '\2212'; }

/* 14 · Fotografía de la dupla: figura completa y encuadre propio en celular. */
.pa-hero__media { inset: var(--a-header-h) 0 3.5rem; }
.pa-hero__media picture { display: block; width: 100%; height: 100%; }
.pa-hero__media .m-img { object-fit: contain; }
.pa-hero__media::after { display: none; }
/* Luz oscura y fría: reemplaza el resplandor magenta sin teñir la dupla. */
.pa-hero__veil {
  background:
    radial-gradient(70% 85% at 0% 8%, rgba(42, 28, 65, .2), transparent 65%),
    linear-gradient(90deg, rgba(13, 8, 17, .92), rgba(13, 8, 17, .58) 28%, rgba(13, 8, 17, .16) 46%, transparent 60%, rgba(13, 8, 17, .08)),
    linear-gradient(0deg, var(--a-night), transparent 32%);
}
/* Fundido solo de la fotografía. A la derecha se conserva opaco el pie extendido.
   Las dos máscaras se intersectan; el encuadre y las demás capas no cambian. */
.pa-hero__media {
  background:
    radial-gradient(ellipse 42% 46% at 53% 48%, rgba(30, 39, 115, .16), transparent 100%),
    radial-gradient(ellipse 28% 39% at 27% 47%, rgba(64, 22, 93, .12), transparent 100%);
}
.pa-hero__media .m-img {
  --hero-fade-x: linear-gradient(90deg, transparent 2%, rgba(0, 0, 0, .08) 6%, rgba(0, 0, 0, .32) 13%, rgba(0, 0, 0, .72) 23%, #000 38%, #000 97%, rgba(0, 0, 0, .5) 98%, transparent 99%);
  --hero-fade-y: linear-gradient(180deg, transparent, #000 5%, #000 88%, transparent 100%);
  -webkit-mask-image: var(--hero-fade-x), var(--hero-fade-y);
  mask-image: var(--hero-fade-x), var(--hero-fade-y);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}
@media (max-width: 600px) {
  .pa-hero__media { inset: calc(var(--a-header-h) + 1.5rem) 0 auto; aspect-ratio: 1100 / 770; }
  .pa-hero__media .m-img {
    --hero-fade-x: linear-gradient(90deg, transparent, rgba(0, 0, 0, .3) .8%, rgba(0, 0, 0, .7) 1.8%, #000 3.5%, #000 97.5%, rgba(0, 0, 0, .65) 98.5%, transparent 100%);
    --hero-fade-y: linear-gradient(180deg, transparent, #000 4%, #000 94%, transparent 100%);
  }
  .pa-hero__in { padding-top: calc(var(--a-header-h) + 70vw + 3rem); }
  .pa-hero__year { opacity: .3; }
  .pa-hero__veil { background: linear-gradient(180deg, rgba(13, 8, 17, .3), transparent 18%, transparent 38%, rgba(13, 8, 17, .85) 49%, var(--a-night) 60%); }
}

/* Catálogos especiales y vistas alternativas de Galería. */
.cat-focus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding: 2rem 0; }
.cat-focus--duplas { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 58rem; margin-inline: auto; }
.cat-focus[hidden], [data-coleccion-panel][hidden] { display: none; }
.cat-focus__fig { margin: 0 0 .6rem; height: clamp(16rem, 27vw, 24rem); border-radius: var(--a-radius); overflow: hidden; background: var(--a-night); }
.cat-focus__fig img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gal-colecciones { padding-block: 1.5rem; }
@media (max-width: 900px) { .cat-focus { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cat-focus { grid-template-columns: 1fr; } .cat-focus__fig { height: 24rem; } }

/* Portada aprobada de Galeria: proporcion completa en ambos tamanos. */
.pi-hero__fig[data-img="galeria.cabecera"] img {
  display: block; width: auto; height: auto; max-width: 100%; max-height: 520px;
  aspect-ratio: 824 / 1029; object-fit: contain; margin-inline: auto;
}
