/* ============================================================
   DAMAUTOR26 — main.css
   Sistema visual institucional · Blanco y negro · Editorial
   ============================================================ */

:root {
    --font-sans: 'Outfit', sans-serif;
    --font-serif: 'Fraunces', serif;
    --ink: #0A0A0A;
    --paper: #FFFFFF;
    --hairline: rgba(10, 10, 10, 0.12);
    --hairline-strong: rgba(10, 10, 10, 0.2);
    --muted: #F5F5F5;
    --muted-fg: #6B6B6B;
    --max-w: 1440px;
    --gutter: 2rem;

    /* === ESCALA TIPOGRÁFICA ÚNICA (v2.60 · referencia: ESCALA-TIPOGRAFICA.md) =====
     * Interpolación entre 375px (móvil) y 1440px (desktop), Fraunces 600.
     * Jerarquía: 64 > 50 > 40 > 36 > 30 > 22 > 12
     * Fórmula: clamp(min, intercept + slope*100vw, max)
     * slope = (max-min)/(1440-375) * 100 ; intercept = min - 3.75*slope
     * ================================================================= */
    --fs-body: 16px;
    --fs-small: 13px;
    --fs-eyebrow: 12px;          /* Fijo */
    --ls-eyebrow: 0.22em;
    --lh-body: 1.7;
    /* Hero (dama_hero, dact-hero, equipo-hero) — 64→34 */
    --fs-hero: clamp(34px, 23.44px + 2.82vw, 64px);
    --fs-hero-title: var(--fs-hero);  /* alias retrocompat */
    /* H1 sección principal (todos los títulos de sección · h2/.dama-section__title) — 50→30 */
    --fs-h1: clamp(30px, 22.96px + 1.88vw, 50px);
    --fs-h2: var(--fs-h1);            /* alias retrocompat (cta_banner, etc) */
    /* H1-secundario (split · palmarés · sub-secciones internas) — 40→26 */
    --fs-h-sec: clamp(26px, 21.07px + 1.31vw, 40px);
    /* H3 tarjeta/vídeo/palmarés · Tabs · FAQ · ítems de lista — 30→21 */
    --fs-h3: clamp(21px, 17.83px + 0.85vw, 30px);
    /* Image accordion vertical (.conv-panel__title-compact, sólo desktop, en móvil se oculta) — 36 fijo */
    --fs-accordion-vertical: 36px;
    --fs-acordeon: var(--fs-accordion-vertical);  /* alias retrocompat */
    /* H4 sub-encabezado — 22→18 */
    --fs-h4: clamp(18px, 16.59px + 0.38vw, 22px);
    /* H5 — 18→16 */
    --fs-h5: clamp(16px, 15.30px + 0.19vw, 18px);
    /* Hero lead — entradilla, ligeramente mayor que cuerpo */
    --fs-hero-lead: clamp(16px, 14.24px + 0.47vw, 21px);

    /* === SISTEMA DE ESPACIADO (v2.58.2 · unificación) ==================== */
    --dama-section-py: 80px;
    --dama-section-py-mobile: 56px;
    /* v2.59 · espaciado interno de cabecera de módulo */
    --gap-head: 40px;        /* entre título de sección y primer contenido */
    --gap-kicker-title: 18px; /* entre kicker y título de sección */
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: clip; } /* v2.63: clip en lugar de hidden — no rompe position:sticky */
body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-sans);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    -webkit-font-smoothing: antialiased;
    letter-spacing: -0.005em;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }

.font-serif { font-family: var(--font-serif); font-weight: 300; }
.max-w-8xl { max-width: var(--max-w); margin: 0 auto; }
.sr-only, .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.skip-link { position: absolute; top: -40px; left: 0; background: var(--ink); color: var(--paper); padding: .5rem 1rem; z-index: 100; }
.skip-link:focus { top: 0; }

/* Kickers y jerarquía — token único v2.58 */
.kicker { font-family: var(--font-sans); font-size: var(--fs-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: rgba(10,10,10,0.55); font-weight: 500; line-height: 1.2; }
.muted { color: rgba(10,10,10,0.55); }
/* HERO (.h-display) — excepción a la escala única: tamaño grande, Fraunces 600 */
.h-display { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-hero-title); line-height: 1; letter-spacing: -0.025em; max-width: 22ch; text-wrap: balance; }

/* ===========================================================================
 * SVG arrow icons (v2.58) — currentColor, 14px, alineación con texto
 * ======================================================================= */
.dama-arrow {
    display: inline-block;
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    margin-left: 0.4em;
    stroke: currentColor;
    fill: none;
    flex-shrink: 0;
}
.dama-arrow--lg { width: 16px; height: 16px; vertical-align: -3px; }
/* Botones flex: el gap ya separa, no añadir margin extra */
.cta-line .dama-arrow,
.dama-cta-banner__btn .dama-arrow,
.conv-panel__cta .dama-arrow,
.servicio-card__cta .dama-arrow,
.hero-card__cta .dama-arrow,
.news-card__cta .dama-arrow,
.prensa-nota__cta .dama-arrow,
.sede-event__cta .dama-arrow,
.dc-card__cta .dama-arrow {
    margin-left: 0.35em;
    vertical-align: -1px;
}

/* Focus AA */
*:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
/* v3.96 · El contorno de foco solo se ve al navegar con teclado (Tab); no tras clic de ratón ni al volver con «atrás». Accesibilidad intacta. */
html:not(.dama-using-kbd) *:focus:not(:focus-visible),
html:not(.dama-using-kbd) *:focus-visible { outline: none !important; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--hairline); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; padding: 1rem var(--gutter); }
.site-logo__text { font-family: var(--font-serif); font-size: 2rem; line-height: 1; letter-spacing: -0.02em; }
.site-logo__tag { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.5); margin-left: 0.5rem; }
.primary-menu { display: flex; gap: 2rem; list-style: none; padding: 0; margin: 0; font-size: 13px; }
.primary-menu a { color: rgba(var(--ink-rgb,10,10,10),0.7); position: relative; }
.primary-menu a:hover { color: var(--ink); }
.site-header__ctas { display: flex; align-items: center; gap: 1rem; }
/* CTAs del header · ambos botones con mismo tamaño y opción de hover degradado
 * (font-family / size / letter-spacing / text-transform se heredan del menú
 *  cuando "Heredar fuente del menú" está activado en Theme Options) */
.btn-hazte-socio,
.btn-socios {
    padding: 0.75rem 1.25rem;
    font-size: 12px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color 0.35s ease;
    min-height: 44px;
}
.btn-hazte-socio { background: var(--accent); color: var(--ink); }
.btn-socios     { background: var(--ink);    color: var(--paper); }

/* Capa ::before con degradado · invisible por defecto, aparece en hover */
.btn-hazte-socio::before,
.btn-socios::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--dama-cta-hover-bg, linear-gradient(135deg, #0A0A0A 0%, #3F0F0F 100%));
    background-size: 200% 200%;
    opacity: 0;
    transition: opacity 0.35s ease;
    animation: dama-hover-shift 6s ease-in-out infinite alternate;
    animation-play-state: paused;
}
.btn-hazte-socio:hover,
.btn-socios:hover {
    background: transparent !important;
    color: var(--dama-cta-hover-text, var(--paper, #fff));
}
.btn-hazte-socio:hover::before,
.btn-socios:hover::before {
    opacity: 1;
    animation-play-state: running;
}
.lang-switcher { display: flex; gap: 0.25rem; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; }
.lang-switcher a { color: rgba(var(--ink-rgb,10,10,10),0.45); padding: 0 0.25rem; }
.lang-switcher .current-lang, .lang-switcher a.current-lang { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.mobile-toggle { display: none; background: transparent; border: 0; padding: 0.5rem; cursor: pointer; color: var(--ink); }
.mobile-toggle__icon { display: block; }

/* Marquee */
.marquee-wrap { background: var(--ink); color: var(--paper); overflow: hidden; border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); display: flex; align-items: center; }
.marquee-track { display: flex; align-items: center; white-space: nowrap; animation: marquee 60s linear infinite; width: max-content; }
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }
.marquee-item { display: inline-flex; align-items: center; gap: 1.5rem; padding: 0 2rem; height: 100%; font-size: 11px; letter-spacing: normal; text-transform: none; line-height: 1; color: inherit; text-decoration: none; }
.marquee-item .dot { width: 4px; height: 4px; background: currentColor; border-radius: 50%; flex-shrink: 0; }

/* Hero split */
.hero-split { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--hairline); }
.hero-card { position: relative; display: block; overflow: hidden; background: var(--ink); min-height: 78vh; }
.hero-card:first-child { border-right: 1px solid var(--hairline); }
.hero-card__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); opacity: 0.6; transition: opacity .6s ease, transform .9s ease; position: absolute; inset: 0; }
.hero-card:hover .hero-card__img { opacity: 0.75; transform: scale(1.02); }
.hero-card__overlay { position: absolute; inset: 0; padding: 2rem; color: var(--paper); display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.hero-card__top { display: flex; justify-content: space-between; }
.hero-card__top .kicker { color: rgba(255,255,255,0.8); }
.hero-card__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); line-height: 1; letter-spacing: -0.025em; text-wrap: balance; }
.hero-card__cta { display: inline-block; margin-top: 2rem; font-size: 12px; letter-spacing: 0.25em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,0.4); padding-bottom: 2px; }

/* Section header */
.section-header { display: flex; justify-content: space-between; align-items: end; gap: 2.5rem; margin-bottom: var(--gap-head, 40px); flex-wrap: wrap; }
.section-header h2 { margin: 1rem 0 0; }
.section-header--light { color: var(--paper); }

/* Que es DAMA */
.home-que-es .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.que-es__text h2 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -0.018em; margin: 1.5rem 0; }
.que-es__text p { font-size: var(--fs-body); color: rgba(var(--ink-rgb,10,10,10),0.7); max-width: 55ch; }
.ctas { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; }
.cta-line { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 12px; letter-spacing: 0.25em; text-transform: uppercase; border-bottom: 1px solid var(--hairline-strong); padding-bottom: 4px; }
.cta-line:hover { border-color: var(--ink); }
.cta-solid { background: var(--cta-bg, var(--ink)); color: var(--cta-fg, var(--paper)); padding: 0.75rem 1.25rem; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; }
.cta-solid:hover { background: rgba(var(--ink-rgb,10,10,10),0.85); }

/* Convocatorias grid */
.home-convocatorias-abiertas { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); background: #FAFAFA; }
.grid-convocatorias { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.conv-card { display: flex; flex-direction: column; gap: 1rem; padding: 2rem; border: 1px solid var(--hairline); background: var(--paper); }
.conv-card:hover { border-color: var(--ink); }
.conv-card__top { display: flex; justify-content: space-between; align-items: start; }
.conv-card__estado { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.375rem 0.75rem; background: var(--ink); color: var(--paper); }
.conv-card--proxima .conv-card__estado { background: var(--paper); color: var(--ink); border: 1px solid var(--hairline-strong); }
.conv-card--cerrada .conv-card__estado { background: var(--paper); color: rgba(var(--ink-rgb,10,10,10),0.5); border: 1px solid var(--hairline); }
.conv-card__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.1; letter-spacing: -0.012em; text-wrap: balance; }
.conv-card__footer { display: flex; justify-content: space-between; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; border-top: 1px solid var(--hairline); padding-top: 1rem; }
.conv-card__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; border-bottom: 1px solid var(--hairline-strong); align-self: start; padding-bottom: 2px; }

/* Servicios grid */
.servicios-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--hairline); border-left: 1px solid var(--hairline); }
.servicios-grid[data-count="4"] { grid-template-columns: repeat(2, 1fr); } /* v2.81: 4 módulos → 2 por fila */
.servicio-card { padding: 2.5rem; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); display: flex; flex-direction: column; gap: 1rem; background: var(--bg); color: var(--text); transition: background .25s ease, color .25s ease; }
/* Hover: se convierte en "dark skin local" → hereda todas las vars de skin dark a la vez */
.servicio-card:hover { background: var(--ink); color: var(--paper); }
.servicio-card:hover h3, .servicio-card:hover .servicio-card__cta, .servicio-card:hover p { color: var(--paper); }
.servicio-card:hover .kicker { color: var(--paper); opacity: 0.55; }
.servicio-card h3 { font-size: var(--fs-h3); line-height: 1.05; margin: 1rem 0 0; }
.servicio-card__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; margin-top: 2rem; }

/* Salas */
/* Salas (layout sólo — colores vienen del skin en data-skin) */
.home-salas { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.sala { padding: 3rem; display: flex; justify-content: space-between; align-items: end; background: var(--bg); color: var(--text); }
.sala:hover { opacity: 0.85; }
.sala__title { display: block; font-family: var(--font-serif); font-size: var(--fs-h1); line-height: 1; letter-spacing: -0.02em; color: var(--heading); }
.sala__addr { display: block; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; opacity: 0.55; margin-top: 0.75rem; }
.salas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,0.15); margin-top: 3rem; }

/* Events list */
.events-list { border-top: 1px solid var(--hairline); }
.event-row { display: grid; grid-template-columns: 2fr 2fr 6fr 2fr; gap: 1.5rem; padding: 1.75rem 0; border-bottom: 1px solid var(--hairline); align-items: baseline; }
.event-row:hover { background: rgba(var(--ink-rgb,10,10,10),0.02); }
.event-row__date { display: flex; align-items: baseline; gap: 0.5rem; }
.event-row__date .day { font-size: 3rem; line-height: 1; }
.event-row__date .ym { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.55); }
.event-row__city { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; }
.event-row__main h3 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -0.012em; }
.event-row__cta { display: flex; align-items: center; gap: 0.5rem; justify-content: flex-end; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; }

/* News grid */
.grid-news { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.news-card__image { aspect-ratio: 4/3; overflow: hidden; background: rgba(var(--ink-rgb,10,10,10),0.05); margin-bottom: 1.25rem; }
.news-card__image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); transition: filter .6s ease, transform .6s ease; }
.news-card:hover .news-card__image img { filter: grayscale(0); transform: scale(1.03); }
.news-card__meta { display: flex; gap: 1rem; font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.55); margin-bottom: 0.75rem; }
.news-card__meta .dot { width: 4px; height: 4px; background: rgba(var(--ink-rgb,10,10,10),0.3); align-self: center; }
.news-card__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -0.012em; text-wrap: balance; margin: 0 0 0.75rem; }
.news-card__excerpt { font-size: 0.9rem; color: rgba(var(--ink-rgb,10,10,10),0.65); }

/* Videos */
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.video-card__thumb { aspect-ratio: 16/9; overflow: hidden; background: var(--ink); position: relative; margin-bottom: 1rem; }
.video-card__thumb img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); opacity: 0.85; transition: filter .6s ease, opacity .6s ease; }
.video-card:hover .video-card__thumb img { filter: grayscale(0); opacity: 1; }
.video-card__thumb .play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--paper); font-size: 1.5rem; }
.video-card h3 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.15; margin: 0.75rem 0 0; letter-spacing: -0.012em; }

/* Boletines / newsletter (layout — colores del skin) */
.home-boletines { border-top: 1px solid var(--hairline); }
.boletines-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 3rem; align-items: center; }
.newsletter-form { display: flex; flex-direction: column; gap: 0.5rem; border-bottom: 1px solid currentColor; opacity: 0.95; }
.newsletter-form input { flex: 1; background: transparent; border: 0; padding: 0.75rem 0; color: inherit; font-size: 1rem; }
.newsletter-form input::placeholder { color: currentColor; opacity: 0.4; }
.newsletter-form button { background: transparent; border: 0; color: inherit; padding: 0.75rem 0; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; text-align: right; cursor: pointer; }

/* Footer */
.site-footer { border-top: 1px solid var(--hairline); background: var(--paper); font-size: 0.9rem; line-height: 1.5; }
.site-footer__inner { padding: 4rem var(--gutter) 2rem; }
.footer-grid { display: grid; grid-template-columns: 4fr 2fr 2fr 2fr 2fr; gap: 2.5rem; }
.footer-title { font-size: var(--fs-h3); line-height: 1; letter-spacing: -0.02em; font-family: var(--font-serif); }
.footer-kicker { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.5); margin-bottom: 1rem; }
.footer-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; font-size: 0.9rem; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--hairline); font-size: 12px; color: rgba(var(--ink-rgb,10,10,10),0.5); }
.footer-legal { display: flex; gap: 1.5rem; }

/* Direcciones de sedes en footer · sin cursiva, jerarquía clara */
.site-footer address {
    font-style: normal;
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0 0 1.5rem;
    color: rgba(var(--ink-rgb,10,10,10),0.78);
}
.site-footer address:last-child { margin-bottom: 0; }
.site-footer address strong {
    display: block;
    font-weight: 500;
    font-style: normal;
    font-size: 0.95rem;
    letter-spacing: 0.01em;
    color: var(--ink, #0a0a0a);
    margin-bottom: 0.4rem;
}
.site-footer address a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}
.site-footer address a:hover { border-bottom-color: currentColor; }
.site-footer .footer-horario {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.8rem;
    color: rgba(var(--ink-rgb,10,10,10),0.55);
    white-space: pre-line;
}
.site-footer .footer-col p { font-size: 0.9rem; line-height: 1.55; color: rgba(var(--ink-rgb,10,10,10),0.75); }
.site-footer .footer-social { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; gap: 1.25rem; font-size: 0.8rem; letter-spacing: 0.05em; }
.site-footer .footer-social a { color: rgba(var(--ink-rgb,10,10,10),0.6); text-decoration: none; }
.site-footer .footer-social a:hover { color: var(--ink, #0a0a0a); }

/* Archives / pages */
.archive-header { padding: 3rem 0; }
.archive-title { font-size: clamp(3rem, 6vw, 6rem); line-height: 0.95; letter-spacing: -0.03em; text-wrap: balance; }
.single-back { display: inline-flex; align-items: center; gap: 0.4rem; margin-bottom: 2rem; font-size: 0.9rem; font-weight: 500; letter-spacing: 0.01em; color: rgba(var(--ink-rgb,10,10,10),0.6); text-decoration: none; transition: color 0.2s, gap 0.2s; }
.single-back svg { width: 1em; height: 1em; }
.single-back:hover { color: var(--ink, #0a0a0a); gap: 0.6rem; }
.single-title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-hero); line-height: 1; letter-spacing: -0.025em; text-wrap: balance; margin: 0.5rem 0 1.5rem; }
/* Single noticia: título, entradilla y meta dentro de la misma columna que la imagen y el cuerpo (sin desfase).
   Ojo: usamos un ancho FIJO (--single-col), no `ch`, porque `ch` en el título gigante daba un ancho enorme. */
.single-noticia { --single-col: 48rem; }
.single-noticia .single-title { max-width: var(--single-col); margin: 0 0 1.25rem; }
.single-noticia .single-body { max-width: var(--single-col); }
.single-standfirst { max-width: var(--single-col); margin: 0 0 1.5rem; font-family: var(--font-sans); font-size: clamp(1.15rem, 1.6vw, 1.375rem); line-height: 1.45; color: rgba(var(--ink-rgb,10,10,10),0.72); }
.single-noticia .single-header .meta { display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; letter-spacing: 0.01em; color: rgba(var(--ink-rgb,10,10,10),0.55); }
.single-noticia .single-header .meta .dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.single-body { font-size: 1.1rem; line-height: 1.6; color: rgba(var(--ink-rgb,10,10,10),0.8); max-width: 70ch; }
/* Single noticia — maqueta: imagen contenida como lead + más aire entre bloques */
.single-noticia__wrap { padding-top: 20px; padding-bottom: clamp(4rem, 8vw, 7rem); }
.single-thumb { margin: 0; max-width: var(--single-col); }
.single-noticia .single-back { margin-bottom: 1.25rem; }
.single-thumb img { width: 100%; height: auto; display: block; border-radius: 2px; }
.single-noticia .single-header { margin-top: clamp(2.5rem, 5vw, 4rem); }
.single-noticia .single-body { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.single-back--bottom-wrap { display: block; margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(1.5rem, 3vw, 2rem); border-top: 1px solid var(--hairline); }
.single-back--bottom { margin-bottom: 0; }
.grid-event, .grid-conv { display: grid; grid-template-columns: 7fr 5fr; gap: 4rem; }
.event-meta, .conv-meta { border: 1px solid var(--hairline); padding: 2rem; align-self: start; position: sticky; top: 7rem; }
.event-meta dl, .conv-meta dl { margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.event-meta dt, .conv-meta dt { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.55); display: inline; }
.event-meta dd, .conv-meta dd { margin: 0; display: inline; }
.event-meta div, .conv-meta div { display: flex; justify-content: space-between; padding-bottom: 0.75rem; border-bottom: 1px solid var(--hairline); }
.btn { display: inline-block; background: var(--ink); color: var(--paper); padding: 0.85rem 1.5rem; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; margin-top: 1rem; }

/* 404 */
.error-404__code { font-size: 12rem; line-height: 1; letter-spacing: -0.04em; }
.link-back { margin-top: 2rem; display: inline-block; font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; border-bottom: 1px solid var(--hairline-strong); padding-bottom: 2px; }

/* Responsive */
@media (max-width: 1024px) {
    .primary-menu, .site-header__ctas .lang-switcher { display: none; }
    .mobile-toggle { display: block; }
    .hero-split, .home-que-es .grid-2, .servicios-grid, .grid-convocatorias, .grid-news, .video-grid, .footer-grid, .salas-grid, .boletines-grid, .grid-event, .grid-conv { grid-template-columns: 1fr; }
    .hero-card { min-height: 55vh; }
    .hero-card:first-child { border-right: 0; border-bottom: 1px solid var(--hairline); }
    .event-row { grid-template-columns: 1fr; gap: 0.5rem; }
    .footer-title { font-size: var(--fs-h4); }
}

/* ============================================================
   v1.3.0 — EVENTOS con thumbnail + GALERÍA + CONVOCATORIA EDITORIAL
   ============================================================ */

/* Event row MIXTO con thumbnail */
.event-row--mixto {
    grid-template-columns: 140px 1.5fr 1.5fr 5fr 2fr;
    align-items: center;
}
.event-row__thumb {
    width: 140px;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--muted,#f5f5f5);
    border-radius: var(--card-radius, 0);
}
.event-row__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter .6s ease, transform .6s ease;
}
.event-row--mixto:hover .event-row__thumb img {
    filter: grayscale(0);
    transform: scale(1.04);
}

/* Event card (layout grid) */
.event-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
}
.event-card__thumb {
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--muted,#f5f5f5);
    border-radius: var(--card-radius, 0);
}
.event-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter .6s ease, transform .6s ease;
}
.event-card:hover .event-card__thumb img {
    filter: grayscale(0);
    transform: scale(1.03);
}
.event-card__meta {
    display: flex;
    gap: 0.5rem;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(10,10,10,0.55);
}
.event-card__title {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h3);
    line-height: 1.15;
    letter-spacing: -0.012em;
    text-wrap: balance;
    margin: 0;
}
.event-card__footer {
    display: flex;
    justify-content: space-between;
    padding-top: 1rem;
    border-top: 1px solid var(--hairline);
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

/* Single event hero full width */
.single-evento__hero {
    width: 100%;
    margin: 0;
    overflow: hidden;
    max-height: 70vh;
}
.single-evento__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(20%);
}
.single-lead {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    line-height: 1.35;
    color: rgba(10,10,10,0.75);
    margin: 2rem 0;
    max-width: 40ch;
    text-wrap: balance;
    font-weight: 300;
}

/* Gallery */
.single-gallery { margin-top: 4rem; border-top: 1px solid var(--hairline); padding-top: 3rem; }
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.75rem;
    margin-top: 1.5rem;
}
.gallery-item {
    aspect-ratio: 4/5;
    overflow: hidden;
    background: var(--muted,#f5f5f5);
}
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter .6s ease, transform .9s ease;
}
.gallery-item:hover img { filter: grayscale(0); transform: scale(1.03); }

/* ========== CONVOCATORIA EDITORIAL ========== */
.conv-hero {
    position: relative;
    background: #0A0A0A;
    color: #fff;
    min-height: 60vh;
    display: flex;
    overflow: hidden;
}
.conv-hero--full { min-height: 90vh; }
.conv-hero__bg { position: absolute; inset: 0; opacity: 0.5; }
.conv-hero__bg img {
    width: 100%; height: 100%; object-fit: cover; filter: grayscale(60%);
}
.conv-hero__overlay {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    align-items: flex-end;
}
.conv-hero__top {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 2rem;
}
.conv-hero__top .kicker { color: rgba(255,255,255,0.75); }
.conv-hero__estado {
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    padding: 0.4rem 0.75rem;
    background: #fff;
    color: #0A0A0A;
    border-radius: 0;
}
.conv-hero__estado--abierta { background: transparent; color: #6fcf97; border: 1px solid #6fcf97; border-radius: 0; }
.conv-hero__estado--proxima { background: transparent; color: #fff; border: 1px solid #fff; border-radius: 0; }
.conv-hero__estado--cerrada { background: transparent; color: rgba(255,255,255,0.5); border: 1px solid rgba(255,255,255,0.3); border-radius: 0; }
.conv-hero__estado--resultados { background: transparent; color: #fff; border: 1px solid #fff; border-radius: 0; }
.conv-hero__title {
    font-size: clamp(2.75rem, 6.5vw, 5.5rem);
    line-height: 0.98;
    letter-spacing: -0.025em;
    margin: 0;
    max-width: 18ch;
    text-wrap: balance;
}
.conv-hero__lead {
    font-size: 1.25rem;
    line-height: 1.45;
    color: rgba(255,255,255,0.85);
    margin: 1.5rem 0 0;
    max-width: 50ch;
}
.conv-hero__dates {
    display: flex;
    gap: 3rem;
    margin-top: 3rem;
    font-size: 13px;
}
.conv-hero__dates div { display: flex; flex-direction: column; gap: 0.25rem; }
.conv-hero__dates .kicker { color: rgba(255,255,255,0.55); }
.conv-hero__cta {
    display: inline-block;
    margin-top: 2.5rem;
    background: #fff;
    color: #0A0A0A;
    padding: 1rem 1.75rem;
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
}

.conv-body { padding: var(--section-py, 5rem) 0; }
.conv-block { margin: 3rem 0; }
.conv-block h2 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); letter-spacing: -0.018em; margin-bottom: 1.5rem; }
.conv-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--hairline); }
.conv-list li { display: flex; gap: 1.5rem; padding: 1.25rem 0; border-bottom: 1px solid var(--hairline); }
.conv-list .num { color: rgba(10,10,10,0.4); font-family: monospace; min-width: 2rem; }

/* FAQ */
.faq-list { border-top: 1px solid var(--hairline); }
.faq-item { border-bottom: 1px solid var(--hairline); }
.faq-item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 0;
    cursor: pointer;
    list-style: none;
    font-size: var(--fs-h3);
    font-family: var(--font-serif);
    font-weight: 600;
    line-height: 1.2;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-toggle {
    font-weight: 300;
    font-size: 1.5rem;
    transition: transform .3s ease;
}
.faq-item[open] .faq-toggle { transform: rotate(45deg); }
.faq-answer {
    padding: 0 0 1.5rem;
    color: rgba(10,10,10,0.7);
    max-width: 70ch;
    line-height: 1.6;
}

/* CTA final convocatoria */
.conv-cta-final {
    background: #0A0A0A;
    color: #fff;
    border-top: 1px solid var(--hairline);
}
.conv-cta-final__btn {
    display: inline-block;
    margin-top: 2.5rem;
    background: #fff;
    color: #0A0A0A;
    padding: 1.25rem 2rem;
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .event-row--mixto {
        grid-template-columns: 100px 1fr;
        grid-template-areas: "thumb main" "thumb meta";
        gap: 0.75rem;
    }
    .event-row--mixto .event-row__thumb { grid-area: thumb; width: 100%; aspect-ratio: 1; }
    .event-row--mixto .event-row__main { grid-area: main; }
    .event-row--mixto .event-row__date,
    .event-row--mixto .event-row__city,
    .event-row--mixto .event-row__cta { display: none; }
    .conv-hero__dates { gap: 1.5rem; flex-wrap: wrap; }
}

/* Redux Theme Options · logo imagen + footer social + header variants */
/* SVGs sin width/height intrínseco necesitan altura explícita para no colapsar. */
.site-logo__img {
    height: 40px;
    width: auto;
    max-width: 220px;
    display: block;
    object-fit: contain;
}
/* Sistema dual de logo (light + dark/white) — coexisten en el header y se
   intercambian según el contexto. Por defecto se muestra el LIGHT.
   En header transparente sobre hero oscuro se muestra el DARK (logo blanco). */
.site-logo--dual { position: relative; display: inline-flex; align-items: center; }
.site-logo--dual .site-logo__img--light { display: block; }
.site-logo--dual .site-logo__img--dark  { display: none; }
.site-header--transparent .site-logo--dual .site-logo__img--light,
body.dama-dark-header .site-logo--dual .site-logo__img--light { display: none; }
.site-header--transparent .site-logo--dual .site-logo__img--dark,
body.dama-dark-header .site-logo--dual .site-logo__img--dark { display: block; }
/* Cuando el header sticky se hace scroll (paper visible), volvemos al light. */
.site-header--sticky.is-scrolled .site-logo--dual .site-logo__img--light { display: block; }
.site-header--sticky.is-scrolled .site-logo--dual .site-logo__img--dark { display: none; }
.site-logo__text-fallback { display: inline !important; visibility: visible !important; }
.site-logo__text-fallback[hidden] { display: inline !important; }
.site-header--sticky { position: sticky; top: 0; z-index: 50; background: var(--paper); }
.site-header--transparent { background: transparent; }
.footer-social { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; }
.footer-social a { border-bottom: 1px solid var(--hairline); padding-bottom: 2px; }
.footer-social a:hover { border-color: var(--ink); }
.site-footer--cols-3 .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }

/* =============================================================================
 * FASE B · Home polish: Grid Convocatorias + Presenta Proyecto + Marquee modular
 * ============================================================================= */

/* --- Grid Convocatorias (estilo museo) ------------------------------------- */
.home-dc .section-header { margin-bottom: var(--gap-head, 40px); display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.home-dc .section-header .kicker { margin-bottom: 0.75rem; }
.home-dc .section-header h2 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -0.018em; margin: 0; max-width: 22ch; text-wrap: balance; }
.dc-card { display: flex; flex-direction: column; position: relative; overflow: hidden; background: var(--paper); border: 1px solid var(--hairline); transition: transform 0.5s cubic-bezier(0.22,1,0.36,1), border-color 0.3s; color: var(--ink); text-decoration: none; }
.dc-card:hover { border-color: var(--ink); }
.dc-card__media { position: relative; background-color: var(--muted); overflow: hidden; transition: filter 0.6s; }
.dc-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.dc-card:hover .dc-card__media img { transform: scale(1.03); }
.dc-card__placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(135deg, var(--muted) 0%, rgba(var(--ink-rgb,10,10,10),0.08) 100%); color: var(--muted-fg); }
.dc-card__placeholder span { font-size: clamp(3rem, 6vw, 6rem); letter-spacing: -0.04em; opacity: 0.3; }
.dc-card--lg .dc-card__media { aspect-ratio: 4/5; }
.dc-card--md .dc-card__media { aspect-ratio: 3/4; }
.dc-card--sm .dc-card__media { aspect-ratio: 4/3; }
.dc-card:hover .dc-card__media { filter: brightness(0.92); }

.dc-card__tag { position: absolute; top: 1rem; left: 1rem; padding: 0.35rem 0.75rem; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; background: var(--paper); color: var(--ink); border: 1px solid var(--ink); }

.dc-card__body { display: flex; flex-direction: column; gap: 0.85rem; padding: 1.5rem 1.5rem 1.75rem; flex: 1; }
.dc-card__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -0.012em; margin: 0; }
.dc-card--lg .dc-card__title { font-size: var(--fs-h1); }
.dc-card__excerpt { font-size: 0.95rem; color: var(--muted-fg); line-height: 1.55; margin: 0; max-width: 55ch; }
.dc-card__meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: auto; gap: 1rem; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted-fg); }
.dc-card__cta { color: var(--ink); }
.dc-card:hover .dc-card__cta { text-decoration: underline; text-underline-offset: 4px; }

/* Layout: mosaico (1 grande + 4 pequeños). Altura compartida. */
.dc-mosaic { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--card-gap, 1.5rem); align-items: stretch; }
.dc-mosaic > .dc-card--lg { height: 100%; }
.dc-mosaic > .dc-card--lg .dc-card__media { aspect-ratio: auto; flex: 1; min-height: 320px; }
.dc-mosaic__small { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: var(--card-gap, 1.5rem); }
.dc-mosaic__small .dc-card { height: 100%; }
.dc-mosaic__small .dc-card__media { aspect-ratio: auto; flex: 1; min-height: 160px; }
@media (max-width: 900px) {
    .dc-mosaic { grid-template-columns: 1fr; }
    .dc-mosaic__small { grid-template-columns: 1fr 1fr; }
    .dc-mosaic > .dc-card--lg .dc-card__media { aspect-ratio: 16/10; min-height: unset; }
    .dc-mosaic__small .dc-card__media { aspect-ratio: 4/3; min-height: unset; }
}

/* Layout: duo (2 grandes) */
.dc-duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--card-gap, 1.5rem); }
@media (max-width: 900px) { .dc-duo { grid-template-columns: 1fr; } }

/* Layout: grid3 (3 uniformes) */
.dc-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap, 1.5rem); }
@media (max-width: 900px) { .dc-grid3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .dc-grid3 { grid-template-columns: 1fr; } }

/* --- Presenta tu proyecto (hero editorial) -------------------------------- */
.dpp { position: relative; background-size: cover; background-position: center; background-repeat: no-repeat; overflow: hidden; isolation: isolate; }
.dpp__overlay { position: absolute; inset: 0; z-index: 1; }
.dpp--dark .dpp__overlay { background: linear-gradient(115deg, rgba(var(--ink-rgb,10,10,10),0.78) 0%, rgba(var(--ink-rgb,10,10,10),0.55) 55%, rgba(var(--ink-rgb,10,10,10),0.25) 100%); }
.dpp--light .dpp__overlay { background: linear-gradient(115deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.65) 55%, rgba(255,255,255,0.35) 100%); }
.dpp--dark { color: #fff; }
.dpp--light { color: var(--ink); }
.dpp__inner { position: relative; z-index: 2; max-width: 1200px; }
.dpp--center .dpp__inner { text-align: center; margin-left: auto; margin-right: auto; }

.dpp__kicker { color: currentColor; opacity: 0.85; margin-bottom: 1.75rem; }
.dpp__title { font-size: clamp(3rem, 7vw, 6.5rem); line-height: 0.95; letter-spacing: -0.03em; margin: 0 0 1.5rem; max-width: 18ch; text-wrap: balance; }
.dpp--center .dpp__title { margin-left: auto; margin-right: auto; }
.dpp__lead { font-size: clamp(1.05rem, 1.25vw, 1.375rem); line-height: 1.45; max-width: 60ch; opacity: 0.92; margin: 0 0 2.75rem; color: currentColor; }
.dpp--center .dpp__lead { margin-left: auto; margin-right: auto; }

.dpp__ctas { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.dpp--center .dpp__ctas { justify-content: center; }
.dpp--dark .cta-solid { background: #fff; color: #000; border-color: #fff; }
.dpp--dark .cta-solid:hover { background: transparent; color: #fff; }
.dpp--dark .cta-line { color: #fff; border-color: rgba(255,255,255,0.5); }
.dpp--dark .cta-line:hover { border-color: #fff; }

@media (max-width: 768px) {
    .dpp__title { font-size: clamp(2.25rem, 9vw, 3.5rem); }
    .dpp__lead { font-size: 1rem; }
}

/* --- Marquee modular (hereda estilos de .marquee-wrap existentes) --------- */
.marquee-item span.dot { background: var(--ink); }

/* Grid Convocatorias · empty state */
.dc-empty { text-align: center; padding: 4rem 2rem; border: 1px solid var(--hairline); }
.dc-empty .kicker { margin-bottom: 1rem; }
.dc-empty__lead { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.2; margin: 0 auto 1.5rem; max-width: 30ch; color: var(--muted-fg); }

/* Presenta tu proyecto · fondo fallback cuando no hay imagen */
.dpp--no-image.dpp--dark { background-color: var(--ink); }
.dpp--no-image.dpp--light { background-color: var(--muted, #F5F2EC); }
.dpp--no-image .dpp__overlay { background: transparent; }
.dpp { min-height: 60vh; display: flex; align-items: center; }

/* =============================================================================
 * Convocatorias Image Accordion horizontal (hero "Now showing")
 * ============================================================================= */
.conv-accordion { position: relative; }
.conv-accordion__header h2 { margin-top: 0.75rem; }
.conv-accordion__panels {
    display: flex;
    gap: 4px;
    height: 65vh;
    min-height: 520px;
    max-height: 720px;
    padding: 0 var(--gutter, 2rem) var(--section-py, 4rem);
    box-sizing: border-box;
}
.conv-panel {
    flex: 1;
    position: relative;
    overflow: hidden;
    background-color: rgba(var(--ink-rgb,10,10,10), 0.92);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: flex 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    color: #fff;
    cursor: pointer;
    min-width: 0;
}
.conv-panel:hover,
.conv-panel--active { flex: 3.2; }
.conv-panel:hover ~ .conv-panel--active,
.conv-accordion__panels:hover .conv-panel--active:not(:hover) { flex: 1; }

.conv-panel__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.85) 100%);
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 2rem 1.75rem;
}
.conv-panel__top { display: flex; justify-content: space-between; align-items: flex-start; }
.conv-panel__kicker {
    font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
    color: #fff !important; opacity: 1;
    border: 1px solid #fff; padding: 0.35rem 0.65rem;
    background: rgba(0,0,0,0.25);
}

/* Título vertical cuando el panel está comprimido (editorial) */
.conv-panel__title-compact {
    position: absolute; bottom: 2rem; left: 1.75rem; right: 1.75rem;
    writing-mode: horizontal-tb; transform: none; /* v2.82: horizontal (no rotado) */
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: clamp(17px, 0.85rem + 0.5vw, 23px);
    letter-spacing: -0.015em; line-height: 1.15;
    white-space: normal; /* v2.82: varias líneas → se lee el título completo */
    opacity: 0.95;
    transition: opacity 0.3s;
    pointer-events: none;
}
.conv-accordion--vertical .conv-panel__title-compact { display: block; }
.conv-accordion:not(.conv-accordion--vertical) .conv-panel__title-compact { display: none; }

/* Al expandir, ocultamos el título vertical y mostramos el horizontal */
.conv-panel:hover .conv-panel__title-compact,
.conv-panel--active .conv-panel__title-compact { opacity: 0; }

.conv-panel__bottom {
    transform: translateY(24px); opacity: 0;
    transition: transform 0.4s cubic-bezier(0.22,1,0.36,1) 0.1s, opacity 0.4s ease 0.1s;
    position: relative; z-index: 2;
}
.conv-panel:hover .conv-panel__bottom,
.conv-panel--active .conv-panel__bottom { transform: translateY(0); opacity: 1; }

.conv-panel__title {
    font-family: var(--font-serif); font-weight: 600;
    font-size: var(--fs-h4); line-height: 1.2; /* v2.80: otro nivel menos (antes --fs-h3) */
    letter-spacing: -0.018em; margin: 0 0 0.75rem; max-width: 22ch; color: #fff !important;
}
.conv-panel__lead {
    font-size: 14px; line-height: 1.55; opacity: 0.92;
    margin: 0 0 0.85rem; max-width: 40ch; color: #fff !important;
    font-weight: 400;
}
.conv-panel__meta { font-size: 13px; opacity: 0.8; margin: 0 0 1.25rem; color: #fff !important; }
.conv-panel__kicker { color: #fff !important; }
.conv-panel__title-compact { color: #fff !important; }
.conv-panel__cta {
    display: inline-block;
    font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
    color: #fff !important;
    border-bottom: 1px solid rgba(255,255,255,0.55); padding-bottom: 3px;
    transition: border-color 0.3s;
}
.conv-panel:hover .conv-panel__cta { border-bottom-color: #fff; }

/* Responsive · stack vertical en móvil */
@media (max-width: 768px) {
    .conv-accordion__panels {
        flex-direction: column;
        height: auto !important;
        min-height: unset; max-height: unset;
        padding-bottom: var(--section-py-mobile, 3rem);
    }
    .conv-panel { min-height: 260px; flex: none !important; }
    .conv-panel__title-compact { display: none !important; }
    .conv-panel__bottom { transform: none; opacity: 1; }
}

/* =============================================================================
 * v2.5 · RESPONSIVE COMPLETO (mobile + tablet)
 * - Tipografía fluida (clamp)
 * - Spacing fluido (clamp)
 * - Mobile drawer nav
 * - Image Accordion y Grid adaptados
 * - Touch targets 44x44
 * ============================================================================= */

/* --- Tipografía global (v2.59 · escala completa H1–H5) -------------------- */
/* HERO (.h-display + h1 página) — 96→34 */
h1, .h-display {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-hero);
    line-height: 1;
    letter-spacing: -0.025em;
    color: var(--heading, var(--ink));
}
/* H2 (título de sección de cualquier bloque del kit) — 65→30 */
h2 {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h1);
    line-height: 1.1;
    letter-spacing: -0.018em;
}
/* H3 (tarjetas, vídeos, palmarés) — 30→21 */
h3 {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h3);
    line-height: 1.2;
    letter-spacing: -0.012em;
}
/* H4 (sub-encabezados) — 22→18 */
h4 {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h4);
    line-height: 1.3;
}
/* H5 — 18→16 */
h5 {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h5);
    line-height: 1.35;
}
body {
    font-size: var(--fs-body);
    line-height: var(--lh-body);
}
.kicker {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    letter-spacing: var(--ls-eyebrow);
    text-transform: uppercase;
    line-height: 1.2;
    font-weight: 500;
}

/* iOS no-zoom on focus inputs */
input, select, textarea { font-size: 16px; }
@media (min-width: 768px) { input, select, textarea { font-size: 15px; } }

/* --- Spacing fluido ------------------------------------------------------- */
:root {
    --section-py: clamp(3rem, 8vw, 6rem);
    --section-py-mobile: clamp(2.5rem, 6vw, 4rem);
    --gutter: clamp(1rem, 4vw, 2rem);
    --card-gap: clamp(1rem, 2vw, 2rem);
}

/* --- Touch targets ≥ 44x44 ----------------------------------------------- */
.btn-socios, .cta-solid, .cta-line, .btn,
.mobile-toggle, .mobile-drawer__close, .mobile-menu a,
.conv-panel__cta, .servicio-card__cta { min-height: 44px; display: inline-flex; align-items: center; }

/* --- MOBILE DRAWER ------------------------------------------------------- */
.mobile-drawer {
    position: fixed; inset: 0; z-index: 999;
    visibility: hidden; pointer-events: none;
    opacity: 0; transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}
.mobile-drawer.is-open { visibility: visible; pointer-events: auto; opacity: 1; transition-delay: 0s; }
.mobile-drawer__backdrop {
    position: absolute; inset: 0;
    background: rgba(var(--ink-rgb,10,10,10), 0.55);
    cursor: pointer;
}
.mobile-drawer__panel {
    position: absolute; top: 0; right: 0; bottom: 0;
    width: min(90%, 420px);
    background: var(--paper);
    display: flex; flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    overflow-y: auto;
    padding: 1.5rem 1.75rem 2rem;
    box-shadow: -20px 0 60px rgba(var(--ink-rgb,10,10,10), 0.15);
}
.mobile-drawer.is-open .mobile-drawer__panel { transform: translateX(0); }
.mobile-drawer__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.5rem; }
.mobile-drawer__logo { font-size: 1.75rem; letter-spacing: -0.02em; color: var(--ink); text-decoration: none; }
.mobile-drawer__close {
    width: 44px; height: 44px; background: transparent; border: 1px solid var(--hairline);
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--ink);
}
.mobile-drawer__nav { flex: 1; }
.mobile-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.mobile-menu li { position: relative; border-bottom: 0; }
.mobile-menu > li:first-child { border-top: 0; }
.mobile-menu a {
    display: flex; align-items: center; padding: 1.1rem 0;
    font-family: var(--font-serif); font-size: 1.35rem;
    color: var(--ink); text-decoration: none; line-height: 1.2;
}
.mobile-menu a:hover { opacity: 0.7; }
.mobile-menu__expand {
    position: absolute; right: 0; top: 0.5rem; width: 44px; height: 44px;
    background: transparent; border: 0; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; color: var(--muted-fg);
    transition: transform 0.3s;
}
.mobile-menu li.is-expanded > .mobile-menu__expand { transform: rotate(45deg); }
.mobile-menu .sub-menu { list-style: none; padding: 0 0 0 1rem; margin: 0 0 0.5rem; max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.mobile-menu li.is-expanded > .sub-menu { max-height: 400px; }
.mobile-menu .sub-menu a { font-size: 1rem; padding: 0.65rem 0; font-family: var(--font-sans); color: var(--muted-fg); }
.mobile-drawer__foot { display: flex; flex-direction: column; gap: 1rem; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--hairline); }
.mobile-drawer__foot .btn-socios { justify-content: center; text-align: center; }
.mobile-drawer__langs { display: flex; gap: 1rem; justify-content: center; }
.mobile-drawer__langs ul { display: flex; gap: 1rem; list-style: none; padding: 0; margin: 0; }

body.has-drawer-open { overflow: hidden; }

/* --- Site header mobile -------------------------------------------------- */
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--hairline); }
.mobile-toggle { min-width: 44px; min-height: 44px; display: none; align-items: center; justify-content: center; }

@media (max-width: 1024px) {
    .site-header__ctas .btn-socios,
    .site-header__ctas .btn-hazte-socio { display: none; } /* movido al drawer y sticky bar móvil */
    .primary-menu { display: none; }
    .mobile-toggle { display: inline-flex; }
    .site-header__inner { padding-block: 0.75rem; }
}

/* --- Image Accordion · mobile stack vertical ----------------------------- */
@media (max-width: 767px) {
    .conv-accordion__panels {
        flex-direction: column !important;
        height: auto !important; min-height: 0 !important; max-height: none !important;
        gap: 1rem !important;
        padding-bottom: var(--section-py-mobile);
    }
    .conv-panel { flex: none !important; min-height: 280px !important; }
    .conv-panel__title-compact { display: none !important; }
    .conv-panel__bottom { transform: none !important; opacity: 1 !important; }
    .conv-panel__overlay {
        background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.55) 60%, rgba(0,0,0,0.85) 100%);
    }
}

/* En tablet: sin expand, paneles iguales pero visibles */
@media (min-width: 768px) and (max-width: 1024px) {
    .conv-panel:hover, .conv-panel--active { flex: 1; }
    .conv-panel__bottom { transform: none; opacity: 1; }
    .conv-panel__title-compact { display: none; }
    .conv-accordion__panels { min-height: 440px; height: 50vh; }
}

/* --- Grid convocatorias mobile · 1 col siempre --------------------------- */
@media (max-width: 767px) {
    .dc-mosaic, .dc-mosaic__small, .dc-duo, .dc-grid3 { grid-template-columns: 1fr !important; }
    .dc-mosaic__small { grid-template-rows: auto !important; }
    .dc-card__media { aspect-ratio: 16/10 !important; min-height: 0 !important; }
    .dc-card__title { font-size: var(--fs-h3); }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .dc-grid3 { grid-template-columns: 1fr 1fr !important; }
}

/* --- Hero split mobile: stacked, altura ajustada ------------------------- */
@media (max-width: 767px) {
    .hero-split { grid-template-columns: 1fr; }
    .hero-card { min-height: 50vh; }
    .hero-card__title { font-size: var(--fs-h1); }
}

/* --- Que es DAMA mobile -------------------------------------------------- */
@media (max-width: 767px) {
    .home-que-es .grid-2 { display: flex !important; flex-direction: column; gap: 2rem !important; }
    .home-que-es figure img { aspect-ratio: 4/3 !important; }
    /* h2 ya hereda --fs-h1 vía la regla global */
    .home-que-es .ctas { flex-direction: column; align-items: flex-start; }
    .home-que-es .ctas a { width: 100%; justify-content: center; }
}

/* --- Servicios / salas / boletines mobile -------------------------------- */
@media (max-width: 767px) {
    .servicios-grid { grid-template-columns: 1fr !important; gap: 1rem !important; }
    .servicio-card { padding: 1.75rem !important; }
    .salas-grid { grid-template-columns: 1fr !important; gap: 1.5rem; background: transparent; }
    .boletines-grid { grid-template-columns: 1fr !important; gap: 2rem !important; }
    .home-boletines h2 { font-size: clamp(1.75rem, 6vw, 2.25rem) !important; }
    .newsletter-form { flex-direction: column; gap: 0.75rem; }
    .newsletter-form input, .newsletter-form button { width: 100%; }
}

/* --- Programación / eventos mobile --------------------------------------- */
@media (max-width: 767px) {
    .event-row, .event-row--mixto {
        grid-template-columns: 100px 1fr !important;
        grid-template-areas: "thumb main" "thumb city" "thumb cta" !important;
        gap: 0.5rem 1rem;
        padding: 1.25rem 0;
    }
    .event-row__thumb { grid-area: thumb; width: 100px !important; aspect-ratio: 1/1 !important; }
    .event-row__date { display: none !important; }
    .event-row__city { grid-area: city; font-size: 11px; }
    .event-row__main { grid-area: main; }
    .event-row__main h3 { font-size: var(--fs-h4) !important; }
    .event-row__cta { grid-area: cta; justify-content: flex-start; font-size: 11px; }
    .section-header { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

/* --- News grid mobile ---------------------------------------------------- */
@media (max-width: 767px) {
    .grid-news { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
    .news-card__title { font-size: var(--fs-h3) !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .grid-news { grid-template-columns: 1fr 1fr !important; }
}

/* --- Videos grid mobile -------------------------------------------------- */
@media (max-width: 767px) { .video-grid { grid-template-columns: 1fr !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .video-grid { grid-template-columns: 1fr 1fr !important; } }

/* --- Presenta tu proyecto mobile ----------------------------------------- */
@media (max-width: 767px) {
    .dpp { min-height: 70vh; }
    .dpp__title { font-size: var(--fs-hero) !important; }
    .dpp__lead { font-size: 1rem !important; }
    .dpp__ctas { flex-direction: column; align-items: flex-start; width: 100%; }
    .dpp__ctas a { width: 100%; justify-content: center; }
}

/* --- Footer mobile: todo apilado con separadores ------------------------- */
@media (max-width: 767px) {
    .footer-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
    .footer-col { padding: 2rem 0; border-bottom: 1px solid var(--hairline); }
    .footer-col:last-child { border-bottom: 0; }
    .footer-col--intro { padding-top: 0; }
    .footer-title { font-size: var(--fs-h4) !important; }
    .footer-bottom { flex-direction: column !important; gap: 1.5rem; text-align: center; align-items: center; padding-top: 2rem !important; }
    .footer-legal { flex-wrap: wrap; justify-content: center; gap: 1rem !important; }
    .footer-social { justify-content: flex-start; gap: 1rem; }
}

/* --- Single evento / single convocatoria mobile -------------------------- */
@media (max-width: 1024px) {
    .grid-event, .grid-conv { grid-template-columns: 1fr !important; gap: 3rem !important; }
    .event-meta, .conv-meta { position: static !important; }
}
@media (max-width: 767px) {
    .single-title, .conv-hero__title { font-size: var(--fs-hero) !important; }
    .conv-hero { min-height: 50vh !important; }
    .conv-hero--full { min-height: 70vh !important; }
    .single-gallery .gallery-grid { grid-template-columns: 1fr 1fr !important; }
}

/* --- Marquee mobile ------------------------------------------------------ */
@media (max-width: 767px) {
    .marquee-item { font-size: 12px; padding: 0 1rem; }
}

/* --- Evitar scroll horizontal -------------------------------------------- */
img, video, iframe { max-width: 100%; height: auto; }

/* --- Contenedor siempre con padding lateral mínimo ----------------------- */
.max-w-8xl { padding-left: max(var(--gutter), 1rem); padding-right: max(var(--gutter), 1rem); box-sizing: border-box; }

/* =============================================================================
 * Tratamiento de imagen · Grid Convocatorias + Image Accordion
 * ============================================================================= */

/* Grid Convocatorias */
.home-dc.dc-style--color .dc-card__media img { filter: none; }

.home-dc.dc-style--color_overlay .dc-card__media { position: relative; }
.home-dc.dc-style--color_overlay .dc-card__media::after {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
    pointer-events: none;
}
.home-dc.dc-style--color_overlay .dc-card__tag { z-index: 2; }

.home-dc.dc-style--bw .dc-card__media img { filter: grayscale(100%) contrast(1.02); }

.home-dc.dc-style--bw_hover .dc-card__media img { filter: grayscale(100%); transition: filter 0.55s ease, transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.home-dc.dc-style--bw_hover .dc-card:hover .dc-card__media img { filter: grayscale(0%); }

/* Image Accordion */
.conv-accordion.conv-accordion--color .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 55%, rgba(0,0,0,0.85) 100%); }
.conv-accordion.conv-accordion--color .conv-panel:hover .conv-panel__overlay,
.conv-accordion.conv-accordion--color .conv-panel--active .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0.75) 100%); }

.conv-accordion.conv-accordion--coloroverlay .conv-panel__overlay,
.conv-accordion.conv-accordion--color_overlay .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.45) 50%, rgba(0,0,0,0.85) 100%); }

.conv-accordion.conv-accordion--bw .conv-panel { filter: grayscale(100%); }
.conv-accordion.conv-accordion--bw .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.8) 100%); }

.conv-accordion.conv-accordion--bw_hover .conv-panel,
.conv-accordion.conv-accordion--bwhover .conv-panel { filter: grayscale(100%); transition: filter 0.6s ease, flex 0.5s cubic-bezier(0.4,0,0.2,1); }
.conv-accordion.conv-accordion--bw_hover .conv-panel:hover,
.conv-accordion.conv-accordion--bwhover .conv-panel:hover,
.conv-accordion.conv-accordion--bw_hover .conv-panel--active,
.conv-accordion.conv-accordion--bwhover .conv-panel--active { filter: grayscale(0%); }

/* Image Accordion · Presets visuales + personalización avanzada (opt-in) */
/* Presets — overlay más denso/suave y colores base coherentes */
.conv-accordion--preset-dark  .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.6) 45%, rgba(0,0,0,0.92) 100%); }
.conv-accordion--preset-light .conv-panel__overlay { background: linear-gradient(180deg, rgba(0,0,0,0)    0%, rgba(0,0,0,0.2)  55%, rgba(0,0,0,0.55) 100%); }

/* Alineación del contenido */
.conv-accordion--align-center .conv-panel__overlay { align-items: center; text-align: center; }
.conv-accordion--align-center .conv-panel__top     { width: 100%; justify-content: center; }
.conv-accordion--align-center .conv-panel__title,
.conv-accordion--align-center .conv-panel__meta    { margin-left: auto; margin-right: auto; }
.conv-accordion--align-right  .conv-panel__overlay { align-items: flex-end; text-align: right; }
.conv-accordion--align-right  .conv-panel__top     { width: 100%; justify-content: flex-end; }

/* Custom properties (solo aplican si el editor setea un valor vía style inline) */
.conv-accordion[style*="--ca-overlay:"] .conv-panel__overlay {
    background: linear-gradient(
        180deg,
        rgba(var(--ca-overlay, 0,0,0), calc(var(--ca-overlay-op, 0.55) * 0.18)) 0%,
        rgba(var(--ca-overlay, 0,0,0), calc(var(--ca-overlay-op, 0.55) * 0.55)) 50%,
        rgba(var(--ca-overlay, 0,0,0), var(--ca-overlay-op, 0.85)) 100%
    );
}
.conv-accordion[style*="--ca-kicker:"] .conv-panel__kicker,
.conv-accordion[style*="--ca-kicker:"] .conv-accordion__header .kicker { color: var(--ca-kicker); border-color: currentColor; }
.conv-accordion[style*="--ca-title:"]       .conv-accordion__header h2 { color: var(--ca-title); }
.conv-accordion[style*="--ca-title-card:"]  .conv-panel__title,
.conv-accordion[style*="--ca-title-card:"]  .conv-panel__title-compact { color: var(--ca-title-card); }
.conv-accordion[style*="--ca-text:"]   .conv-panel__meta             { color: var(--ca-text); }
.conv-accordion[style*="--ca-cta:"]    .conv-panel__cta              { color: var(--ca-cta); border-bottom-color: var(--ca-cta); }
.conv-accordion[style*="--ca-cta:"]    .conv-panel:hover .conv-panel__cta { border-bottom-color: var(--ca-cta); opacity: 0.9; }

/* Padding vertical extra al header cuando hay fondo personalizado (respira) */
.conv-accordion[style*="background-color:"],
.conv-accordion[style*="background-image:url"] { padding-bottom: 1rem; }

/* Presenta tu proyecto · tratamiento imagen */
.dpp.dpp--bw { filter: grayscale(100%); }
.dpp.dpp--bw .dpp__overlay { background: linear-gradient(115deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.5) 55%, rgba(0,0,0,0.25) 100%); }
.dpp.dpp--color .dpp__overlay { background: transparent; }
.dpp.dpp--color { text-shadow: 0 2px 12px rgba(0,0,0,0.45); }
.dpp.dpp--coloroverlay,
.dpp.dpp--color_overlay { /* ya usa el overlay por defecto de .dpp */ }

/* Hero split · tratamiento de imagen */
.hero-split.hero-split--color .hero-card__img { filter: none; }
.hero-split.hero-split--color .hero-card__overlay { background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.6) 100%); }

.hero-split.hero-split--coloroverlay .hero-card__overlay,
.hero-split.hero-split--color_overlay .hero-card__overlay { background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0.8) 100%); }

.hero-split.hero-split--bw .hero-card__img { filter: grayscale(100%) contrast(1.02); }

.hero-split.hero-split--bw_hover .hero-card__img,
.hero-split.hero-split--bwhover .hero-card__img { filter: grayscale(100%); transition: filter 0.6s ease, transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.hero-split.hero-split--bw_hover .hero-card:hover .hero-card__img,
.hero-split.hero-split--bwhover .hero-card:hover .hero-card__img { filter: grayscale(0%); }

/* Hero split · overlay y colores configurables por WPBakery (opt-in vía CSS vars) */
.hero-split[style*="--hs-overlay:"] .hero-card__overlay {
    background: linear-gradient(
        180deg,
        rgba(var(--hs-overlay, 0,0,0), calc(var(--hs-overlay-op, 0.7) * 0.28)) 0%,
        rgba(var(--hs-overlay, 0,0,0), calc(var(--hs-overlay-op, 0.7) * 0.62)) 55%,
        rgba(var(--hs-overlay, 0,0,0), var(--hs-overlay-op, 0.7)) 100%
    );
}
.hero-split[style*="--hs-kicker:"] .hero-card__top .kicker { color: var(--hs-kicker); }
.hero-split[style*="--hs-title:"]  .hero-card__title       { color: var(--hs-title); }
.hero-split[style*="--hs-cta:"]    .hero-card__cta         { color: var(--hs-cta); border-bottom-color: var(--hs-cta); opacity: 0.9; }

/* =============================================================================
 * v2.9 · News filter AJAX + Reserva RGPD + Marquee styling hook
 * ============================================================================= */

/* News filter */
.dama-newsfilter { position: relative; }
.dama-newsfilter__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2rem; border-top: 1px solid var(--hairline); padding-top: 1.5rem; }
.dnf-tab { min-height: 40px; padding: 0.5rem 1.15rem; background: transparent; border: 1px solid var(--hairline); color: var(--ink); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: background 0.25s, color 0.25s, border-color 0.25s; }
.dnf-tab:hover { border-color: var(--ink); }
.dnf-tab.is-active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.dama-newsfilter__results { min-height: 200px; transition: opacity 0.25s; }
.dama-newsfilter__results.is-loading { opacity: 0.45; }
.dama-newsfilter__empty { padding: 3rem 0; text-align: center; color: var(--muted-fg); }

/* Reserva form RGPD */
.reserva-form { display: flex; flex-direction: column; gap: 1.25rem; }
.reserva-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.reserva-form__field { display: flex; flex-direction: column; gap: 0.35rem; }
.reserva-form__field span { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted-fg); }
.reserva-form__field input, .reserva-form__field select, .reserva-form__field textarea { border: 1px solid var(--hairline); padding: 0.85rem 0.9rem; background: var(--paper); font-family: inherit; color: var(--ink); transition: border-color 0.2s; }
.reserva-form__field input:focus, .reserva-form__field select:focus, .reserva-form__field textarea:focus { outline: none; border-color: var(--ink); }
.reserva-form__optin, .reserva-form__rgpd { display: flex; align-items: flex-start; gap: 0.65rem; font-size: 13px; line-height: 1.45; color: var(--muted-fg); }
.reserva-form__optin input, .reserva-form__rgpd input { margin-top: 3px; }
.reserva-form__legal { border: 1px solid var(--hairline); padding: 0.85rem 1rem; background: var(--muted); font-size: 12px; }
.reserva-form__legal summary { cursor: pointer; font-weight: 500; color: var(--ink); padding: 0.25rem 0; }
.reserva-form__legal-body { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--hairline); color: var(--muted-fg); line-height: 1.55; }
.reserva-form__legal-body p { margin: 0 0 0.5rem; }
.reserva-form button[type="submit"] { align-self: flex-start; margin-top: 0.5rem; }

@media (max-width: 640px) {
    .reserva-form__row { grid-template-columns: 1fr; }
}

/* v2.10 · Marquee fixes */
.marquee-wrap { line-height: 1; }
@media (max-width: 767px) {
    .marquee-wrap { min-height: 32px !important; height: auto !important; }
    .marquee-wrap .marquee-item { padding: 0 1rem; }
}

/* =============================================================================
 * Single Sede · mini-home editorial
 * ============================================================================= */
.single-sede .kicker { display: block; }

.sede-hero { position: relative; min-height: 60vh; display: flex; align-items: flex-end; overflow: hidden; color: #fff; background: var(--ink); }
.sede-hero__media { position: absolute; inset: 0; background-size: cover; background-position: center; }
.sede-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.85) 100%); }
.sede-hero__content { position: relative; z-index: 2; width: 100%; }
.sede-hero__content .kicker { color: rgba(255,255,255,0.75); margin-bottom: 1rem; }
.sede-hero__title { font-size: clamp(3rem, 8vw, 6.5rem); line-height: 0.95; letter-spacing: -0.03em; margin: 0 0 1.5rem; color: #fff; }
.sede-hero__lead { font-size: clamp(1rem, 1.3vw, 1.25rem); max-width: 55ch; margin: 0 0 2.5rem; color: rgba(255,255,255,0.88); line-height: 1.5; }
.sede-hero__cta { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.sede-hero .cta-solid { background: #fff; color: #000; border-color: #fff; }
.sede-hero .cta-solid:hover { background: transparent; color: #fff; }
.sede-hero .cta-line { color: #fff; border-color: rgba(255,255,255,0.5); }
.sede-hero .cta-line:hover { border-color: #fff; }

.sede-intro__grid { display: grid; grid-template-columns: 2fr 1fr; gap: var(--card-gap, 3rem); }
.sede-intro__content { font-size: 1.05rem; line-height: 1.65; color: var(--ink); }
.sede-intro__content p { margin: 0 0 1.25rem; max-width: 62ch; }
.sede-intro__info { display: flex; flex-direction: column; gap: 2rem; padding-left: 2rem; border-left: 1px solid var(--hairline); }
.sede-info__block .kicker { color: var(--muted-fg); margin-bottom: 0.5rem; }
.sede-info__block p { margin: 0; font-size: 1rem; line-height: 1.55; }
.sede-info__block a { color: var(--ink); border-bottom: 1px solid var(--hairline); }
.sede-info__block a:hover { border-color: var(--ink); }

.sede-section-title { font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0.75rem 0 2.5rem; max-width: 18ch; text-wrap: balance; }

.sede-gallery__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; grid-auto-rows: 220px; gap: 8px; }
.sede-gallery__grid > :nth-child(1) { grid-row: span 2; }
.sede-gallery__grid > :nth-child(4) { grid-column: span 2; }
.sede-gallery__item { overflow: hidden; display: block; background: var(--muted); }
.sede-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.22,1,0.36,1); display: block; }
.sede-gallery__item:hover img { transform: scale(1.04); }

.sede-events__list { display: grid; grid-template-columns: 1fr 1fr; gap: var(--card-gap, 1.5rem); }
.sede-event { display: grid; grid-template-columns: 120px 1fr; gap: 1.25rem; padding: 1.5rem; border: 1px solid var(--hairline); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color 0.3s, transform 0.4s; }
.sede-event:hover { border-color: var(--ink); transform: translateX(2px); }
.sede-event__thumb { aspect-ratio: 1/1; overflow: hidden; background: var(--muted); }
.sede-event__thumb img { width: 100%; height: 100%; object-fit: cover; }
.sede-event__body { display: flex; flex-direction: column; gap: 0.35rem; }
.sede-event__date { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted-fg); }
.sede-event__body h3 { font-size: 1.15rem; line-height: 1.25; margin: 0 0 0.5rem; letter-spacing: -0.01em; }
.sede-event__cta { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); margin-top: auto; }

.sede-map__wrap { aspect-ratio: 16/6; width: 100%; background: var(--muted); }
.sede-map__wrap iframe { width: 100%; height: 100%; border: 0; filter: grayscale(100%) contrast(1.05); }

@media (max-width: 900px) {
    .sede-intro__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .sede-intro__info { padding-left: 0; border-left: 0; border-top: 1px solid var(--hairline); padding-top: 2rem; }
    .sede-events__list { grid-template-columns: 1fr; }
    .sede-gallery__grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 180px; }
    .sede-gallery__grid > :nth-child(1) { grid-row: span 1; }
    .sede-gallery__grid > :nth-child(4) { grid-column: span 1; }
}
@media (max-width: 600px) {
    .sede-hero { min-height: 55vh; }
    .sede-hero__title { font-size: clamp(2.25rem, 11vw, 3.5rem) !important; line-height: 0.98; margin-bottom: 1rem; }
    .sede-hero__lead { font-size: 0.95rem; margin-bottom: 1.75rem; }
    .sede-hero__cta { flex-direction: column; align-items: stretch; width: 100%; }
    .sede-hero__cta a { width: 100%; justify-content: center; text-align: center; }
    .sede-gallery__grid { grid-template-columns: 1fr; grid-auto-rows: 250px; }
    .sede-event { grid-template-columns: 80px 1fr; padding: 1rem; }
    .sede-map__wrap { aspect-ratio: 4/5; }
}

/* =============================================================================
 * Single Sede v2.11 — layout compacto modular
 * ============================================================================= */

/* HEADER: hero compacto + contacto integrado en 2 columnas */
.sede-head { position: relative; background: var(--ink); color: #fff; overflow: hidden; }
.sede-head__media { position: absolute; inset: 0; background-size: cover; background-position: center; filter: brightness(0.55); }
.sede-head__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.65) 100%); }
.sede-head__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: start; }
.sede-head__kicker { color: rgba(255,255,255,0.7); margin-bottom: 0.75rem; }
.sede-head__title { font-size: clamp(2.5rem, 6vw, 5rem); line-height: 0.98; letter-spacing: -0.025em; margin: 0 0 1.25rem; color: #fff; max-width: 12ch; }
.sede-head__lead { font-size: 1.05rem; line-height: 1.5; max-width: 50ch; margin: 0 0 2rem; color: rgba(255,255,255,0.88); }
.sede-head__cta { display: flex; gap: 1rem; flex-wrap: wrap; }
.sede-head__cta .cta-solid { background: #fff; color: #000; border-color: #fff; }
.sede-head__cta .cta-solid:hover { background: transparent; color: #fff; }
.sede-head__cta .cta-line { color: #fff; border-color: rgba(255,255,255,0.5); }
.sede-head__cta .cta-line:hover { border-color: #fff; }

.sede-head__info-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2rem; padding-top: 0.5rem; }
.sede-head__info-col .sede-info__block { color: #fff; }
.sede-head__info-col .sede-info__block .kicker { color: rgba(255,255,255,0.65); margin-bottom: 0.35rem; font-size: 10px; }
.sede-head__info-col .sede-info__block p { margin: 0; font-size: 0.95rem; line-height: 1.5; color: #fff; }
.sede-head__info-col .sede-info__block a { color: #fff; border-bottom: 1px solid rgba(255,255,255,0.3); }
.sede-head__info-col .sede-info__block a:hover { border-color: #fff; }

@media (max-width: 900px) {
    .sede-head__grid { grid-template-columns: 1fr; gap: 2rem; }
    .sede-head__info-col { grid-template-columns: 1fr 1fr; padding-top: 0; margin-top: 1rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.2); }
}
@media (max-width: 600px) {
    .sede-head__info-col { grid-template-columns: 1fr; gap: 1.25rem; }
    .sede-head__cta { flex-direction: column; align-items: stretch; width: 100%; }
    .sede-head__cta a { width: 100%; justify-content: center; text-align: center; }
}

/* FILAS MODULARES */
.sede-row__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--card-gap, 3rem); align-items: start; }
.sede-row__grid--split { grid-template-columns: 1.3fr 1fr; }
@media (max-width: 900px) { .sede-row__grid, .sede-row__grid--split { grid-template-columns: 1fr; } }

.sede-block__head { margin-bottom: var(--gap-head, 40px); }
.sede-block__title { font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.1; letter-spacing: -0.015em; margin: 0.5rem 0 0; max-width: 18ch; text-wrap: balance; }
.sede-block__empty { padding: 2rem 0; color: var(--muted-fg); }
.sede-block__empty-gallery { display: flex; flex-direction: column; gap: 1rem; justify-content: center; align-items: flex-start; padding: 3rem 2rem; border: 1px dashed var(--hairline); background: var(--muted); min-height: 280px; }
.sede-block__more { display: inline-block; margin-top: 1.5rem; }

/* Eventos en la sede */
.sede-events__list { display: flex; flex-direction: column; gap: 1rem; }
.sede-event { display: grid; grid-template-columns: 100px 1fr; gap: 1.25rem; padding: 1.25rem; border: 1px solid var(--hairline); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color 0.3s, transform 0.4s; }
.sede-event:hover { border-color: var(--ink); transform: translateX(2px); }
.sede-event__thumb { aspect-ratio: 1/1; overflow: hidden; background: var(--muted); }
.sede-event__thumb img { width: 100%; height: 100%; object-fit: cover; }
.sede-event__body h3 { font-size: 1.05rem; line-height: 1.25; margin: 0 0 0.4rem; letter-spacing: -0.01em; }
.sede-event__date { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted-fg); display: block; margin-bottom: 0.35rem; }
.sede-event__cta { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); }

/* Noticias en la sede */
.sede-news__list { display: flex; flex-direction: column; gap: 0.5rem; }
.sede-news-item { display: grid; grid-template-columns: 80px 1fr; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--hairline); color: var(--ink); text-decoration: none; transition: opacity 0.2s; }
.sede-news-item:hover { opacity: 0.7; }
.sede-news-item__thumb { aspect-ratio: 1/1; overflow: hidden; background: var(--muted); }
.sede-news-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.sede-news-item__date { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted-fg); }
.sede-news-item__body h3 { font-size: 1rem; line-height: 1.3; margin: 0.25rem 0 0; letter-spacing: -0.005em; }

/* Galería vertical para la columna */
.sede-gallery__grid--col { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 200px; }
.sede-gallery__grid--col > :nth-child(1) { grid-column: span 2; grid-row: span 2; }
@media (max-width: 600px) {
    .sede-gallery__grid--col { grid-template-columns: 1fr !important; grid-auto-rows: 230px; }
    .sede-gallery__grid--col > :nth-child(1) { grid-column: span 1; grid-row: span 1; }
}

/* CTA reservar sala */
.sede-salas-cta { padding: 3rem 2rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); min-height: 100%; display: flex; flex-direction: column; justify-content: center; }
.sede-salas-cta .kicker { color: rgba(255,255,255,0.7); margin-bottom: 1rem; }
.sede-salas-cta__title { font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.1; letter-spacing: -0.015em; margin: 0 0 1rem; color: #fff; max-width: 15ch; }
.sede-salas-cta__text { font-size: 1rem; line-height: 1.5; margin: 0 0 2rem; color: rgba(255,255,255,0.88); max-width: 45ch; }
.sede-salas-cta .cta-solid { background: #fff; color: #000; border-color: #fff; align-self: flex-start; }
.sede-salas-cta .cta-solid:hover { background: transparent; color: #fff; }

/* =============================================================================
 * v2.73 · Single sede · Layout 2-col Agenda + CTA Salas (Área de socios)
 * v2.74 · Fix: CTA derecha no estira (align-self:start) ─ pegada arriba
 * --------------------------------------------------------------------------- */
.sede-row--main { background: var(--paper); }
.sede-row__grid--main { grid-template-columns: 1.4fr 1fr; gap: var(--card-gap, 3rem); align-items: start; }
@media (max-width: 900px) {
    .sede-row__grid--main { grid-template-columns: 1fr; gap: 2rem; }
}

.sede-cta-salas {
    background: var(--muted);
    border: 1px solid var(--hairline);
    padding: clamp(2rem, 3.5vw, 3rem);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-self: start;        /* v2.74: pegada arriba, no estira con la agenda */
    position: sticky;
    top: calc(var(--header-h, 80px) + 1.5rem);
}
.sede-cta-salas__kicker { color: var(--muted-fg); margin: 0; }
.sede-cta-salas__title {
    font-size: var(--fs-h-sec);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--ink);
    max-width: 16ch;
    text-wrap: balance;
}
.sede-cta-salas__body {
    font-size: var(--fs-body);
    line-height: 1.55;
    color: rgba(var(--ink-rgb, 10, 10, 10), 0.78);
    margin: 0;
    max-width: 42ch;
}
.sede-cta-salas__btn { align-self: flex-start; margin-top: 0.5rem; }
@media (max-width: 900px) {
    .sede-cta-salas { position: static; }
}

/* =============================================================================
 * v2.74 · Side-rail "Asociarse a DAMA" (CTA persistente desktop)
 * --------------------------------------------------------------------------- */
.dama-side-rail {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translate(0, -50%);
    z-index: 90;                                /* bajo header, sobre contenido */
    display: none;                              /* oculto por defecto; JS activa */
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;                       /* hasta que sea visible */
}
.dama-side-rail.is-visible { opacity: 1; pointer-events: auto; }
.dama-side-rail__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--ink);
    color: var(--paper);
    text-decoration: none;
    font-family: var(--font-sans);
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    padding: 1.25rem 0.85rem;
    border: 1px solid var(--ink);
    border-right: 0;
    writing-mode: vertical-rl;
    transform: rotate(180deg);                  /* texto leído de abajo-arriba */
    transition: background 0.25s ease, color 0.25s ease, padding 0.25s ease;
    line-height: 1;
}
.dama-side-rail__btn:hover {
    background: var(--paper);
    color: var(--ink);
    padding-right: 1.1rem;
}
.dama-side-rail__btn:focus-visible {
    outline: 2px solid var(--ink);
    outline-offset: 3px;
}
@media (min-width: 1024px) {
    .dama-side-rail { display: block; }         /* solo desktop */
}

/* =============================================================================
 * v2.12 · Consistencia WPBakery + pulido final
 * ============================================================================= */

/* Forzar que los wrappers de WPBakery hereden variables del theme */
.wpb_wrapper, .vc_row, .vc_column_container, .wpb_text_column { color: var(--ink); font-family: inherit; }
.wpb_wrapper p { font-family: inherit; line-height: 1.6; color: var(--ink); }
.wpb_wrapper h1, .wpb_wrapper h2, .wpb_wrapper h3, .wpb_wrapper h4, .wpb_wrapper h5, .wpb_wrapper h6 {
    font-family: var(--font-serif); color: var(--ink);
}

/* Botones por defecto de WPBakery → coherentes con estilo DAMA */
.vc_btn3, .vc_general.vc_btn3-style-flat, .wpb_button {
    font-family: inherit !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 11px !important;
    font-weight: 500 !important;
    border-radius: 0 !important;
    padding: 1rem 1.75rem !important;
    min-height: 44px;
}

/* Quitar margin-bottom por defecto de .wpb_text_column que rompe ritmo vertical */
.wpb_text_column { margin-bottom: 0 !important; }
.vc_row + .vc_row, .wpb_row + .wpb_row { margin-top: 0; }

/* Evitar doble padding cuando WPBakery mete un row dentro de una sección del theme */
.home-dc .vc_row, .conv-accordion .vc_row, .sede-head .vc_row { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Consistencia de botones del theme (.cta-solid / .cta-line) */
.cta-solid, .cta-line {
    font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
    padding: 0.9rem 1.6rem; min-height: 44px;
    display: inline-flex; align-items: center; gap: 0.5rem;
    transition: background 0.3s, color 0.3s, border-color 0.3s;
    text-decoration: none;
}
/* v2.92.2 · Respeta --cta-bg/--cta-fg (color_acento). Esta regla pisaba a la de
   arriba y dejaba el acento muerto en toda la web. Los fallbacks conservan el
   comportamiento anterior cuando no hay acento definido. */
.cta-solid {
    background: var(--cta-bg, var(--ink));
    color: var(--cta-fg, var(--paper));
    border: 1px solid var(--cta-bg, var(--ink));
}
.cta-solid:hover { background: transparent; color: var(--cta-bg, var(--ink)); }
.cta-line { background: transparent; color: var(--ink); border: 1px solid var(--hairline); }
.cta-line:hover { border-color: var(--ink); }

/* Consistencia cards (las 4 familias) */
.dc-card, .news-card, .servicio-card, .event-card { background: var(--paper); transition: transform 0.45s cubic-bezier(0.22,1,0.36,1), border-color 0.25s; }
.news-card__title, .dc-card__title, .servicio-card__title { letter-spacing: -0.015em; }

/* Anti-jump: cuando las fuentes Fraunces cargan, evita que se reajuste */
h1, h2, h3, h4, h5, .font-serif { font-display: swap; }

/* ===== Responsive último pulido ===== */
@media (max-width: 767px) {
    /* Menos padding en home en móvil */
    .home-dc, .home-que-es, .home-boletines, .conv-accordion { padding-top: 0 !important; padding-bottom: 0 !important; }
    /* Section headers en móvil: en columna, sin CTA pegado */
    .home-dc .section-header { flex-direction: column; align-items: flex-start; }
    /* Eventos en sede: títulos más pequeños en móvil */
    .sede-event__body h3 { font-size: 0.95rem; }
}

/* Evitar que font-size-base del body se aplique a elementos con tamaños ya definidos */
body { font-feature-settings: "kern", "liga", "calt"; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* =============================================================================
 * Mobile sticky CTA bar (Hazte socio + Área de socios)
 * ============================================================================= */
.dama-mobile-stickybar { display: none; }

@media (max-width: 1024px) {
    .dama-mobile-stickybar {
        position: fixed; bottom: 0; left: 0; right: 0; z-index: 999;
        display: grid; grid-template-columns: 1fr 1fr;
        background: var(--ink); color: var(--paper);
        border-top: 1px solid rgba(255,255,255,0.1);
        box-shadow: 0 -8px 24px rgba(0,0,0,0.12);
        padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .dama-mobile-stickybar__cta {
        display: flex; align-items: center; justify-content: center;
        padding: 1rem 0.75rem; min-height: 52px;
        font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
        text-decoration: none; font-weight: 500;
        position: relative; overflow: hidden; isolation: isolate;
        transition: color 0.35s ease;
    }
    /* Capa ::before con degradado configurado en Theme Options */
    .dama-mobile-stickybar__cta::before {
        content: '';
        position: absolute; inset: 0; z-index: -1;
        background: var(--dama-cta-hover-bg, linear-gradient(135deg, #0A0A0A 0%, #3F0F0F 100%));
        background-size: 200% 200%;
        opacity: 0;
        transition: opacity 0.35s ease;
        animation: dama-hover-shift 6s ease-in-out infinite alternate;
        animation-play-state: paused;
    }
    /* Hereda los colores configurados en Theme Options para los CTAs del header */
    .dama-mobile-stickybar__cta--primary {
        background: var(--accent); color: var(--ink);
    }
    .dama-mobile-stickybar__cta--secondary {
        background: var(--ink); color: var(--paper);
        border-left: 1px solid rgba(255,255,255,0.12);
    }
    .dama-mobile-stickybar__cta--primary:hover,
    .dama-mobile-stickybar__cta--primary:focus-visible,
    .dama-mobile-stickybar__cta--secondary:hover,
    .dama-mobile-stickybar__cta--secondary:focus-visible {
        background: transparent !important;
        color: var(--dama-cta-hover-text, #fff);
    }
    .dama-mobile-stickybar__cta:hover::before,
    .dama-mobile-stickybar__cta:focus-visible::before {
        opacity: 1;
        animation-play-state: running;
    }
    /* Hueco al final del body para no tapar el footer */
    body { padding-bottom: calc(52px + env(safe-area-inset-bottom, 0)); }
    /* Si el theme option está OFF, no se pinta el padding */
    body:not(:has(.dama-mobile-stickybar)) { padding-bottom: 0; }
}

/* =============================================================================
 * Video Archive · DAMA Habla + filtros + grid + lightbox
 * ============================================================================= */
.dama-videoarchive { display: block; }

/* Hero destacado — tarjeta blanca (vídeo arriba, texto debajo, sin overlay) */
.dama-videoarchive__hero {}
.dama-vhero { display: block; background: var(--paper); border: 1px solid var(--hairline); overflow: hidden; }
.dama-vhero__media {
    position: relative; display: block; width: 100%; aspect-ratio: 16 / 9;
    border: 0; padding: 0; margin: 0; cursor: pointer;
    background: var(--ink); background-size: cover; background-position: center;
}
.dama-vhero__play {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 88px; height: 88px; border-radius: 50%;
    background: rgba(255,255,255,0.95);
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.3s ease, background 0.3s ease;
}
.dama-vhero__play svg { width: 30px; height: 30px; fill: var(--ink); margin-left: 4px; }
.dama-vhero__media:hover .dama-vhero__play { transform: translate(-50%, -50%) scale(1.08); background: #fff; }
.dama-vhero__dur { position: absolute; right: 14px; bottom: 14px; font-size: 12px; font-weight: 600; color: #fff; background: rgba(0,0,0,0.7); padding: 0.3em 0.65em; border-radius: 3px; }
.dama-vhero__body { padding: 1.75rem var(--gutter, 2rem) 2rem; display: flex; flex-direction: column; gap: 1rem; }
.dama-vhero__kicker { display: flex; gap: 1rem; align-items: center; }
.dama-vhero__kicker .kicker--destacado { border: 1px solid var(--ink); padding: 0.3rem 0.65rem; }
.dama-vhero__title { font-family: var(--font-serif); color: var(--ink); font-size: clamp(1.9rem, 3.5vw, 3rem); line-height: 1.05; letter-spacing: -0.015em; margin: 0; max-width: 24ch; }
.dama-vhero__desc { color: var(--muted-fg); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 72ch; }

/* Tabs (reutilizamos estilos .dnf-tab del news-filter) */
.dama-videoarchive__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 2rem 0; border-top: 1px solid var(--hairline); padding-top: 1.5rem; }
.dama-videoarchive__results { min-height: 240px; transition: opacity 0.25s; }
.dama-videoarchive__results.is-loading { opacity: 0.4; }

/* Grid de vídeos */
.dama-video-grid { display: grid; grid-template-columns: repeat(var(--dama-vcols, 3), 1fr); gap: var(--card-gap, 1.5rem); }
@media (max-width: 900px) { .dama-video-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dama-video-grid { grid-template-columns: 1fr; } }

.dama-vcard {
    display: flex; flex-direction: column; gap: 1rem;
    background: transparent; border: 0; padding: 0; margin: 0;
    cursor: pointer; text-align: left; color: inherit;
    transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
.dama-vcard:hover { transform: translateY(-3px); }
.dama-vcard__thumb {
    position: relative; display: block; width: 100%;
    aspect-ratio: 16/9; background: var(--ink) center/cover no-repeat;
    overflow: hidden;
}
.dama-vcard__play {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 52px; height: 52px; border-radius: 50%;
    background: rgba(255,255,255,0.92); color: var(--ink);
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; padding-left: 3px;
    transition: transform 0.3s, background 0.3s;
}
.dama-vcard:hover .dama-vcard__play { background: #fff; transform: translate(-50%, -50%) scale(1.1); }
.dama-vcard__duration {
    position: absolute; bottom: 0.5rem; right: 0.5rem;
    background: rgba(0,0,0,0.7); color: #fff;
    padding: 0.25rem 0.5rem; font-size: 11px; letter-spacing: 0.05em;
    font-variant-numeric: tabular-nums;
}
.dama-vcard__body { display: flex; flex-direction: column; gap: 0.4rem; }
.dama-vcard__title { font-size: 1.25rem; line-height: 1.2; margin: 0; letter-spacing: -0.01em; }

/* Lightbox */
.dama-video-lightbox {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(0,0,0,0.92); display: none;
    align-items: center; justify-content: center;
    padding: 2rem;
}
.dama-video-lightbox.is-open { display: flex; }
.dama-video-lightbox__close {
    position: absolute; top: 1.5rem; right: 1.5rem;
    width: 44px; height: 44px; border: 0; border-radius: 50%;
    background: rgba(255,255,255,0.12); color: #fff;
    font-size: 28px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.2s;
}
.dama-video-lightbox__close:hover { background: rgba(255,255,255,0.25); }
.dama-video-lightbox__frame {
    width: 100%; max-width: 1280px; aspect-ratio: 16/9;
    background: #000; overflow: hidden;
    box-shadow: 0 30px 80px rgba(0,0,0,0.7);
}
.dama-video-lightbox__frame iframe,
.dama-video-lightbox__frame video { width: 100%; height: 100%; border: 0; object-fit: contain; }
.dama-video-lightbox__loading { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: #fff; font-size: 32px; letter-spacing: 0.3em; }
body.dama-video-lb-open { overflow: hidden; }

/* =============================================================================
 * Salas · listado + formulario de solicitud
 * ============================================================================= */
.dama-salas-listado { display: block; }
.dama-salas-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--card-gap, 1.5rem);
}
@media (max-width: 900px) { .dama-salas-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dama-salas-grid { grid-template-columns: 1fr; } }

.dama-sala-card {
    display: flex; flex-direction: column;
    border: 1px solid var(--hairline);
    background: var(--bg, var(--paper));
    transition: border-color .25s ease, transform .35s cubic-bezier(0.22,1,0.36,1);
}
.dama-sala-card:hover { border-color: var(--ink); transform: translateY(-2px); }
.dama-sala-card__img {
    aspect-ratio: 4/3; background: var(--muted) center/cover no-repeat;
}
.dama-sala-card__img--empty { background: linear-gradient(135deg, #f0ece4 0%, #e8e5df 100%); }
.dama-sala-card__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; }
.dama-sala-card__title { margin: 0; font-size: var(--fs-h3); line-height: 1.1; letter-spacing: -0.01em; }
.dama-sala-card__meta { margin: 0; }
.dama-sala-card__features {
    margin: 0; padding: 0; list-style: none;
    display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem;
    font-size: 0.9rem; opacity: 0.75;
}
.dama-sala-card__features li { position: relative; padding-left: 1rem; }
.dama-sala-card__features li::before {
    content: ''; position: absolute; left: 0; top: 0.55em;
    width: 4px; height: 4px; border-radius: 50%; background: currentColor;
}
.dama-sala-card__cta {
    margin-top: 0.5rem; border: 0; background: transparent;
    padding: 0; cursor: pointer; text-align: left;
    font-size: 12px; letter-spacing: 0.25em; text-transform: uppercase;
    color: var(--link); border-bottom: 1px solid var(--hairline-strong);
    padding-bottom: 4px; align-self: flex-start;
}
.dama-sala-card__cta:hover { color: var(--link-hover); border-color: var(--link-hover); }

/* Formulario */
.dama-reserva { background: var(--muted); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); scroll-margin-top: 2rem; }
.dama-reserva__header { max-width: 60ch; margin-bottom: var(--gap-head, 40px); }
.dama-reserva__header h2 { margin: 0.5rem 0 1rem; }
.dama-reserva__lead { font-size: 1rem; line-height: 1.5; }

.dama-reserva-form { display: grid; gap: 1.5rem; max-width: 840px; }
.dama-reserva-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.dama-reserva-form__row--3 { grid-template-columns: 2fr 1fr 1fr; }
@media (max-width: 700px) {
    .dama-reserva-form__row,
    .dama-reserva-form__row--3 { grid-template-columns: 1fr; }
}

.dama-reserva-form__field { display: flex; flex-direction: column; gap: 0.4rem; }
.dama-reserva-form__field label {
    font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
    font-weight: 500; opacity: 0.8;
}
.dama-reserva-form__field input[type="text"],
.dama-reserva-form__field input[type="email"],
.dama-reserva-form__field input[type="date"],
.dama-reserva-form__field select,
.dama-reserva-form__field textarea {
    background: var(--paper); border: 1px solid var(--hairline);
    padding: 0.85rem 1rem; font: inherit; color: var(--text);
    border-radius: 0; transition: border-color .2s ease;
}
.dama-reserva-form__field input:focus,
.dama-reserva-form__field select:focus,
.dama-reserva-form__field textarea:focus {
    outline: 0; border-color: var(--ink);
}
.dama-reserva-form__hint { font-size: 11px; opacity: 0.55; margin-top: 2px; letter-spacing: 0.05em; text-transform: uppercase; }
.dama-reserva-form__consent label {
    display: flex; align-items: flex-start; gap: 0.6rem;
    font-size: 0.85rem; letter-spacing: normal; text-transform: none;
    opacity: 1; font-weight: 400;
}
.dama-reserva-form__consent input { margin-top: 3px; }
.dama-reserva-form__actions { margin-top: 0.5rem; }
.dama-reserva-form__actions .cta-solid { border: 0; cursor: pointer; font: inherit; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.9rem 1.5rem; }
.dama-reserva-form__actions .cta-solid:disabled { opacity: 0.5; cursor: wait; }
.dama-reserva-form__feedback { min-height: 1.5em; font-size: 0.95rem; }
.dama-reserva-form__feedback.is-ok    { color: #2d7a4f; }
.dama-reserva-form__feedback.is-error { color: #b14a3a; }

/* =============================================================================
 * Eventos · subtítulo + lugar + entrada libre / CTA reserva
 * ============================================================================= */
.event-row__lugar { font-weight: 500; }
.event-row__subtitle,
.event-card__subtitle {
    font-size: 0.9rem; margin: 0.35rem 0 0; line-height: 1.5; opacity: 0.7;
    max-width: 60ch;
}
.event-row__libre,
.event-card__free {
    font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
    opacity: 0.65;
}
.event-row__cta .cta-line {
    font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase;
}
.event-card__tipo { margin-top: 0.5rem; }
.event-card__title a, .event-row__main h3 a { color: inherit; }
.event-card__title a:hover, .event-row__main h3 a:hover { opacity: 0.7; }

/* =============================================================================
 * Convocatorias · card y hero · estados Abierta/Cerrada
 * ============================================================================= */
.conv-card { display: flex; flex-direction: column; gap: 0; padding: 0; border: 1px solid var(--hairline); background: var(--bg); transition: border-color 0.25s, transform 0.35s cubic-bezier(0.22,1,0.36,1); color: inherit; text-decoration: none; overflow: hidden; }
.conv-card:hover { border-color: var(--ink); transform: translateY(-2px); }
/* v2.65 · Imagen destacada arriba (con fallback) */
.conv-card__image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: rgba(0,0,0,0.04);
    border-bottom: 1px solid var(--hairline, rgba(10,10,10,0.12));
    display: block;
}
.conv-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s cubic-bezier(0.22,1,0.36,1);
    display: block;
}
.conv-card:hover .conv-card__image img { transform: scale(1.03); }
.conv-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ink, #0a0a0a);
    color: var(--paper, #e8ded1);
}
.conv-card__image-mark {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: 0.15em;
    font-weight: 600;
    opacity: 0.5;
}
.conv-card--cerrada .conv-card__image img { filter: grayscale(0.3) opacity(0.85); }
.conv-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.5rem;
    flex: 1;
    min-height: 0;
}
.conv-card__top { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.conv-card__tipo { letter-spacing: 0.18em; }
.conv-card__estado { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; padding: 0.3rem 0.6rem; border: 1px solid currentColor; border-radius: 0; white-space: nowrap; }
.conv-card__estado--abierta { color: #2d7a4f; }
.conv-card__estado--cerrada { color: var(--muted-fg); opacity: 0.7; }
.conv-card__title { margin: 0.5rem 0 0; font-size: var(--fs-h3); line-height: 1.1; }
.conv-card__excerpt { margin: 0; font-size: 0.95rem; line-height: 1.5; opacity: 0.7; }
.conv-card__footer { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--hairline); }
.conv-card__cierre { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--conv-cierre-def, rgba(10,10,10,.6)); }
/* v3.51 · color editable del pie (fecha de cierre) por estado, desde Opciones del theme. Vacío = gris por defecto. */
.conv-card--abierta .conv-card__cierre { color: var(--conv-cierre-abierta, var(--conv-cierre-def, rgba(10,10,10,.6))); }
.conv-card--cerrada .conv-card__cierre { color: var(--conv-cierre-cerrada, var(--conv-cierre-def, rgba(10,10,10,.6))); }
.conv-card__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; margin-top: 0.5rem; align-self: flex-start; border-bottom: 1px solid var(--hairline-strong); padding-bottom: 3px; }

/* Hero del single convocatoria — overlay siempre legible */
.conv-hero { position: relative; overflow: hidden; min-height: 50vh; }
.conv-hero__bg { position: absolute; inset: 0; z-index: 0; }
.conv-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.conv-hero__overlay {
    position: relative; z-index: 1;
    background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.65) 60%, rgba(0,0,0,0.85) 100%);
    color: #fff;
    min-height: 50vh; display: flex; align-items: flex-end;
}
/* Sin imagen — fondo sólido oscuro */
.conv-hero:not(:has(.conv-hero__bg)) .conv-hero__overlay { background: var(--ink); }
.conv-hero__top { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.5rem; }
.conv-hero__tipo, .conv-hero .kicker { color: #fff; opacity: 0.9; }
.conv-hero__estado { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.4rem 0.8rem; border: 1px solid rgba(255,255,255,0.5); border-radius: 0; }
.conv-hero__estado--abierta { background: rgba(45,122,79,0.18); border-color: #6fcf97; color: #d4f6e0; border-radius: 0; }
.conv-hero__estado--cerrada { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.4); color: rgba(255,255,255,0.85); border-radius: 0; }
.conv-hero__title { font-size: var(--fs-hero); line-height: 0.98; letter-spacing: -0.02em; color: #fff; margin: 0; max-width: 22ch; text-wrap: balance; }
.conv-hero__lead { font-size: 1.15rem; line-height: 1.5; opacity: 0.85; max-width: 60ch; margin-top: 1.25rem; color: #fff; }
.conv-hero__dates { display: flex; gap: 3rem; margin-top: 2rem; flex-wrap: wrap; }
.conv-hero__dates > div { display: flex; flex-direction: column; gap: 0.25rem; }
.conv-hero__cta { display: inline-block; margin-top: 2rem; padding: 1rem 1.5rem; background: #fff; color: var(--ink); font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; text-decoration: none; transition: background 0.25s; }
.conv-hero__cta:hover { background: var(--accent); }

@media (max-width: 700px) {
    .conv-hero, .conv-hero__overlay { min-height: 60vh; }
    .conv-hero__dates { gap: 1.5rem; }
}

/* =============================================================================
 * Single Convocatoria · PLANTILLA UNIFICADA — secciones bajo el hero
 * ========================================================================== */
.single-convocatoria--unified .conv-section {
    padding: clamp(3.5rem, 7vw, 6rem) var(--gutter, 1.5rem);
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.08));
}
.single-convocatoria--unified .conv-section:first-of-type { border-top: 0; }
.single-convocatoria--unified .conv-section__inner {
    width: 100%;
    max-width: var(--max-w-8xl, 88rem);
    margin: 0 auto;
}
.single-convocatoria--unified .conv-section__head {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 2.5rem;
    max-width: 60ch;
}
.single-convocatoria--unified .conv-section__title {
    font-size: clamp(1.8rem, 3.2vw, 2.75rem);
    line-height: 1.05;
    letter-spacing: -0.015em;
    margin: 0;
    text-wrap: balance;
    font-weight: 400;
}
/* "Sobre la convocatoria" — prose readable */
.single-convocatoria--unified .conv-prose {
    max-width: 70ch;
    font-size: 1.05rem;
    line-height: 1.7;
}
.single-convocatoria--unified .conv-prose p { margin: 0 0 1.25rem; }
.single-convocatoria--unified .conv-prose h2,
.single-convocatoria--unified .conv-prose h3 {
    font-family: var(--font-serif);
    margin: 2.5rem 0 1rem;
    font-weight: 400;
}
.single-convocatoria--unified .conv-prose h2 { font-size: var(--fs-h3); line-height: 1.15; }
.single-convocatoria--unified .conv-prose h3 { font-size: var(--fs-h4); line-height: 1.2; }
.single-convocatoria--unified .conv-prose ul,
.single-convocatoria--unified .conv-prose ol { padding-left: 1.2rem; margin: 0 0 1.25rem; }
.single-convocatoria--unified .conv-prose li { margin: 0 0 0.5rem; }
.single-convocatoria--unified .conv-prose a {
    color: var(--ink, #0a0a0a);
    border-bottom: 1px solid currentColor;
    text-decoration: none;
    padding-bottom: 1px;
    transition: opacity 0.2s;
}
.single-convocatoria--unified .conv-prose a:hover { opacity: 0.6; }

/* Datos clave — rejilla editorial sobria */
.single-convocatoria--unified .conv-section--datos {
    background: var(--paper, #f7f5f0);
}
.single-convocatoria--unified .conv-datos-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
    border-left: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.single-convocatoria--unified .conv-dato {
    padding: 2rem 1.5rem;
    border-right: 1px solid var(--hairline, rgba(0,0,0,0.12));
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.single-convocatoria--unified .conv-dato__label {
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb,10,10,10),0.55);
    font-weight: 500;
}
.single-convocatoria--unified .conv-dato__value {
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
    line-height: 1;
    color: var(--ink, #0a0a0a);
    font-weight: 400;
    letter-spacing: -0.01em;
}
.single-convocatoria--unified .conv-dato__desc {
    font-size: 0.85rem;
    line-height: 1.45;
    color: rgba(var(--ink-rgb,10,10,10),0.6);
    margin-top: 0.4rem;
}

/* Bases & CTA final */
.single-convocatoria--unified .conv-section--bases {
    background: var(--ink, #0a0a0a);
    color: #fff;
}
.single-convocatoria--unified .conv-section--bases .conv-section__title { color: #fff; }
.single-convocatoria--unified .conv-section--bases .kicker { color: rgba(255,255,255,0.55); }
.single-convocatoria--unified .conv-bases-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
}
.single-convocatoria--unified .conv-bases__btn {
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
    justify-content: space-between;
    padding: 1.25rem 1.75rem;
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    text-decoration: none;
    min-width: 280px;
    transition: opacity 0.25s, background 0.25s, color 0.25s, transform 0.25s;
}
.single-convocatoria--unified .conv-bases__btn--ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.35);
}
.single-convocatoria--unified .conv-bases__btn--ghost:hover {
    background: rgba(255,255,255,0.08);
    border-color: #fff;
}
.single-convocatoria--unified .conv-bases__btn--solid {
    background: #fff;
    color: var(--ink, #0a0a0a);
}
.single-convocatoria--unified .conv-bases__btn--solid:hover {
    background: var(--accent, #d4f6e0);
    transform: translateY(-2px);
}

/* Navegación inferior */
.single-convocatoria--unified .conv-footer-nav {
    padding: 2rem var(--gutter, 1.5rem) 4rem;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.08));
}
.single-convocatoria--unified .conv-back-link {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(var(--ink-rgb,10,10,10),0.7);
    transition: color 0.2s, transform 0.2s;
}
.single-convocatoria--unified .conv-back-link:hover {
    color: var(--ink, #0a0a0a);
    transform: translateX(-3px);
}

@media (max-width: 700px) {
    .single-convocatoria--unified .conv-section { padding: 3rem var(--gutter, 1.25rem); }
    .single-convocatoria--unified .conv-datos-grid { grid-template-columns: 1fr; }
    .single-convocatoria--unified .conv-bases__btn { min-width: 0; width: 100%; }
}

/* Sede · CTA salas con preview */
.sede-salas-cta__preview { list-style: none; padding: 0; margin: 1.5rem 0; display: flex; flex-direction: column; gap: 0.75rem; }
.sede-salas-cta__preview li { display: flex; align-items: center; gap: 1rem; padding: 0.75rem; border: 1px solid var(--hairline); background: var(--paper); }
.sede-salas-cta__preview-img { display: block; width: 64px; height: 64px; flex-shrink: 0; background: var(--muted) center/cover no-repeat; }
.sede-salas-cta__preview-info { display: flex; flex-direction: column; gap: 0.2rem; }
.sede-salas-cta__preview-name { font-size: 1.05rem; line-height: 1.1; }
.sede-salas-cta__actions { display: flex; gap: 1.25rem; align-items: center; margin-top: 1rem; flex-wrap: wrap; }
.sede-salas-cta__actions .cta-solid { display: inline-block; padding: 0.85rem 1.25rem; text-decoration: none; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; }
.sede-salas-cta__actions .cta-line { font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; }

/* section-header lead (texto descriptivo bajo el título de sección) */
.section-header__lead {
    max-width: 70ch; font-size: 1rem; line-height: 1.6;
    margin-top: 1.25rem; opacity: 0.75;
}


/* =============================================================================
 * Pre-footer Nav · 3 columnas de menús (entre boletín y footer)
 * ========================================================================== */
.prefooter-nav {
    background: var(--ink, #111);
    color: var(--paper, #f7f5f0);
    padding: 5rem var(--gutter, 2rem) 4rem;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.prefooter-nav__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    max-width: var(--container-max, 1400px);
    margin: 0 auto;
}
.prefooter-nav__col { min-width: 0; }
.prefooter-nav__title {
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: clamp(1.75rem, 2.4vw, 2.5rem);
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: none;
    margin: 0 0 2rem;
    color: var(--paper, #fff);
}
.prefooter-nav__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.prefooter-nav__menu li { margin: 0; padding: 0; }
.prefooter-nav__menu a {
    color: rgba(255,255,255,0.78);
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.35;
    letter-spacing: 0.01em;
    display: inline-block;
    transition: color 0.2s ease, transform 0.2s ease;
    position: relative;
}
.prefooter-nav__menu a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -3px;
    height: 1px;
    background: currentColor;
    transition: right 0.25s ease;
}
.prefooter-nav__menu a:hover,
.prefooter-nav__menu a:focus-visible {
    color: #fff;
}
.prefooter-nav__menu a:hover::after,
.prefooter-nav__menu a:focus-visible::after { right: 0; }

@media (max-width: 900px) {
    .prefooter-nav { padding: 3.5rem var(--gutter, 1.25rem) 3rem; }
    .prefooter-nav__inner { grid-template-columns: 1fr; gap: 2.5rem; }

/* =============================================================================
 * "Qué es DAMA" · Lead + cuerpo editorial
 * ========================================================================== */
.home-que-es__lead {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(1.35rem, 1.6vw, 1.65rem);
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--ink, #111);
    max-width: 38ch;
    margin: 1.25rem 0 1.75rem;
    text-wrap: balance;
}
.home-que-es__body {
    max-width: 55ch;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: rgba(var(--ink-rgb, 10,10,10), 0.82);
}
.home-que-es__body p {
    margin: 0 0 1.1em;
}
.home-que-es__body p:last-child { margin-bottom: 0; }
.home-que-es__body strong { color: var(--ink, #111); font-weight: 500; }
.home-que-es__body em { font-style: italic; }
.home-que-es__body a {
    color: var(--ink, #111);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    transition: opacity 0.2s ease;
}
.home-que-es__body a:hover { opacity: 0.7; }
.home-que-es__body ul, .home-que-es__body ol { margin: 0 0 1.1em 1.25em; padding: 0; }
.home-que-es__body li { margin: 0 0 0.4em; }

/* Separador sutil entre lead y body para reforzar la jerarquía */
.home-que-es__lead + .home-que-es__body {
    padding-top: 1.25rem;
    border-top: 1px solid rgba(var(--ink-rgb, 10,10,10), 0.12);
}

@media (max-width: 768px) {
    .home-que-es__lead { font-size: 1.2rem; margin: 1rem 0 1.25rem; }
    .home-que-es__body { font-size: 1rem; }
}

/* Datos destacados (stats row) */
.home-que-es__stats {
    list-style: none;
    margin: 2.5rem 0 0;
    padding: 2rem 0 0;
    border-top: 1px solid rgba(var(--ink-rgb, 10,10,10), 0.12);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 2rem;
}
.home-que-es__stat {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}
.home-que-es__stat-value {
    font-size: clamp(2rem, 3.2vw, 2.85rem);
    line-height: 1;
    font-weight: 300;
    letter-spacing: -0.02em;
    color: var(--ink, #0a0a0a);
}
.home-que-es__stat-label {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb, 10,10,10), 0.55);
    line-height: 1.3;
}
@media (max-width: 640px) {
    .home-que-es__stats { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 2rem; padding-top: 1.5rem; }
    .home-que-es__stat { flex-direction: row; align-items: baseline; gap: 0.9rem; }
    .home-que-es__stat-value { font-size: 1.85rem; }
    .home-que-es__stat-label { font-size: 10.5px; }
}

    .prefooter-nav__title { margin-bottom: 1.25rem; font-size: 1.65rem; }
}

/* =============================================================================
 * Página Equipo · /equipo/
 * ========================================================================== */
.page-equipo { background: var(--paper, #f7f5f0); color: var(--ink, #0a0a0a); }
.equipo-hero { border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12)); }
.equipo-hero__title {
    font-size: var(--fs-hero);
    line-height: 0.98;
    letter-spacing: -0.025em;
    margin: 1rem 0 1.5rem;
    text-wrap: balance;
    max-width: 22ch;
}
.equipo-hero__lead {
    max-width: 70ch;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: rgba(var(--ink-rgb, 10,10,10), 0.78);
}
.equipo-hero__lead p { margin: 0 0 1em; }
.equipo-hero__lead p:last-child { margin-bottom: 0; }

.equipo-group { border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.08)); }
.equipo-group:last-child { border-bottom: 0; }
.equipo-group__header { margin-bottom: var(--gap-head, 40px); max-width: 60ch; }
.equipo-group__title {
    font-size: var(--fs-h1);
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin: 0.75rem 0 0.75rem;
}
.equipo-group__desc {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(var(--ink-rgb, 10,10,10), 0.7);
}

/* Destacados (presidencia, dirección general...) */
.equipo-destacados {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 3rem;
    margin-bottom: 4rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.08));
}
.equipo-card--featured .equipo-card__photo {
    aspect-ratio: 3/4;
    background: rgba(0,0,0,0.05);
    overflow: hidden;
}
.equipo-card--featured .equipo-card__cargo {
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb, 10,10,10), 0.55);
    margin-bottom: 0.5rem;
}
.equipo-card--featured .equipo-card__name {
    font-size: clamp(1.5rem, 2.2vw, 1.85rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: 0 0 1rem;
}
.equipo-card--featured .equipo-card__bio {
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(var(--ink-rgb, 10,10,10), 0.75);
    max-width: 45ch;
}
.equipo-card--featured .equipo-card__bio p { margin: 0 0 0.8em; }

/* Grid normal del resto del equipo */
.equipo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem 2rem;
}
.equipo-card { min-width: 0; }
.equipo-card__photo {
    aspect-ratio: 3/4;
    overflow: hidden;
    background: rgba(0,0,0,0.05);
    /* el <figure> arrastra margin 1em 40px del navegador → alinear a la izquierda con el texto */
    margin: 0 0 1rem;
    width: 100%;
}
.equipo-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter 0.4s ease, transform 0.6s ease;
}
.equipo-card:hover .equipo-card__photo img { filter: grayscale(0%); transform: scale(1.02); }
.equipo-card__body { display: flex; flex-direction: column; gap: 0.3rem; }
.equipo-card__name {
    font-size: 1.1rem;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0;
    font-weight: 400;
}
.equipo-card__cargo {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb, 10,10,10), 0.55);
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .equipo-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .equipo-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.25rem; }
    .equipo-destacados { gap: 2rem; padding-bottom: 2rem; margin-bottom: 2.5rem; }
}
@media (max-width: 480px) {
    .equipo-grid { grid-template-columns: 1fr 1fr; }
}


/* =============================================================================
 * Página Sala de Prensa · /sala-de-prensa/
 * ========================================================================== */
.page-prensa { background: var(--paper, #f7f5f0); color: var(--ink, #0a0a0a); }
.prensa-hero { border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12)); }
.prensa-hero__title { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 0.98; letter-spacing: -0.025em; margin: 1rem 0 1.5rem; max-width: 22ch; text-wrap: balance; }
.prensa-hero__lead { max-width: 70ch; font-size: 1.0625rem; line-height: 1.65; color: rgba(var(--ink-rgb, 10,10,10), 0.78); }

.prensa-contacto { background: var(--ink, #0a0a0a); color: var(--paper, #fff); padding: 5rem var(--gutter, 2rem); }
.prensa-contacto[data-skin="light"] { background: var(--paper, #f7f5f0); color: var(--ink, #0a0a0a); }
.prensa-contacto__inner { display: grid; grid-template-columns: 5fr 7fr; gap: 4rem; align-items: center; max-width: var(--container-max, 1400px); }
.prensa-contacto .kicker, .prensa-contacto__kicker { color: rgba(255,255,255,0.55); }
.prensa-contacto[data-skin="light"] .kicker, .prensa-contacto[data-skin="light"] .prensa-contacto__kicker { color: rgba(var(--ink-rgb,10,10,10),0.55); }
.prensa-contacto__title { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; margin: 1rem 0 0; letter-spacing: -0.025em; font-weight: 300; }
.prensa-contacto__col--info { display: flex; flex-direction: column; gap: 0.85rem; align-items: flex-start; }
.prensa-contacto__person { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin: 0 0 0.4rem; }
.prensa-contacto[data-skin="light"] .prensa-contacto__person { color: rgba(var(--ink-rgb,10,10,10),0.55); }
.prensa-contacto__link { font-family: var(--font-serif); font-weight: 300; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.15; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; transition: opacity 0.25s, border-color 0.25s; padding-bottom: 0.15rem; }
.prensa-contacto__link:hover { opacity: 0.7; }
.prensa-contacto__link--phone { font-size: clamp(1.3rem, 2.2vw, 1.8rem); opacity: 0.85; }

.prensa-descargas__header { margin-bottom: var(--gap-head, 40px); max-width: 60ch; }
.prensa-descargas__title { font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0.5rem 0 0; }
.prensa-descargas__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.prensa-descarga { display: flex; flex-direction: column; gap: 0.8rem; padding: 2rem 1.5rem 1.5rem; border: 1px solid var(--hairline, rgba(0,0,0,0.12)); color: var(--ink, #0a0a0a); text-decoration: none; transition: background 0.25s, transform 0.25s; min-height: 220px; }
.prensa-descarga:hover { background: var(--ink, #0a0a0a); color: var(--paper, #fff); transform: translateY(-2px); }
.prensa-descarga:hover .prensa-descarga__ext, .prensa-descarga:hover .prensa-descarga__desc { color: rgba(255,255,255,0.65); }
.prensa-descarga__meta { display: flex; justify-content: space-between; align-items: center; }
.prensa-descarga__ext { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.5); }
.prensa-descarga__title { font-size: 1.3rem; line-height: 1.15; margin: 0; letter-spacing: -0.01em; flex: 1; }
.prensa-descarga__desc { font-size: 0.85rem; line-height: 1.5; color: rgba(var(--ink-rgb,10,10,10),0.65); margin: 0; }
.prensa-descarga__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; margin-top: auto; }

.prensa-notas__header { display: flex; justify-content: space-between; align-items: end; margin-bottom: var(--gap-head, 40px); gap: 2rem; flex-wrap: wrap; }
.prensa-notas__title { font-size: clamp(2rem, 3vw, 2.5rem); margin: 0.5rem 0 0; letter-spacing: -0.02em; }
.prensa-notas__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.prensa-nota { border-top: 1px solid var(--hairline, rgba(0,0,0,0.12)); }
.prensa-nota:last-child { border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12)); }
.prensa-nota__link { display: grid; grid-template-columns: 1fr 4fr 1fr; gap: 2rem; padding: 1.75rem 0; text-decoration: none; color: var(--ink, #0a0a0a); align-items: baseline; transition: opacity 0.2s; }
.prensa-nota__link:hover { opacity: 0.7; }
.prensa-nota__date { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.55); }
.prensa-nota__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.15; margin: 0; letter-spacing: -0.012em; }
.prensa-nota__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; text-align: right; color: rgba(var(--ink-rgb,10,10,10),0.55); }

@media (max-width: 900px) {
    .prensa-contacto { padding: 3rem var(--gutter, 1.25rem); }
    .prensa-contacto__inner { grid-template-columns: 1fr; gap: 2rem; }
    .prensa-descargas__grid { grid-template-columns: 1fr 1fr; }
    .prensa-nota__link { grid-template-columns: 1fr; gap: 0.4rem; padding: 1.25rem 0; }
}
@media (max-width: 520px) {
    .prensa-descargas__grid { grid-template-columns: 1fr; }
}

/* =============================================================================
 * Página El Foco está en ti · /foco-esta-en-ti/
 * ========================================================================== */
.page-foco { background: var(--paper, #f7f5f0); color: var(--ink, #0a0a0a); overflow-x: clip; } /* v2.63: clip */
.foco-hero { border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12)); }
.foco-hero__inner { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.foco-hero__kicker { font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(var(--ink-rgb,10,10,10),0.55); }
.foco-hero__title { font-size: clamp(3rem, 9vw, 8rem); line-height: 0.92; letter-spacing: -0.04em; margin: 0; font-weight: 300; text-wrap: balance; }
.foco-hero__rule { border: 0; height: 1px; background: var(--ink, #0a0a0a); margin: 0; width: 6rem; }
.foco-hero__lead { font-family: var(--font-serif); font-weight: 300; font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.3; max-width: 28ch; margin: 0; color: var(--ink, #0a0a0a); }

.foco-section { position: relative; padding: 3rem 0 0; }
.foco-section--s2 { background: var(--ink, #0a0a0a); color: var(--paper, #fff); margin-top: 4rem; }
.foco-section--s2 .foco-card__num { color: rgba(255,255,255,0.4); }
.foco-section--s2 .foco-card__body { color: rgba(255,255,255,0.75); }
.foco-section--s2 .foco-marquee__item { color: rgba(255,255,255,0.85); }

.foco-marquee { overflow: hidden; padding: 1.5rem 0; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; opacity: 0.18; }
.foco-section--s2 .foco-marquee { opacity: 0.25; }
.foco-marquee__track { display: flex; gap: 2.5rem; animation: foco-marquee 30s linear infinite; white-space: nowrap; will-change: transform; }
.foco-marquee__item { font-size: clamp(2rem, 5vw, 4rem); line-height: 1; letter-spacing: -0.02em; flex-shrink: 0; }
@keyframes foco-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.foco-section__title { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.1; margin: 0 0 3rem; letter-spacing: -0.02em; max-width: 32ch; }
.foco-cards { display: flex; flex-direction: column; gap: 0; }
.foco-card { display: grid; grid-template-columns: 1fr 7fr; gap: 3rem; padding: 3rem 0; border-top: 1px solid currentColor; opacity: 1; }
.foco-section--s2 .foco-card { border-color: rgba(255,255,255,0.15); }
.foco-card:last-child { border-bottom: 1px solid currentColor; }
.foco-section--s2 .foco-card:last-child { border-bottom-color: rgba(255,255,255,0.15); }
.foco-card__num { font-family: var(--font-serif); font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1; color: rgba(var(--ink-rgb,10,10,10),0.35); font-weight: 300; }
.foco-card__content { display: flex; flex-direction: column; gap: 1.25rem; max-width: 60ch; }
.foco-card__title { font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.12; letter-spacing: -0.015em; margin: 0; font-weight: 600; }
.foco-card__body { font-size: 1.0625rem; line-height: 1.65; color: rgba(var(--ink-rgb,10,10,10),0.78); }
.foco-card__body p { margin: 0 0 0.9em; }
.foco-card__body p:last-child { margin-bottom: 0; }

.foco-descargas__title { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0.5rem 0 2.5rem; max-width: 30ch; }
.foco-descargas__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; }
.foco-descarga { display: flex; flex-direction: column; gap: 0.6rem; padding: 2rem 1.5rem; border: 1px solid var(--hairline, rgba(0,0,0,0.12)); text-decoration: none; color: var(--ink, #0a0a0a); transition: background 0.25s, color 0.25s; }
.foco-descarga:hover { background: var(--ink, #0a0a0a); color: var(--paper, #fff); }
.foco-descarga__title { font-size: 1.35rem; line-height: 1.15; margin: 0; }
.foco-descarga__desc { font-size: 0.9rem; line-height: 1.55; opacity: 0.7; margin: 0; }
.foco-descarga__cta { font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; margin-top: 0.8rem; }

@media (max-width: 768px) {
    .foco-card { grid-template-columns: 1fr; gap: 1rem; padding: 2rem 0; }
    .foco-section--s2 { margin-top: 2rem; }
}


/* =============================================================================
 * Footer unificado · Estructura, columnas, módulo "El Foco está en ti"
 * ========================================================================== */
.site-footer.site-footer--unified {
    background: var(--paper, #f7f5f0);
    color: var(--ink, #0a0a0a);
    padding: 5rem var(--gutter, 1.25rem) 2.5rem;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.08));
}
.site-footer.site-footer--unified .site-footer__inner {
    margin: 0 auto;
    width: 100%;
}
.site-footer.site-footer--unified .footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr);
    gap: 5rem;
    align-items: flex-start;
}
.site-footer.site-footer--unified .footer-col--intro { min-width: 0; }
.site-footer.site-footer--unified .footer-logo img {
    max-width: 140px;
    height: auto;
    display: block;
    margin-bottom: 1.5rem;
}
.site-footer.site-footer--unified .footer-title {
    font-family: var(--font-serif);
    font-size: clamp(1.85rem, 2.6vw, 2.5rem);
    line-height: 1.05;
    margin: 0 0 1.25rem;
    font-weight: 400;
    text-wrap: balance;
}
.site-footer.site-footer--unified .footer-intro {
    font-size: 0.95rem;
    line-height: 1.65;
    color: rgba(var(--ink-rgb,10,10,10),0.75);
    max-width: 48ch;
    margin: 0 0 1.75rem;
}
.site-footer.site-footer--unified .footer-social {
    list-style: none;
    padding: 0;
    margin: 0 0 2.5rem;
    display: flex; flex-wrap: wrap; gap: 1.25rem;
}
.site-footer.site-footer--unified .footer-social a {
    font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
    text-decoration: none; color: var(--ink, #0a0a0a);
    border-bottom: 1px solid currentColor; padding-bottom: 2px;
    transition: opacity 0.2s;
}
.site-footer.site-footer--unified .footer-social a:hover { opacity: 0.6; }

/* Columnas de menús del footer */
.site-footer.site-footer--unified .footer-col--nav { min-width: 0; }
.site-footer.site-footer--unified .footer-nav-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
}
.site-footer.site-footer--unified .footer-kicker {
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin: 0 0 1.25rem;
    font-weight: 500;
    color: rgba(var(--ink-rgb,10,10,10),0.55);
    line-height: 1;
}
.site-footer.site-footer--unified .footer-menu {
    list-style: none;
    padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.75rem;
}
.site-footer.site-footer--unified .footer-menu a {
    text-decoration: none;
    color: var(--ink, #0a0a0a);
    font-size: 0.98rem;
    line-height: 1.4;
    transition: opacity 0.2s, transform 0.2s;
    display: inline-block;
}
.site-footer.site-footer--unified .footer-menu a:hover {
    opacity: 0.55;
    transform: translateX(2px);
}

/* Módulo "El Foco está en ti" en footer */
.site-footer.site-footer--unified .footer-foco--module {
    display: grid;
    gap: 1rem;
    /* v2.95 · Sin caja negra: los logos van sueltos sobre el fondo del footer. */
    padding: 0;
    background: transparent;
    color: inherit;
    text-decoration: none;
    max-width: 440px;
    width: 100%;
    transition: opacity 0.25s, transform 0.25s;
    border: 0;
    margin-top: 0;
}
.site-footer.site-footer--unified .footer-foco--module:hover {
    opacity: 0.92;
    transform: translateY(-2px);
}
.site-footer.site-footer--unified .footer-foco__media {
    display: flex; gap: 1rem; align-items: center;
}
.site-footer.site-footer--unified .footer-foco__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
}
.site-footer.site-footer--unified .footer-foco__media:has(.footer-foco__img + .footer-foco__img) .footer-foco__img {
    max-width: 50%;
}
.site-footer.site-footer--unified .footer-foco__copy {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.site-footer.site-footer--unified .footer-foco__title {
    font-family: "Anton", "Bebas Neue", "Oswald", "Impact", "Arial Narrow Bold", sans-serif;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: #fff;
}
.site-footer.site-footer--unified .footer-foco__body {
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.78);
    margin: 0;
}
.site-footer.site-footer--unified .footer-foco__body p { margin: 0 0 0.4rem; }
.site-footer.site-footer--unified .footer-foco__body p:last-child { margin-bottom: 0; }

/* Bottom: copyright + legales */
.site-footer.site-footer--unified .footer-bottom {
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.08));
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem;
    align-items: center;
}
.site-footer.site-footer--unified .footer-copyright {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb,10,10,10),0.55);
}
.site-footer.site-footer--unified .footer-legal {
    display: flex; gap: 1.5rem; flex-wrap: wrap;
}
.site-footer.site-footer--unified .footer-legal a {
    text-decoration: none;
    color: rgba(var(--ink-rgb,10,10,10),0.6);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: color 0.2s;
}
.site-footer.site-footer--unified .footer-legal a:hover { color: var(--ink, #0a0a0a); }

/* Responsive del footer */
@media (max-width: 1024px) {
    .site-footer.site-footer--unified .footer-grid {
        grid-template-columns: 1fr;
        gap: 3.5rem;
    }
    .site-footer.site-footer--unified .footer-nav-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }
}
@media (max-width: 700px) {
    .site-footer.site-footer--unified { padding: 4rem var(--gutter, 1.25rem) 2rem; }
    .site-footer.site-footer--unified .footer-nav-grid {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }
    .site-footer.site-footer--unified .footer-foco--module { max-width: 100%; }
    .site-footer.site-footer--unified .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        margin-top: 2.5rem;
    }
}

/* Compat: ocultar el antiguo pre-footer (ya integrado en el footer) */
.prefooter-nav { display: none !important; }


/* =============================================================================
 * Servicios a socios · Fondo personalizado (color sólido o degradado)
 * Cuando hay bg custom, las cards se vuelven semi-transparentes para que el
 * fondo respire y el texto hereda el color del contenedor.
 * ========================================================================== */
.home-servicios--custom-bg .servicios-grid {
    border-color: rgba(255,255,255,0.12);
}
.home-servicios--custom-bg .servicio-card {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.12);
    color: inherit;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.home-servicios--custom-bg .servicio-card h3,
.home-servicios--custom-bg .servicio-card p,
.home-servicios--custom-bg .servicio-card .kicker,
.home-servicios--custom-bg .servicio-card__cta { color: inherit; }
.home-servicios--custom-bg .servicio-card .kicker,
.home-servicios--custom-bg .servicio-card p { opacity: 0.78; }
.home-servicios--custom-bg .servicio-card:hover {
    background: rgba(255,255,255,0.12);
    color: inherit;
}
.home-servicios--custom-bg .servicio-card:hover .kicker,
.home-servicios--custom-bg .servicio-card:hover p { opacity: 0.95; }

/* Sutil animación del degradado (≤ 18s, casi imperceptible) sin ser intrusiva */
.home-servicios--gradient {
    background-size: 200% 200%;
    animation: dama-grad-shift 18s ease-in-out infinite alternate;
}
@keyframes dama-grad-shift {
    0%   { background-position: 0% 0%; }
    100% { background-position: 100% 100%; }
}

/* Si el usuario tiene reduced-motion activado, no animar */
@media (prefers-reduced-motion: reduce) {
    .home-servicios--gradient { animation: none; }
}


/* =============================================================================
 * Sistema reutilizable · Hover personalizado (Light/Dark/Sólido/Degradado)
 *
 * Para activar en cualquier bloque con cards:
 *  1. Añadir clase .has-hover-custom al contenedor (lo hace dama_hover_styles).
 *  2. Las variables --dama-hover-bg y --dama-hover-text se inyectan inline.
 *  3. La regla CSS aplica al hover de las cards-objetivo.
 *
 * Cards soportadas: .servicio-card, .video-card, .news-card, .event-card,
 * .equipo-card, .prensa-descarga, .conv-card, .dc-card, .salas-card.
 * Para extender a otros, añadir el selector aquí.
 * =========================================================================== */
.has-hover-custom .servicio-card,
.has-hover-custom .video-card,
.has-hover-custom .dama-vcard,
.has-hover-custom .news-card,
.has-hover-custom .event-card,
.has-hover-custom .equipo-card,
.has-hover-custom .prensa-descarga,
.has-hover-custom .conv-card,
.has-hover-custom .dc-card,
.has-hover-custom .sala,
.has-hover-custom .salas-card {
    --dama-hover-text: var(--paper, #f7f5f0);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color 0.35s ease, background 0.35s ease;
}
.has-hover-custom .servicio-card::before,
.has-hover-custom .video-card::before,
.has-hover-custom .dama-vcard::before,
.has-hover-custom .news-card::before,
.has-hover-custom .event-card::before,
.has-hover-custom .equipo-card::before,
.has-hover-custom .prensa-descarga::before,
.has-hover-custom .conv-card::before,
.has-hover-custom .dc-card::before,
.has-hover-custom .sala::before,
.has-hover-custom .salas-card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: var(--dama-hover-bg, var(--ink, #0a0a0a));
    background-size: 200% 200%;
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}
.has-hover-custom .servicio-card > *,
.has-hover-custom .video-card > *,
.has-hover-custom .dama-vcard > *,
.has-hover-custom .news-card > *,
.has-hover-custom .event-card > *,
.has-hover-custom .equipo-card > *,
.has-hover-custom .prensa-descarga > *,
.has-hover-custom .conv-card > *,
.has-hover-custom .dc-card > *,
.has-hover-custom .sala > *,
.has-hover-custom .salas-card > * { position: relative; z-index: 1; }

.has-hover-custom .servicio-card:hover,
.has-hover-custom .video-card:hover,
.has-hover-custom .dama-vcard:hover,
.has-hover-custom .news-card:hover,
.has-hover-custom .event-card:hover,
.has-hover-custom .equipo-card:hover,
.has-hover-custom .prensa-descarga:hover,
.has-hover-custom .conv-card:hover,
.has-hover-custom .dc-card:hover,
.has-hover-custom .sala:hover,
.has-hover-custom .salas-card:hover {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    color: var(--dama-hover-text) !important;
}
.has-hover-custom .servicio-card:hover *,
.has-hover-custom .video-card:hover *,
.has-hover-custom .dama-vcard:hover *,
.has-hover-custom .news-card:hover *,
.has-hover-custom .event-card:hover *,
.has-hover-custom .equipo-card:hover *,
.has-hover-custom .prensa-descarga:hover *,
.has-hover-custom .conv-card:hover *,
.has-hover-custom .dc-card:hover *,
.has-hover-custom .sala:hover *,
.has-hover-custom .salas-card:hover * { color: var(--dama-hover-text) !important; }

.has-hover-custom .servicio-card:hover::before,
.has-hover-custom .video-card:hover::before,
.has-hover-custom .dama-vcard:hover::before,
.has-hover-custom .news-card:hover::before,
.has-hover-custom .event-card:hover::before,
.has-hover-custom .equipo-card:hover::before,
.has-hover-custom .prensa-descarga:hover::before,
.has-hover-custom .conv-card:hover::before,
.has-hover-custom .dc-card:hover::before,
.has-hover-custom .sala:hover::before,
.has-hover-custom .salas-card:hover::before { opacity: 1; }

/* Movimiento sutil cuando el hover es degradado */
.has-hover-custom--gradient .servicio-card::before,
.has-hover-custom--gradient .video-card::before,
.has-hover-custom--gradient .dama-vcard::before,
.has-hover-custom--gradient .news-card::before,
.has-hover-custom--gradient .event-card::before,
.has-hover-custom--gradient .equipo-card::before,
.has-hover-custom--gradient .prensa-descarga::before,
.has-hover-custom--gradient .conv-card::before,
.has-hover-custom--gradient .dc-card::before,
.has-hover-custom--gradient .sala::before,
.has-hover-custom--gradient .salas-card::before {
    animation: dama-hover-shift 6s ease-in-out infinite alternate;
    animation-play-state: paused;
}
.has-hover-custom--gradient .servicio-card:hover::before,
.has-hover-custom--gradient .video-card:hover::before,
.has-hover-custom--gradient .dama-vcard:hover::before,
.has-hover-custom--gradient .news-card:hover::before,
.has-hover-custom--gradient .event-card:hover::before,
.has-hover-custom--gradient .equipo-card:hover::before,
.has-hover-custom--gradient .prensa-descarga:hover::before,
.has-hover-custom--gradient .conv-card:hover::before,
.has-hover-custom--gradient .dc-card:hover::before,
.has-hover-custom--gradient .sala:hover::before,
.has-hover-custom--gradient .salas-card:hover::before {
    animation-play-state: running;
}
@keyframes dama-hover-shift {
    0%   { background-position: 0% 0%; }
    100% { background-position: 100% 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .has-hover-custom--gradient .servicio-card::before { animation: none; }
}



/* =============================================================================
 * DAMA · Páginas estáticas — Hero, secciones editoriales, 2 columnas, FAQ
 * ========================================================================== */

/* ---- Hero de página ---------------------------------------------------- */
.dama-page-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    padding: clamp(2.5rem, 5vw, 5rem) var(--gutter, 1.5rem) clamp(2rem, 4vw, 3.5rem);
    overflow: hidden;
}
.dama-page-hero--compact { min-height: clamp(220px, 30vh, 340px); }
.dama-page-hero--medium  { min-height: clamp(300px, 42vh, 480px); }
.dama-page-hero--large   { min-height: clamp(420px, 60vh, 640px); }
.dama-page-hero--full    { min-height: 88vh; }
.dama-page-hero--center  { align-items: center; text-align: center; }
.dama-page-hero__inner {
    position: relative; z-index: 2;
    width: 100%;
    max-width: var(--max-w, 88rem);
    margin: 0 auto;
}
.dama-page-hero__kicker {
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
    opacity: 0.7;
    color: inherit !important;
}
.dama-page-hero__title {
    font-size: clamp(2.25rem, 4.5vw, 4rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
    margin: 0;
    max-width: 22ch;
    text-wrap: balance;
    color: inherit !important;
    font-weight: 400;
}
.dama-page-hero--center .dama-page-hero__title { max-width: 28ch; margin-left: auto; margin-right: auto; }
.dama-page-hero__lead {
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    line-height: 1.55;
    margin-top: 1.25rem;
    max-width: 55ch;
    opacity: 0.92;
    color: inherit !important;
}
.dama-page-hero--center .dama-page-hero__lead { margin-left: auto; margin-right: auto; }

/* Cuando hay un hero al inicio de la plantilla, neutralizamos el padding-top
   que añade .has-sticky-header al #main, porque el header sticky es semi-
   transparente y queremos que el hero llegue hasta arriba del todo. */
.has-sticky-header .site-main.dama-page #main:not(:first-child),
.has-sticky-header #main:has(> .dama-page__article > .wpb-content-wrapper > .vc_row:first-child .dama-page-hero:first-child),
.has-sticky-header #main:has(> .dama-page__article > .dama-page-hero:first-child) {
    padding-top: 0 !important;
}
/* Selector más simple y robusto: si la plantilla es page-dama, NO heredamos padding-top. */
body.page-template-page-dama #main { padding-top: 0 !important; }

/* ============================================================
   v3.7 · Ancho del contenido ESTÁNDAR en la plantilla "DAMA · Página".
   page-dama.php vuelca the_content() SIN envolverlo en un contenedor con
   max-width. Los módulos DAMA se autocontienen (su __inner va a 1440) y son
   full-bleed a propósito, pero cualquier bloque estándar —texto/imagen de
   WPBakery, o un bloque Gutenberg suelto— se iba de borde a borde de la
   ventana (líneas de 1600px, ilegibles).

   El workaround anterior (v2.84.5) solo cazaba `.wpb_text_column` de WPBakery
   en un anidamiento EXACTO, y no tocaba Gutenberg — por eso un <p> suelto
   (p. ej. en /recreas/) seguía a todo el ancho. Esto lo generaliza:

     (A) Contenido Gutenberg/HTML suelto: hijos DIRECTOS del article. Se excluye
         el wrapper de WPBakery, el hero y las secciones DAMA (que son full-bleed).
     (B) WPBakery: cualquier fila que NO sea un módulo DAMA y cuyo contenido
         directo sea estándar (texto, imagen, galería, botón, vídeo). Una fila
         que contenga una .dama-section anidada NO entra en el :is(), así que
         su fondo full-bleed queda intacto.
   ============================================================ */

/* (A) Gutenberg / HTML suelto. `.recreas-embed` se auto-gestiona → fuera. */
.dama-page__article > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, dl, blockquote, figure,
    pre, table, address,
    .wp-block-image, .wp-block-embed, .wp-block-columns, .wp-block-group,
    .wp-block-heading, .wp-block-paragraph, .wp-block-list, .wp-block-quote,
    .wp-block-table, .wp-block-buttons, .wp-block-gallery, .wp-block-cover) {
    width: 100%;
    max-width: var(--max-w, 1440px);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter, 2rem);
    padding-right: var(--gutter, 2rem);
    box-sizing: border-box;
}

/* (B) WPBakery: filas con contenido estándar directo (no módulos DAMA). */
.dama-page__article .vc_row:not(.dama-section):has(> .wpb_column > .vc_column-inner > .wpb_wrapper > :is(.wpb_text_column, .wpb_single_image, .wpb_gallery, .vc_btn3-container, .wpb_video_widget, .vc_column_text, .wpb_content_element)) {
    padding-top: var(--dama-section-py, 80px);
    padding-bottom: var(--dama-section-py, 80px);
    padding-left: var(--gutter, 2rem);
    padding-right: var(--gutter, 2rem);
}
.dama-page__article .vc_row:not(.dama-section):has(> .wpb_column > .vc_column-inner > .wpb_wrapper > :is(.wpb_text_column, .wpb_single_image, .wpb_gallery, .vc_btn3-container, .wpb_video_widget, .vc_column_text, .wpb_content_element)) > .wpb_column {
    width: 100%;
    max-width: var(--max-w, 1440px);
    margin-left: auto;
    margin-right: auto;
    float: none;
}
@media (max-width: 768px) {
    .dama-page__article > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, dl, blockquote, figure,
        pre, table, address, .wp-block-image, .wp-block-embed, .wp-block-columns,
        .wp-block-group, .wp-block-heading, .wp-block-paragraph, .wp-block-list,
        .wp-block-quote, .wp-block-table, .wp-block-buttons, .wp-block-gallery, .wp-block-cover) {
        padding-left: var(--gutter);   /* v3.64 · unificado con .dama-section y el hero */
        padding-right: var(--gutter);
    }
    .dama-page__article .vc_row:not(.dama-section):has(> .wpb_column > .vc_column-inner > .wpb_wrapper > :is(.wpb_text_column, .wpb_single_image, .wpb_gallery, .vc_btn3-container, .wpb_video_widget, .vc_column_text, .wpb_content_element)) {
        padding-top: var(--dama-section-py-mobile, 56px);
        padding-bottom: var(--dama-section-py-mobile, 56px);
    }
}

/* ---- Wrapper común de secciones (v2.63: padding top/bottom independiente por bloque) ----- */
.dama-section {
    /* Fallback: --dama-section-pt/pb (por bloque) → --dama-section-py (global) → 80px */
    padding-top: var(--dama-section-pt, var(--dama-section-py, 80px));
    padding-bottom: var(--dama-section-pb, var(--dama-section-py, 80px));
    padding-left: var(--gutter, 2rem);
    padding-right: var(--gutter, 2rem);
}
.dama-section__inner {
    width: 100%;
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
}
.dama-section__head {
    display: flex;
    flex-direction: column;
    gap: var(--gap-kicker-title, 18px);
    margin-bottom: var(--gap-head, 40px);
    max-width: 60ch;
}
@media (max-width: 600px) {
    .dama-section {
        padding-top: var(--dama-section-pt-mobile, var(--dama-section-py-mobile, 56px));
        padding-bottom: var(--dama-section-pb-mobile, var(--dama-section-py-mobile, 56px));
    }
}
/* El gap del .dama-section__head ya separa kicker→título (18px). Sin margin-top extra. */
.dama-section__head .dama-section__title { margin-top: 0; }
.dama-section__title {
    font-family: var(--font-serif);
    font-size: var(--fs-h1);
    line-height: 1.1;
    letter-spacing: -0.018em;
    margin: 0;
    text-wrap: balance;
    font-weight: 600;
}

/* Editorial · alineaciones y anchos */
.dama-section--center .dama-section__inner,
.dama-section--center .dama-section__head { text-align: center; margin-left: auto; margin-right: auto; }
.dama-section--center .dama-section__head { max-width: 60ch; }
.dama-section--w-editorial .dama-section__body { max-width: 70ch; }
.dama-section--w-editorial.dama-section--center .dama-section__body { margin-left: auto; margin-right: auto; }
.dama-section--editorial .dama-section__body { font-size: var(--fs-body); line-height: var(--lh-body); }
.dama-section--editorial .dama-section__body p { margin: 0 0 1.1rem; }
.dama-section--editorial .dama-section__body p:last-child { margin-bottom: 0; }
/* Sección editorial: mantiene el padding unificado (--dama-section-py = 80px) */
.dama-section--editorial .dama-section__head { gap: var(--gap-kicker-title, 18px); }
.dama-section--editorial .dama-section__head .dama-section__title { margin-top: 0; }
/* v2.61 · Editorial sin .dama-section__head: aplica los mismos gaps al inner directo */
.dama-section--editorial .dama-section__inner > .kicker { margin: 0 0 var(--gap-kicker-title, 18px); }
.dama-section--editorial .dama-section__inner > .dama-section__title { margin: 0 0 var(--gap-head, 40px); }
.dama-section--editorial .dama-section__inner > .kicker + .dama-section__title { margin-top: 0; }
.dama-section--editorial .dama-section__inner > .dama-section__body { margin-top: 0; }
/* v2.61 · El cuerpo editorial siempre toma --fs-body (16px). Anula font-sizes inline del editor visual. */
.dama-section--editorial .dama-section__body,
.dama-section--editorial .dama-section__body :is(p, li, strong, em, span, a) { font-size: var(--fs-body) !important; line-height: var(--lh-body) !important; }
/* Cuando solo hay cuerpo (sin kicker/título), añadir margen-top mínimo para que respire */
.dama-section--editorial .dama-section__inner > .dama-section__body:first-child { margin-top: 0; }

/* ---- 2 columnas ------------------------------------------------------- */
.dama-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
}
.dama-two-cols--single { grid-template-columns: 1fr; max-width: 70ch; }
.dama-two-cols--gap-tight  { gap: clamp(1rem, 2vw, 2rem); }
.dama-two-cols--gap-normal { gap: clamp(1.5rem, 3vw, 3rem); }
.dama-two-cols--gap-wide   { gap: clamp(2.5rem, 5vw, 5rem); }
.dama-two-cols--ratio-50-50 { grid-template-columns: 1fr 1fr; }
.dama-two-cols--ratio-60-40 { grid-template-columns: 6fr 4fr; }
.dama-two-cols--ratio-40-60 { grid-template-columns: 4fr 6fr; }
.dama-two-cols--ratio-70-30 { grid-template-columns: 7fr 3fr; }
.dama-two-cols--ratio-30-70 { grid-template-columns: 3fr 7fr; }
.dama-two-cols__col {
    min-width: 0;
    padding: clamp(1.5rem, 2.5vw, 2rem) 0;
    /* v2.62 · Columnas equi-altura con CTA anclado al fondo. */
    display: flex;
    flex-direction: column;
    /* v2.61: sin border-top decorativo (lee como tarjeta accidental). */
}
/* v2.62 · La fila de botones se ancla al fondo de la columna (margin-top:auto). */
.dama-two-cols__col .dama-two-cols__ctas { margin-top: auto; padding-top: 1.5rem; }
.dama-section--two-cols .dama-two-cols__col:first-child { padding-top: 0; }
.dama-section--two-cols .dama-two-cols__col:nth-child(2):not(:first-child) { padding-top: 0; }
.dama-two-cols__title {
    font-size: clamp(1.15rem, 1.6vw, 1.4rem);
    line-height: 1.2;
    margin: 0 0 1.5rem;
    font-weight: 500;
    color: var(--ink, #0a0a0a);
}
.dama-two-cols__col > .kicker { margin-bottom: 0.75rem; }
.dama-two-cols__col .conv-prose {
    font-size: 1rem;
    line-height: 1.65;
}
.dama-two-cols__col .conv-prose p { margin: 0 0 0.85rem; }
.dama-two-cols__col .dama-faq--inline {
    margin-top: 0.25rem;
}
/* v2.62 · Ficha imagen-arriba en columnas type="text" (autor, obra, retrato) */
.dama-two-cols__ficha-img {
    margin: 0 0 1.5rem;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: rgba(0,0,0,0.04);
}
.dama-two-cols__ficha-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* v2.61 · Fila de botones nativos en dama_column */
.dama-two-cols__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin-top: 1.5rem;
    align-items: center;
}
.dama-two-cols__ctas .cta-solid,
.dama-two-cols__ctas .cta-line { min-height: 44px; }
@media (max-width: 768px) {
    .dama-two-cols,
    .dama-two-cols--ratio-50-50,
    .dama-two-cols--ratio-60-40,
    .dama-two-cols--ratio-40-60,
    .dama-two-cols--ratio-70-30,
    .dama-two-cols--ratio-30-70 { grid-template-columns: 1fr; gap: 1.5rem; }
    .dama-section--two-cols .dama-two-cols__col:nth-child(2) {
        border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
        padding-top: 1.5rem;
    }
}

/* ---- Lista con bullets (tipo "feature list") ------------------------- */
.dama-feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.dama-feature-list__item {
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-feature-list__item:last-child { border-bottom: 0; }
.dama-feature-list__link,
.dama-feature-list__item {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1.1rem 0;
    text-decoration: none;
    color: inherit;
    transition: padding-left 0.25s, opacity 0.25s;
}
.dama-feature-list__link:hover {
    padding-left: 0.5rem;
    opacity: 0.7;
}
.dama-feature-list__title {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.3;
}
.dama-feature-list__desc {
    font-size: 0.9rem;
    line-height: 1.5;
    opacity: 0.7;
}

/* ---- Tabs --------------------------------------------------------------- */
.dama-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
    margin-bottom: var(--gap-head, 40px);
    overflow-x: auto;
    scrollbar-width: thin;
}
.dama-tabs__btn {
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    padding: 1rem 0;
    margin-right: 2.5rem;
    font: inherit;
    font-family: var(--font-serif);
    /* v2.61: tabs/FAQ/tarjeta usan H3 escala 30→21. --fs-tabs-label eliminado del fallback (apunta a --fs-h3). */
    font-size: var(--dama-tabs-label-size, var(--fs-h3));
    font-weight: var(--dama-tabs-label-weight, 600);
    line-height: 1.25;
    color: var(--dama-tabs-inactive, rgba(var(--ink-rgb,10,10,10), 0.55));
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s;
    white-space: normal; /* permitir wrap en móvil para no desbordar a 375px */
    text-align: left;
    letter-spacing: -0.005em;
    display: inline-flex;
    align-items: baseline;
    gap: 0.75rem;
}
.dama-tabs__btn:hover { color: var(--dama-tabs-active, var(--ink, #0a0a0a)); }
.dama-tabs__btn.is-active {
    color: var(--dama-tabs-active, var(--ink, #0a0a0a));
    border-bottom-color: var(--dama-tabs-active, var(--ink, #0a0a0a));
    font-weight: var(--dama-tabs-label-weight, 600);
}
.dama-tabs__btn:focus-visible {
    outline: 2px solid var(--accent, #d4f6e0);
    outline-offset: 2px;
}
/* Numeración opt-in (show_numbers) — número en Fraunces, ~24px sobre body 16 */
.dama-tabs__num {
    font-family: var(--font-serif);
    font-size: calc(var(--dama-tabs-label-size, var(--fs-h3)) + 0.5rem);
    font-weight: 600;
    line-height: 1;
    font-feature-settings: "tnum" 1, "lnum" 1;
    color: inherit;
}
.dama-section--tabs[style*="--dama-tabs-kicker"] .dama-section__head .kicker {
    color: var(--dama-tabs-kicker);
}
.dama-section--tabs[style*="--dama-tabs-title"] .dama-section__title {
    color: var(--dama-tabs-title);
}
.dama-tabs__panel { display: none; }
.dama-tabs__panel.is-active { display: block; }
.dama-tabs__panel[hidden] { display: none; }
[data-skin='dark'] .dama-tabs__nav { border-bottom-color: rgba(255,255,255,0.15); }
[data-skin='dark'] .dama-tabs__btn { color: var(--dama-tabs-inactive, rgba(255,255,255,0.55)); }
[data-skin='dark'] .dama-tabs__btn:hover,
[data-skin='dark'] .dama-tabs__btn.is-active { color: var(--dama-tabs-active, #fff); border-bottom-color: var(--dama-tabs-active, #fff); }

@media (max-width: 600px) {
    .dama-tabs__nav { gap: 0; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .dama-tabs__btn { margin-right: 1.25rem; white-space: nowrap; padding: 0.85rem 0; /* en móvil scroll horizontal */ }
}
/* v2.60 · 375px: tabs con scroll horizontal limpio, sin overflow del body */
@media (max-width: 400px) {
    .dama-tabs__btn { margin-right: 1rem; }
}

/* Versión vertical (image accordion: títulos verticales) — token --fs-accordion-vertical (36px fijo) */
.conv-accordion__title,
.conv-accordion__title--vertical,
.dama-conv-accordion__title {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-accordion-vertical);
    line-height: 1.15;
    letter-spacing: -0.018em;
}

/* ---- Quote / cita editorial -------------------------------------------- */
.dama-section--quote { padding: clamp(2.25rem, 4.5vw, 4.5rem) var(--gutter, 1.5rem); }
/* v2.70.5 · CITA editorial · rediseño de respiración
 * Antes: max-width:32ch en el contenedor → "una palabra por línea" en grande.
 * Ahora: el blockquote ocupa el contenedor (--max-w) y es el TEXTO quien
 * controla su ancho de línea con max-inline-size (24ch) para 3-5 palabras
 * por línea independientemente del font-size resuelto.
 */
.dama-quote {
    margin: 0;
    max-width: 100%;
    border-left: 3px solid var(--ink, #0a0a0a);
    padding-left: clamp(1rem, 2vw, 2rem);
}
.dama-quote--center {
    margin-left: auto;
    margin-right: auto;
    border-left: 0;
    padding-left: 0;
    text-align: center;
}
.dama-quote--right {
    margin-left: auto;
    text-align: right;
    border-left: 0;
    border-right: 3px solid var(--ink, #0a0a0a);
    padding-left: 0;
    padding-right: clamp(1rem, 2vw, 2rem);
}
.dama-quote__text {
    /* clamp conservador: 1.4rem (móvil) → 2.4rem (desktop). Antes 2.8rem máx. */
    font-size: clamp(1.4rem, 0.95rem + 1.6vw, 2.4rem);
    line-height: 1.2;
    letter-spacing: -0.015em;
    margin: 0;
    text-wrap: balance;
    font-weight: 400;
    color: var(--ink, #0a0a0a);
    /* Ancho de LÍNEA cómodo: 24ch ≈ 3-5 palabras a tamaño grande. */
    max-inline-size: 24ch;
}
.dama-quote--center .dama-quote__text { margin-inline: auto; }
.dama-quote--right  .dama-quote__text { margin-inline: auto 0; }
.dama-quote__author {
    margin-top: 1.25rem;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb,10,10,10), 0.55);
}
[data-skin='dark'] .dama-quote { border-color: rgba(255,255,255,0.7); }
[data-skin='dark'] .dama-quote__text { color: #fff; }
[data-skin='dark'] .dama-quote__author { color: rgba(255,255,255,0.6); }

/* v2.71 · dama_quote · modo 2 columnas
 * Grid de 2 columnas con proporción configurable + alineación vertical.
 * En 2col, el blockquote interno NO necesita max-inline-size porque el ancho
 * de la columna ya es razonable. Lo dejamos limitado a 28ch defensivamente. */
.dama-section--quote-two { padding: clamp(2.5rem, 5vw, 5.5rem) var(--gutter, 1.5rem); }
.dama-quote-two {
    display: grid;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: center;
}
/* Proporciones */
.dama-quote-two--r1-1   { grid-template-columns: 1fr 1fr; }
.dama-quote-two--r13-1  { grid-template-columns: 1.3fr 1fr; }
.dama-quote-two--r1-13  { grid-template-columns: 1fr 1.3fr; }
/* Alineación vertical */
.dama-quote-two--vstart  { align-items: start; }
.dama-quote-two--vcenter { align-items: center; }
.dama-quote-two--vend    { align-items: end; }
/* En 2col, la cita ocupa toda la columna · ajustamos line-width */
.dama-quote-two .dama-quote { max-width: 100%; }
.dama-quote-two .dama-quote__text { max-inline-size: 28ch; }
/* Aside */
.dama-quote-two__aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.dama-quote-two__media { width: 100%; }
.dama-quote-two__media img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    object-fit: cover;
}
.dama-quote-two__text {
    font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.05rem);
    line-height: 1.6;
    color: rgba(var(--ink-rgb,10,10,10), 0.78);
}
.dama-quote-two__text p { margin: 0 0 0.8em; }
.dama-quote-two__text p:last-child { margin-bottom: 0; }
[data-skin='dark'] .dama-quote-two__text { color: rgba(255,255,255,0.78); }

/* Móvil: stack a 1 columna · invertir orden cuando aside-position=left para
 * mantener la cita visualmente primero en móvil. */
@media (max-width: 768px) {
    .dama-quote-two,
    .dama-quote-two--r1-1,
    .dama-quote-two--r13-1,
    .dama-quote-two--r1-13 { grid-template-columns: 1fr; }
    .dama-quote-two--left .dama-quote-two__aside { order: 2; }
    .dama-quote-two--left .dama-quote { order: 1; }
}

/* ---- Stats / cifras ---------------------------------------------------- */
.dama-stats {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
    border-left: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-stat {
    padding: 2.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    border-right: 1px solid var(--hairline, rgba(0,0,0,0.12));
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-stat__value {
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--ink, #0a0a0a);
    font-weight: 400;
}
.dama-stat__label {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(var(--ink-rgb,10,10,10), 0.6);
    margin-top: 0.5rem;
}
.dama-stat__desc {
    font-size: 0.85rem;
    line-height: 1.5;
    opacity: 0.7;
    margin-top: 0.5rem;
}
[data-skin='dark'] .dama-stats,
[data-skin='dark'] .dama-stat { border-color: rgba(255,255,255,0.15); }
[data-skin='dark'] .dama-stat__value { color: #fff; }
[data-skin='dark'] .dama-stat__label { color: rgba(255,255,255,0.6); }

/* ---- Modo embed: bloques dentro de columnas WPBakery sin padding propio --- */
.dama-section.dama-section--embed,
.dama-page-hero.dama-section--embed {
    padding: 0 !important;
    min-height: auto !important;
}
.dama-section.dama-section--embed > .dama-section__inner,
.dama-page-hero.dama-section--embed > .dama-page-hero__inner {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* En modo embed, los hairlines de las 2 columnas no deben aparecer arriba */
.dama-section--two-cols.dama-section--embed .dama-two-cols__col { padding-top: 0; }
/* TOC en modo embed: sin fondo */
.dama-section--toc.dama-section--embed { background: transparent !important; }
.dama-section--toc {
    padding: clamp(2rem, 4vw, 3.5rem) var(--gutter, 1.5rem);
    background: rgba(0,0,0,0.02);
}
/* v2.62 · Sticky en páginas largas (Transparencia, LAB, legales) */
.dama-section--toc[data-sticky="on"] {
    position: sticky;
    top: var(--toc-sticky-top, 0px);
    z-index: 5;
    align-self: flex-start;
}
@media (max-width: 900px) {
    /* En móvil, sticky resulta intrusivo: se desactiva por defecto. */
    .dama-section--toc[data-sticky="on"] { position: static; }
}
[data-skin='dark'] .dama-section--toc { background: rgba(255,255,255,0.04); }
.dama-toc__kicker { margin-bottom: 1.5rem; }
.dama-toc__list {
    list-style: none;
    padding: 0;
    margin: 0;
    /* v2.62 · Una columna vertical numerada (antes era grid auto-fit que rompía con 11 items largos) */
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-toc__item {
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-toc__link {
    display: flex;
    gap: 1rem;
    padding: 0.85rem 0.25rem;
    text-decoration: none;
    color: var(--ink, #0a0a0a);
    transition: padding-left 0.25s ease, color 0.2s ease, background-color 0.2s ease;
    align-items: baseline;
}
.dama-toc__link:hover {
    padding-left: 0.6rem;
    color: var(--ink, #0a0a0a);
}
/* v2.62 · Estado activo (scrollspy) */
.dama-toc__link.is-active {
    padding-left: 0.6rem;
    font-weight: 600;
}
.dama-toc__link.is-active .dama-toc__num { color: var(--ink, #0a0a0a); opacity: 1; }
.dama-toc__link.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    width: 3px;
    height: calc(100% - 1.2rem);
    background: var(--ink, #0a0a0a);
    margin-top: 0.6rem;
}
.dama-toc__item { position: relative; }
.dama-toc__num {
    font-size: 11px;
    letter-spacing: 0.18em;
    color: rgba(var(--ink-rgb,10,10,10), 0.4);
    min-width: 2.5em;
    flex-shrink: 0;
}
.dama-toc__label {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    line-height: 1.3;
}
[data-skin='dark'] .dama-toc__list,
[data-skin='dark'] .dama-toc__item { border-color: rgba(255,255,255,0.15); }
[data-skin='dark'] .dama-toc__link { color: #fff; }
[data-skin='dark'] .dama-toc__link.is-active::before { background: #fff; }

/* ---- FAQ acordeón ----------------------------------------------------- */
.dama-faq {
    list-style: none;
    padding: 0;
    margin: 0;
    /* v2.61: sin border-top decorativo. Separadores entre preguntas siguen en .dama-faq__item. */
}
.dama-faq__item {
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-faq__q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.25rem;
    padding: 1.4rem 0;
    background: none;
    border: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: opacity 0.2s;
}
.dama-faq__q:hover,
.dama-faq__q:focus-visible {
    opacity: 0.7;
    outline: none;
}
.dama-faq__q-text {
    font-family: var(--font-serif);
    font-size: var(--fs-h3); /* v2.63: alineado con el resto de tabs/tarjeta/estudio (21→30) */
    line-height: 1.25;
    font-weight: 400;
    color: inherit;
    flex: 1;
}
/* Icono "+" a la izquierda, sin círculo. Rota 45° → "×" al abrir. */
.dama-faq__icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.dama-faq__item.is-open .dama-faq__icon {
    transform: rotate(45deg);
}
/* Apertura/cierre suave con grid-template-rows (sin saltos de altura) */
.dama-faq__a {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    visibility: hidden;
    transition:
        grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.35s ease,
        visibility 0s linear 0.45s;
}
.dama-faq__item.is-open .dama-faq__a {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    transition:
        grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.35s ease 0.1s,
        visibility 0s;
}
.dama-faq__a-inner {
    overflow: hidden;
    min-height: 0;
    font-size: 1rem;
    line-height: 1.7;
    max-width: 70ch;
    /* Alinear con el texto de la pregunta (icono 20px + gap 1.25rem) */
    padding-left: calc(20px + 1.25rem);
}
.dama-faq__item.is-open .dama-faq__a .dama-faq__a-inner {
    padding-bottom: 1.6rem;
}
/* v2.62 · Contenido rico dentro de respuestas FAQ (tablas, listas, botones) */
.dama-faq__a-inner table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    font-size: 0.95rem;
}
.dama-faq__a-inner th,
.dama-faq__a-inner td {
    text-align: left;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
    vertical-align: top;
}
.dama-faq__a-inner thead th {
    font-family: var(--font-serif);
    font-weight: 600;
    border-bottom-width: 2px;
    background: rgba(0,0,0,0.02);
}
.dama-faq__a-inner ul,
.dama-faq__a-inner ol { padding-left: 1.5rem; margin: 0.75rem 0; }
.dama-faq__a-inner li { margin-bottom: 0.35rem; }
.dama-faq__a-inner .cta-line,
.dama-faq__a-inner .cta-solid { margin-right: 0.5rem; margin-top: 0.5rem; }
@media (max-width: 720px) {
    .dama-faq__a-inner table { font-size: 0.85rem; }
    .dama-faq__a-inner th,
    .dama-faq__a-inner td { padding: 0.5rem 0.5rem; }
}
[data-skin='dark'] .dama-faq,
[data-skin='dark'] .dama-faq__item { border-color: rgba(255,255,255,0.15); }

/* ===========================================================================
 * Personalización por bloque (v2.57.0) — colorpickers tipográficos + bg
 * ======================================================================= */

/* dama_section_editorial */
.dama-section--editorial[style*="--dama-sec-kicker"] .kicker { color: var(--dama-sec-kicker); }
.dama-section--editorial[style*="--dama-sec-title"] .dama-section__title { color: var(--dama-sec-title); }
.dama-section--editorial[style*="--dama-sec-text"] .dama-section__body,
.dama-section--editorial[style*="--dama-sec-text"] .dama-section__body :is(p, li, strong, em, span) { color: var(--dama-sec-text); }

/* dama_section_two_cols */
.dama-section--two-cols[style*="--dama-2c-kicker"] .kicker { color: var(--dama-2c-kicker); }
.dama-section--two-cols[style*="--dama-2c-title"] .dama-section__title { color: var(--dama-2c-title); }
.dama-section--two-cols[style*="--dama-2c-text"] .dama-two-cols__col,
.dama-section--two-cols[style*="--dama-2c-text"] .dama-two-cols__col :is(p, li, strong, em, span) { color: var(--dama-2c-text); }

/* dama_que_es */
.home-que-es[style*="--dama-qe-kicker"] .kicker { color: var(--dama-qe-kicker); }
.home-que-es[style*="--dama-qe-title"] h2 { color: var(--dama-qe-title); }
.home-que-es[style*="--dama-qe-text"] .home-que-es__lead,
.home-que-es[style*="--dama-qe-text"] .home-que-es__body,
.home-que-es[style*="--dama-qe-text"] .home-que-es__body :is(p, li, strong, em, span),
.home-que-es[style*="--dama-qe-text"] .home-que-es__stat-label { color: var(--dama-qe-text); }

/* dama_quote */
.dama-section--quote[style*="--dama-quote-color"] .dama-quote__text { color: var(--dama-quote-color); }
.dama-section--quote[style*="--dama-quote-author"] .dama-quote__author { color: var(--dama-quote-author); }

/* dama_cta_banner — título usa --fs-h2 (no --fs-hero-title) */
.dama-cta-banner__title {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-h2);
    line-height: 1.15;
    letter-spacing: -0.015em;
}

/* ===========================================================================
 * FAQ — Personalización visual por página (v2.55.0)
 * Las CSS vars se inyectan sólo cuando el bloque tiene params de color.
 * Si no están definidas, hereda el comportamiento previo (cero regresión).
 * ======================================================================= */
.dama-section--faq[style*="--dama-faq-bg"] {
    background-color: var(--dama-faq-bg);
}
.dama-section--faq[style*="--dama-faq-bg-image"] {
    background-image: var(--dama-faq-bg-image);
}
.dama-section--faq.dama-section--faq-has-bg {
    /* Padding unificado al token global (v2.58.2). */
    padding-top: var(--dama-section-py, 80px);
    padding-bottom: var(--dama-section-py, 80px);
}
.dama-section--faq[style*="--dama-faq-kicker"] .dama-section__head .kicker {
    color: var(--dama-faq-kicker);
}
.dama-section--faq[style*="--dama-faq-title"] .dama-section__title {
    color: var(--dama-faq-title);
}
.dama-section--faq[style*="--dama-faq-q"] .dama-faq__q-text {
    color: var(--dama-faq-q);
}
.dama-section--faq[style*="--dama-faq-text"] .dama-faq__a,
.dama-section--faq[style*="--dama-faq-text"] .dama-faq__a-inner,
.dama-section--faq[style*="--dama-faq-text"] .dama-faq__a-inner :is(p, li, strong, em, span, a) {
    color: var(--dama-faq-text);
}
.dama-section--faq[style*="--dama-faq-icon"] .dama-faq__icon {
    color: var(--dama-faq-icon);
}
.dama-section--faq[style*="--dama-faq-sep"] .dama-faq,
.dama-section--faq[style*="--dama-faq-sep"] .dama-faq__item {
    border-color: var(--dama-faq-sep);
}

/* Numeración (01, 02, 03…) — opt-in via show_numbers */
.dama-section--faq .dama-faq__num {
    display: none;
}
.dama-section--faq-numbered .dama-faq__num {
    display: inline-flex;
    align-items: baseline;
    flex-shrink: 0;
    min-width: 2.5ch;
    font-family: var(--font-serif);
    font-size: clamp(1.2rem, 2vw, 1.6rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.01em;
    font-feature-settings: "tnum" 1, "lnum" 1;
    color: inherit;
}
.dama-section--faq-numbered[style*="--dama-faq-num-size"] .dama-faq__num {
    font-size: var(--dama-faq-num-size);
}
.dama-section--faq-numbered[style*="--dama-faq-num-weight"] .dama-faq__num {
    font-weight: var(--dama-faq-num-weight);
}
.dama-section--faq-numbered[style*="--dama-faq-num:"] .dama-faq__num {
    color: var(--dama-faq-num);
}
/* Ajustar padding-left del cuerpo de respuesta cuando hay numeración */
.dama-section--faq-numbered .dama-faq__a-inner {
    padding-left: calc(20px + 1.25rem + 2.5ch + 1.25rem);
}

@media (prefers-reduced-motion: reduce) {
    .dama-faq__icon,
    .dama-faq__a,
    .dama-faq__item.is-open .dama-faq__a { transition: none; }
}

/* ===========================================================================
 * Testimonios (v2.57.0) — carrusel scroll-snap horizontal
 * Alineación lateral (v2.58.2): mismo .dama-section__inner y max-w que el
 * resto. El carrusel desborda solo a la derecha mediante padding-right.
 * ======================================================================= */
.dama-section--testimonios {
    /* Padding unificado vía .dama-section base; no hace falta override. */
    overflow: hidden; /* el track sobresale visualmente, pero contenido respeta max-w */
}
.dama-section--testimonios .dama-section__inner {
    /* Inner respeta --max-w como el resto de bloques. */
    max-width: var(--max-w, 1440px);
}
.dama-section--testimonios .dama-section__head {
    /* No invadir margen derecho extra; el head ya respeta el inner. */
}
.dama-section--testimonios[style*="--dama-test-kicker"] .kicker { color: var(--dama-test-kicker); }
.dama-section--testimonios[style*="--dama-test-title"] .dama-section__title { color: var(--dama-test-title); }
/* color_texto aplica a TODO el contenido del carrusel (citas, autores, mark) */
.dama-section--testimonios[style*="--dama-test-text"] .dama-testimonio,
.dama-section--testimonios[style*="--dama-test-text"] .dama-testimonio__cita,
.dama-section--testimonios[style*="--dama-test-text"] .dama-testimonio__autor,
.dama-section--testimonios[style*="--dama-test-text"] .dama-testimonio__mark {
    color: var(--dama-test-text);
}

.dama-testimonios {
    display: flex;
    gap: 2rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 1rem 0 2rem;
    /* El track puede desbordar a la derecha hasta el borde visual de la ventana. */
    margin-right: calc(50% - 50vw + var(--gutter, 2rem));
    -webkit-overflow-scrolling: touch;
}
.dama-testimonios::-webkit-scrollbar { display: none; }

.dama-testimonio {
    flex: 0 0 min(85vw, 32rem);
    scroll-snap-align: start;
    margin: 0;
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}
.dama-testimonio__mark {
    opacity: 0.7;
    flex-shrink: 0;
}
.dama-testimonio__cita {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.375rem; /* ~22px */
    line-height: 1.45;
    margin: 0;
    text-wrap: balance;
}
.dama-testimonio__autor {
    font-family: var(--font-sans, "Outfit", system-ui, sans-serif);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-variant: small-caps;
    opacity: 0.85;
}

/* Animación opcional del degradado (opt-in via bg_animate) */
.dama-section--testimonios-animate {
    animation: dama-grad 14s ease-in-out infinite alternate;
}
@keyframes dama-grad {
    0%   { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
@media (prefers-reduced-motion: reduce) {
    .dama-section--testimonios-animate { animation: none; }
}
@media (min-width: 900px) {
    .dama-testimonio { flex: 0 0 32rem; }
}

/* ---- Botón flotante "Volver arriba" (páginas page-dama) ----------------- */
.dama-back-top {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 90;
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--paper, #fff);
    color: var(--ink, #0a0a0a);
    border: 1px solid var(--hairline, rgba(0,0,0,0.18));
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        background-color 0.25s ease,
        color 0.25s ease,
        visibility 0s linear 0.3s;
}
.dama-back-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        background-color 0.25s ease,
        color 0.25s ease,
        visibility 0s;
}
.dama-back-top:hover,
.dama-back-top:focus-visible {
    background: var(--ink, #0a0a0a);
    color: var(--paper, #fff);
    outline: none;
}
@media (max-width: 768px) {
    .dama-back-top {
        right: 1rem;
        bottom: 5.25rem; /* despeja la sticky bar móvil */
        width: 42px;
        height: 42px;
    }
    body:not(:has(.dama-mobile-stickybar)) .dama-back-top { bottom: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .dama-back-top { transition: none; }
}

/* =============================================================================
 * KIT ACTIVIDADES / CONVOCATORIAS (v2.47) — Fraunces/Outfit, hairlines
 * =========================================================================== */
.dact-bleed {
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw !important;
    margin-right: 0 !important;
}
.dact-light { color: #fff; }
.dact-light h1, .dact-light h2, .dact-light h3, .dact-light p, .dact-light li, .dact-light a { color: inherit; }
.dact-dark { color: var(--ink, #0a0a0a); }
.dact-kicker {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.85;
}

/* ---- Hero ---------------------------------------------------------------- */
.dact-hero {
    min-height: 72vh;
    display: flex;
    align-items: center;
    position: relative;
    background-color: var(--paper, #fff);
}
.dact-hero__overlay { position: absolute; inset: 0; pointer-events: none; }
.dact-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
    padding: clamp(3rem, 7vh, 5rem) var(--gutter, 2rem);
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}
.dact-hero__top { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.dact-estado {
    font-family: var(--font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 0.35em 0.9em;
    opacity: 0.9;
}
.dact-hero__title {
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1.05;
    font-weight: 500;
    margin: 0 0 1.5rem;
}
.dact-hero__lead {
    font-family: var(--font-sans);
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.6;
    max-width: 46ch;
    margin: 0 0 2rem;
    opacity: 0.92;
}
.dact-hero__meta {
    display: inline-flex;
    flex-direction: column;
    gap: 0.3rem;
    border-left: 1px solid currentColor;
    padding-left: 1.25rem;
}
.dact-hero__meta-label { font-family: var(--font-sans); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.7; }
.dact-hero__meta-valor { font-family: var(--font-sans); font-weight: 300; font-size: 1.15rem; }
.dact-hero__logo { display: flex; justify-content: center; align-items: center; }
.dact-hero__logo img { height: auto; max-width: 100%; }
@media (max-width: 860px) {
    .dact-hero { min-height: 60vh; }
    .dact-hero__inner { grid-template-columns: 1fr; }
    .dact-hero__logo { justify-content: flex-start; order: -1; }
    .dact-hero__logo img { width: 40% !important; }
}

/* ---- Pantalla partida ----------------------------------------------------- */
.dact-split { display: grid; grid-template-columns: var(--dact-split-cols, 1fr 1fr); min-height: 64vh; }
.dact-split--img-der .dact-split__media { order: 2; }
.dact-split__media { background-size: cover; background-position: center; min-height: 320px; }
.dact-split__text { display: flex; align-items: center; background: var(--paper, #fff); }
.dact-split__text-inner { max-width: var(--dact-split-textw, 56ch); padding: clamp(2.5rem, 6vh, 4.5rem) clamp(1.5rem, 5vw, 5rem); }
.dact-split__title {
    font-size: var(--fs-h-sec);
    line-height: 1.12;
    font-weight: 500;
    margin: 1rem 0 1.5rem;
}
/* Colores de texto editables (vars inline; si faltan, heredan skin/luminancia) */
.dact-split .dact-split__title { color: var(--dact-split-title, inherit); }
.dact-split .dact-split__text .dact-kicker { color: var(--dact-split-kicker, inherit); }
.dact-split .dact-prose { font-family: var(--font-sans); color: var(--dact-split-body, inherit); }
.dact-hero .dact-hero__title { color: var(--dact-hero-title, inherit); }
.dact-hero .dact-kicker { color: var(--dact-hero-kicker, inherit); }
.dact-hero .dact-hero__lead { color: var(--dact-hero-lead, inherit); }
/* v3.49 · color editable de la fila meta (fechas / plazo). Cubre borde, label y valor. */
.dact-hero .dact-hero__meta { color: var(--dact-hero-meta, inherit); }
.dact-hero .dact-hero__meta-label,
.dact-hero .dact-hero__meta-valor { color: inherit; }

.dact-prose { font-family: var(--font-sans); }
.dact-prose p { margin: 0 0 1.1rem; line-height: 1.7; }
.dact-prose p:last-child { margin-bottom: 0; }
@media (max-width: 860px) {
    .dact-split { grid-template-columns: 1fr; min-height: 0; }
    .dact-split--img-der .dact-split__media { order: 0; }
}

/* ---- Cifras clave ---------------------------------------------------------- */
.dact-datos {
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.15));
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.15));
    background: var(--paper, #fff);
}
.dact-datos__inner {
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
    padding: clamp(2rem, 5vh, 3.5rem) var(--gutter, 2rem);
    display: grid;
    gap: clamp(1.5rem, 4vw, 4rem);
}
.dact-datos__item { border-left: 1px solid var(--hairline, rgba(0,0,0,0.15)); padding-left: 1.5rem; }
.dact-datos__cifra { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1; font-weight: 500; }
.dact-datos__etiqueta {
    font-family: var(--font-sans);
    margin-top: 0.75rem;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    opacity: 0.65;
}
@media (max-width: 720px) {
    .dact-datos__inner { grid-template-columns: 1fr 1fr !important; }
}

/* ---- Descargas (réplica exacta del mock) ------------------------------------ */
.dact-descargas {
    position: relative;
    padding: 96px 0;
}
.dact-descargas__inner {
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
    padding: 0 var(--gutter, 2rem);
}
.dact-descargas__kicker {
    display: block;
    font-family: var(--font-sans);
    font-size: 12px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0.7;
    margin-bottom: 1.25rem;
}
.dact-dl {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    padding: 1.1em 0;
    border-top: 1px solid var(--dl-hairline, rgba(220,240,251,0.35));
    text-decoration: none;
    color: inherit;
    transition: padding-left 0.25s, color 0.25s;
}
.dact-dl:hover,
.dact-dl:focus-visible { padding-left: 0.6em; color: var(--dact-dl-hover, #fff); }
.dact-dl:last-of-type { border-bottom: 1px solid var(--dl-hairline, rgba(220,240,251,0.35)); }
.dact-dl__lang {
    font-family: var(--font-serif);
    font-size: clamp(26px, 3vw, 44px);
    font-weight: 600;
}
.dact-dl__pdf {
    display: inline-flex;
    align-items: center;
    opacity: 0.7;
    transition: transform 0.25s, opacity 0.25s;
}
.dact-dl__pdf .dama-arrow {
    width: 22px;
    height: 22px;
    margin-left: 0;
}
.dact-dl:hover .dact-dl__pdf,
.dact-dl:focus-visible .dact-dl__pdf { transform: translateY(4px); opacity: 1; }
@media (max-width: 860px), (prefers-reduced-motion: reduce) {
    .dact-descargas { background-attachment: scroll !important; }
}
@media (prefers-reduced-motion: reduce) {
    .dact-dl, .dact-dl__pdf { transition: none; }
}

/* ---- Palmarés (agrupado por año, columnas, colores editables) --------------- */
.dact-palmares { padding: clamp(2.5rem, 6vh, 4rem) 0; background: var(--paper, #fff); }
.dact-palmares__inner { max-width: var(--max-w, 1440px); margin: 0 auto; padding: 0 var(--gutter, 2rem); }
.dact-palmares__head { margin-bottom: var(--gap-head, 40px); }
.dact-palmares__kicker { display: block; margin-bottom: 0.75rem; }
.dact-palmares__title { font-size: var(--fs-h-sec); font-weight: 500; margin: 0; }
.dact-palmares__list { list-style: none; margin: 0; padding: 0; }
.dact-palmares__row {
    display: grid;
    gap: 24px;
    align-items: baseline;
    padding: 1.6em 0;
    border-top: 1px solid var(--pal-hairline, var(--ink, #0a0a0a));
}
.dact-palmares__list .dact-palmares__row:last-child { border-bottom: 1px solid var(--pal-hairline, var(--ink, #0a0a0a)); }
.dact-palmares__anio { font-family: var(--font-serif); font-size: 26px; font-weight: 600; }
.dact-palmares__entry { display: flex; flex-direction: column; }
.dact-palmares__tag {
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    /* v3.1 · Antes #777 fijo: sobre un fondo de color quedaba ilegible. Ahora
       hereda el color del bloque y solo lo atenua, asi funciona sobre cualquiera. */
    color: currentColor;
    opacity: .62;
    margin-bottom: 0.4em;
}
.dact-palmares__titulo {
    font-family: var(--font-serif);
    font-size: clamp(20px, 2vw, 30px);
    font-style: italic;
    font-weight: 600;
    line-height: 1.2;
}
.dact-palmares__autores {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: 15px;
    /* v3.1 · Antes #444 fijo. Mismo motivo que el tag. */
    color: currentColor;
    opacity: .78;
    margin-top: 0.3em;
}
.dact-palmares__img { margin-top: 0.75rem; max-width: 100%; height: auto; }
@media (max-width: 720px) {
    .dact-palmares__row { grid-template-columns: 1fr !important; gap: 1rem; }
    .dact-palmares__anio:empty { display: none; }
    .dact-palmares__entry--empty { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .dact-descargas__texto, .dact-descargas__flecha { transition: none; }
}

/* =============================================================================
 * [dama_lista_editorial] — Lista editorial numerada (mock "bases")
 * Números en PHP (no CSS counter) para soportar literales manuales ("2.1").
 * =========================================================================== */
.dact-lista__ol {
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: var(--lista-maxw, 62ch);
}
.dact-lista__item {
    padding: 1.1em 0;
    border-top: 1px solid var(--lista-hairline, var(--hairline));
    font-family: var(--font-sans);
    font-weight: 300;
    display: grid;
    grid-template-columns: 4em 1fr;
    gap: 12px;
    color: var(--lista-text, inherit);
    align-items: start;
}
/* v2.59 · cuando hay CTAs, layout 3 columnas: número | contenido | botones */
.dact-lista__item--has-ctas {
    grid-template-columns: 4em minmax(0, 1fr) minmax(180px, 220px);
    gap: 12px 32px;
}
.dact-lista__num {
    font-family: var(--font-serif);
    font-weight: 600;
    color: var(--lista-num, inherit);
}
.dact-lista__body p { margin: 0 0 0.6em; }

/* v2.92 · Con bg oscuro, `--lista-text` ya lleva el color legible: que lo hereden
   también el titular/kicker de la sección y los encabezados del cuerpo. Sin esto,
   un dama_lista_editorial sobre fondo oscuro deja el título en negro (ilegible). */
.dact-lista .dama-section__title,
.dact-lista .dama-section__head .kicker,
.dact-lista__body,
.dact-lista__body h2,
.dact-lista__body h3,
.dact-lista__body h4,
.dact-lista__body p,
.dact-lista__body li,
.dact-lista__body strong,
.dact-lista__body em,
.dact-lista__body a { color: var(--lista-text, inherit); }
.dact-lista .dama-section__head .kicker { opacity: .72; }
.dact-lista__body p:last-child { margin-bottom: 0; }
/* v2.59 · Columna de acción a la derecha, alineada arriba con el título */
.dact-lista__ctas {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    align-items: stretch;
    justify-self: end;
    min-width: 0;
    width: 100%;
    max-width: 220px;
}
.dact-lista__ctas .cta-solid,
.dact-lista__ctas .cta-line {
    min-height: 44px;
    justify-content: space-between;
    text-align: left;
    /* v2.92.2 · antes: nowrap + overflow:hidden + ellipsis → recortaba etiquetas
       largas ("Descargar el dosier completo"). Que ajuste de línea y se lea entera. */
    white-space: normal;
    overflow: visible;
    line-height: 1.3;
}
/* En móvil/tablet (≤780px): los botones se apilan debajo del contenido */
@media (max-width: 780px) {
    .dact-lista__item--has-ctas {
        grid-template-columns: 4em 1fr;
        gap: 12px;
    }
    .dact-lista__ctas {
        grid-column: 2 / -1;
        margin-top: 0.75rem;
        flex-direction: row;
        flex-wrap: wrap;
        justify-self: start;
        max-width: 100%;
        width: auto;
    }
    .dact-lista__ctas .cta-solid,
    .dact-lista__ctas .cta-line {
        flex: 0 1 auto;
        white-space: normal;
    }
}

/* =============================================================================
 * Archive Actividades (dama_actividad) — grid de tarjetas
 * =========================================================================== */
.dama-actgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.dama-actcard {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}
.dama-actcard__media {
    display: block;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    position: relative;
}
.dama-actcard__estado {
    position: absolute;
    top: 1rem;
    left: 1rem;
    font-family: var(--font-sans);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.6);
    padding: 0.3em 0.7em;
}
.dama-actcard__body { padding: 1.1rem 0 0; }
.dama-actcard__title {
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.2;
    margin: 0 0 0.4em;
    transition: color 0.2s ease;
}
.dama-actcard:hover .dama-actcard__title { color: var(--accent, #009ea0); }
.dama-actcard__lead {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: 15px;
    color: #444;
    margin: 0 0 0.75em;
}
@media (max-width: 980px) { .dama-actgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .dama-actgrid { grid-template-columns: 1fr; } }


/* ============================================================================
 * v2.63 · dama_index_accordion — Índice sticky + acordeón rico (2 columnas)
 * ========================================================================== */
.dama-section--index-accordion { /* hereda padding del .dama-section base */ }
.dama-index-accordion {
    display: grid;
    grid-template-columns: minmax(220px, 28%) 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: flex-start;
}
/* ---- Raíl izquierdo: índice sticky con scrollspy ------------------------- */
.dama-index-accordion__rail {
    position: sticky;
    top: var(--toc-sticky-top, 80px);
    align-self: flex-start;
    min-width: 0;
}
.dama-index-accordion__rail-kicker { margin-bottom: 1.25rem; }
.dama-index-accordion__list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-index-accordion__item {
    position: relative;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
/* v2.67 · Cabecera de grupo en el raíl (Ayuda Social, etc.) */
.dama-index-accordion__group {
    list-style: none;
    padding: 1.25rem 0 0.5rem;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-index-accordion__group:first-child { padding-top: 0; }
.dama-index-accordion__group-label {
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
    opacity: 0.65;
}
.dama-index-accordion__link {
    display: flex;
    gap: 0.85rem;
    padding: 0.75rem 0.25rem;
    text-decoration: none;
    color: var(--ink, #0a0a0a);
    transition: padding-left 0.25s ease, color 0.2s ease;
    align-items: baseline;
}
.dama-index-accordion__link:hover { padding-left: 0.5rem; }
.dama-index-accordion__link.is-active {
    padding-left: 0.6rem;
    font-weight: 600;
}
.dama-index-accordion__link.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.85rem;
    width: 3px;
    height: calc(100% - 1.5rem);
    background: var(--ink, #0a0a0a);
}
.dama-index-accordion__num {
    font-size: 11px;
    letter-spacing: 0.18em;
    color: rgba(var(--ink-rgb,10,10,10), 0.4);
    min-width: 2.2em;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}
.dama-index-accordion__label {
    font-family: var(--font-serif);
    font-size: 0.98rem;
    line-height: 1.3;
}
[data-skin='dark'] .dama-index-accordion__list,
[data-skin='dark'] .dama-index-accordion__item { border-color: rgba(255,255,255,0.15); }
[data-skin='dark'] .dama-index-accordion__link { color: #fff; }
[data-skin='dark'] .dama-index-accordion__link.is-active::before { background: #fff; }
/* ---- Panel derecho: acordeón rico --------------------------------------- */
.dama-index-accordion__panels {
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.12));
}
.dama-index-accordion__panel {
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
    scroll-margin-top: calc(var(--toc-sticky-top, 80px) + 0.5rem);
}
.dama-index-accordion__btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.6rem 0;
    background: none;
    border: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: opacity 0.2s;
}
.dama-index-accordion__btn:hover,
.dama-index-accordion__btn:focus-visible { opacity: 0.75; outline: none; }
.dama-index-accordion__btn-num {
    font-size: 11px;
    letter-spacing: 0.18em;
    color: rgba(var(--ink-rgb,10,10,10), 0.5);
    min-width: 2.4em;
    font-variant-numeric: tabular-nums;
}
.dama-index-accordion__btn-title {
    flex: 1;
    font-size: var(--fs-h3); /* 21→30: idéntico FAQ/tarjeta/estudio */
    line-height: 1.25;
    font-weight: 500;
    color: inherit;
}
.dama-index-accordion__btn-icon {
    display: inline-flex;
    transition: transform 0.25s ease;
    flex-shrink: 0;
}
.dama-index-accordion__panel.is-open .dama-index-accordion__btn-icon {
    transform: rotate(45deg);
}
.dama-index-accordion__answer {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.35s cubic-bezier(0.25,0.1,0.25,1), opacity 0.25s linear;
}
.dama-index-accordion__panel.is-open .dama-index-accordion__answer {
    max-height: 4000px;
    opacity: 1;
}
.dama-index-accordion__answer-inner {
    padding: 0 0 1.8rem;
    font-family: var(--font-sans);
    font-weight: 300;
    line-height: var(--lh-body, 1.7);
    max-width: 60ch;
}
.dama-index-accordion__answer-inner p { margin: 0 0 1rem; }
.dama-index-accordion__answer-inner p:last-child { margin-bottom: 0; }
.dama-index-accordion__answer-inner ul,
.dama-index-accordion__answer-inner ol { padding-left: 1.5rem; margin: 0.75rem 0; }
.dama-index-accordion__answer-inner li { margin-bottom: 0.4rem; }
/* Tablas dentro del acordeón (hereda estilos del FAQ) */
.dama-index-accordion__answer-inner table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    font-size: 0.95rem;
}
.dama-index-accordion__answer-inner th,
.dama-index-accordion__answer-inner td {
    text-align: left;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--hairline, rgba(0,0,0,0.12));
    vertical-align: top;
}
.dama-index-accordion__answer-inner thead th {
    font-family: var(--font-serif);
    font-weight: 600;
    border-bottom-width: 2px;
    background: rgba(0,0,0,0.02);
}
.dama-index-accordion__answer-inner .cta-line,
.dama-index-accordion__answer-inner .cta-solid {
    margin: 0.5rem 0.5rem 0 0;
}
[data-skin='dark'] .dama-index-accordion__panels,
[data-skin='dark'] .dama-index-accordion__panel { border-color: rgba(255,255,255,0.15); }
/* ---- Móvil ≤900px: el raíl índice se oculta por completo. Solo acordeón. ---- */
@media (max-width: 900px) {
    .dama-index-accordion {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .dama-index-accordion__rail {
        display: none;
    }
    .dama-index-accordion__btn { padding: 1.25rem 0; }
}
@media (max-width: 720px) {
    .dama-index-accordion__answer-inner table { font-size: 0.85rem; }
    .dama-index-accordion__answer-inner th,
    .dama-index-accordion__answer-inner td { padding: 0.5rem; }
}

/* ============================================================================
 * v2.66 · DROPDOWNS DESKTOP — [data-dropdown="1"]
 * ========================================================================== */
.primary-menu { display: flex; gap: 2rem; list-style: none; padding: 0; margin: 0; align-items: center; }
.primary-menu > .menu-item > .menu-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0;
    color: inherit;
    text-decoration: none;
    font-family: var(--font-sans);
    font-size: 0.95rem;
    position: relative;
    transition: opacity 0.2s;
}
.primary-menu > .menu-item > .menu-link:hover,
.primary-menu > .menu-item > .menu-link:focus-visible { opacity: 0.75; outline: none; }
.primary-menu > .menu-item > .menu-link .menu-label { font-family: inherit; }
.primary-menu > .menu-item.has-dropdown > .menu-link::after {
    content: '';
    width: 6px; height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    margin-left: 0.35rem;
    transition: transform 0.25s;
}
.primary-menu > .menu-item.has-dropdown.is-open > .menu-link::after { transform: rotate(-135deg) translateY(0); }
.primary-menu .menu-desc { display: none; } /* En top-level no se muestra */

/* Panel desplegable */
.primary-menu .dropdown-panel {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 540px;
    max-width: 720px;
    padding: 2rem;
    background: var(--paper, #f7f5f0);
    border: 1px solid var(--hairline, rgba(0,0,0,0.08));
    box-shadow: 0 24px 48px -16px rgba(0,0,0,0.12);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.32s cubic-bezier(0.22,1,0.36,1), transform 0.32s cubic-bezier(0.22,1,0.36,1);
    z-index: 100;
}
.primary-menu > .menu-item { position: relative; }
.primary-menu > .menu-item.is-open .dropdown-panel {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.primary-menu .sub-menu--cols {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 2.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.primary-menu .sub-menu--cols .menu-item--child {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
    transition-delay: calc(var(--i, 0) * 38ms);
}
.primary-menu > .menu-item.is-open .sub-menu--cols .menu-item--child {
    opacity: 1;
    transform: translateY(0);
}
.primary-menu .sub-menu--cols .menu-link {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 0.25rem 0;
}
.primary-menu .sub-menu--cols .menu-label {
    display: block;
    font-family: var(--font-serif);
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.2;
    transition: opacity 0.2s;
}
.primary-menu .sub-menu--cols .menu-link:hover .menu-label,
.primary-menu .sub-menu--cols .menu-link:focus-visible .menu-label { opacity: 0.7; outline: none; }
.primary-menu .sub-menu--cols .menu-desc {
    display: block;
    margin-top: 6px;
    font-size: 0.85rem;
    line-height: 1.45;
    opacity: 0.65;
    font-family: var(--font-sans);
}
.primary-menu .dropdown-foot {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--hairline, rgba(0,0,0,0.1));
}
.primary-menu .dropdown-foot__link {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    color: inherit;
    opacity: 0.7;
    transition: opacity 0.2s, padding-left 0.25s;
}
.primary-menu .dropdown-foot__link:hover { opacity: 1; padding-left: 0.25rem; }

/* Ocultar dropdowns desktop en móvil — usaremos el overlay */
@media (max-width: 900px) {
    .primary-menu { display: none; }
}

/* ============================================================================
 * v2.66 · MOBILE TABBAR (barra fija inferior, 5 tabs)
 * ========================================================================== */
.mob-tabbar { display: none; }
@media (max-width: 900px) {
    .mob-tabbar {
        position: fixed;
        bottom: 0; left: 0; right: 0;
        z-index: 90;
        display: flex;
        background: #fff;
        color: #0e0e0e;
        border-top: 1px solid rgba(0,0,0,0.12);
        padding: 0.3rem 0 calc(0.3rem + env(safe-area-inset-bottom, 0px));
        transition: transform 0.25s cubic-bezier(0.22,1,0.36,1);
    }
    .mob-tabbar.is-hidden { transform: translateY(110%); }
    .mob-tabbar__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 0.45rem 0.25rem;
        color: inherit;
        text-decoration: none;
        background: none;
        border: 0;
        font: inherit;
        cursor: pointer;
        transition: opacity 0.2s;
        opacity: 0.55;
    }
    .mob-tabbar__item.is-active,
    .mob-tabbar__item:hover { opacity: 1; }
    .mob-tabbar__icon { display: inline-flex; }
    .mob-tabbar__icon svg { width: 22px; height: 22px; }
    .mob-tabbar__label {
        font-size: 10px;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        font-family: var(--font-sans);
    }
    /* La barra antigua mobile-toggle no se usa más en móvil */
    .mobile-toggle { display: none !important; }
    /* Compensar el contenido del body para no quedar bajo la barra */
    body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
}

/* ============================================================================
 * v2.66 · MOBILE OVERLAY (full-screen, sube desde abajo)
 * ========================================================================== */
/* ----------------------------------------------------------------------------
 * v2.84.6 · MENÚ MÓVIL — tarjeta flotante oscura (backdrop + panel + X animada)
 * -------------------------------------------------------------------------- */
.mob-overlay {
    position: fixed;
    inset: 0;
    z-index: 95;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    visibility: hidden;
    pointer-events: none;
}
.mob-overlay.is-open { visibility: visible; }

.mob-overlay__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}
.mob-overlay.is-open .mob-overlay__backdrop { opacity: 1; pointer-events: auto; }

.mob-overlay__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0 12px calc(12px + env(safe-area-inset-bottom, 0px));
    max-height: 92vh;
    background: #fff;
    color: #0e0e0e;
    border-radius: 22px;
    padding: 1.1rem 1.3rem 1.2rem;
    box-shadow: 0 24px 64px rgba(0,0,0,0.28);
    transform: translateY(115%);
    transition: transform 0.46s cubic-bezier(0.22,1,0.36,1);
    pointer-events: auto;
}
.mob-overlay__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.mob-overlay.is-open .mob-overlay__panel { transform: translateY(0); }

.mob-overlay__handle {
    display: block;
    width: 42px; height: 4px;
    border-radius: 99px;
    background: rgba(0,0,0,0.18);
    margin: 0 auto 0.9rem;
}

.mob-overlay__nav { padding: 0; }
.mob-overlay__menu {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column;
}
.mob-overlay__menu .menu-item { border-bottom: 1px solid rgba(0,0,0,0.10); }
.mob-overlay__menu .menu-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.7rem 0.6rem;
    margin: 0;
    text-decoration: none;
    color: #0e0e0e;
    border-radius: 12px;
    transition: background 0.2s ease, color 0.2s ease;
}
.mob-overlay__menu .menu-link:hover,
.mob-overlay__menu .menu-link:focus-visible,
.mob-overlay__menu .menu-link:active { background: rgba(0,0,0,0.06); }
.mob-overlay__menu .menu-label {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    line-height: 1.2;
}
.mob-overlay__menu .menu-desc { display: none; }
.mob-overlay__menu .has-dropdown > .menu-link::after {
    content: '+';
    font-size: 1.4rem;
    line-height: 1;
    color: rgba(0,0,0,0.55);
    transition: transform 0.25s;
}
.mob-overlay__menu .has-dropdown.is-open > .menu-link::after { transform: rotate(45deg); }
.mob-overlay__menu .dropdown-panel {
    max-height: 0; overflow: hidden;
    transition: max-height 0.35s ease;
    padding: 0;
}
.mob-overlay__menu .has-dropdown.is-open .dropdown-panel { max-height: 800px; }
.mob-overlay__menu .sub-menu--cols {
    display: flex; flex-direction: column;
    padding: 0.25rem 0 0.75rem 0.6rem;
    margin: 0; list-style: none;
}
.mob-overlay__menu .sub-menu--cols .menu-link { padding: 0.6rem; }
.mob-overlay__menu .sub-menu--cols .menu-label { font-size: 1.05rem; font-weight: 400; }
.mob-overlay__menu .sub-menu--cols .menu-desc {
    display: block; margin-top: 4px;
    font-size: 0.85rem; color: rgba(0,0,0,0.55);
}
.mob-overlay__menu .dropdown-foot { display: none; }

.mob-overlay__ctas {
    display: flex; flex-direction: column; gap: 0.6rem;
    padding: 1rem 0;
    margin-top: 0.4rem;
    border-top: 1px solid rgba(0,0,0,0.10);
}
.mob-overlay__ctas .cta-solid,
.mob-overlay__ctas .cta-line { justify-content: space-between; padding: 1rem 1.25rem; }

.mob-overlay__legal {
    padding-top: 1.1rem;
    font-size: 0.85rem;
    color: rgba(0,0,0,0.55);
}
.mob-overlay__legal ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.mob-overlay__legal a { color: inherit; text-decoration: none; }
.mob-overlay__legal a:hover { color: #0e0e0e; }

/* X circular animada, anclada abajo de la tarjeta */
.mob-overlay__close {
    flex: 0 0 auto;
    width: 46px; height: 46px;
    margin: 0.8rem auto 0;
    display: grid; place-items: center;
    border: 0; border-radius: 50%;
    background: #0e0e0e; color: #fff;
    cursor: pointer;
    opacity: 0;
    transform: scale(0.5) rotate(-90deg);
    transition: transform 0.5s cubic-bezier(0.22,1,0.36,1) 0.12s,
                opacity 0.4s ease 0.12s,
                background 0.2s ease;
    box-shadow: 0 8px 22px rgba(0,0,0,0.28);
}
.mob-overlay.is-open .mob-overlay__close {
    opacity: 1;
    transform: scale(1) rotate(0);
}
.mob-overlay__close:hover { background: rgba(0,0,0,0.78); }
.mob-overlay__close:active { transform: scale(0.92) rotate(0); }

body.has-mob-overlay { overflow: hidden; }

/* ============================================================================
 * v2.66 · ARCHIVO DE ACTIVIDADES — rediseño elegante
 * ========================================================================== */
.act-archive {
    background: var(--paper, #f7f5f0);
    color: var(--ink, #0a0a0a);
}
.act-archive__hero {
    background: var(--ink, #0a0a0a);
    color: var(--paper, #f7f5f0);
    padding: clamp(4rem, 10vw, 8rem) var(--gutter, 2rem);
}
.act-archive__hero-inner {
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
}
.act-archive__hero .kicker { color: var(--paper, #f7f5f0); opacity: 0.6; margin-bottom: 1.5rem; }
.act-archive__hero h1 {
    font-size: var(--fs-hero);
    line-height: 0.98;
    letter-spacing: -0.02em;
    margin: 0;
    font-family: var(--font-serif);
    color: var(--paper, #f7f5f0); /* hero oscuro → título en blanco (gana a la regla global de h1) */
}
.act-archive__hero .act-archive__lead {
    max-width: 56ch;
    margin: 1.5rem 0 0;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--paper, #f7f5f0);
    opacity: 0.72;
}
.act-archive__grid-wrap {
    max-width: var(--max-w, 1440px);
    margin: 0 auto;
    padding: clamp(3rem, 6vw, 5rem) var(--gutter, 2rem);
}
.act-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 64px;
}
@media (max-width: 1024px) { .act-archive__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; } }
@media (max-width: 640px)  { .act-archive__grid { grid-template-columns: 1fr; gap: 32px; } }

.act-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
    position: relative;
}
.act-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--ink, #0a0a0a);
    border: 1px solid var(--hairline, rgba(0,0,0,0.08));
}
.act-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.22,1,0.36,1);
}
.act-card:hover .act-card__media img { transform: scale(1.04); }
.act-card__media--placeholder {
    display: flex; align-items: center; justify-content: center;
    color: var(--paper, #e8ded1);
    font-family: var(--font-serif);

/* v2.67 · Home actividades destacadas — grid 2 col estilo home-dc */
.home-actividades-grid__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 56px;
}
@media (max-width: 720px) {
    .home-actividades-grid__list { grid-template-columns: 1fr; gap: 32px; }
}
.act-card--home .act-card__media { aspect-ratio: 3 / 2; }
.act-card--home .act-card__title { font-size: 22px; }

    font-size: clamp(2rem, 5vw, 3.5rem);
    letter-spacing: 0.18em;
    opacity: 0.6;
}
.act-card__body { display: flex; flex-direction: column; gap: 0.6rem; }
.act-card__eyebrow {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0.55;
}
.act-card__title {
    font-family: var(--font-serif);
    font-size: 20px;
    line-height: 1.2;
    font-weight: 600;
    margin: 0;
    text-wrap: balance;
}
@media (min-width: 1024px) { .act-card__title { font-size: 22px; } }
/* v2.67 · Card destacada (zona featured): título más generoso pero contenido. */
.act-card__title--featured {
    font-size: clamp(26px, 21.07px + 1.31vw, 40px);
    line-height: 1.08;
    font-weight: 600;
}
.act-card__lead {
    font-size: 0.95rem;
    line-height: 1.55;
    opacity: 0.7;
    margin: 0;
}
.act-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.3s, transform 0.3s;
}
.act-card:hover .act-card__cta,
.act-card:focus-visible .act-card__cta { opacity: 1; transform: translateY(0); }
@media (max-width: 640px) { .act-card__cta { opacity: 1; transform: none; } }

/* v2.67 · Zona de destacados (arriba del grid) */
.act-archive__featured-wrap {
    /* v2.83.10 · Sin max-width ni gutter propios: el shortcode interno
       [dama_actividades_grid] ya trae su .max-w-8xl con gutter. Antes se
       duplicaba (48px) y las destacadas salían más estrechas que las normales.
       Conservamos solo el espaciado superior. */
    padding: clamp(3rem, 6vw, 5rem) 0 0;
}
.act-archive__featured {
    display: grid;
    gap: 40px 64px;
}
.act-archive__featured--hero { grid-template-columns: 1fr; }
.act-archive__featured--duo  { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 720px) {
    .act-archive__featured--duo { grid-template-columns: 1fr; gap: 32px; }
}
/* Hero (1 destacado): media a 2:1 (ancho) */
.act-archive__featured--hero .act-card__media--featured { aspect-ratio: 2 / 1; }
/* Duo (2 destacados): media a 3:2 (más vertical, dos columnas) */
.act-archive__featured--duo .act-card__media--featured { aspect-ratio: 3 / 2; }
/* Texto debajo, no encima — la card ya es flex-column con .act-card__body como segundo bloque. OK. */
.act-archive__featured + .act-archive__grid-wrap { padding-top: clamp(3rem, 6vw, 5rem); }


/* =============================================================================
 * v2.70.4 · UNIFICACIÓN DE PESO DE TÍTULOS DE CARD (kit completo).
 * Todos los títulos de card a font-weight: 600 (Fraunces SemiBold), coherente
 * con dc-card/conv-card/hero-card/news-card/event-card que ya estaban en 600.
 * Aquí añadimos defensivamente los que no tenían declaración explícita o
 * estaban heredando del navegador.
 * =========================================================================== */
.act-card__title,
.act-card__title--featured,
.dc-card__title,
.dc-card--lg .dc-card__title,
.conv-card__title,
.hero-card__title,
.news-card__title,
.event-card__title,
.foco-card__title,
.servicio-card__title,
.dama-actcard__title,
.dama-vcard__title,
.dama-sala-card__title,
.dama-video-card__title,
.dama-event-card__title {
        font-weight: 600;
}



/* =============================================================================
 * v2.71.1 · MÓDULO "FOTO DE AUTOR" REUTILIZABLE (dama-author-card)
 * Aparece en dama_faq (head con autor) y puede reutilizarse en otros bloques.
 * =========================================================================== */
.dama-section__head--with-author {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: clamp(1.5rem, 3vw, 3rem);
        align-items: center;
}
.dama-author-card { display: flex; align-items: center; gap: 0.85rem; max-width: 22rem; }
.dama-author-card__avatar {
        flex: 0 0 auto; width: 88px; height: 88px; border-radius: 50%; overflow: hidden;
        background: rgba(var(--ink-rgb, 10, 10, 10), 0.06);
}
.dama-author-card__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.dama-author-card__body { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.dama-author-card__name {
        font-family: var(--font-serif, 'Fraunces', Georgia, serif);
        font-weight: 600; font-size: 1.05rem; line-height: 1.2; color: var(--ink, #0a0a0a);
}
.dama-author-card__role {
        font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
        color: rgba(var(--ink-rgb, 10, 10, 10), 0.55);
}
[data-skin='dark'] .dama-author-card__name { color: #fff; }
[data-skin='dark'] .dama-author-card__role { color: rgba(255, 255, 255, 0.6); }
@media (max-width: 768px) {
        .dama-section__head--with-author { grid-template-columns: 1fr; }
}

/* =============================================================================
 * v2.72 · FAQ item con imagen opcional (foto de autor/a)
 * Si el item tiene `imagen`, se coloca a la izquierda del contenido al
 * desplegar; en móvil, encima centrada.
 * =========================================================================== */
.dama-faq__a-inner--has-img {
        display: grid;
        grid-template-columns: 100px 1fr;
        gap: clamp(1rem, 2.5vw, 1.75rem);
        align-items: start;
}
.dama-faq__a-img {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        overflow: hidden;
        background: rgba(var(--ink-rgb, 10, 10, 10), 0.06);
        flex: 0 0 auto;
}
.dama-faq__a-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
}
@media (max-width: 640px) {
        .dama-faq__a-inner--has-img { grid-template-columns: 1fr; justify-items: center; text-align: left; }
        .dama-faq__a-inner--has-img .dama-faq__a-body { width: 100%; }
}


/* =============================================================================
 * v2.84 · Ayuda Social — tarjetas desplegables con icono (dama_index_accordion layout=cards)
 * =========================================================================== */
.dama-ayuda-cards__grid {
    display: grid;
    grid-template-columns: repeat(var(--ayuda-cols, 3), minmax(0, 1fr));
    gap: 1.25rem;
    align-items: start;
}
.dama-ayuda-card {
    border: 1px solid var(--hairline);
    border-radius: 5px;
    background: var(--paper, #fff);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.dama-ayuda-card:hover {
    border-color: rgba(var(--ink-rgb, 10,10,10), .32);
    box-shadow: 0 10px 34px rgba(10,10,10,.07);
    transform: translateY(-2px);
}
.dama-ayuda-card[open] { border-color: var(--ink, #0a0a0a); transform: none; }
.dama-ayuda-card__head {
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "icon num chev" "icon title chev";
    align-items: center;
    column-gap: 1rem;
    row-gap: .2rem;
    padding: 1.4rem;
}
.dama-ayuda-card__head::-webkit-details-marker { display: none; }
.dama-ayuda-card__icon {
    grid-area: icon;
    width: 48px; height: 48px;
    display: grid; place-items: center;
    border: 1px solid var(--hairline);
    border-radius: 50%;
    transition: background .2s, color .2s, border-color .2s;
}
.dama-ayuda-card__icon svg { width: 24px; height: 24px; }
.dama-ayuda-card[open] .dama-ayuda-card__icon,
.dama-ayuda-card:hover .dama-ayuda-card__icon {
    background: var(--ink, #0a0a0a);
    color: var(--paper, #fff);
    border-color: var(--ink, #0a0a0a);
}
.dama-ayuda-card__num {
    grid-area: num;
    font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
    color: var(--muted-fg, #7a766f);
}
.dama-ayuda-card__title {
    grid-area: title;
    font-size: 1.18rem; line-height: 1.15; font-weight: 600;
    letter-spacing: -.01em;
}
.dama-ayuda-card__chev {
    grid-area: chev;
    color: var(--muted-fg, #7a766f);
    display: grid; place-items: center;
    transition: transform .25s, color .2s;
}
.dama-ayuda-card__chev svg { width: 18px; height: 18px; }
.dama-ayuda-card[open] .dama-ayuda-card__chev { transform: rotate(45deg); color: var(--ink, #0a0a0a); }
.dama-ayuda-card__body {
    padding: .2rem 1.4rem 1.5rem;
    font-size: .95rem; line-height: 1.62;
    color: rgba(var(--ink-rgb, 10,10,10), .78);
}
.dama-ayuda-card__body > *:first-child { margin-top: 0; }
.dama-ayuda-card__body p { margin: 0 0 .8em; }
.dama-ayuda-card__body ul, .dama-ayuda-card__body ol { margin: 0 0 .9em 1.1em; padding: 0; }
.dama-ayuda-card__body li { margin: 0 0 .35em; }
.dama-ayuda-card__body a.cta-line, .dama-ayuda-card__body a.cta-solid { margin-top: .5rem; }
@media (max-width: 1024px) { .dama-ayuda-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px)  { .dama-ayuda-cards__grid { grid-template-columns: 1fr; } }

/* v2.84 · CTA banner — subtítulo WYSIWYG: normaliza márgenes del contenido rico */
.dama-cta-banner__sub > *:first-child { margin-top: 0; }
.dama-cta-banner__sub > *:last-child { margin-bottom: 0; }
.dama-cta-banner__sub p { margin: 0 0 .6em; }

/* ============================================================================
 * v2.85.0 · dama_team — rejilla de personas (responsive + configurable)
 * columnas via --dama-team-cols ; color via .dama-team--color-{bn|hover|color}
 * ========================================================================== */
.dama-team { padding: var(--dama-section-py, 80px) 0; }
.dama-team__inner { width: 100%; max-width: var(--max-w, 1440px); margin: 0 auto; padding: 0 var(--gutter, 2rem); }
.dama-team__title { margin: 0 0 var(--gap-head, 40px); }
.dama-team__grid {
    display: grid;
    grid-template-columns: repeat(var(--dama-team-cols, 4), minmax(0, 1fr));
    gap: 2.5rem 2rem;
}
.dama-team__photo {
    aspect-ratio: 3/4;
    background: #f0eee9;
    overflow: hidden;
    border-radius: 3px;
}
.dama-team__photo img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .55s cubic-bezier(.22,1,.36,1), filter .4s ease;
}
.dama-team__card:hover .dama-team__photo img { transform: scale(1.04); }
.dama-team__meta { margin-top: .85rem; }
.dama-team__name { font-size: 1.2rem; line-height: 1.25; }
.dama-team__role { margin-top: .3rem; }
.dama-team__sede { color: rgba(0,0,0,.4); }
/* modos de color */
.dama-team--color-bn .dama-team__photo img,
.dama-team--color-hover .dama-team__photo img { filter: grayscale(100%); }
.dama-team--color-hover .dama-team__card:hover .dama-team__photo img { filter: grayscale(0%); }
.dama-team--color-color .dama-team__photo img { filter: none; }
/* responsive: tablet -> 3, móvil -> 2 */
@media (max-width: 1024px) { .dama-team__grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 680px)  { .dama-team__grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.5rem 1.25rem; } }


/* ============================================================================
 * v2.86.0 · Módulos de ciclo: dama_sesiones (directoras) + dama_ediciones
 * ========================================================================== */
.dama-sesiones { padding: var(--dama-section-py, 80px) 0; }
.dama-sesiones__inner { width:100%; max-width: var(--max-w, 1440px); margin:0 auto; padding:0 var(--gutter, 2rem); }
.dama-sesiones__head { margin-bottom: var(--gap-head, 40px); }
.dama-sesiones__title { margin: .3rem 0 0; }
.dama-sesiones__list { display:flex; flex-direction:column; gap: 4.5rem; }
.dama-sesion { display:grid; grid-template-columns: var(--ses-cartel-w, clamp(140px, 20%, 220px)) minmax(0,1fr); gap: 2.5rem 3rem; align-items:start; }
.dama-sesion__cartel img { width:100%; height:auto; display:block; border-radius:2px; }
.dama-sesion__cartel:empty { display:none; }
.dama-sesion:not(:has(.dama-sesion__cartel img)) { grid-template-columns: 1fr; }
.dama-sesion:not(:has(.dama-sesion__cartel img)) .dama-sesion__cartel { display:none; }
.dama-sesion__fecha { margin-bottom:.6rem; }
.dama-sesion__autora { font-size: var(--fs-h3, 1.7rem); font-weight:600; line-height:1.1; margin:0 0 .35rem; }
.dama-sesion__pelicula { font-family: var(--font-serif); font-style:italic; font-size:1.15rem; margin-bottom:1.2rem; }
.dama-sesion__sinopsis { font-size: var(--fs-body, 1rem); line-height:1.6; }
.dama-sesion__sinopsis p { margin:0 0 1rem; }
.dama-sesion__bio { margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid rgba(0,0,0,.12); font-size:.95rem; line-height:1.55; }
.dama-sesion__bio-label { display:block; margin-bottom:.5rem; }
.dama-sesion__bio p { margin:0 0 .8rem; }
@media (max-width: 760px) {
  .dama-sesion { grid-template-columns: 1fr; gap: 1.4rem; }
  .dama-sesion__cartel { max-width: 190px; }
}

.dama-ediciones { padding: var(--dama-section-py, 80px) 0; }
.dama-ediciones__inner { width:100%; max-width: var(--max-w, 1440px); margin:0 auto; padding:0 var(--gutter, 2rem); }
.dama-ediciones__head { margin-bottom: var(--gap-head, 40px); }
.dama-ediciones__list { border-top:1px solid rgba(0,0,0,.14); }
details.dama-edicion { border-bottom:1px solid rgba(0,0,0,.14); }
.dama-edicion__sum { display:flex; align-items:center; gap:1.4rem; padding:1.3rem 0; cursor:pointer; list-style:none; }
.dama-edicion__sum::-webkit-details-marker { display:none; }
.dama-edicion__sum:hover .dama-edicion__anio { opacity:.7; }
.dama-edicion__anio { font-size: var(--fs-h3, 1.7rem); font-weight:600; line-height:1; font-family: var(--font-serif); }
.dama-edicion__count { color: rgba(0,0,0,.45); font-size:.9rem; }
.dama-edicion__plus { position:relative; width:18px; height:18px; margin-left:auto; flex:0 0 auto; color: inherit; }
.dama-edicion__plus::before, .dama-edicion__plus::after { content:''; position:absolute; left:50%; top:50%; background:currentColor; }
.dama-edicion__plus::before { width:16px; height:2px; transform:translate(-50%,-50%); }
.dama-edicion__plus::after { width:2px; height:16px; transform:translate(-50%,-50%); transition:transform .25s ease, opacity .25s ease; }
details[open] .dama-edicion__plus::after { transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.dama-edicion__panel { display:grid; grid-template-columns: clamp(120px, 18%, 190px) 1fr; gap:1.6rem 2.5rem; align-items:start; padding:.2rem 0 1.9rem; }
.dama-edicion__panel:not(:has(.dama-edicion__cartel)) { grid-template-columns:1fr; }
.dama-edicion__cartel img { width:100%; height:auto; display:block; border-radius:2px; box-shadow:0 10px 26px rgba(0,0,0,.14); }
.dama-edicion__pelis { list-style:none; margin:0; padding:0; }
.dama-edicion__peli { padding:.55rem 0; border-bottom:1px solid rgba(0,0,0,.08); display:flex; flex-wrap:wrap; gap:.1rem .7rem; align-items:baseline; }
.dama-edicion__peli:last-child { border-bottom:0; }
.dama-edicion__peli-tit { font-size: var(--fs-h4, 1.2rem); font-style:italic; font-family: var(--font-serif); }
.dama-edicion__peli-aut { color: rgba(0,0,0,.5); font-size:.92rem; }
@media (max-width: 680px) {
  .dama-edicion__panel { grid-template-columns: 1fr; }
  .dama-edicion__cartel { max-width: 170px; }
}

/* v2.86.2 · dama_youtube popup */
.video-card.dama-yt-card { display:block; width:100%; text-align:left; background:none; border:0; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer; }
.dama-yt-lb { position:fixed; inset:0; z-index:10000; background:rgba(0,0,0,.88); display:flex; align-items:center; justify-content:center; padding:24px; }
.dama-yt-lb[hidden] { display:none; }
.dama-yt-lb__inner { position:relative; width:min(1080px,100%); }
.dama-yt-lb__frame { position:relative; aspect-ratio:16/9; background:#000; border-radius:3px; overflow:hidden; }
.dama-yt-lb__frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.dama-yt-lb__close { position:absolute; top:-46px; right:0; width:42px; height:42px; display:grid; place-items:center; background:none; border:0; color:#fff; cursor:pointer; }
body.dama-yt-lb-open { overflow:hidden; }
@media (max-width:600px){ .dama-yt-lb__close { top:-40px; } }

/* v2.86.4 · dama_sesiones formato Programa (lista compacta multi-columna) */
.dama-programa { list-style:none; margin:0; padding:0; columns: var(--prog-cols, 2); column-gap: clamp(2rem,4vw,4.5rem); }
.dama-programa__item { break-inside:avoid; padding:1.05rem 0; border-bottom:1px solid rgba(0,0,0,.12); }
.dama-programa__fecha { margin-bottom:.3rem; }
.dama-programa__peli { font-size: var(--fs-h4, 1.2rem); font-style:italic; line-height:1.2; }
.dama-programa__autora { color: rgba(0,0,0,.55); margin-top:.15rem; font-size:.95rem; }
@media (max-width:680px){ .dama-programa { columns:1; } }

/* v2.86.5 · dama_tarjetas — rejilla de tarjetas imagen + texto */
.dama-tarjetas { padding: var(--dama-section-py, 80px) 0; }
.dama-tarjetas__inner { width:100%; max-width: var(--max-w, 1440px); margin:0 auto; padding:0 var(--gutter, 2rem); }
.dama-tarjetas__head { margin-bottom: var(--gap-head, 40px); }
.dama-tarjetas__title { margin:.3rem 0 0; }
.dama-tarjetas__grid { display:grid; grid-template-columns: repeat(var(--tarj-cols, 2), minmax(0,1fr)); gap: clamp(1.6rem,3vw,3rem); }
.dama-tarjeta__media { aspect-ratio: var(--tarj-ratio, 3/2); overflow:hidden; background:#f0eee9; border-radius:2px; }
.dama-tarjeta__media img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .55s cubic-bezier(.22,1,.36,1); }
.dama-tarjeta:hover .dama-tarjeta__media img { transform: scale(1.04); }
.dama-tarjeta__body { margin-top:1rem; }
.dama-tarjeta__kicker { display:block; margin-bottom:.5rem; }
.dama-tarjeta__titulo { font-size: var(--fs-h3, 1.7rem); font-weight:600; line-height:1.12; margin:0; }
.dama-tarjeta__cuerpo { margin-top:.6rem; line-height:1.55; }
.dama-tarjeta__cuerpo p { margin:0 0 .7rem; }
@media (max-width: 900px) { .dama-tarjetas__grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .dama-tarjetas__grid { grid-template-columns: 1fr; } }

/* v2.86.7 · botón de reserva en ficha + ancho de imagen split editable */
.dama-sesion__cta { display:inline-flex; align-items:center; gap:.5em; margin-top:1.3rem; }

/* v2.86.8 · fondo oscuro en sesiones → contraste de kicker/fechas/botón/bordes */
.dama-sesiones--dark .kicker { color: rgba(255,255,255,.66); }
.dama-sesiones--dark .dama-programa__autora { color: rgba(255,255,255,.6); }
.dama-sesiones--dark .dama-sesion__bio { border-top-color: rgba(255,255,255,.22); }
.dama-sesiones--dark .cta-solid { background:#fff; color:#0a0a0a; }
.dama-sesiones--dark .cta-solid:hover { background:transparent; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.7); }

.dama-sesiones--dark .dama-sesion__autora,
.dama-sesiones--dark .dama-sesiones__title { color: #f3ede3; }
.dama-sesiones--dark .dama-agenda__title { color: #f3ede3; }
.dama-sesiones--dark .dama-agenda__desc,
.dama-sesiones--dark .dama-agenda__desc p,
.dama-sesiones--dark .dama-agenda__sub { color: #e8ded1; }

/* v2.86.10 · tamaño + proporción editable de la foto en fichas */
.dama-sesiones--cartel-crop .dama-sesion__cartel img { aspect-ratio: var(--ses-cartel-ratio, 3/4); height:auto; object-fit:cover; }

/* v2.86.11 · párrafos (sinopsis/bio) claros en fichas con fondo oscuro (vence a .wpb_wrapper p) */
.dama-sesiones--dark .dama-sesion__sinopsis,
.dama-sesiones--dark .dama-sesion__sinopsis p,
.dama-sesiones--dark .dama-sesion__bio,
.dama-sesiones--dark .dama-sesion__bio p { color: #e8ded1; }

/* v2.86.17 · estilo de imagen por módulo (vence al B&N por defecto del tema, línea 271) */
.dama-yt-grid .video-card__thumb { position: relative; overflow: hidden; }
/* COLOR: anula el grayscale por defecto */
.dama-imgfx--color .video-card__thumb img { filter: none; opacity: 1; }
.dama-imgfx--color .video-card:hover .video-card__thumb img { filter: none; opacity: 1; }
.dama-imgfx--color .dama-vcard__thumb { filter: none; }
/* BLANCO Y NEGRO estático (también en hover) */
.dama-imgfx--bw .video-card__thumb img { filter: grayscale(1); opacity: 1; }
.dama-imgfx--bw .video-card:hover .video-card__thumb img { filter: grayscale(1); opacity: 1; }
.dama-imgfx--bw .dama-vcard__thumb { filter: grayscale(1); }
/* OVERLAY de color sobre imagen a color */
.dama-imgfx--overlay .video-card__thumb img { filter: none; opacity: 1; }
.dama-imgfx--overlay .video-card:hover .video-card__thumb img { filter: none; opacity: 1; }
.dama-imgfx--overlay .video-card__thumb,
.dama-imgfx--overlay .dama-vcard__thumb { position: relative; overflow: hidden; }
.dama-imgfx--overlay .video-card__thumb::after,
.dama-imgfx--overlay .dama-vcard__thumb::after { content:""; position:absolute; inset:0; z-index:1; background: var(--dama-imgfx-ov, #16130f); opacity:.45; mix-blend-mode: multiply; pointer-events:none; transition: opacity .4s ease; }
.dama-imgfx--overlay .video-card:hover .video-card__thumb::after,
.dama-imgfx--overlay .dama-vcard:hover .dama-vcard__thumb::after { opacity:.25; }
.dama-imgfx--overlay .video-card__thumb .play,
.dama-imgfx--overlay .dama-vcard__play,
.dama-imgfx--overlay .dama-vcard__duration { z-index: 2; }

/* v2.86.18 · cifra de dama_datos hereda el color de la sección (vence al negro de .font-serif en fondo oscuro) */
.dact-datos .dact-datos__inner .dact-datos__cifra { color: inherit; }

/* v2.86.20 · fichas en 2 columnas: rejilla ALINEADA (orden de lectura, columnas rectas) */
.dama-sesiones--fichas-2col .dama-sesiones__list { display:grid; grid-template-columns: 1fr 1fr; gap: 2.8rem 3.5rem; align-items:start; }
.dama-sesiones--fichas-2col .dama-sesion { margin: 0; }
@media (max-width: 820px){ .dama-sesiones--fichas-2col .dama-sesiones__list { grid-template-columns: 1fr; } }

/* v2.86.21 · formato AGENDA: rail de hora + contenido, filas con separador (orden cronológico) */
.dama-agenda { list-style:none; margin:0; padding:0; }
.dama-agenda__item { display:grid; grid-template-columns: minmax(92px,148px) 1fr; gap:.4rem 2.4rem; padding:1.5rem 0; border-top:1px solid rgba(127,127,127,.28); align-items:start; }
.dama-agenda__item:last-child { border-bottom:1px solid rgba(127,127,127,.28); }
.dama-agenda__hora { font-family:var(--font-sans); font-weight:600; font-size:.92rem; line-height:1.3; letter-spacing:.01em; opacity:.85; white-space:nowrap; padding-top:.15rem; }
.dama-agenda__title { font-size:var(--fs-h4,1.25rem); line-height:1.2; font-weight:600; margin:0 0 .3rem; }
.dama-agenda__sub { font-family:var(--font-serif); font-style:italic; font-size:1.02rem; opacity:.72; margin-bottom:.5rem; }
.dama-agenda__desc { font-size:.95rem; line-height:1.6; opacity:.92; max-width:62ch; }
.dama-agenda__desc p { margin:0; }
@media (max-width:640px){ .dama-agenda__item { grid-template-columns:1fr; gap:.3rem; } .dama-agenda__hora{ opacity:.7; } }

/* v2.86.24 · vídeo único destacado: un poco más pequeño y centrado */
.video-grid:has(> .video-card:only-child) { max-width: 900px; margin-inline: auto; }

/* =============================================================================
 * v2.86.25 · DAMA · Sesiones pasadas (histórico navegable por meses)
 * =========================================================================== */
.dama-sp {
  --sp-foto-w: 240px;
  --sp-ratio: 3/4;
  padding: clamp(56px, 7vw, 96px) 32px;
}
.dama-sp__inner { max-width: 1440px; margin-inline: auto; }

.dama-sp__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: clamp(28px, 3.5vw, 48px);
  padding-bottom: 20px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.dama-sp__kicker { display: block; margin-bottom: 10px; }
.dama-sp__title { margin: 0; font-size: var(--fs-h2); line-height: 1.05; }

/* --- Navegación por meses --- */
.dama-sp__nav { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.dama-sp__mes {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .02em;
  min-width: 12ch;
  text-align: center;
  white-space: nowrap;
}
.dama-sp__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  padding: 0;
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, opacity .18s ease;
}
.dama-sp__arrow:hover:not(:disabled) {
  background: color-mix(in srgb, currentColor 10%, transparent);
  border-color: currentColor;
}
.dama-sp__arrow:disabled { opacity: .28; cursor: default; }
.dama-sp__arrow svg { display: block; }

/* --- Lista --- */
.dama-sp__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(28px, 3vw, 44px); }
.dama-sp__list--cols-2 { grid-template-columns: repeat(2, 1fr); }
.dama-sp__list--cols-3 { grid-template-columns: repeat(3, 1fr); }

.dama-sp__item { display: grid; grid-template-columns: var(--sp-foto-w) 1fr; gap: 22px; align-items: start; }
.dama-sp__list--cols-3 .dama-sp__item { grid-template-columns: 1fr; }

.dama-sp__foto { margin: 0; overflow: hidden; border-radius: 2px; background: color-mix(in srgb, currentColor 8%, transparent); }
.dama-sp__foto img { display: block; width: 100%; height: auto; aspect-ratio: var(--sp-ratio); object-fit: cover; }
.dama-sp__list--cols-3 .dama-sp__foto { max-width: 100%; }

.dama-sp__cont { min-width: 0; }
.dama-sp__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-family: var(--font-sans);
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .72;
  margin-bottom: 10px;
}
.dama-sp__sep { opacity: .5; }
.dama-sp__ponente {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .01em;
  margin-bottom: 4px;
}
.dama-sp__sesion { margin: 0 0 10px; font-size: var(--fs-h4); line-height: 1.15; }
.dama-sp__desc { font-size: 13px; line-height: 1.65; opacity: .85; }
.dama-sp__desc p { margin: 0 0 .8em; }
.dama-sp__desc p:last-child { margin-bottom: 0; }

/* --- Fondo oscuro: forzamos contraste (el tema pinta p/h3 en negro) --- */
.dama-sp--dark .dama-sp__title,
.dama-sp--dark .dama-sp__sesion,
.dama-sp--dark .dama-sp__ponente { color: #f3ede3; }
.dama-sp--dark .dama-sp__kicker { color: #e8ded1; }
.dama-sp--dark .dama-sp__desc,
.dama-sp--dark .dama-sp__desc p,
.dama-sp--dark .dama-sp__cont p { color: #e8ded1; }

/* --- Responsive --- */
@media (max-width: 1024px) {
  .dama-sp__list--cols-2,
  .dama-sp__list--cols-3 { grid-template-columns: 1fr; }
  .dama-sp__list--cols-3 .dama-sp__item { grid-template-columns: var(--sp-foto-w) 1fr; }
}
@media (max-width: 640px) {
  .dama-sp { padding-inline: 20px; }
  .dama-sp__head { align-items: flex-start; flex-direction: column; }
  .dama-sp__nav { align-self: flex-start; }
  .dama-sp__item { grid-template-columns: 96px 1fr; gap: 16px; }
  .dama-sp__list--cols-3 .dama-sp__item { grid-template-columns: 96px 1fr; }
}

/* =============================================================================
 * v2.86.26 · DAMA · Próximas sesiones (auto, desde eventos)
 * =========================================================================== */
.dama-sprox {
  --ses-foto-w: 340px;
  --ses-ratio: 4/3;
  padding: clamp(56px, 7vw, 96px) 32px;
}
.dama-sprox__inner { max-width: 1440px; margin-inline: auto; }

.dama-sprox__head { margin-bottom: clamp(32px, 4vw, 56px); }
.dama-sprox__kicker { display: block; margin-bottom: 10px; }
.dama-sprox__title { margin: 0; font-size: var(--fs-h2); line-height: 1.05; }

.dama-sprox__vacio { margin: 0; font-size: 1.05rem; opacity: .75; }

.dama-sprox__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(48px, 5vw, 80px); }
.dama-sprox__item {
  display: grid;
  grid-template-columns: var(--ses-foto-w) 1fr;
  gap: clamp(28px, 3vw, 48px);
  align-items: start;
  padding-top: clamp(32px, 3vw, 48px);
  border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.dama-sprox__item:first-child { padding-top: 0; border-top: 0; }

.dama-sprox__foto { margin: 0; overflow: hidden; border-radius: 2px; background: color-mix(in srgb, currentColor 8%, transparent); }
.dama-sprox__foto img { display: block; width: 100%; height: auto; aspect-ratio: var(--ses-ratio); object-fit: cover; }

.dama-sprox__cont { min-width: 0; }
.dama-sprox__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-family: var(--font-sans);
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .72;
  margin-bottom: 12px;
}
.dama-sprox__sep { opacity: .5; }
.dama-sprox__ponente {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 4px;
}
.dama-sprox__sesion { margin: 0 0 16px; font-size: var(--fs-h3); line-height: 1.1; }
.dama-sprox__texto { font-size: 1rem; line-height: 1.65; }
.dama-sprox__texto p { margin: 0 0 1em; }
.dama-sprox__texto p:last-child { margin-bottom: 0; }
.dama-sprox__cta { margin: 24px 0 0; }

.dama-sprox__bio {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.dama-sprox__biokicker { display: block; margin-bottom: 8px; }
.dama-sprox__bionombre { display: block; font-family: var(--font-sans); font-size: 1rem; margin-bottom: 6px; }
.dama-sprox__biotexto { font-size: .9375rem; line-height: 1.6; opacity: .85; }
.dama-sprox__biotexto p { margin: 0 0 .8em; }
.dama-sprox__biotexto p:last-child { margin-bottom: 0; }

/* --- Fondo oscuro: forzar contraste (el tema pinta p/h3 en negro) --- */
.dama-sprox--dark .dama-sprox__title,
.dama-sprox--dark .dama-sprox__sesion,
.dama-sprox--dark .dama-sprox__ponente,
.dama-sprox--dark .dama-sprox__bionombre { color: #f3ede3; }
.dama-sprox--dark .dama-sprox__kicker,
.dama-sprox--dark .dama-sprox__biokicker { color: #e8ded1; }
.dama-sprox--dark .dama-sprox__texto,
.dama-sprox--dark .dama-sprox__texto p,
.dama-sprox--dark .dama-sprox__biotexto,
.dama-sprox--dark .dama-sprox__biotexto p,
.dama-sprox--dark .dama-sprox__vacio { color: #e8ded1; }
.dama-sprox--dark .cta-solid { background: #f3ede3; color: #0a0a0a; }
.dama-sprox--dark .cta-solid:hover { background: #fff; }

@media (max-width: 900px) {
  .dama-sprox__item { grid-template-columns: 1fr; }
  .dama-sprox__foto { max-width: 420px; }
}
@media (max-width: 640px) {
  .dama-sprox { padding-inline: 20px; }
}

/* --- v2.87.0 · Histórico en formato "ediciones" (acordeón por año) --------- */
.dama-sp__acc { display: grid; gap: 0; }
.dama-sp__ed { border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.dama-sp__ed:last-child { border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.dama-sp__edsum {
  display: flex; align-items: baseline; gap: 16px;
  padding: 22px 0;
  cursor: pointer;
  list-style: none;
}
.dama-sp__edsum::-webkit-details-marker { display: none; }
.dama-sp__edanio { font-size: var(--fs-h3); line-height: 1; }
.dama-sp__edn {
  font-family: var(--font-sans);
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
}
.dama-sp__edico { margin-left: auto; align-self: center; transition: transform .2s ease; opacity: .6; }
.dama-sp__ed[open] .dama-sp__edico { transform: rotate(180deg); }
.dama-sp__ed[open] .dama-sp__list { padding-bottom: 40px; }
.dama-sp--dark .dama-sp__edanio { color: #f3ede3; }

/* =============================================================================
 * v2.88.0 · DAMA · Popup de evento (con formulario Mailchimp incrustado)
 * =========================================================================== */
.dama-ev-btn {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: inherit;
}

body.dama-ev-lb-open { overflow: hidden; }

.dama-ev-lb {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.dama-ev-lb[hidden] { display: none; }

.dama-ev-lb__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, .72);
  backdrop-filter: blur(3px);
  animation: dama-ev-fade .2s ease;
}
@keyframes dama-ev-fade { from { opacity: 0; } to { opacity: 1; } }

.dama-ev-lb__panel {
  position: relative;
  width: min(780px, 100%);
  max-height: min(90vh, 940px);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #f3ede3;
  color: #0a0a0a;
  border-radius: 3px;
  padding: clamp(28px, 4vw, 44px);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .4);
  animation: dama-ev-in .22s cubic-bezier(.2, .8, .2, 1);
}
@keyframes dama-ev-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.dama-ev-lb__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px; height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #0a0a0a;
  cursor: pointer;
  transition: background-color .18s ease;
}
.dama-ev-lb__close:hover { background: rgba(10, 10, 10, .08); }

/* --- Contenido --- */
.dama-ev__head { margin-bottom: 24px; padding-right: 40px; }
.dama-ev__kicker { display: block; margin-bottom: 10px; }
.dama-ev__title { margin: 0 0 12px; font-size: var(--fs-h3); line-height: 1.1; }
.dama-ev__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-family: var(--font-sans);
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .72;
}
.dama-ev__sep { opacity: .5; }
.dama-ev__sub { margin: 14px 0 0; font-size: 1rem; line-height: 1.5; font-weight: 500; }
.dama-ev__texto { margin: 10px 0 0; font-size: .9375rem; line-height: 1.6; opacity: .8; }

/* --- Formulario incrustado (Mailchimp) ---
   v3.9 · La página "survey" de Mailchimp trae SU tema: tarjeta blanca de ~600px
   sobre fondo oscuro. El iframe era más ancho que la tarjeta, así que se veían
   franjas negras a los lados. Lo ceñimos al ancho de la tarjeta y centramos, con
   una estera clara detrás para que cualquier resto no cante. El fondo del propio
   Mailchimp solo se puede cambiar desde su panel (cross-origin). */
.dama-ev__form {
  margin: 0 0 12px;
  border: 1px solid rgba(10, 10, 10, .10);
  border-radius: 6px;
  overflow: hidden;
  background: #000;            /* panel negro uniforme: casa con el envoltorio de la survey */
  padding: 4px 0;
}
.dama-ev__iframe {
  display: block;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  height: 560px;
  border: 0;
  background: #000;
}
.dama-ev__fallback {
  margin: 0 0 4px;
  font-size: .8125rem;
  opacity: .7;
}
.dama-ev__fallback a { color: inherit; text-decoration: underline; }

.dama-ev__cta { margin: 0; }
.dama-ev__libre { margin: 0; opacity: .7; }
/* v3.70 · Evento finalizado — etiqueta discreta en el popup de eventos pasados */
.dama-ev__finalizado {
  display: inline-block;
  margin: 0;
  padding: 7px 14px;
  border: 1px solid rgba(10, 10, 10, .18);
  border-radius: 0;
  color: rgba(10, 10, 10, .55);
  background: rgba(10, 10, 10, .03);
}
/* v3.71 · Etiqueta "Evento finalizado" tambien en la tarjeta del listado (grid + fila) */
.event-finalizado {
  display: inline-block;
  padding: 6px 12px;
  border: 1px solid rgba(10, 10, 10, .18);
  border-radius: 0;
  color: rgba(10, 10, 10, .5);
  background: rgba(10, 10, 10, .03);
  white-space: nowrap;
}

.dama-ev__mas {
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(10, 10, 10, .12);
}

@media (max-width: 640px) {
  .dama-ev-lb { padding: 0; align-items: flex-end; }
  .dama-ev-lb__panel {
    width: 100%;
    max-height: 92vh;
    border-radius: 12px 12px 0 0;
    padding: 28px 20px 32px;
  }
  .dama-ev__iframe { height: 460px; }
}

/* =============================================================================
 * v2.93 · [dama_video_destacado] — un vídeo a lo ancho, con la carátula y el
 *   play del tema. Reutiliza el lightbox `.dama-yt-lb` (el iframe solo se crea
 *   al pulsar; no se carga nada de entrada).
 * =========================================================================== */
.dama-vsolo__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    padding: 0;
    cursor: pointer;
    background-color: rgba(var(--ink-rgb, 10, 10, 10), .06);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    transition: transform .4s ease;
}
.dama-vsolo__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .12);
    transition: background .3s ease;
}
.dama-vsolo__media:hover::after { background: rgba(0, 0, 0, .28); }
.dama-vsolo__media .dama-vhero__play { z-index: 2; }
.dama-vsolo__media:hover .dama-vhero__play {
    transform: translate(-50%, -50%) scale(1.08);
    background: #fff;
}
.dama-vsolo__dur {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 2;
    padding: 4px 8px;
    font-size: 11px;
    letter-spacing: .1em;
    background: rgba(0, 0, 0, .68);
    color: #fff;
}
.dama-vsolo__texto {
    margin: 1.25rem 0 0;
    max-width: 62ch;
    font-size: .9375rem;
    line-height: 1.6;
    opacity: .8;
}

/* v2.94 · dama_tabs con fondo oscuro: el cuerpo de la pestaña hereda el color
   legible que calcula el auto-contraste (antes solo lo hacían las pestañas). */
.dama-section--tabs .dama-tabs__panel,
.dama-section--tabs .dama-tabs__panel p,
.dama-section--tabs .dama-tabs__panel li,
.dama-section--tabs .dama-tabs__panel h2,
.dama-section--tabs .dama-tabs__panel h3,
.dama-section--tabs .dama-tabs__panel h4,
.dama-section--tabs .dama-tabs__panel strong,
.dama-section--tabs .dama-tabs__panel em,
.dama-section--tabs .dama-tabs__panel a { color: var(--dama-tabs-body, inherit); }

/* =============================================================================
 * v2.99 · [dama_noticias_carrusel] — noticias de una categoría, de 3 en 3.
 *   Las flechas desplazan el track; sin AJAX (todas las tarjetas ya están).
 * =========================================================================== */
.dama-ncar__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}
.dama-ncar__tools {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}
.dama-ncar__nav { display: flex; gap: 0.5rem; }
.dama-ncar__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--hairline-strong, rgba(10, 10, 10, .25));
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    transition: background .25s, color .25s, border-color .25s, opacity .25s;
}
.dama-ncar__arrow:hover:not(:disabled) {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
}
.dama-ncar__arrow:disabled { opacity: .3; cursor: default; }

.dama-ncar { --ncar-gap: 1.75rem; }
/* El carrusel es un scroll de verdad, no un transform.
   Motivo: translateX(%) se resuelve contra el ancho del TRACK (mas ancho que la
   ventana), no contra la ventana, asi que las cuentas nunca cuadraban.
   De paso, con scroll real se puede deslizar con el dedo en movil gratis. */
.dama-ncar__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    /* v3.6 · POR QUE NO HAY scroll-behavior: smooth AQUI.
       Es lo que tenia muertas las flechas. Un scroll SUAVE (venga del CSS o de
       un scrollBy({behavior:'smooth'})) es incompatible con scroll-snap-type
       mandatory en Chrome: el re-snap cancela la animacion en el primer frame y
       scrollLeft se queda clavado en 0. El scroll INSTANTANEO si funciona, y el
       arrastre del usuario tambien — por eso el carrusel parecia ir bien a mano
       y los botones no hacian nada.
       La suavidad la pone ahora el JS animando scrollLeft por rAF y suspendiendo
       el snap mientras dura la animacion. No devolver el smooth aqui. */
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior-x: contain;
}
.dama-ncar__viewport::-webkit-scrollbar { display: none; }
.dama-ncar__track {
    display: flex;
    gap: var(--ncar-gap);
    /* El track debe medir lo que mide su contenido: si se encoge al ancho del
       viewport, las tarjetas se salen sin generar scroll. */
    width: max-content;
}
/* El ancho de tarjeta lo calcula el JS en px (--ncar-card).
   Nada de %: un % dentro de un track `max-content` es una dependencia circular
   (el track depende de la tarjeta y la tarjeta del track) y cuelga el navegador.
   El fallback tambien es absoluto, para que el primer pintado sea valido. */
.dama-ncar__track > * {
    flex: 0 0 var(--ncar-card, 360px);
    width: var(--ncar-card, 360px);
    scroll-snap-align: start;
}

.dama-ncard__link { display: block; text-decoration: none; color: inherit; }
.dama-ncard__thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: rgba(var(--ink-rgb, 10, 10, 10), .06);
    margin-bottom: 1rem;
}
.dama-ncard__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}
.dama-ncard__link:hover .dama-ncard__thumb img { transform: scale(1.04); }
.dama-ncard__date { display: block; margin-bottom: .5rem; opacity: .6; }
.dama-ncard__title {
    font-size: 1.125rem;
    line-height: 1.25;
    margin: 0;
    text-wrap: balance;
}
.dama-ncard__link:hover .dama-ncard__title { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 900px) {
    .dama-ncar { --ncar-gap: 1.25rem; --ncar-visibles: 2; }
}
@media (max-width: 600px) {
    .dama-ncar { --ncar-gap: 1rem; --ncar-visibles: 1; }
    .dama-ncar__head { align-items: flex-start; }
}

/* =============================================================================
 * v3.0 · Pastilla de estado de convocatoria (abierta / cerrada / próxima).
 * =========================================================================== */

/* HERO — La pastilla NO lleva color propio a proposito: hereda el del hero,
   igual que el kicker. `.dact-light` = texto claro (fondo oscuro) y `.dact-dark`
   = texto oscuro (fondo claro): la nomenclatura del tema va por el TEXTO, no por
   el fondo. Poner aqui un color fijo la rompe en uno de los dos casos. */

/* TARJETAS (listado de convocatorias) — Antes: fondo negro + texto verde.
   Ahora: transparente, borde y texto negros, para todos los estados. */
.conv-card__estado,
.conv-card--proxima .conv-card__estado,
.conv-card--cerrada .conv-card__estado,
.conv-card__estado--abierta,
.conv-card__estado--cerrada,
.conv-card__estado--proxima {
    background: transparent;
    color: var(--ink, #0a0a0a);
    border: 1px solid var(--ink, #0a0a0a);
    border-radius: 0;
}
/* La cerrada, mas apagada: sigue leyendose, pero no compite con las abiertas. */
.conv-card--cerrada .conv-card__estado,
.conv-card__estado--cerrada {
    color: rgba(var(--ink-rgb, 10, 10, 10), .55);
    border-color: rgba(var(--ink-rgb, 10, 10, 10), .3);
}

/* =============================================================================
 * v3.1 · Los bloques con fondo de color deben propagar su color de texto.
 *   El modulo ya deja elegirlo (o lo deduce por auto-contraste) y lo pone en la
 *   seccion, pero los hijos lo ignoraban: reglas globales de h2/h3/p les metian
 *   el negro de la casa. Resultado: texto negro sobre granate (ratio 1.36).
 * =========================================================================== */
.dact-palmares[style*="color"] .dact-palmares__title,
.dact-palmares[style*="color"] .dact-palmares__kicker,
.dact-palmares[style*="color"] .dact-palmares__anio,
.dact-palmares[style*="color"] .dact-palmares__titulo,
.dact-palmares[style*="color"] .dact-palmares__tag,
.dact-palmares[style*="color"] .dact-palmares__autores,
.dact-palmares[style*="color"] h2,
.dact-palmares[style*="color"] h3,
.dact-palmares[style*="color"] p,
.dact-palmares[style*="color"] a { color: inherit; }

.dact-descargas[style*="color"] .dact-descargas__item,
.dact-descargas[style*="color"] h2,
.dact-descargas[style*="color"] h3,
.dact-descargas[style*="color"] p,
.dact-descargas[style*="color"] a,
.dact-descargas[style*="color"] span { color: inherit; }

/* v3.2 · Linea opcional encima del logo del hero ("Actividad subvencionada por").
   Sin la clase `.kicker`: arrastra un negro al 55% que sobre hero oscuro daba
   contraste 1.2 (ilegible). Hereda el color del hero y solo lo atenua un poco. */
.dact-hero__logo { display: flex; flex-direction: column; align-items: flex-start; gap: 0.55rem; }
.dact-hero__logo-txt {
    display: block;
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: currentColor;
    opacity: .8;
}

/* =============================================================================
 * v3.3 · Enlaces en prosa: subrayado + negrita.
 *
 * La regla base del tema es `a { text-decoration: none }`, asi que un enlace
 * dentro de un parrafo era indistinguible del texto que lo rodea. Aqui se
 * marcan.
 *
 * El alcance es deliberadamente ESTRECHO: solo <a> dentro de parrafos, listas,
 * citas y celdas del contenido. Menus, botones, tarjetas, CTA y la barra de
 * admin quedan fuera a proposito: aplicarlo a todo <a> subrayaria tambien el
 * menu principal y el pie, y la web se llenaria de subrayados (medido: 86 de 103
 * enlaces de una pagina NO son enlaces de prosa).
 * =========================================================================== */
.site-main :is(p, li, blockquote, dd, td, figcaption) a,
.dama-section :is(p, li, blockquote, dd, td, figcaption) a {
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    text-decoration-skip-ink: auto;
}
.site-main :is(p, li, blockquote, dd, td, figcaption) a:hover,
.dama-section :is(p, li, blockquote, dd, td, figcaption) a:hover {
    text-decoration-thickness: 2px;
}

/* Excepciones: esto NO son enlaces de prosa aunque vivan dentro de un <p>/<li>.
   Verificado sobre la web real: sin estas exclusiones se subrayaban los items
   del indice lateral (`dama-index-accordion__link`, 11 en Transparencia), las
   tarjetas, los CTA y el menu. */
.site-main .cta-line,
.site-main .cta-solid,
.site-main [class*="btn-"],
.site-main [class*="card"] a,
.site-main [class*="-row"] a,
.site-main .dama-tabs__btn,
.site-main .dama-toc a,
.site-main .dama-index-accordion__link,
.site-main .dact-lista__ctas a,
.site-main .cursor-init,
.dama-section .dama-index-accordion__link,
.dama-section .cta-line,
.dama-section .cta-solid,
.dama-section .cursor-init,
.site-header a,
.site-footer a,
nav a,
.mob-tabbar a,
#wpadminbar a {
    font-weight: inherit;
    text-decoration: none;
}

/* ============================================================
   v3.8 · [dama_canal_serie] — rejilla de vídeos de un ciclo + Ver más.
   Reutiliza .dama-video-grid / .dama-vcard (mismas tarjetas y lightbox
   que /videos/). Aquí solo la cabecera, el botón y el estado oculto.
   ============================================================ */
.dama-serie__head { margin-bottom: 2rem; }
.dama-serie__kicker { display: block; margin-bottom: .5rem; }
.dama-serie__title { margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.1; }
/* El revelado por tandas: las tarjetas ocultas no ocupan sitio. El atributo
   [hidden] ya lo haría, pero .is-hidden gana a la rejilla (display:grid en el
   hijo pisaría a [hidden]); por eso forzamos display:none aquí. */
.dama-serie__grid .dama-serie__card.is-hidden { display: none; }
.dama-serie__more { margin-top: 2.5rem; text-align: center; }
.dama-serie__more-btn { cursor: pointer; }

/* ============================================================
   v3.14 · CAMBIO DE PLANO — índice horizontal + composición con intensidad
   Todo scopeado por el/id de la convocatoria para no afectar a otras.
   ============================================================ */

/* --- Índice de anclas HORIZONTAL, fondo negro, texto naranja --- */
#cdp-indice .dama-section--toc, #cdp-indice.dama-section--toc { background:#161616 !important; padding-top:0; padding-bottom:0; }
#cdp-indice .dama-section__inner { background:#161616; }
#cdp-indice .dama-toc__kicker { color:#F25E0D; padding:18px 0 6px; letter-spacing:.18em; }
#cdp-indice .dama-toc__list {
    display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:0; margin:0; padding:0; list-style:none;
    border-top:1px solid rgba(242,94,13,.35);
}
#cdp-indice .dama-toc__item {
    flex:1 1 0; min-width:150px; margin:0; padding:0;
    border-right:1px solid rgba(242,94,13,.22);
}
#cdp-indice .dama-toc__item:last-child { border-right:0; }
#cdp-indice .dama-toc__link {
    display:flex; align-items:baseline; gap:9px; padding:20px 20px;
    color:#F25E0D; text-decoration:none; white-space:nowrap; font-weight:600;
    transition:background .18s ease,color .18s ease;
}
#cdp-indice .dama-toc__link:hover,
#cdp-indice .dama-toc__link.is-active,
#cdp-indice .dama-toc__item.is-active .dama-toc__link { background:#F25E0D; color:#161616; }
#cdp-indice .dama-toc__num { color:#F25E0D !important; opacity:1; font-size:1em; font-weight:600; letter-spacing:.08em; min-width:2.2em; }
#cdp-indice .dama-toc__link:hover .dama-toc__num,
#cdp-indice .dama-toc__link.is-active .dama-toc__num { color:#161616; opacity:1; }
/* índice sticky bajo el header */
#cdp-indice { position:sticky; top:var(--header-h,80px); z-index:20; }
@media (max-width:820px){
    #cdp-indice .dama-toc__list{ flex-direction:row; flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    #cdp-indice .dama-toc__item{ flex:0 0 auto; min-width:auto; border-right:1px solid rgba(242,94,13,.22); border-bottom:0; }
    #cdp-indice .dama-toc__link{ padding:14px 16px; }
}

/* --- GIFs de marca (ojo/ventana/cámara) en la sección negra Sobre --- */
.cdp-gifs { display:flex; flex-wrap:wrap; gap:2.5rem; justify-content:center; align-items:center; margin:2.5rem 0 0; }
.cdp-gifs img { width:min(300px,80vw); height:auto; }

/* --- Ganadores / Ediciones: fotos CIRCULARES alineadas + separadores --- */
#ganadores .dact-palmares__img,
#ediciones .dact-palmares__img {
    aspect-ratio:1/1; object-fit:cover; width:100%; max-width:340px; height:auto;
    border-radius:50%; margin-inline:auto; display:block;
    border:3px solid #161616;
}
#ganadores .dact-palmares__entry,
#ediciones .dact-palmares__entry {
    display:flex; flex-direction:column; align-items:center; text-align:center;
    padding:34px 24px;
    border:1px solid rgba(10,10,10,.18);
}
#ganadores .dact-palmares__row,
#ediciones .dact-palmares__row { gap:0; }
#ganadores .dact-palmares__titulo,
#ediciones .dact-palmares__titulo { margin-top:1rem; }

/* --- Cambio de Plano · "Qué es" en 3 columnas (icono + texto, alternando) --- */
.cdp-quees { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; margin:3rem 0 0; align-items:center; }
.cdp-quees__col { display:flex; flex-direction:column; gap:1.4rem; text-align:center; align-items:center; }
.cdp-quees__col--flip { flex-direction:column-reverse; }
.cdp-quees__col img { width:100%; max-width:230px; height:auto; }
.cdp-quees__col p { margin:0; color:#e8e8e8; font-size:1.02rem; line-height:1.5; }
@media (max-width:820px){ .cdp-quees{ grid-template-columns:1fr; gap:2.2rem; } }

/* v3.18 · [dama_consejo] shortcode dentro de páginas WPBakery */
.equipo-group--shortcode { padding: 2.5rem 0; }
.equipo-group--shortcode .equipo-group__header { margin-bottom: 2rem; }

/* v3.19 · [dama_equipo_cierre] — cierre de Quiénes Somos, todo en la caja */
.dama-cierre__head { max-width: 70ch; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.dama-cierre__lead { font-family: var(--font-sans); margin-top: 1rem; }
.dama-cierre__dir { display: grid; grid-template-columns: 45% 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.dama-cierre__dir--der { grid-template-columns: 1fr 45%; }
.dama-cierre__dir--der .dama-cierre__dir-img { order: 2; }
.dama-cierre__dir-img img, .dama-cierre__equipo img { display: block; width: 100%; height: auto; }
.dama-cierre__dir-text { font-family: var(--font-sans); }
.dama-cierre__dir-text p { margin: 0; line-height: 1.9; }
@media (max-width: 768px) {
  .dama-cierre__dir, .dama-cierre__dir--der { grid-template-columns: 1fr; }
  .dama-cierre__dir--der .dama-cierre__dir-img { order: 0; }
}
.dama-cierre figure { margin: 0; }
/* v3.20 · Contacto de prensa: 2 contactos + dirección física */
.prensa-contacto__contact { display: flex; flex-direction: column; gap: 0.85rem; align-items: flex-start; }
.prensa-contacto__contact + .prensa-contacto__contact { margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,255,255,0.15); width: 100%; }
.prensa-contacto[data-skin="light"] .prensa-contacto__contact + .prensa-contacto__contact { border-top-color: rgba(var(--ink-rgb,10,10,10),0.15); }
.prensa-contacto__address { margin-top: 1.85rem; font-family: var(--font-sans); font-size: 0.98rem; line-height: 1.65; opacity: 0.7; }

/* v3.21 · [dama_desplegable] — <details> editorial plegable */
.dama-desplegable { border-top: 1px solid rgba(0,0,0,0.15); }
.dama-desplegable:last-of-type { border-bottom: 1px solid rgba(0,0,0,0.15); }
.dama-desplegable__summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.6rem 0.25rem; cursor: pointer; list-style: none; }
.dama-desplegable__summary::-webkit-details-marker { display: none; }
.dama-desplegable__tt { display: flex; flex-direction: column; gap: 0.25rem; }
.dama-desplegable__titulo { font-family: var(--font-serif); font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.1; font-weight: 600; }
.dama-desplegable__sub { font-family: var(--font-sans); font-size: 0.8rem; letter-spacing: 0.05em; text-transform: uppercase; opacity: 0.55; }
.dama-desplegable__summary:hover .dama-desplegable__titulo { opacity: 0.65; }
.dama-desplegable__icon { position: relative; width: 26px; height: 26px; flex: 0 0 auto; }
.dama-desplegable__icon::after { content: ''; position: absolute; top: 42%; left: 50%; width: 13px; height: 13px; border-right: 2.5px solid currentColor; border-bottom: 2.5px solid currentColor; transform: translate(-50%, -50%) rotate(45deg); transition: transform 0.3s ease; }
.dama-desplegable[open] .dama-desplegable__icon::after { transform: translate(-50%, -20%) rotate(-135deg); }
.dama-desplegable__body { padding: 0.5rem 0 2.75rem; }
/* Variante sobre fondo oscuro (naranja/negro de Cambio de Plano) */
.dama-section[data-skin="dark"] .dama-desplegable, .dama-desplegable--dark { border-color: rgba(255,255,255,0.2); }


/* v3.22 · Cambio de Plano — refinamientos (feedback equipo) */
/* -- Acordeón de ediciones: sección naranja contenida -- */
.dama-acordeon { padding-top: clamp(3rem,6vw,5rem); padding-bottom: clamp(3rem,6vw,5rem); }
.dama-acordeon__intro { font-family: var(--font-sans); max-width: 60ch; margin: 1rem 0 0; opacity: .85; }
.dama-acordeon__list { margin-top: clamp(1.5rem,3vw,2.5rem); }
.dama-acordeon .dama-desplegable { border-top-color: rgba(0,0,0,0.22); }
.dama-acordeon .dama-desplegable:last-of-type { border-bottom-color: rgba(0,0,0,0.22); }
.dama-acordeon .dama-desplegable__titulo { font-size: clamp(1.6rem,2.8vw,2.4rem); }
/* el palmarés dentro del desplegable, ya naranja: sin caja/padding extra */
.dama-acordeon .dama-desplegable__body .dact-palmares,
.dama-acordeon .dama-desplegable__body .dact-bleed { background: transparent !important; }
.dama-acordeon .dama-desplegable__body { padding-left: 0; padding-right: 0; }

/* -- Índice horizontal: sin marca fija en el primero (solo hover) -- */
#cdp-indice .dama-toc__link.is-active,
#cdp-indice .dama-toc__item.is-active .dama-toc__link { background: transparent; color: #F25E0D; font-weight: 600; }
#cdp-indice .dama-toc__link.is-active::before { display: none; }
#cdp-indice .dama-toc__link.is-active .dama-toc__num { opacity: 1; color:#161616; }
#cdp-indice .dama-toc__link:hover { background: #F25E0D; color: #161616; }

/* -- 3 frases con gif: romper la columna de lectura y ocupar el inner (~1440) -- */
.cdp-quees { width: min(1440px, calc(100vw - 6rem)); max-width: none; gap: clamp(2.5rem,5vw,5rem); margin: 3.5rem 0 0; }
.cdp-quees__col img { max-width: 340px; }
.dama-section--editorial .dama-section__body .cdp-quees__col :is(p,h3,h4,h5),
.cdp-quees__col :is(p,h3,h4,h5) {
    font-family: var(--font-serif) !important; font-weight: 400 !important;
    font-size: clamp(22px,2.4vw,30px) !important; line-height: 1.25 !important;
    letter-spacing: -0.015em; margin: 0 !important; color: #e8e8e8;
}
.cdp-quees__col { gap: 1.6rem; }

/* -- Bases del concurso en 2 columnas y abiertas (sin acordeón) -- */
#concurso .dama-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(2rem,5vw,4.5rem); border-top: 0; }
#concurso .dama-faq__q { cursor: default; pointer-events: none; }
#concurso .dama-faq__icon { display: none; }
#concurso .dama-faq__a { max-height: none !important; height: auto !important; opacity: 1 !important; overflow: visible !important; visibility: visible !important; display: block !important; padding-bottom: 1.4rem; }
@media (max-width: 720px){ #concurso .dama-faq { grid-template-columns: 1fr; } }

/* -- Créditos: fondo arena -- */
#creditos { background: #E7E0D0; }
#creditos, #creditos .dama-section__title, #creditos p, #creditos .kicker { color: #1c1c1c; }
/* logos: centrados y alineados (Netflix venia suelto sin centrar) */
#creditos img { display: block; margin-left: auto; margin-right: auto; }
/* texto legal: normal (no titulo) y muy pequeno */
#creditos h6.creditos-legal, #creditos p.creditos-legal, #creditos .creditos-legal {
    font-family: var(--font-sans) !important; font-size: 8.5px !important; font-weight: 400 !important;
    letter-spacing: 0 !important; text-transform: none !important; line-height: 1.5 !important; opacity: 1 !important;
    color: #1c1c1c !important; text-align: left !important; max-width: 92ch; margin: 2.75rem auto 0;
}
.creditos-legal a { color: inherit; text-decoration: underline; }

/* Contenido de los ambitos del estudio (dama_tabs) legible */
.dama-tabs__panel h3 { font-family: var(--font-serif); font-size: clamp(1.15rem,2vw,1.6rem); font-weight: 600; margin: 2.2rem 0 0.6rem; }
.dama-tabs__panel h3:first-child { margin-top: 0; }
.dama-tabs__panel p { margin: 0 0 1rem; line-height: 1.6; }
.dama-tabs__panel ul { margin: 0.5rem 0 1.4rem; padding-left: 1.2rem; }
.dama-tabs__panel li { margin-bottom: 0.55rem; line-height: 1.55; }

/* v3.23 · Cita destacada (quote) — imagen aside con ancho máx. y centrada */
.dama-quote-two__media { margin-inline: auto; }

/* v3.23.1 · Palmarés: la celda de relleno (último hueco impar) no debe verse
   en desktop tampoco (antes solo se ocultaba en móvil → caja fantasma). */
.dact-palmares__entry--empty { display: none !important; }

/* v3.23.3 · Cambio de Plano — quitar la franja blanca sobre "El concurso":
   la fila lleva 35px de padding-top (global .vc_column-inner) transparente y
   el naranja va en el editorial interior → se colaba el body blanco. Pintamos
   la fila del concurso de naranja para que el hueco quede en color. */
#concurso { background: #F25E0D; }

/* v3.24.2 · Palmarés: las imágenes son secundarias → tope general de tamaño.
   Cambio de Plano mantiene su tamaño propio (#ganadores/#ediciones, más específico). */
.dact-palmares__img { max-width: 240px; }

/* v3.24.3 · DAMA Cortos — Bases (negro/amarillo) y Jurado (#981208/blanco) */
#bases { background: #161616; }
#bases a { color: #f2f24f; text-decoration: underline; }
#jurado { background: #981208; }
#jurado .dama-team__inner { max-width: 820px; }
#jurado .dama-team__title, #jurado .dama-team__name, #jurado .dama-team__role,
#jurado .dama-team__sede, #jurado .kicker { color: #ffffff !important; }
#jurado .dama-team__photo { background: rgba(255,255,255,0.10); }

/* v3.24.4 · Bases DAMA Cortos: cabecera y separadoras en amarillo #f2f24f */
#bases .kicker, #bases .dama-section__title, #bases .dama-acordeon__intro { color: #f2f24f !important; opacity: 1; }
#bases .dama-desplegable { border-top-color: rgba(242,242,79,0.40) !important; }
#bases .dama-desplegable:last-of-type { border-bottom-color: rgba(242,242,79,0.40) !important; }
#bases .dama-desplegable__sub { color: rgba(242,242,79,0.65) !important; }

/* v3.24.5 · Bases DAMA Cortos: el texto (ahora en vc_column_text) también amarillo */
#bases .dama-desplegable__body,
#bases .dama-desplegable__body :is(p, li, strong, em, span, a),
#bases .dama-desplegable__body .wpb_text_column { color: #f2f24f !important; }

/* v3.25 · Laboratorio · bloque [dama_proyecto] (edición actual, autor/es + obra) */
.lab-proyecto { border-top: 1px solid rgba(0,0,0,0.15); padding-top: clamp(2rem,4vw,3rem); }
.lab-proyecto__autores { display: grid; grid-template-columns: 1fr; gap: 2rem 2.5rem; margin-bottom: 2rem; max-width: 900px; }
.lab-proyecto__autores--2 { grid-template-columns: 1fr 1fr; max-width: 1100px; }
.lab-proyecto__autor { display: grid; grid-template-columns: 130px 1fr; gap: 1.25rem; align-items: start; }
.lab-proyecto__foto { aspect-ratio: 3/4; overflow: hidden; border-radius: 3px; background: rgba(0,0,0,0.06); }
.lab-proyecto__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lab-proyecto__nombre { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 600; display: block; margin-bottom: .5rem; }
.lab-proyecto__bio { font-size: .9rem; line-height: 1.55; opacity: .82; }
.lab-proyecto__bio p { margin: 0 0 .6em; }
.lab-proyecto__bio p:last-child { margin-bottom: 0; }
.lab-proyecto__obra { font-size: clamp(1.6rem,3vw,2.4rem); font-style: italic; margin: 0; line-height: 1.1; }
.lab-proyecto__meta { font-family: var(--font-sans); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; opacity: .6; margin: .6rem 0 1rem; }
.lab-proyecto__sinopsis { max-width: 70ch; line-height: 1.6; }
@media (max-width: 768px){
  .lab-proyecto__autores--2 { grid-template-columns: 1fr; }
  .lab-proyecto__autor { grid-template-columns: 92px 1fr; }
}

/* v3.25.1 · Laboratorio · compactar separaciones y obra en cursiva */
.lab-proyecto-sec { padding-top: clamp(2.2rem,4vw,3.2rem) !important; padding-bottom: clamp(2.2rem,4vw,3.2rem) !important; }
.lab-proyecto { border-top: none; padding-top: 0; }
.lab-proyecto-sec + .lab-proyecto-sec .lab-proyecto { border-top: 1px solid rgba(0,0,0,0.14); padding-top: clamp(2.2rem,4vw,3.2rem); }
/* encabezado editorial pegado a lo que precede (proyectos o rejilla de tutores) */
.dama-section--editorial:has(+ .lab-proyecto-sec) { padding-bottom: .5rem !important; }
.dama-section--editorial:has(+ .dama-team) { padding-bottom: 1rem !important; }
.dama-section--editorial:has(+ .dama-team) + .dama-team { padding-top: 0 !important; }
/* obra en cursiva (como la web anterior) */
.lab-proyecto__obra { font-style: italic !important; }

/* v3.26 · Laboratorio · foto/nombre de participante más grandes + ediciones anteriores */
.lab-proyecto__foto { margin: 0; }               /* fix margen UA del <figure> (salía a 50px) */
.lab-proyecto__autor { grid-template-columns: 190px 1fr; gap: 1.6rem; }
.lab-proyecto__nombre { font-size: clamp(1.6rem,2.5vw,2rem); margin-bottom: .6rem; line-height:1.1; }
@media (max-width: 768px){ .lab-proyecto__autor { grid-template-columns: 130px 1fr; } }

/* Ediciones anteriores: línea GRUESA por año, FINA entre proyectos */
.lab-edicion-sec { padding-top: clamp(2rem,3.5vw,3rem) !important; padding-bottom: 0 !important; }
.lab-edicion__head { border-top: 3px solid #111; padding-top: 1.1rem; margin-bottom: 1.4rem; }
.lab-edicion__titulo { font-size: clamp(1.5rem,2.6vw,2.1rem); margin: 0; }
.lab-edicion__list { list-style: none; margin: 0; padding: 0; }
.lab-edicion__item { padding: 1.6rem 0; }
.lab-edicion__item + .lab-edicion__item { border-top: 1px solid rgba(0,0,0,0.12); }
.lab-edicion__obra { font-size: clamp(1.2rem,1.9vw,1.55rem); font-style: italic; margin: 0 0 .4rem; }
.lab-edicion__meta { font-family: var(--font-sans); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; opacity: .6; margin: 0 0 .7rem; }
.lab-edicion__sinopsis { max-width: 72ch; line-height: 1.6; margin: 0; }

/* v3.27 · Laboratorio · palmarés en verde DAMA + ediciones plegables */
.lab-edicion-sec { background:#D7EAD8 !important; padding-top:0 !important; padding-bottom:0 !important; }
.lab-edicion-sec:last-of-type { padding-bottom:clamp(2rem,4vw,3rem) !important; }
.lab-edicion { border:0; }
.lab-edicion__summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:1rem; border-top:3px solid #448979; padding:1.4rem 0 1.2rem; color:#448979; }
.lab-edicion__summary::-webkit-details-marker { display:none; }
.lab-edicion__summary:hover .lab-edicion__titulo { opacity:.85; }
.lab-edicion__chev { width:11px; height:11px; border-right:2.5px solid #448979; border-bottom:2.5px solid #448979; transform:rotate(-45deg); transition:transform .25s ease; flex:0 0 auto; margin:0 .35rem 3px 0; }
.lab-edicion[open] .lab-edicion__chev { transform:rotate(45deg); }
.lab-edicion__titulo { font-size:clamp(1.5rem,2.6vw,2.1rem); margin:0; color:#448979; transition:opacity .2s; }
.lab-edicion__dossier { margin-left:auto; background:#448979; color:#D7EAD8; text-decoration:none; font-family:var(--font-sans); font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; padding:.55rem .95rem; border-radius:2px; white-space:nowrap; display:inline-flex; gap:.45rem; align-items:center; transition:background .2s; }
.lab-edicion__dossier:hover { background:#345f55; }
.lab-edicion__dl { font-size:1em; }
.lab-edicion__list { list-style:none; margin:0; padding:.4rem 0 1.6rem; }
.lab-edicion__item { padding:1.5rem 0; }
.lab-edicion__item + .lab-edicion__item { border-top:1px solid rgba(68,137,121,.28); }
.lab-edicion__obra { color:#448979; }
.lab-edicion__meta { color:#448979; opacity:.75; }
.lab-edicion__sinopsis { color:#448979; }
@media (max-width:640px){
  .lab-edicion__summary { flex-wrap:wrap; }
  .lab-edicion__dossier { margin-left:0; order:3; width:100%; justify-content:center; }
}

/* v3.28 · Laboratorio · roles (jurado/lectores/tutores) + logo financiación */
.lab-edicion__roles { border-top:1px solid rgba(68,137,121,.28); margin-top:.4rem; padding:1.6rem 0 .4rem; display:grid; gap:1.6rem 3rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.lab-edicion__role-titulo { color:#448979 !important; margin:0 0 .7rem; letter-spacing:.1em; }
.lab-edicion__role-names { list-style:none; margin:0; padding:0; columns:2 130px; column-gap:1.5rem; }
.lab-edicion__role-names li { break-inside:avoid; padding:.18rem 0; font-size:.98rem; color:#448979; }
.lab-edicion__financiacion { padding:1.4rem 0 .6rem; }
.lab-edicion__financiacion img { max-width:340px; height:auto; display:block; }

/* v3.31 · Laboratorio · roles rediseñados (título mayor, nombres en rejilla) */
.lab-edicion__roles { border-top:1px solid rgba(68,137,121,.28); margin-top:.4rem; padding:1.8rem 0 .4rem; display:flex; flex-direction:column; gap:1.8rem; grid-template-columns:none; }
.lab-edicion__role-titulo { color:#448979 !important; font-size:1.12rem !important; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin:0 0 .9rem; padding-bottom:.5rem; border-bottom:1px solid rgba(68,137,121,.22); }
.lab-edicion__role-names { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.4rem 1.8rem; columns:auto; }
.lab-edicion__role-names li { color:#448979; font-size:1rem; padding:.12rem 0; break-inside:auto; }
.lab-edicion__financiacion { border-top:1px solid rgba(68,137,121,.28); margin-top:.4rem; padding:1.6rem 0 .4rem; }
.lab-edicion__financiacion img { max-width:360px; height:auto; display:block; }

/* v3.32 · Laboratorio · logos financiación mayores; tutores IV a 6 col; roles en teal */
.lab-edicion__financiacion { border-top:1px solid rgba(68,137,121,.28); margin-top:.6rem; padding:1.9rem 0 2.9rem; }
.lab-edicion__financiacion img { max-width:500px; width:100%; }
/* Rejilla de tutores de la edición actual: 6 col escritorio, 4 tablet, 3 móvil */
.dama-team--lab .dama-team__grid { --dama-team-cols:6; }
@media (max-width:1100px){ .dama-team--lab .dama-team__grid { --dama-team-cols:4; } }
@media (max-width:640px){  .dama-team--lab .dama-team__grid { --dama-team-cols:3; } }
.dama-team--lab .dama-team__name { font-size:1rem; }
/* Bloques de roles (jurado/lectores/tutores) en teal con texto claro */
.lab-edicion__roles { border-top:none; }
.lab-edicion__role { background:#448979; padding:1.5rem 1.7rem; border-radius:4px; }
.lab-edicion__role-titulo { color:#d7ead8 !important; border-bottom:1px solid rgba(215,234,216,.30) !important; }
.lab-edicion__role-names li { color:#d7ead8 !important; }

/* v3.33 · Laboratorio · tutores IV a 6 col anclado al id de página (durable, sin depender de atributos) */
body.postid-1266 .dama-team__grid { --dama-team-cols:6; }
@media (max-width:1100px){ body.postid-1266 .dama-team__grid { --dama-team-cols:4; } }
@media (max-width:640px){  body.postid-1266 .dama-team__grid { --dama-team-cols:3; } }
body.postid-1266 .dama-team__name { font-size:1rem; }

/* v3.34 · Laboratorio · tutores IV ligeramente menores que participantes (≤190px) */
body.postid-1266 .dama-team__grid { max-width:1270px; }

/* v3.35 · Laboratorio · nombres de roles en 2 columnas fijas (orden limpio) */
.lab-edicion__role-names { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:.5rem 2.5rem; columns:auto; max-width:640px; }
@media (max-width:560px){ .lab-edicion__role-names { grid-template-columns:1fr !important; } }

/* v3.36 · DAMA Ayuda · histórico por especialidad (desplegable elegante) */
.ay-hist-sec { padding-top:0 !important; padding-bottom:0 !important; }
.ay-hist-sec:last-of-type { padding-bottom:clamp(2rem,4vw,3rem) !important; }
.ay-hist { border:0; }
.ay-hist__summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:.95rem; border-top:2px solid rgba(0,0,0,.16); padding:1.5rem 0 1.3rem; }
.ay-hist__summary::-webkit-details-marker { display:none; }
.ay-hist__chev { width:11px; height:11px; border-right:2.5px solid #161616; border-bottom:2.5px solid #161616; transform:rotate(-45deg); transition:transform .25s ease; flex:0 0 auto; margin-bottom:3px; }
.ay-hist[open] .ay-hist__chev { transform:rotate(45deg); }
.ay-hist__chip { width:15px; height:15px; border-radius:50%; background:var(--c,#448979); flex:0 0 auto; box-shadow:0 0 0 1px rgba(0,0,0,.18); }
.ay-hist__titulo { font-size:clamp(1.5rem,2.6vw,2.1rem); margin:0; }
.ay-hist__body { padding:.6rem 0 2rem; display:flex; flex-direction:column; gap:1.7rem; }
.ay-hist__anio-tit { margin:0 0 .8rem; letter-spacing:.12em; color:#161616; opacity:.65; }
.ay-hist__list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:.4rem 2.5rem; }
.ay-hist__item { padding:.2rem 0; line-height:1.45; }
.ay-hist__obra { font-weight:700; }
.ay-hist__autor { opacity:.72; }
.ay-hist__autor::before { content:" · "; opacity:.5; }
@media (max-width:600px){ .ay-hist__list { grid-template-columns:1fr; } }

/* v3.37 · DAMA Ayuda · histórico en 4 columnas de años (cada año una columna) */
.ay-hist__body { display:grid !important; grid-template-columns:repeat(4,1fr); gap:2rem 2.6rem; align-items:start; }
.ay-hist__anio { break-inside:avoid; }
.ay-hist__list { grid-template-columns:1fr !important; gap:.3rem !important; }
@media (max-width:1000px){ .ay-hist__body { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){  .ay-hist__body { grid-template-columns:1fr; } }

/* v3.38 · DAMA Ayuda · edición actual · tarjetas de color por especialidad */
.ay-grupo__titulo { display:flex; align-items:center; gap:.8rem; font-size:clamp(1.7rem,3vw,2.4rem); margin:0 0 1.6rem; }
.ay-grupo__chip { width:16px; height:16px; border-radius:50%; background:var(--c,#8d60eb); box-shadow:0 0 0 1px rgba(0,0,0,.18); flex:0 0 auto; }
.ay-proj-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; align-items:stretch; }
@media (max-width:820px){ .ay-proj-grid { grid-template-columns:1fr; } }
.ay-proj { border-radius:7px; padding:2rem 2rem 2.2rem; display:flex; flex-direction:column; gap:1.1rem; height:100%; }
.ay-proj--violeta { background:#8d60eb; color:#fff; }
.ay-proj--negro   { background:#161616; color:#fff; }
.ay-proj--blanco  { background:#fff; color:#161616; border:1px solid rgba(0,0,0,.14); }
.ay-proj__fotos { display:flex; gap:.8rem; }
.ay-proj__foto { width:112px; aspect-ratio:3/4; overflow:hidden; border-radius:4px; margin:0; flex:0 0 auto; background:rgba(127,127,127,.18); }
.ay-proj__foto img { width:100%; height:100%; object-fit:cover; display:block; }
.ay-proj__tipo { font-family:var(--font-sans); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; opacity:.72; display:block; }
.ay-proj__obra { font-size:clamp(1.5rem,2.3vw,2rem); margin:.2rem 0 .5rem; line-height:1.05; }
.ay-proj__tutor { font-family:var(--font-sans); font-size:.8rem; letter-spacing:.03em; opacity:.82; margin:0 0 .3rem; }
.ay-proj__sinopsis { line-height:1.55; font-size:.97rem; }
.ay-proj__sinopsis p { margin:0 0 .7em; } .ay-proj__sinopsis p:last-child { margin-bottom:0; }
.ay-proj__autores { margin-top:.5rem; display:flex; flex-direction:column; gap:1rem; border-top:1px solid rgba(255,255,255,.24); padding-top:1.1rem; }
.ay-proj--blanco .ay-proj__autores { border-top-color:rgba(0,0,0,.14); }
.ay-proj__nombre { font-family:var(--font-serif); font-weight:600; font-size:1.05rem; display:block; margin-bottom:.3rem; }
.ay-proj__bio { font-size:.84rem; line-height:1.5; opacity:.86; }
.ay-proj__bio p { margin:0 0 .5em; } .ay-proj__bio p:last-child { margin-bottom:0; }

/* v3.38.1 · DAMA Ayuda · ocultar <p> vacíos que wpautop mete en la rejilla */
.ay-proj-grid > p { display:none !important; }

/* v3.39 · DAMA Ayuda · rejilla de jurados 5 col (durable por id de página) */
body.postid-1261 .dama-team__grid { --dama-team-cols:5; }
@media (max-width:1000px){ body.postid-1261 .dama-team__grid { --dama-team-cols:3; } }
@media (max-width:560px){  body.postid-1261 .dama-team__grid { --dama-team-cols:2; } }

/* v3.39.1 · DAMA Ayuda · obra y nombre heredan el color de la tarjeta (no el negro global de headings) */
.ay-proj__obra, .ay-proj__nombre { color:inherit !important; }

/* v3.40 · DAMA Ayuda · foto participante mayor, jurado menor; texto gris en tarjeta negra */
.ay-proj__foto { width:160px; }
body.postid-1261 .dama-team__grid { max-width:900px; }         /* jurado ~154px (< participante 160) */
.ay-proj--negro .ay-proj__sinopsis, .ay-proj--negro .ay-proj__bio { color:rgba(255,255,255,.66) !important; }

/* v3.40.1 · DAMA Ayuda · los <p> internos heredan el color de la tarjeta (regla global los ponía en negro) */
.ay-proj__sinopsis p, .ay-proj__bio p { color:inherit !important; }
.ay-proj--violeta .ay-proj__tutor { color:#fff !important; }
.ay-proj--negro .ay-proj__tutor { color:rgba(255,255,255,.72) !important; }

/* v3.42 · Footer · sedes junto al bloque FOCO */
.footer-sedes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.8rem 2.5rem; margin-top:2.6rem; }
.footer-sedes__item p { margin:0 0 .35rem; line-height:1.55; }
.footer-sedes__cp { opacity:.75; }
.footer-sedes a { text-decoration:none; }
.footer-sedes a:hover { text-decoration:underline; }
.footer-foco--module { margin-top:2.6rem; }
@media (max-width:640px){ .footer-sedes { grid-template-columns:1fr; } }

/* v3.43 · Footer · direcciones alineadas a la rejilla de menús + línea separadora */
.footer-sedes {
  grid-template-columns: repeat(3, minmax(0,1fr)); /* misma rejilla que .footer-nav-grid */
  column-gap: 40px;
  border-top: 1px solid var(--hairline, rgba(10,10,10,.12));
  margin-top: 3rem;
  padding-top: 2.2rem;
}
.footer-foco--module { margin-top: 4rem; }
@media (max-width:900px){ .footer-sedes { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){ .footer-sedes { grid-template-columns: 1fr; } }

/* v3.43.1 · El FOCO se ancla al fondo de su columna, para que su BASE coincida
   con la base del bloque de direcciones. Se iguala la especificidad de
   .site-footer--unified, que forzaba margin-top:0. */
.site-footer.site-footer--unified .footer-grid { align-items: stretch; }
.footer-col--intro, .footer-col--nav { display: flex; flex-direction: column; }
.site-footer.site-footer--unified .footer-foco--module { margin-top: auto; }
@media (max-width: 900px){
  .site-footer.site-footer--unified .footer-foco--module { margin-top: 2.5rem; }
}

/* ==========================================================================
   v3.45.0 · RECREAS — artículos, formulario embebido, repertorio, TOC off
   ========================================================================== */
:root { --rec-violeta:#9b6f93; --rec-beige:#d5cfc6; }

/* --- TOC: item no clicable ------------------------------------------------ */
.dama-toc__item--off { opacity:.45; }
.dama-toc__link--off { cursor:default; pointer-events:none; display:flex; align-items:baseline; gap:.5rem; }
.dama-toc__nota { font-size:.72em; letter-spacing:.06em; text-transform:uppercase; opacity:.8; }

/* --- Artículos (La sala del guion) --------------------------------------- */
.rec-arts { --rec-fg:#0a0a0a; --rec-accent:var(--rec-violeta); color:var(--rec-fg); padding-block:clamp(3rem,6vw,5.5rem); }
.rec-arts__head { margin-bottom:2.6rem; }
.rec-arts__kicker, .rec-arts__title { color:var(--rec-fg); }
.rec-arts__title { font-size:clamp(2rem,4vw,3.2rem); line-height:1.05; margin:.3rem 0 0; }
.rec-arts__grupo + .rec-arts__grupo { margin-top:3.4rem; }
.rec-arts__seccion {
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  color:var(--rec-accent); margin:0 0 1.4rem;
  border-top:2px solid currentColor; padding-top:.9rem;
}
.rec-arts__grid { display:grid; grid-template-columns:repeat(var(--rec-cols,3), minmax(0,1fr)); gap:2.2rem 2rem; }
.rec-art { display:flex; flex-direction:column; gap:.55rem; }
.rec-art__media { margin:0 0 .4rem; aspect-ratio:3/2; overflow:hidden; background:rgba(0,0,0,.06); }
.rec-art__media img { width:100%; height:100%; object-fit:cover; display:block; }
.rec-art__titulo { font-size:clamp(1.25rem,1.8vw,1.6rem); line-height:1.12; margin:0; color:inherit; }
.rec-art__sumario { font-size:.95rem; line-height:1.45; margin:0; color:inherit; opacity:.8; }
.rec-art__autor { font-size:.85rem; letter-spacing:.02em; margin:0; color:inherit; opacity:.65; }
.rec-art__cta {
  margin-top:auto; padding-top:.7rem; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  font-weight:600; color:var(--rec-accent); text-decoration:none; border-bottom:1px solid currentColor;
  align-self:flex-start;
}
.rec-art__cta:hover { opacity:.7; }
.rec-art__cta--off { color:inherit; opacity:.4; border-bottom-style:dotted; cursor:default; }
@media (max-width:1024px){ .rec-arts__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:680px){ .rec-arts__grid { grid-template-columns:1fr; } }

/* --- Formulario embebido -------------------------------------------------- */
.rec-form { padding-block:clamp(3rem,6vw,5rem); }
.rec-form__title { font-size:clamp(1.7rem,3vw,2.6rem); line-height:1.08; margin:.3rem 0 1.6rem; color:inherit; }
.rec-form__wrap { background:transparent; border:0; }  /* v3.61 · sin marco/borde blanco alrededor del iframe */
.rec-form__iframe { display:block; width:100%; border:0; }

/* --- Repertorio ----------------------------------------------------------- */
.rec-rep { padding-block:clamp(3.5rem,7vw,6rem); text-align:center; }
.rec-rep__title { font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.05; margin:.4rem 0 1rem; color:inherit; }
.rec-rep__texto { max-width:62ch; margin:0 auto; opacity:.85; }
.rec-rep__texto p { color:inherit !important; }
.rec-rep__badge {
  display:inline-block; margin-top:1.8rem; padding:.5rem 1.1rem;
  border:1px solid currentColor; border-radius:999px;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; opacity:.7;
}

/* ============================================================
   v3.46.0 · RECREAS — índice horizontal grande (juego de rosas)
   Anclado a #recreas-indice (el_id del vc_row del TOC).
   ============================================================ */
#recreas-indice { position:sticky; top:var(--header-h,80px); z-index:20; }
#recreas-indice .dama-section--toc,
#recreas-indice.dama-section--toc {
    background:linear-gradient(100deg,#8a6383 0%,#9b6f93 36%,#b07fa4 72%,#cf94b6 100%) !important;
    padding-top:0; padding-bottom:0;
}
#recreas-indice .dama-section__inner { background:transparent; max-width:none; padding-left:0; padding-right:0; }
#recreas-indice .dama-toc__kicker { display:none; }
#recreas-indice .dama-toc__list {
    display:flex !important; flex-direction:row !important; flex-wrap:wrap;
    gap:0; margin:0; padding:0; list-style:none;
}
#recreas-indice .dama-toc__item {
    flex:1 1 0; min-width:180px; margin:0; padding:0;
    border-right:1px solid rgba(255,255,255,.18);
}
#recreas-indice .dama-toc__item:last-child { border-right:0; }
#recreas-indice .dama-toc__link,
#recreas-indice .dama-toc__link--off {
    display:flex; align-items:baseline; gap:.6rem; padding:28px 30px;
    color:#f4e6ef; text-decoration:none; white-space:nowrap; position:relative;
    transition:background .22s ease,color .22s ease;
}
#recreas-indice .dama-toc__num {
    font-size:.82rem; font-weight:600; letter-spacing:.1em;
    color:#f3c6e0 !important; opacity:1; min-width:auto;
}
#recreas-indice .dama-toc__label {
    font-family:var(--font-serif,Georgia,'Times New Roman',serif);
    font-size:clamp(1.2rem,1.5vw,1.7rem); line-height:1.05; font-weight:500;
}
#recreas-indice .dama-toc__link::after {
    content:""; position:absolute; left:30px; right:30px; bottom:20px; height:2px;
    background:#f3c6e0; transform:scaleX(0); transform-origin:left; transition:transform .26s ease;
}
#recreas-indice .dama-toc__link:hover { background:rgba(255,255,255,.10); color:#fff; }
#recreas-indice .dama-toc__link:hover::after,
#recreas-indice .dama-toc__link.is-active::after { transform:scaleX(1); }
#recreas-indice .dama-toc__link.is-active { color:#fff; }
#recreas-indice .dama-toc__link.is-active::before { display:none; }
#recreas-indice .dama-toc__link.is-active .dama-toc__num { color:#fff; }
/* Repertorio (item no clicable) */
#recreas-indice .dama-toc__item--off { opacity:.8; }
#recreas-indice .dama-toc__link--off { pointer-events:none; }
#recreas-indice .dama-toc__nota {
    font-size:.6rem; letter-spacing:.12em; text-transform:uppercase;
    background:rgba(255,255,255,.18); color:#fff; padding:.2em .6em; border-radius:999px;
    align-self:center;
}
@media (max-width:820px){
    #recreas-indice .dama-toc__list { flex-direction:row; flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    #recreas-indice .dama-toc__item { flex:0 0 auto; min-width:auto; }
    #recreas-indice .dama-toc__link,
    #recreas-indice .dama-toc__link--off { padding:16px 20px; }
    #recreas-indice .dama-toc__label { font-size:1.12rem; }
    #recreas-indice .dama-toc__link::after { display:none; }
}

/* ==========================================================================
   v3.55.0 · Compatibilidad con la barra de administración de WordPress
   El header (position:sticky; top:0) no compensaba el #wpadminbar (32/46px fijo
   arriba), dejando un hueco blanco entre el menú y el contenido SOLO para
   usuarios logueados. Los visitantes (sin body.admin-bar) no se ven afectados.
   ========================================================================== */
@media screen and (min-width: 783px) {
    body.admin-bar .site-header,
    body.admin-bar .site-header--sticky { top: 32px; }
}
@media screen and (max-width: 782px) {
    body.admin-bar .site-header,
    body.admin-bar .site-header--sticky { top: 46px; }
}

/* ==========================================================================
   v3.56.0 · Recreas · fotos del "quién es quién" más pequeñas y centradas
   ========================================================================== */
.dama-team--recreas .dama-team__photo { max-width: 150px; margin-left: 0; margin-right: 0; }
.dama-team--recreas .dama-team__meta { text-align: left; margin-top: .4rem; }
/* v3.56.2 · alineado a la izquierda, gap ajustado y menos aire entre grupos (menos scroll) */
.dama-team--recreas .dama-team__grid { gap: 1rem .9rem; }
.dama-team--recreas .dama-team__name { font-size: 1rem; line-height: 1.15; }
.dama-team--recreas .dama-team__role { font-size: .7rem; margin-top: .1rem; }
.dama-team--recreas { padding-top: .5rem; padding-bottom: .5rem; }
.dama-team--recreas .dama-team__title { margin-bottom: .7rem; }
@media (max-width: 680px) {
    .dama-team--recreas .dama-team__photo { max-width: 130px; }
}

/* ==========================================================================
   v3.56.4 · dama_split — el "Color del cuerpo" debe ganar SIEMPRE:
   sobre el skin automático (dact-dark/-light) y sobre colores incrustados
   en el texto (inline). Solo actúa si el color está definido (si no, la var
   no existe y la declaración se descarta, manteniendo el comportamiento normal).
   ========================================================================== */
.dact-split .dact-split__text .dact-prose,
.dact-split .dact-split__text .dact-prose p,
.dact-split .dact-split__text .dact-prose li,
.dact-split .dact-split__text .dact-prose span { color: var(--dact-split-body) !important; }

/* ==========================================================================
   v3.56.5 · Recreas · orden visual — banda beige en los testimonios (estilo Socios)
   ========================================================================== */
body.postid-100605 .dama-section--testimonios { background: #d5cfc6; }
body.postid-100605 .dama-section--testimonios .dama-testimonio__cita { color: #2a2230; }
body.postid-100605 .dama-section--testimonios .dama-testimonio__autor { color: #9b6f93; }

/* ==========================================================================
   v3.56.6 · Recreas · alinear los desplegables (Manifiesto / Metodología) al
   mismo ancho que el resto del contenido (iban de borde a borde).
   ========================================================================== */
body.postid-100605 .dama-desplegable {
    max-width: var(--max-w, 1440px);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter, 2rem);
    padding-right: var(--gutter, 2rem);
    box-sizing: border-box;
}

/* ==========================================================================
   v3.56.7 · La Sala del Guion — artículos en CAJAS (bloquecitos, mejor legibilidad)
   ========================================================================== */
.rec-arts__grid { gap: 1.5rem; }
.rec-art {
    background: #ffffff;
    border: 1px solid var(--hairline, rgba(10,10,10,.12));
    border-radius: 8px;
    padding: 1.7rem 1.6rem 1.5rem;
    min-height: 230px;
    box-shadow: 0 1px 3px rgba(10,10,10,.05);
    transition: box-shadow .22s ease, transform .22s ease;
}
.rec-art:hover { box-shadow: 0 8px 22px rgba(10,10,10,.10); transform: translateY(-2px); }
.rec-art__titulo { margin-top: .15rem; }
.rec-art__cta { margin-top: auto; padding-top: 1.1rem; }
.rec-arts__grupo + .rec-arts__grupo { margin-top: 2.6rem; }

/* ==========================================================================
   v3.56.8 · La Sala del Guion — cajas moradas (texto blanco) sobre fondo beige
   ========================================================================== */
.rec-arts__seccion { color: #6f4f68 !important; border-top-color: #9b6f93 !important; }
.rec-arts__kicker, .rec-arts__title { color: #2a2230 !important; }
.rec-art {
    background: #9b6f93;
    border-color: transparent;
    color: #ffffff;
}
.rec-art .rec-art__titulo, .rec-art .rec-art__sumario, .rec-art .rec-art__autor,
.rec-art .rec-art__sumario p, .rec-art .rec-art__autor p { color: #ffffff !important; }
.rec-art .rec-art__sumario, .rec-art .rec-art__autor { opacity: .88; }
.rec-art .rec-art__cta { color: #ffffff !important; border-bottom-color: rgba(255,255,255,.7); }
.rec-art .rec-art__cta--off { color: rgba(255,255,255,.7) !important; }
.rec-art:hover { box-shadow: 0 10px 26px rgba(111,79,104,.35); }

/* ==========================================================================
   v3.57.0 · Popup de artículos (La Sala del Guion) — fondo blanco, texto morado
   ========================================================================== */
.rec-art__cta--modal { background: none; border: none; cursor: pointer; font: inherit; padding: 0; text-align: left; }
.rec-modal { max-width: 780px; width: calc(100% - 2.5rem); border: none; border-radius: 10px; padding: 0; background: #ffffff; color: #6f4f68; box-shadow: 0 24px 70px rgba(42,34,48,.35); }
.rec-modal::backdrop { background: rgba(42,34,48,.55); backdrop-filter: blur(2px); }
.rec-modal__inner { padding: clamp(1.8rem, 4vw, 3rem); position: relative; }
.rec-modal__close { position: absolute; top: .8rem; right: 1rem; background: none; border: none; font-size: 2rem; line-height: 1; color: #9b6f93; cursor: pointer; }
.rec-modal__close:hover { color: #6f4f68; }
.rec-modal__autor { color: #9b6f93; font-size: .9rem; margin: 0 0 .35rem; letter-spacing: .02em; }
.rec-modal__titulo { color: #6f4f68; font-size: clamp(1.5rem, 3vw, 2.15rem); line-height: 1.12; margin: 0 0 1.4rem; }
.rec-modal__body { color: #463a50; font-size: 1.02rem; line-height: 1.72; }
.rec-modal__body p { margin: 0 0 1.1rem; color: #463a50; }
.rec-modal__body p:last-child { margin-bottom: 0; }

/* ============================================================
   RECREAS · Pasos numerados (Metodología) — v3.58
   Números grandes en serif, estilo fichas de premios
   ============================================================ */
.rec-pasos { padding: clamp(2.5rem,6vw,4.5rem) var(--gutter, 2rem); }
.rec-pasos__head { max-width: 720px; margin: 0 0 clamp(1.6rem,3vw,2.6rem); }
.rec-pasos__kicker {
	display: inline-block; font-size: .72rem; letter-spacing: .2em;
	text-transform: uppercase; font-weight: 600; opacity: .7; margin-bottom: .6rem;
}
.rec-pasos__title { font-size: clamp(1.7rem,3.4vw,2.5rem); line-height: 1.08; margin: 0 0 .5rem; }
.rec-pasos__intro { font-size: 1.05rem; line-height: 1.6; opacity: .9; margin: 0; }
.rec-pasos__grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(1rem,2.4vw,2rem);
	counter-reset: none;
}
.rec-paso {
	position: relative;
	padding: 1.6rem 1.5rem 1.7rem;
	border-radius: 12px;
	background: rgba(255,255,255,.6);
	border: 1px solid rgba(155,111,147,.22);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.rec-paso:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 34px -20px rgba(112,79,104,.5);
	border-color: rgba(155,111,147,.5);
}
.rec-paso__num {
	display: block;
	font-family: var(--font-serif, Fraunces, Georgia, serif);
	font-size: clamp(3rem, 6vw, 4.6rem);
	line-height: .85; font-weight: 400;
	color: #9b6f93; opacity: .9;
	margin: 0 0 .6rem; letter-spacing: -.02em;
	font-feature-settings: "lnum" 1, "tnum" 1;
}
.rec-paso__titulo {
	font-size: 1.16rem; line-height: 1.18; font-weight: 600;
	margin: 0 0 .5rem; color: #463a50; letter-spacing: -.01em;
}
.rec-paso__texto {
	font-size: .93rem; line-height: 1.55; margin: 0;
	color: rgba(70,58,80,.85);
}
/* Sobre fondo violeta (si la sección va en color de marca) */
.rec-pasos[style*="background"] .rec-pasos__title,
.rec-pasos[style*="background"] .rec-pasos__intro,
.rec-pasos[style*="background"] .rec-pasos__kicker { color: #fff; }
.rec-pasos[style*="background"] .rec-paso { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.25); }
.rec-pasos[style*="background"] .rec-paso__num { color: #fff; opacity: .85; }
.rec-pasos[style*="background"] .rec-paso__titulo { color: #fff; }
.rec-pasos[style*="background"] .rec-paso__texto { color: rgba(255,255,255,.85); }

/* ============================================================
   RECREAS · Manifiesto — mejor jerarquía (reivindicaciones) v3.58
   ============================================================ */
.rec-manifiesto__reivs {
	list-style: none; margin: 1.4rem 0 0; padding: 0;
	display: grid; gap: .8rem;
}
.rec-manifiesto__reivs > li {
	position: relative;
	padding: 1rem 1.2rem 1rem 1.2rem;
	border-left: 3px solid #9b6f93;
	background: rgba(155,111,147,.07);
	border-radius: 0 10px 10px 0;
	font-size: .97rem; line-height: 1.55;
}
.rec-manifiesto__reivs > li strong { color: #6f4f68; }

/* ============================================================
   v3.59 · RECREAS · Contraste del hero + desplazamiento del índice
   ============================================================ */
/* (12) Texto del hero legible sobre el malva #9b6f93.
   El texto funcional (entradilla y fechas) pasa a blanco; el titular
   a un beige más claro que sube el contraste manteniendo el tono cálido. */
body.postid-100605 .dact-hero__title { color:#f4efe9 !important; }
body.postid-100605 .dact-hero__lead,
body.postid-100605 .dact-hero__meta-label,
body.postid-100605 .dact-hero__meta-valor { color:#ffffff !important; }
body.postid-100605 .dact-hero__meta-label { opacity:1; }

/* (9) Al saltar desde el índice, que el título no quede oculto bajo el
   header fijo + el índice sticky. */
body.postid-100605 [id="red"],
body.postid-100605 [id="manifiesto"],
body.postid-100605 [id="sala"],
body.postid-100605 [id="convocatoria"],
body.postid-100605 [id="repertorio"] { scroll-margin-top: calc(var(--header-h,80px) + 104px); }

/* (9) Estado activo del índice un poco más claro. */
#recreas-indice .dama-toc__link.is-active { background:rgba(255,255,255,.10); }

/* (10) Móvil: scroll horizontal con anclaje suave. */
@media (max-width:820px){
	#recreas-indice .dama-toc__list { scroll-snap-type:x proximity; scroll-padding-left:20px; }
	#recreas-indice .dama-toc__item { scroll-snap-align:start; }
}

/* ============================================================
   v3.60 · dama_embed_form · el kicker y el título siguen el
   "Color del texto" (color_texto) de la sección, en vez de su
   color oscuro por defecto. Así "INSCRIPCIÓN / Presenta tu
   proyecto" salen blancos sobre el fondo de color.
   ============================================================ */
.rec-form .rec-form__kicker { color: inherit; opacity: .85; }
.rec-form .rec-form__title  { color: inherit; }

/* ============================================================
   v3.62 · RECREAS · "La red + Súmate" (dama_red_quien)
   Rejilla propia (no depende de columnas WPBakery): texto a la
   izquierda + tarjeta de suscripción violeta sticky a la derecha.
   ============================================================ */
.rec-redq { padding: clamp(2.6rem,6vw,4.5rem) var(--gutter, 2rem); }
.rec-redq__grid {
	display:grid;
	grid-template-columns: minmax(0,1fr) minmax(300px,360px);
	gap: clamp(2rem,4vw,3.5rem);
	align-items:start;
}
.rec-redq--solo .rec-redq__grid { grid-template-columns: 1fr; }
.rec-redq__kicker { display:inline-block; color:#9b6f93; margin-bottom:.6rem; }
.rec-redq__title { font-size:clamp(1.9rem,3.6vw,2.8rem); line-height:1.05; margin:0 0 1.2rem; }
.rec-redq__body { font-size:1.02rem; line-height:1.62; color:rgba(40,32,48,.9); }
.rec-redq__body p { margin:0 0 1em; }
.rec-redq__body p:last-child { margin-bottom:0; }

.rec-suscribe {
	position:sticky; top: calc(var(--header-h,80px) + 24px);
	background: var(--rq-card-bg,#9b6f93); color:#fff;
	padding: clamp(1.6rem,2.4vw,2.2rem);
	border-radius:16px;
	box-shadow: 0 20px 40px -26px rgba(112,79,104,.6);
}
.rec-suscribe__kicker { display:inline-block; color:#f0d9e8; margin-bottom:.5rem; }
.rec-suscribe__title { color:#fff; font-size:clamp(1.5rem,2vw,1.9rem); line-height:1.1; margin:0 0 .7rem; }
.rec-suscribe__text { color:rgba(255,255,255,.9); font-size:.95rem; line-height:1.55; margin:0 0 1.4rem; }
.rec-suscribe__btn {
	display:inline-block; background:#161616; color:#fff;
	padding:.85rem 1.5rem; border-radius:999px; text-decoration:none;
	font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
	transition:background .2s ease, transform .2s ease;
}
.rec-suscribe__btn:hover { background:#000; color:#fff; transform:translateY(-2px); }
@media (max-width:860px){
	.rec-redq__grid { grid-template-columns:1fr; }
	.rec-suscribe { position:static; margin-top:.5rem; }
}

/* ============================================================
   v3.65 · Dos arreglos visuales (Cambios web2)
   ============================================================ */
/* (Actividades) Todas las tarjetas de la página de actividades a 4:3,
   para que los thumbs (16:9 destacadas antes) no recorten. El usuario
   sube las creatividades a 4:3 (1600×1200). Acotado a la página. */
body.post-type-archive-dama_actividad .dc-card__media,
body.post-type-archive-dama_actividad .act-card__media { aspect-ratio: 4 / 3; }

/* (Quiénes Somos · Consejo) El shortcode [dama_consejo] envuelve en
   .equipo-group--shortcode > .dama-section__inner, que NO tenía el
   gutter → en móvil las fichas y el texto se pegaban al borde.
   Le damos el mismo margen lateral que .dama-section (no cambia el
   desktop: el inner sigue centrado a 1440). page-equipo NO se toca. */
.equipo-group--shortcode { padding-left: var(--gutter); padding-right: var(--gutter); }

/* ============================================================
   v3.66 · Boletín DAMA — franja antefooter + popup de suscripción
   ============================================================ */
.dama-boletin { background: var(--db-bg, #ece7df); }
.dama-boletin__inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem 2.5rem; flex-wrap:wrap; }
.dama-boletin__text { max-width:60ch; }
.dama-boletin__kicker { display:inline-block; margin-bottom:.5rem; color:rgba(10,10,10,.55); }
.dama-boletin__title { font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.1; margin:0 0 .5rem; }
.dama-boletin__desc { margin:0; color:rgba(10,10,10,.75); font-size:1rem; line-height:1.55; max-width:52ch; }
.dama-boletin__btn {
	flex:0 0 auto; display:inline-block; background:#0a0a0a; color:#fff; border:0; cursor:pointer;
	padding:1rem 2rem; border-radius:999px; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
	transition:background .2s ease, transform .2s ease;
}
.dama-boletin__btn:hover { background:#000; transform:translateY(-2px); color:#fff; }
@media (max-width:720px){
	.dama-boletin__inner { flex-direction:column; align-items:flex-start; }
	.dama-boletin__btn { width:100%; text-align:center; }
}

/* Modal */
.dama-boletin-modal {
	border:0; padding:0; border-radius:16px; max-width:480px; width:calc(100% - 2rem);
	background:#fff; color:#0a0a0a; box-shadow:0 30px 80px -20px rgba(0,0,0,.5);
}
.dama-boletin-modal::backdrop { background:rgba(10,8,12,.55); }
.dama-boletin-modal__inner { position:relative; padding:clamp(1.8rem,3vw,2.6rem); }
.dama-boletin-modal__close { position:absolute; top:.9rem; right:1.1rem; background:none; border:0; font-size:1.9rem; line-height:1; cursor:pointer; color:rgba(10,10,10,.45); }
.dama-boletin-modal__close:hover { color:#0a0a0a; }
.dama-boletin-modal__kicker { display:inline-block; color:rgba(10,10,10,.55); }
.dama-boletin-modal__title { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.12; margin:.4rem 0 1.3rem; outline:none; }
.dama-boletin-form__grid { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.dama-boletin-form__field { display:block; margin:0 0 .9rem; font-size:.78rem; letter-spacing:.02em; color:rgba(10,10,10,.7); }
.dama-boletin-form__grid .dama-boletin-form__field { margin-bottom:0; }
.dama-boletin-form__field > span { display:block; margin-bottom:.35rem; }
.dama-boletin-form__field input {
	width:100%; box-sizing:border-box; padding:.8rem .9rem; border:1px solid rgba(10,10,10,.25);
	border-radius:8px; font-size:1rem; font-family:inherit; color:#0a0a0a; background:#fff;
}
.dama-boletin-form__field input:focus { outline:none; border-color:#0a0a0a; box-shadow:0 0 0 3px rgba(10,10,10,.08); }
.dama-boletin-form__grid + .dama-boletin-form__field { margin-top:.9rem; }
.dama-boletin-form__consent { display:flex; gap:.6rem; align-items:flex-start; margin:.2rem 0 1.2rem; font-size:.85rem; line-height:1.45; color:rgba(10,10,10,.78); }
.dama-boletin-form__consent input { margin-top:.2rem; flex:0 0 auto; width:1.05rem; height:1.05rem; accent-color:#0a0a0a; }
.dama-boletin-form__consent a { color:#0a0a0a; text-decoration:underline; }
.dama-boletin-form__submit {
	width:100%; background:#0a0a0a; color:#fff; border:0; cursor:pointer; padding:1rem; border-radius:999px;
	font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; transition:background .2s ease;
}
.dama-boletin-form__submit:hover { background:#000; }
.dama-boletin-form__submit:disabled { opacity:.55; cursor:default; }
.dama-boletin-form__msg { margin:.9rem 0 0; font-size:.9rem; line-height:1.4; min-height:1.2em; }
.dama-boletin-form__msg.is-ok { color:#1a7f4b; }
.dama-boletin-form__msg.is-error { color:#b3261e; }

/* v3.67 · Boletín · selector de actividades + nota legal */
.dama-boletin-form__acts { border:1px solid rgba(10,10,10,.14); border-radius:10px; padding:.85rem 1rem 1rem; margin:.2rem 0 1rem; }
.dama-boletin-form__acts legend { padding:0 .4rem; font-size:.82rem; color:rgba(10,10,10,.7); }
.dama-boletin-form__act { display:inline-flex; align-items:center; gap:.45rem; margin-right:1.4rem; font-size:.95rem; color:#0a0a0a; cursor:pointer; }
.dama-boletin-form__act input { width:1.05rem; height:1.05rem; accent-color:#0a0a0a; }
.dama-boletin-form__note { margin:.4rem 0 1.1rem; font-size:.72rem; line-height:1.45; color:rgba(10,10,10,.55); }
.dama-boletin-form__note a { color:rgba(10,10,10,.7); text-decoration:underline; }

/* v3.73 · Magazine home: solo la fecha en el meta (ocultar categoría y separador) */
body.home .news-card__meta > span:not(:first-child),
body.home .news-card__meta .dot { display: none; }
/* v3.73 · Magazine (news-filter): mostrar el excerpt en las tarjetas */
.dama-newsfilter .news-card__excerpt { margin: 0.35rem 0 0.65rem; }

/* v3.74 · Archivo de convocatorias: 3 columnas en ordenador (móvil ≤1024 sigue en 1) */
@media (min-width: 1025px) {
  .dama-newsfilter--conv .grid-convocatorias { grid-template-columns: repeat(3, 1fr); }
}

/* v3.75 · Flechas de navegación en los testimonios (accesibilidad) */
.dama-testimonios-wrap { position: relative; }
.dama-testimonios__nav {
  position: absolute;
  bottom: -10px;
  z-index: 4;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  border: 1.5px solid currentColor;
  background: rgba(0,0,0,0.2);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  color: var(--dama-test-text, inherit);
  cursor: pointer;
  opacity: 0.9;
  -webkit-appearance: none;
  appearance: none;
  transition: opacity 0.2s, background 0.2s;
}
.dama-testimonios__nav:hover { opacity: 1; }
.dama-testimonios__nav:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.dama-testimonios__nav[disabled] { opacity: 0.3; cursor: default; }
.dama-testimonios__nav svg { display: block; }
.dama-testimonios__nav--prev { left: 0; }
.dama-testimonios__nav--next { right: var(--gutter, 2rem); }
@media (max-width: 600px) {
  .dama-testimonios__nav { width: 40px; height: 40px; }
  .dama-testimonios__nav--next { right: 0.5rem; }
}

/* v3.76 · Sesiones: la obra (siempre la primera línea del contenido) en negrita automática */
.dama-sprox__texto > p:first-child,
.dama-sp__desc > p:first-child { font-weight: 700; }

/* v3.78 — RECREAS: enlace de respaldo bajo el iframe (bloqueo Local Network Access de Chrome) */
.rec-form__fallback{margin:.9rem 0 0;font-size:.9rem;text-align:center;color:inherit;opacity:.8}
.rec-form__fallback a{text-decoration:underline;font-weight:600;color:inherit}

/* v3.81 — Tabla "Reparto internacional" (Transparencia > Repertorio) */
.ri-block{margin:1.6rem 0;padding-bottom:2.75rem}
.ri-block .ri-title{font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin:1.4rem 0 .8rem}
.ri-block .ri-table-wrap{overflow-x:auto;border:1px solid #ececec;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.ri-block table.dama-repertorio-intl{width:100%;border-collapse:collapse;font-size:15px;min-width:520px;margin:0;border:0}
.dama-index-accordion__answer-inner .ri-block table.dama-repertorio-intl thead th,
.ri-block table.dama-repertorio-intl thead th{background:#1d1d1b;color:#fff;text-align:left;padding:12px 18px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12.5px;border:0}
.dama-index-accordion__answer-inner .ri-block table.dama-repertorio-intl tbody td,
.ri-block table.dama-repertorio-intl tbody td{padding:11px 18px;border:0;border-bottom:1px solid #eee;color:#222}
.ri-block table.dama-repertorio-intl tbody tr:last-child td{border-bottom:0}
.ri-block table.dama-repertorio-intl tbody tr:nth-child(odd){background:#f7f6f4}
.ri-block table.dama-repertorio-intl tbody tr:hover{background:#efe9f7}
.ri-block table.dama-repertorio-intl td:first-child{font-weight:600;white-space:nowrap}
.ri-block table.dama-repertorio-intl td:last-child{color:#555}
@media(max-width:600px){.ri-block table.dama-repertorio-intl{font-size:13px}.ri-block table.dama-repertorio-intl thead th,.ri-block table.dama-repertorio-intl tbody td{padding:8px 12px}}

/* v3.92 — Paginación numerada (the_posts_pagination): centrada, cuadrada, con aire.
   Las noticias por categoría/etiqueta usan "Mostrar más" (Magazine); esto es para
   autor/fecha/búsqueda donde sigue habiendo paginación numerada. */
.pagination .nav-links,
.wp-pagenavi { display:flex; justify-content:center; flex-wrap:wrap; gap:.4rem; margin:2.75rem 0 0; }
.pagination .page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:2.6rem; height:2.6rem; padding:0 .7rem;
  border:1px solid var(--hairline, #e8e5df); text-decoration:none;
  font-size:14px; letter-spacing:.02em; color:var(--ink, #0a0a0a);
}
.pagination .page-numbers.current { background:var(--ink, #0a0a0a); color:var(--paper, #fff); border-color:var(--ink, #0a0a0a); }
.pagination .page-numbers:not(.current):hover { border-color:var(--ink, #0a0a0a); }
.pagination .page-numbers.dots { border-color:transparent; }
.pagination .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
/* La rejilla de noticias del archivo respira un poco arriba */
.dama-newsfilter__results { padding-top:.5rem; }

/* v3.93 — Popup genérico de formularios/reservas (Mailchimp, etc.) · mismo look que eventos */
body.dama-formpop-open { overflow: hidden; }
.dama-formpop { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.dama-formpop[hidden] { display: none; }
.dama-formpop__backdrop { position: absolute; inset: 0; background: rgba(10,10,10,.72); backdrop-filter: blur(3px); animation: dama-ev-fade .2s ease; }
.dama-formpop__panel { position: relative; width: min(680px, 100%); max-height: min(90vh, 940px); overflow-y: auto; overscroll-behavior: contain; background: #f3ede3; color: #0a0a0a; border-radius: 3px; padding: clamp(24px,4vw,40px); box-shadow: 0 24px 80px rgba(0,0,0,.4); animation: dama-ev-in .22s cubic-bezier(.2,.8,.2,1); }
.dama-formpop__close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; color: #0a0a0a; cursor: pointer; transition: background-color .18s ease; }
.dama-formpop__close:hover { background: rgba(10,10,10,.08); }
.dama-formpop__form { margin: 8px 0 12px; border: 1px solid rgba(10,10,10,.10); border-radius: 6px; overflow: hidden; background: #000; padding: 4px 0; }
.dama-formpop__iframe { display: block; width: 100%; max-width: 600px; margin: 0 auto; height: 560px; border: 0; background: #000; }
.dama-formpop__fallback { margin: 0; font-size: .8125rem; opacity: .7; }
.dama-formpop__fallback a { color: inherit; text-decoration: underline; }
@media (max-width: 640px) { .dama-formpop { padding: 0; align-items: flex-end; } .dama-formpop__panel { width: 100%; max-height: 92vh; border-radius: 12px 12px 0 0; } .dama-formpop__iframe { height: 460px; } }
