/*
Theme Name: UNIR Divulga Child
Template: generatepress
Author: MAD Design
Description: Child theme for UNIR Divulga portal — clean academic design, full responsive pattern library.
Version: 2.0
Text Domain: unir-divulga-child
*/

/* ── Proeduca Sans — self-hosted @font-face ─────────────────────────────── */
/* Full weight set matching UNIR: 200, 300, 400, 500, 600, 700, 800           */
/* woff2 primary + woff fallback for older browsers                           */
/* NOTE: weight 600 (SemiBold) uses Bold file — true SemiBold not available  */

@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-200.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-200.woff") format("woff");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-200-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-200-italic.woff") format("woff");
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-300.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-300.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-300-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-300-italic.woff") format("woff");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-500.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-500.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-500-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-500-italic.woff") format("woff");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-600.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-600.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-600-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-600-italic.woff") format("woff");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-700.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-700.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-700-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-700-italic.woff") format("woff");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-800.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-800.woff") format("woff");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Proeduca Sans";
  src: url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-800-italic.woff2") format("woff2"),
       url("/wp-content/themes/kadence-unirdivulga-child/assets/fonts/proeduca-sans-800-italic.woff") format("woff");
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

:root {
    /* Brand colors */
    --unir-primary: #0098CD;
    --unir-primary-hover: #00729A;
    --unir-primary-dark: #121212;
    --unir-body-text: #414141;
    --unir-muted: #6b7280;
    --unir-borders: #E9E9E9;
    --unir-accent-gold: #B6A760;

    /* Surface colors */
    --unir-bg: #ffffff;
    --unir-bg-soft: #f7f8f9;
    --unir-bg-band: #f5f5f5;

    /* Topic tag palette (color-coded categories from mockup) */
    --unir-tag-ia-bg: #E6F1FB;
    --unir-tag-ia-fg: #0098CD;
    --unir-tag-salud-bg: #E1F5EE;
    --unir-tag-salud-fg: #0F6E56;
    --unir-tag-educacion-bg: #EAEDDB;
    --unir-tag-educacion-fg: #3B6D11;
    --unir-tag-sostenibilidad-bg: #DDF2F3;
    --unir-tag-sostenibilidad-fg: #0B6E78;
    --unir-tag-tecnologia-bg: #E6F1FB;
    --unir-tag-tecnologia-fg: #0098CD;
    --unir-tag-neutral-bg: #F1F3F5;
    --unir-tag-neutral-fg: #495057;

    /* Per-project accent (override-able per subsite) */
    --unir-project-accent: var(--unir-primary);

    /* Layout */
    --unir-max-width: 1200px;
    --unir-content-pad: clamp(1rem, 4vw, 2.5rem);
    --unir-section-pad-y: clamp(3rem, 7vw, 6rem);

    /* Radii & shadows */
    --unir-radius-sm: 6px;
    --unir-radius-md: 12px;
    --unir-radius-lg: 20px;
    --unir-radius-pill: 999px;
    --unir-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
    --unir-shadow-md: 0 4px 12px rgba(15, 23, 42, 0.06), 0 2px 4px rgba(15, 23, 42, 0.04);
    --unir-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.08), 0 4px 8px rgba(15, 23, 42, 0.04);

    /* Motion */
    --unir-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --unir-dur: 220ms;
}

/* =========================================================================
   2. BASE & TYPOGRAPHY
   ========================================================================= */
html {
    box-sizing: border-box;
    scroll-behavior: smooth;
}
*, *::before, *::after { box-sizing: inherit; }

body {
    font-family: "Proeduca Sans", "Fira Sans Condensed", "Open Sans", system-ui, sans-serif;
    color: var(--unir-body-text);
    background: var(--unir-bg);
    -webkit-font-smoothing: antialiased;
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--unir-primary-dark);
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 4vw + 1rem, 3.5rem); }
h2 { font-size: clamp(1.5rem, 2vw + 1rem, 2.25rem); }
h3 { font-size: clamp(1.15rem, 1vw + 0.8rem, 1.5rem); }

a {
    color: var(--unir-primary);
    text-decoration: none;
    transition: color var(--unir-dur) var(--unir-ease);
}
a:hover { color: var(--unir-primary-hover); }

img { max-width: 100%; height: auto; display: block; }

/* =========================================================================
   3. SITE LAYOUT (overrides GeneratePress defaults where needed)
   ========================================================================= */

/* Allow full-width sections to breathe even though parent container is constrained */
.entry-content > .alignfull,
.entry-content > .unir-section--full {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: 100vw;
    width: 100vw;
}

/* Remove default block margin between consecutive full-width sections */
.entry-content > .alignfull + .alignfull,
.entry-content > .unir-section--full + .unir-section--full { margin-top: 0; }

/* Kill the empty .entry-header gap on home (title is filtered out) */
body.home .entry-header { display: none; }

/* Section base: padding handled by --unir-section-pad-y */
.unir-section {
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}

/* Inner wrap that re-constrains content to readable max width inside full-width sections */
.unir-section__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}

/* Section heading (eyebrow + title) */
.unir-section__title {
    margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
    text-align: center;
}
.unir-section__title h2 { margin: 0; }
.unir-section__title p {
    margin: 0.5rem auto 0;
    color: var(--unir-muted);
    max-width: 60ch;
}

/* =========================================================================
   4. PATTERN: HERO — PORTAL
   ========================================================================= */
.unir-hero-portal {
    background: linear-gradient(135deg, var(--unir-primary) 0%, var(--unir-primary-hover) 100%);
    color: #fff;
    padding-block: clamp(4rem, 10vw, 7rem);
    padding-inline: var(--unir-content-pad);
    text-align: center;
}
.unir-hero-portal__inner {
    max-width: 800px;
    margin-inline: auto;
}
.unir-hero-portal__title {
    color: #fff;
    font-size: clamp(2.25rem, 4vw + 1rem, 3.75rem);
    margin: 0 0 1rem;
    font-weight: 700;
    line-height: 1.15;
}
.unir-hero-portal__subtitle {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(1.05rem, 0.5vw + 0.9rem, 1.25rem);
    margin: 0 auto 2rem;
    max-width: 560px;
    line-height: 1.5;
}
.unir-hero-portal__ctas {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}
.unir-btn,
.unir-hero-portal__ctas .wp-block-button__link {
    display: inline-block;
    padding: 0.85rem 1.75rem;
    border-radius: var(--unir-radius-sm);
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.2;
    cursor: pointer;
    transition: transform var(--unir-dur) var(--unir-ease),
                background-color var(--unir-dur) var(--unir-ease),
                color var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease);
    border: 2px solid transparent;
}
.unir-btn--primary {
    background: #fff;
    color: var(--unir-primary);
}
.unir-btn--primary:hover {
    background: var(--unir-primary-dark);
    color: #fff;
}
.unir-btn--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.85);
}
.unir-btn--outline:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* =========================================================================
   5. PATTERN: MÉTRICAS — RED
   ========================================================================= */
.unir-metricas {
    background: var(--unir-bg-band);
    padding-block: clamp(3rem, 6vw, 5rem);
    padding-inline: var(--unir-content-pad);
}
.unir-metricas__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-metricas__title {
    text-align: center;
    margin: 0 0 clamp(2rem, 4vw, 3rem);
}
.unir-metricas__title h2 {
    margin: 0;
    font-size: clamp(1.5rem, 2vw + 1rem, 2.25rem);
}
.unir-metricas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
}
.unir-metricas__card {
    background: #fff;
    border-radius: var(--unir-radius-md);
    padding: clamp(1.5rem, 2.5vw, 2rem) 1.5rem;
    text-align: center;
    box-shadow: var(--unir-shadow-sm);
    transition: transform var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease);
}
.unir-metricas__card:hover {
    transform: translateY(-3px);
    box-shadow: var(--unir-shadow-md);
}
.unir-metricas__number {
    color: var(--unir-primary);
    font-size: clamp(2.5rem, 3vw + 1.5rem, 3.75rem);
    font-weight: 700;
    line-height: 1;
    margin: 0;
    letter-spacing: -0.02em;
}
.unir-metricas__label {
    color: var(--unir-muted);
    font-size: 0.95rem;
    margin: 0.75rem 0 0;
    font-weight: 500;
}

/* =========================================================================
   6. PATTERN: PROYECTOS DESTACADOS — GRID
   ========================================================================= */
.unir-proyectos {
    background: #fff;
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-proyectos__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-proyectos__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.unir-proyectos__header h2 { margin: 0; }
.unir-proyectos__header a {
    font-size: 0.95rem;
    font-weight: 600;
}
.unir-proyectos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
}
.unir-proyecto-card {
    background: #fff;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease),
                border-color var(--unir-dur) var(--unir-ease);
}
.unir-proyecto-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--unir-shadow-lg);
    border-color: var(--unir-primary);
}
.unir-proyecto-card--featured {
    border-color: var(--unir-primary);
    border-width: 2px;
}
.unir-proyecto-card__image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--unir-bg-band);
}
.unir-proyecto-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms var(--unir-ease);
}
.unir-proyecto-card:hover .unir-proyecto-card__image img {
    transform: scale(1.04);
}
.unir-proyecto-card__body {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.unir-proyecto-card__meta {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.unir-tag {
    display: inline-block;
    font-size: 0.75rem;
    padding: 0.25rem 0.75rem;
    border-radius: var(--unir-radius-pill);
    font-weight: 600;
    letter-spacing: 0.02em;
    background: var(--unir-tag-neutral-bg);
    color: var(--unir-tag-neutral-fg);
}
.unir-tag--ia { background: var(--unir-tag-ia-bg); color: var(--unir-tag-ia-fg); }
.unir-tag--salud { background: var(--unir-tag-salud-bg); color: var(--unir-tag-salud-fg); }
.unir-tag--educacion { background: var(--unir-tag-educacion-bg); color: var(--unir-tag-educacion-fg); }
.unir-tag--sostenibilidad { background: var(--unir-tag-sostenibilidad-bg); color: var(--unir-tag-sostenibilidad-fg); }
.unir-tag--tecnologia { background: var(--unir-tag-tecnologia-bg); color: var(--unir-tag-tecnologia-fg); }
.unir-tag--status {
    background: var(--unir-tag-neutral-bg);
    color: var(--unir-tag-neutral-fg);
}
.unir-proyecto-card__title {
    margin: 0 0 0.5rem;
    font-size: clamp(1.1rem, 1vw + 0.8rem, 1.35rem);
    color: var(--unir-primary-dark);
}
.unir-proyecto-card__desc {
    color: var(--unir-muted);
    font-size: 0.92rem;
    margin: 0 0 1rem;
    line-height: 1.5;
    flex: 1;
}
.unir-proyecto-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
}
.unir-avatars {
    display: flex;
    gap: -0.5rem;
}
.unir-avatars span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 600;
    color: #fff;
    background: var(--unir-primary);
    border: 2px solid #fff;
    margin-left: -8px;
}
.unir-avatars span:first-child { margin-left: 0; }
.unir-proyecto-card__link {
    color: var(--unir-primary);
    font-weight: 600;
    font-size: 0.9rem;
    white-space: nowrap;
}
.unir-proyecto-card__link::after {
    content: " →";
    transition: transform var(--unir-dur) var(--unir-ease);
    display: inline-block;
}
.unir-proyecto-card:hover .unir-proyecto-card__link::after {
    transform: translateX(4px);
}

/* =========================================================================
   7. PATTERN: ÚLTIMAS NOTICIAS
   ========================================================================= */
.unir-noticias {
    background: var(--unir-bg-band);
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-noticias__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-noticias__header h2 {
    margin: 0 0 clamp(1.5rem, 3vw, 2rem);
}
.unir-noticias__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.unir-noticia {
    background: #fff;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-md);
    padding: 1rem 1.25rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    transition: border-color var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease);
}
.unir-noticia:hover {
    border-color: var(--unir-primary);
    box-shadow: var(--unir-shadow-sm);
}
.unir-noticia__body { flex: 1; min-width: 0; }
.unir-noticia__project {
    font-size: 0.78rem;
    color: var(--unir-muted);
    font-weight: 600;
    margin: 0 0 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.unir-noticia__title {
    font-size: 1rem;
    color: var(--unir-primary-dark);
    margin: 0 0 0.25rem;
    font-weight: 600;
    line-height: 1.35;
}
.unir-noticia__date {
    font-size: 0.82rem;
    color: var(--unir-muted);
    margin: 0;
}
.unir-noticia__type {
    flex-shrink: 0;
}

/* =========================================================================
   8. PATTERN: CTA BANNER
   ========================================================================= */
.unir-cta-banner {
    background: var(--unir-primary-dark);
    color: #fff;
    padding-block: clamp(3rem, 6vw, 5rem);
    padding-inline: var(--unir-content-pad);
    text-align: center;
}
.unir-cta-banner__inner {
    max-width: 720px;
    margin-inline: auto;
}
.unir-cta-banner__title {
    color: #fff;
    margin: 0 0 0.75rem;
    font-size: clamp(1.5rem, 2vw + 1rem, 2.5rem);
}
.unir-cta-banner__text {
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 1.75rem;
    font-size: 1.05rem;
}

/* =========================================================================
   9. PATTERN: HERO — PROYECTO
   ========================================================================= */
.unir-hero-proyecto {
    background: linear-gradient(135deg, var(--unir-project-accent) 0%, var(--unir-primary-hover) 100%);
    color: #fff;
    padding-block: clamp(3.5rem, 8vw, 6rem);
    padding-inline: var(--unir-content-pad);
}
.unir-hero-proyecto__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-hero-proyecto__breadcrumb {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 1rem;
}
.unir-hero-proyecto__breadcrumb a { color: rgba(255, 255, 255, 0.95); }
.unir-hero-proyecto__category {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.85);
}
.unir-hero-proyecto__title {
    color: #fff;
    font-size: clamp(1.875rem, 3vw + 1rem, 3rem);
    margin: 0 0 0.75rem;
    line-height: 1.15;
    max-width: 800px;
}
.unir-hero-proyecto__tagline {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(1.05rem, 0.5vw + 0.9rem, 1.25rem);
    margin: 0;
    max-width: 700px;
    line-height: 1.5;
}

/* =========================================================================
   10. PATTERN: INTRO — DESCRIPCIÓN
   ========================================================================= */
.unir-intro {
    background: #fff;
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-intro__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-intro__inner > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: center;
}
@media (min-width: 768px) {
    .unir-intro__inner > .wp-block-group__inner-container { grid-template-columns: 1.2fr 1fr; }
}
.unir-intro--reverse .unir-intro__content { order: 2; }
.unir-intro--reverse .unir-intro__image { order: 1; }
.unir-intro__title { margin: 0 0 1rem; }
.unir-intro__text { font-size: 1.05rem; line-height: 1.7; }
.unir-intro__image {
    border-radius: var(--unir-radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.unir-intro__image img {
    width: 100%; height: 100%; object-fit: cover;
}

/* =========================================================================
   11. PATTERN: PROYECTO — OBJETIVOS Y CONTEXTO
   ========================================================================= */
.unir-objetivos {
    background: var(--unir-bg-soft);
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-objetivos__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-objetivos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.unir-objetivo {
    background: #fff;
    border-radius: var(--unir-radius-md);
    padding: 1.5rem;
    border-left: 4px solid var(--unir-project-accent);
    box-shadow: var(--unir-shadow-sm);
}
.unir-objetivo h3 {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
}
.unir-objetivo p { margin: 0; color: var(--unir-muted); font-size: 0.95rem; }

/* =========================================================================
   12. PATTERN: EQUIPO — GRID 3 COLUMNAS
   ========================================================================= */
.unir-equipo {
    background: #fff;
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-equipo__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-equipo__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}
.unir-miembro {
    text-align: center;
}
.unir-miembro__photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    margin: 0 auto 1rem;
    overflow: hidden;
    background: var(--unir-bg-band);
}
.unir-miembro__photo img { width: 100%; height: 100%; object-fit: cover; }
.unir-miembro__name {
    margin: 0 0 0.25rem;
    font-size: 1.1rem;
    color: var(--unir-primary-dark);
}
.unir-miembro__role {
    font-size: 0.88rem;
    color: var(--unir-project-accent);
    margin: 0 0 0.75rem;
    font-weight: 600;
}
.unir-miembro__bio {
    font-size: 0.92rem;
    color: var(--unir-muted);
    margin: 0;
    line-height: 1.6;
}

/* =========================================================================
   13. PATTERN: IMPACTO — MÉTRICAS DEL PROYECTO
   ========================================================================= */
.unir-impacto-metricas {
    background: linear-gradient(180deg, var(--unir-bg-soft) 0%, #fff 100%);
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-impacto-metricas__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-impacto-metricas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}
.unir-impacto-card {
    background: #fff;
    padding: 2rem 1.5rem;
    border-radius: var(--unir-radius-md);
    text-align: center;
    border-top: 4px solid var(--unir-project-accent);
    box-shadow: var(--unir-shadow-md);
}
.unir-impacto-card__number {
    color: var(--unir-project-accent);
    font-size: clamp(2.25rem, 3vw + 1rem, 3.25rem);
    font-weight: 700;
    margin: 0;
    line-height: 1;
}
.unir-impacto-card__label {
    color: var(--unir-body-text);
    font-size: 0.95rem;
    margin: 0.75rem 0 0;
    font-weight: 500;
}

/* =========================================================================
   14. PATTERN: IMPACTO — PRENSA Y MENCIONES
   ========================================================================= */
.unir-prensa {
    background: #fff;
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-prensa__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-prensa__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
}
.unir-prensa__item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
    padding: 1.25rem;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-md);
    transition: border-color var(--unir-dur) var(--unir-ease);
}
.unir-prensa__item:hover { border-color: var(--unir-project-accent); }
@media (min-width: 700px) {
    .unir-prensa__item {
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 1.5rem;
    }
}
.unir-prensa__source {
    font-weight: 700;
    color: var(--unir-primary-dark);
    font-size: 0.92rem;
}
.unir-prensa__title { margin: 0; color: var(--unir-body-text); font-size: 1rem; }
.unir-prensa__date { font-size: 0.85rem; color: var(--unir-muted); }

/* =========================================================================
   15. PATTERN: ACTIVIDADES — GRID DE EVENTOS
   ========================================================================= */
.unir-actividades {
    background: var(--unir-bg-soft);
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-actividades__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-actividades__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}
.unir-actividad {
    background: #fff;
    border-radius: var(--unir-radius-md);
    overflow: hidden;
    display: flex;
    border: 1px solid var(--unir-borders);
    transition: border-color var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease);
}
.unir-actividad:hover {
    border-color: var(--unir-project-accent);
    box-shadow: var(--unir-shadow-md);
}
.unir-actividad__date {
    background: var(--unir-project-accent);
    color: #fff;
    padding: 1.25rem 1rem;
    text-align: center;
    min-width: 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.unir-actividad__date-day {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
}
.unir-actividad__date-month {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 0.25rem;
}
.unir-actividad__body {
    padding: 1.25rem;
    flex: 1;
}
.unir-actividad__type {
    font-size: 0.75rem;
    color: var(--unir-project-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin: 0 0 0.5rem;
}
.unir-actividad__title {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}
.unir-actividad__desc {
    font-size: 0.9rem;
    color: var(--unir-muted);
    margin: 0;
}

/* =========================================================================
   16. PATTERN: RECURSOS — GALERÍA / VÍDEOS / DESCARGABLES
   ========================================================================= */
.unir-recursos {
    background: #fff;
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-recursos__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}

/* Gallery */
.unir-galeria {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: clamp(0.75rem, 1.5vw, 1rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}
.unir-galeria__item {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--unir-radius-md);
    background: var(--unir-bg-band);
}
.unir-galeria__item img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 400ms var(--unir-ease);
}
.unir-galeria__item:hover img { transform: scale(1.05); }

/* Videos */
.unir-videos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}

/* Fix: card-grid section wrappers (auto-fit, minmax) were designed for a
   fixed card count. Two problems compound when the card count is lower:
   1) With CSS Grid auto-fit, if only the heading spans the full row
      (grid-column:1/-1), the empty column tracks it touches stay "alive"
      for the whole grid, so a lone content row below still gets squeezed
      into one narrow track. Fix: every direct child (heading, and each
      content row) spans grid-column:1/-1, so the grid only stacks blocks
      vertically; each block arranges its own card(s) internally via
      flexbox, independent of card count.
   2) WordPress core's "is-layout-constrained" block-layout CSS applies
      margin-left/right:auto !important to non-full-width children (meant
      to center a max-width block within a wider flow parent). Combined
      with a grid item spanning 1/-1, auto margins override the default
      grid "stretch" sizing, so the item shrinks to its content width and
      centers within the span instead of filling it (visible on headings,
      which are never given align:wide/full). Fix: reset those margins and
      force width:100% for children of these sections specifically.
   Applies to every subsite, current and future, regardless of card count. */
.unir-videos > .wp-block-group__inner-container > *,
.unir-galeria > .wp-block-group__inner-container > *,
.unir-equipo__grid > .wp-block-group__inner-container > *,
.unir-team-grid > .wp-block-group__inner-container > *,
.unir-objetivos__grid > .wp-block-group__inner-container > *,
.unir-actividades__grid > .wp-block-group__inner-container > *,
.unir-impacto-metricas__grid > .wp-block-group__inner-container > * {
    grid-column: 1 / -1;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}



.unir-video {
    background: #fff;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-md);
    overflow: hidden;
}
.unir-video__player { aspect-ratio: 16 / 9; }
.unir-video__player iframe,
.unir-video__player video { width: 100%; height: 100%; border: 0; display: block; }
.unir-video__caption {
    padding: 1rem 1.25rem;
    color: var(--unir-body-text);
    font-size: 0.95rem;
}

/* Descargables */
.unir-descargables {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin-top: clamp(2rem, 4vw, 3rem);
    list-style: none;
    padding: 0;
}
.unir-descargable {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-md);
    background: #fff;
    transition: border-color var(--unir-dur) var(--unir-ease),
                transform var(--unir-dur) var(--unir-ease);
}
.unir-descargable:hover {
    border-color: var(--unir-project-accent);
    transform: translateX(4px);
}
.unir-descargable__icon {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    background: var(--unir-tag-ia-bg);
    color: var(--unir-project-accent);
    border-radius: var(--unir-radius-sm);
    font-weight: 700;
    font-size: 0.7rem;
    flex-shrink: 0;
}
.unir-descargable__body { flex: 1; min-width: 0; }
.unir-descargable__title {
    margin: 0;
    color: var(--unir-primary-dark);
    font-size: 1rem;
    font-weight: 600;
}
.unir-descargable__desc {
    margin: 0.25rem 0 0;
    color: var(--unir-muted);
    font-size: 0.85rem;
}
.unir-descargable__cta {
    color: var(--unir-project-accent);
    font-weight: 600;
    font-size: 0.85rem;
    white-space: nowrap;
}

/* =========================================================================
   17. PATTERN: SOCIAL — REDES SOCIALES
   ========================================================================= */
.unir-social {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: center;
    padding-block: 1.5rem;
}
.unir-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--unir-bg-band);
    color: var(--unir-primary);
    transition: background var(--unir-dur) var(--unir-ease),
                color var(--unir-dur) var(--unir-ease),
                transform var(--unir-dur) var(--unir-ease);
    font-size: 1.1rem;
    font-weight: 700;
}
.unir-social a:hover {
    background: var(--unir-primary);
    color: #fff;
    transform: translateY(-2px);
}

/* =========================================================================
   18. PATTERN: CONTACTO — FORMULARIO
   ========================================================================= */
.unir-contacto {
    background: var(--unir-bg-soft);
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-contacto__inner {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
}
.unir-contacto__form {
    margin-top: clamp(2rem, 4vw, 3rem);
    text-align: left;
}

/* =========================================================================
   19. PATTERN: FLEXIBLE — TEXTO ENRIQUECIDO / DOS COLUMNAS
   ========================================================================= */
.unir-flex-text {
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-flex-text__inner {
    max-width: 760px;
    margin-inline: auto;
}
.unir-flex-text__inner p { font-size: 1.05rem; line-height: 1.7; }
.unir-flex-text__inner h2,
.unir-flex-text__inner h3 { margin-top: 2rem; }
.unir-flex-text__inner img {
    border-radius: var(--unir-radius-md);
    margin: 1.5rem 0;
}
.unir-flex-text__inner ul,
.unir-flex-text__inner ol { padding-left: 1.5rem; }

.unir-flex-2col {
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-flex-2col__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-flex-2col__inner > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: center;
}
@media (min-width: 768px) {
    .unir-flex-2col__inner > .wp-block-group__inner-container { grid-template-columns: 1fr 1fr; }
}
.unir-flex-2col--reverse .wp-block-group__inner-container > .unir-flex-2col__image { order: 2; }
.unir-flex-2col__image {
    border-radius: var(--unir-radius-md);
    overflow: hidden;
}

/* =========================================================================
   20. PATTERNS: LAYOUTS (1col / 2col 50/50 / 2col 66/33 / 3col tarjetas)
   ========================================================================= */
.unir-layout {
    padding-block: var(--unir-section-pad-y);
    padding-inline: var(--unir-content-pad);
}
.unir-layout__inner {
    max-width: var(--unir-max-width);
    margin-inline: auto;
}
.unir-layout--1col .unir-layout__inner { max-width: 760px; }

.unir-layout--2col .unir-layout__inner,
.unir-layout--2col-6633 .unir-layout__inner {
    display: grid;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}
@media (min-width: 768px) {
    .unir-layout--2col .unir-layout__inner { grid-template-columns: 1fr 1fr; }
    .unir-layout--2col-6633 .unir-layout__inner { grid-template-columns: 2fr 1fr; }
}

.unir-layout--3col .unir-layout__inner {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.unir-tarjeta {
    background: #fff;
    border: 1px solid var(--unir-borders);
    border-radius: var(--unir-radius-md);
    padding: 1.5rem;
    transition: transform var(--unir-dur) var(--unir-ease),
                box-shadow var(--unir-dur) var(--unir-ease),
                border-color var(--unir-dur) var(--unir-ease);
}
.unir-tarjeta:hover {
    transform: translateY(-3px);
    box-shadow: var(--unir-shadow-md);
    border-color: var(--unir-primary);
}
.unir-tarjeta h3 { margin: 0 0 0.5rem; }
.unir-tarjeta p { margin: 0; color: var(--unir-muted); font-size: 0.95rem; }

/* =========================================================================
   21. ACCESSIBILITY & MOTION
   ========================================================================= */
:focus-visible {
    outline: 3px solid var(--unir-primary);
    outline-offset: 2px;
    border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =========================================================================
   22. LOGO SIZE FIX (preserved from previous style.css)
   ========================================================================= */
.site-logo img,
.custom-logo { max-width: 200px; height: auto; }

/* =========================================================================
   23. MOBILE TUNING
   ========================================================================= */
@media (max-width: 599px) {
    .unir-hero-portal__ctas { flex-direction: column; align-items: stretch; }
    .unir-hero-portal__ctas .unir-btn,
    .unir-hero-portal__ctas .wp-block-button__link { display: block; }
    .unir-noticia { flex-direction: column; align-items: flex-start; }
    .unir-noticia__type { align-self: flex-start; }
}

/* =================================================================
   UNIR DIVULGA — Full-Width Layout Patch
   v1.0 — June 2026
   
   Paste this block at the END of style.css (after all existing rules).
   Works together with the Customizer change: Layout → Container Width
   set to 1920 (already done).
   
   Fixes:
   - 40px side gutters created by .site-content padding
   - Large white gap between header and first section
   - Empty <p> blocks left over in old content
   - Header/footer content drifting to viewport edges on wide screens
   ================================================================= */

/* ------------------------------------------------------------------
   1) Kill GeneratePress .site-content padding
   This is the single biggest fix. GP wraps content in a 40px-padded
   container — our pattern sections handle their own padding via the
   design-token system, so we don't need GP's.
   ------------------------------------------------------------------ */
.site-content {
    padding: 0 !important;
}

/* Defensive: any nested wrappers GP injects */
.site-content > .container,
.site-content > #primary,
.site-content > .content-area,
#primary > #main,
#main > article,
article > .inside-article {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

.inside-article > .entry-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

/* ------------------------------------------------------------------
   2) Hide empty paragraph blocks left over in legacy content
   These are invisible <p> blocks that still take up vertical space
   and create unjustified gaps between sections.
   ------------------------------------------------------------------ */
.entry-content > p:empty,
.entry-content > p:has(br:only-child),
.entry-content > .wp-block-paragraph:empty {
    display: none !important;
}

/* ------------------------------------------------------------------
   3) Re-cap header content at 1200px
   Now that .site is full-width, the logo and nav would otherwise
   stretch to the viewport edges on wide screens. Center them in
   a 1200px column with fluid inline padding.
   ------------------------------------------------------------------ */
.site-header .inside-header {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
}

/* ------------------------------------------------------------------
   4) Re-cap footer content at 1200px (same reasoning)
   ------------------------------------------------------------------ */
.site-footer .inside-site-info,
.site-info,
.footer-widgets-container .inside-footer-widgets {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
}

/* ------------------------------------------------------------------
   5) Fallback reading cap for non-pattern content
   If anyone drops a plain paragraph / heading / list directly into
   .entry-content (without wrapping it in a UNIR pattern section), 
   it gets a sensible 1200px reading cap so text doesn't stretch
   across a 1920px viewport.
   
   Pattern sections (.unir-*, .alignfull, .alignwide) are excluded —
   they manage their own width.
   ------------------------------------------------------------------ */
.entry-content > p,
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > h5,
.entry-content > h6,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote,
.entry-content > .wp-block-paragraph,
.entry-content > .wp-block-heading,
.entry-content > .wp-block-list,
.entry-content > .wp-block-quote,
.entry-content > .wp-block-image:not(.alignfull):not(.alignwide),
.entry-content > figure:not(.alignfull):not(.alignwide) {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
}

/* ------------------------------------------------------------------
   6) Ensure full-width Gutenberg blocks truly fill the viewport
   Some align-full blocks have residual margins from theme.json
   defaults — strip them so backgrounds run edge-to-edge.
   ------------------------------------------------------------------ */
.entry-content > .alignfull,
.entry-content > .wp-block-group.alignfull,
.entry-content > .wp-block-cover.alignfull {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ------------------------------------------------------------------
   7) Safety net — no horizontal overflow
   Prevents any rogue full-width block from causing a horizontal
   scroll bar on small viewports.
   ------------------------------------------------------------------ */
html, body {
    overflow-x: clip;
}

/* ------------------------------------------------------------------
   8) Remove top margin from the very first section
   This kills any residual gap directly below the header.
   ------------------------------------------------------------------ */
.entry-content > :first-child {
    margin-top: 0 !important;
}

/* =================================================================
   END OF FULL-WIDTH PATCH
   ================================================================= */
   /* =================================================================
   UNIR DIVULGA — Full-Width Layout Patch (Addendum)
   v1.1 — Paste at the END of style.css (after the v1.0 patch).
   
   Makes the layout fix self-contained — no longer dependent on the
   Customizer Container Width setting.
   ================================================================= */

/* ------------------------------------------------------------------
   9) Override GeneratePress site-wide max-width
   Highest specificity to win over GP's dynamic Customizer CSS.
   ------------------------------------------------------------------ */
html body.generatepress .site,
html body.generatepress #page,
body .site,
body #page {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ------------------------------------------------------------------
   10) Aggressive empty-paragraph suppression
   Catches <p></p>, <p>&nbsp;</p>, <p><br></p>, and any first-child
   paragraph with no real text content. wpautop produces these from
   stray blank lines in the editor.
   ------------------------------------------------------------------ */
.entry-content > p:empty,
.entry-content > p:has(br:only-child),
.entry-content > p:first-child:not([class]) {
    display: none !important;
}

/* Fallback for browsers without :has() — uses adjacent-sibling combinator */
.entry-content > p:first-child:not([class]) + * {
    margin-top: 0 !important;
}

/* =================================================================
   END OF ADDENDUM
   ================================================================= */
   
   /* =================================================================
   UNIR DIVULGA — Full-Width Layout Patch (Addendum v1.2)
   Paste at the END of style.css after the v1.0 and v1.1 patches.
   
   Fixes:
   - Proyectos destacados cards stretching full viewport (now capped at 1200px)
   - Empty <p> still creating 114px dead space at top
   - Excessive heading-to-content gaps inside section groups
   - Oversized default Gutenberg block margins making page feel airy
   ================================================================= */

/* ------------------------------------------------------------------
   11) Cap direct-child column blocks at 1200px reading width
   When a pattern drops a .wp-block-columns directly into .entry-content
   without wrapping it in a constraining group (the Proyectos pattern
   does this), it would otherwise stretch edge-to-edge. Cap it.
   ------------------------------------------------------------------ */
.entry-content > .wp-block-columns:not(.alignfull):not(.alignwide),
.entry-content > .wp-block-group:not(.alignfull):not(.alignwide):not(.has-background):not(.unir-section) {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
}

/* ------------------------------------------------------------------
   12) More aggressive empty-paragraph removal
   The previous :has(br:only-child) didn't match because the paragraph
   contains whitespace, not <br>. Use first-child + zero-content match.
   ------------------------------------------------------------------ */
.entry-content > p:first-child,
.entry-content > p:not([class]):not(.has-text-color):not(.has-background) {
    /* Only hide if it has no real content — check height as proxy */
}

/* Brute force: kill any unclassed <p> that's a direct child of entry-content.
   Our patterns wrap text in groups with classes, so a bare <p> is almost
   always wpautop debris. */
.entry-content > p:not([class]),
.entry-content > p[class=""] {
    display: none !important;
}

/* ------------------------------------------------------------------
   13) Tighten heading-to-content spacing inside sections
   Default H2 margin-bottom from theme.json is often 1.5em+. Inside
   our section groups we want compact, deliberate spacing.
   ------------------------------------------------------------------ */
.wp-block-group .wp-block-heading,
.wp-block-group > h1,
.wp-block-group > h2,
.wp-block-group > h3,
.wp-block-group > h4 {
    margin-block-start: 0 !important;
    margin-block-end: clamp(0.75rem, 1.5vw, 1.25rem) !important;
}

/* And tighten the gap between heading + immediate column/group sibling */
.wp-block-group > .wp-block-heading + .wp-block-columns,
.wp-block-group > .wp-block-heading + .wp-block-group,
.wp-block-group > h2 + .wp-block-columns,
.wp-block-group > h2 + .wp-block-group {
    margin-top: clamp(1rem, 2vw, 1.5rem) !important;
}

/* ------------------------------------------------------------------
   14) Tighten default Gutenberg block stack rhythm
   WordPress default block margins are ~28-30px between every block.
   Stacked across a page this becomes a lot. Tighten to ~16-20px.
   ------------------------------------------------------------------ */
.entry-content > * + *,
.wp-block-group > * + * {
    margin-top: clamp(1rem, 1.8vw, 1.5rem);
}

/* Restore generous spacing between major full-width sections (hero, métricas,
   proyectos, etc.) — these need breathing room, not text-block tightening */
.entry-content > .wp-block-group.has-background + .wp-block-group.has-background,
.entry-content > .alignfull + .alignfull,
.entry-content > .wp-block-group.has-background + .wp-block-columns,
.entry-content > .wp-block-columns + .wp-block-group.has-background {
    margin-top: 0 !important;
}

/* ------------------------------------------------------------------
   15) Tighten internal column padding inside section groups
   Cards inside .wp-block-columns sometimes have padded internal
   blocks creating extra vertical space. Normalize.
   ------------------------------------------------------------------ */
.wp-block-group .wp-block-columns {
    margin-top: clamp(1rem, 2vw, 1.5rem) !important;
    margin-bottom: clamp(1rem, 2vw, 1.5rem) !important;
}

.wp-block-group .wp-block-column > * + * {
    margin-top: 0.5rem;
}

/* ------------------------------------------------------------------
   16) Tighten section-group internal padding (top/bottom)
   Patterns with backgrounds (hero, métricas, etc.) often use 60-80px
   vertical padding which feels generous on wide screens. Use fluid
   clamps that scale better.
   ------------------------------------------------------------------ */
.entry-content > .wp-block-group.has-background {
    padding-top: clamp(2rem, 4vw, 3.5rem) !important;
    padding-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}

/* =================================================================
   END OF v1.2 ADDENDUM
   ================================================================= */
/* =================================================================
   UNIR DIVULGA — Full-Width Layout Patch (Addendum v1.3)
   Paste at the END of style.css after v1.0, v1.1, and v1.2 patches.
   
   Fixes regressions introduced by v1.2:
   - First news item disappeared (it was an unclassed <p>, got nuked by §12)
   - Métricas numbers spreading edge-to-edge on narrower viewports
   - Cap-only approach failed because 1200px > viewport on smaller screens
   
   Strategy: switch from absolute max-width to fluid min() formula so
   content always has breathing room regardless of viewport size.
   ================================================================= */

/* ------------------------------------------------------------------
   17) UNDO v1.2 §12 — restore unclassed paragraphs
   Many real content blocks (news items, Gutenberg paragraphs without
   custom classes) don't have a class attribute. Killing all of them
   was too aggressive. Restore them.
   ------------------------------------------------------------------ */
.entry-content > p:not([class]),
.entry-content > p[class=""] {
    display: block !important;
}

/* Re-target: only hide TRULY empty paragraphs (no text content at all) */
.entry-content > p:empty {
    display: none !important;
}

/* Catch <p> elements containing only whitespace, &nbsp;, or <br> */
.entry-content > p:first-child:not(.has-text-color):not(.has-background) {
    /* If first child of entry-content is a bare paragraph with no styling 
       hint of being intentional content, treat as wpautop debris */
}

/* Specifically: a first-child <p> with no class is almost always debris */
.entry-content > p:first-child:not([class]),
.entry-content > p:first-child[class=""] {
    display: none !important;
}

/* ------------------------------------------------------------------
   18) Smarter responsive cap — fluid, not absolute
   The previous max-width: 1200px gave NO constraint on viewports
   < 1200px. Replace with min(1200px, 100% - 2rem) so there's always
   horizontal breathing room regardless of viewport.
   ------------------------------------------------------------------ */

/* Re-cap text elements at fluid width */
.entry-content > p,
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > h5,
.entry-content > h6,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote,
.entry-content > .wp-block-paragraph,
.entry-content > .wp-block-heading,
.entry-content > .wp-block-list {
    width: min(1200px, 100% - clamp(2rem, 6vw, 4rem)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
}

/* Re-cap top-level column blocks at fluid width */
.entry-content > .wp-block-columns:not(.alignfull):not(.alignwide),
.entry-content > .wp-block-group:not(.alignfull):not(.alignwide):not(.has-background):not(.unir-section) {
    width: min(1200px, 100% - clamp(2rem, 6vw, 4rem)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box;
}

/* ------------------------------------------------------------------
   19) MÉTRICAS FIX — cap content inside section groups
   Patterns like Métricas have a background group whose CHILDREN
   (heading + number cards) need their own width cap. Without this,
   the numbers stretch edge-to-edge inside the white section.
   ------------------------------------------------------------------ */
.entry-content > .wp-block-group.has-background > *:not(.alignfull):not(.alignwide) {
    width: min(1200px, 100% - clamp(2rem, 6vw, 4rem));
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

/* Override the inner padding on background section groups so they 
   don't double-pad. The cap above handles horizontal breathing room. */
.entry-content > .wp-block-group.has-background {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* =================================================================
   END OF v1.3 ADDENDUM
   ================================================================= */
   
   /* =================================================================
   UNIR DIVULGA — Spacing Patch (Addendum v1.4)
   Paste at the END of style.css after v1.0–v1.3 patches.
   
   Fixes excessive vertical spacing inside section groups:
   - Métricas: huge gap between heading, numbers, labels
   - Hero: similar gaps between title and buttons
   - Bottom of each section before next block
   
   Scoped to .has-background section groups ONLY — proyectos cards
   and other content blocks are left untouched.
   ================================================================= */

/* ------------------------------------------------------------------
   20) Tighter outer padding on section groups
   Overrides v1.2 §16. Reduces 56px → ~32-40px vertical padding
   on background section groups (hero, métricas, etc).
   ------------------------------------------------------------------ */
.entry-content > .wp-block-group.has-background {
    padding-top: clamp(1.5rem, 2.5vw, 2.5rem) !important;
    padding-bottom: clamp(1.5rem, 2.5vw, 2.5rem) !important;
}

/* ------------------------------------------------------------------
   21) Zero out Gutenberg's auto inner-container padding
   The .wp-block-group__inner-container is a wrapper Gutenberg
   auto-generates around block contents. It carries its own 40px
   padding which double-pads on top of §20. Strip it.
   ------------------------------------------------------------------ */
.entry-content > .wp-block-group.has-background > .wp-block-group__inner-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ------------------------------------------------------------------
   22) Tighten heading margin-bottom inside section groups
   Headings inside hero/métricas/etc currently push 20px below.
   Reduce to 8-16px (fluid).
   ------------------------------------------------------------------ */
.wp-block-group.has-background .wp-block-heading,
.wp-block-group.has-background > .wp-block-group__inner-container > h1,
.wp-block-group.has-background > .wp-block-group__inner-container > h2,
.wp-block-group.has-background > .wp-block-group__inner-container > h3 {
    margin-top: 0 !important;
    margin-bottom: clamp(0.5rem, 1vw, 1rem) !important;
}

/* ------------------------------------------------------------------
   23) Tighter block-to-block rhythm inside section inner-containers
   Reduces the gap between sibling blocks (heading → columns, 
   columns → next block) inside background sections.
   ------------------------------------------------------------------ */
.wp-block-group.has-background > .wp-block-group__inner-container > * + * {
    margin-top: clamp(0.5rem, 1.2vw, 1rem) !important;
}

/* ------------------------------------------------------------------
   24) Tighten internal column content (numbers + labels)
   Inside each métricas card column, the number heading and the
   label paragraph stack with default margins. Tighten them.
   ------------------------------------------------------------------ */
.wp-block-group.has-background .wp-block-column > *,
.wp-block-group.has-background .wp-block-column > * + * {
    margin-top: clamp(0.25rem, 0.5vw, 0.5rem) !important;
    margin-bottom: clamp(0.25rem, 0.5vw, 0.5rem) !important;
}

/* Override for first/last children to align edges tightly */
.wp-block-group.has-background .wp-block-column > *:first-child {
    margin-top: 0 !important;
}
.wp-block-group.has-background .wp-block-column > *:last-child {
    margin-bottom: 0 !important;
}

/* =================================================================
   END OF v1.4 ADDENDUM
   
   Net effect on Métricas (at 1760px viewport):
   - Section total height: ~629px → ~380px (saves ~250px)
   - Top whitespace: 96px → ~32px
   - Heading-to-numbers gap: ~70px → ~16px
   - Numbers-to-labels gap: ~30px → ~8px
   - Bottom whitespace: 96px → ~32px
   ================================================================= */
   
 /* =================================================================
   UNIR DIVULGA — Métricas Full-Width Band (Addendum v1.6)
   Paste at the END of style.css after all previous patches.
   
   Companion to the new métricas block markup snippet.
   Makes the .unir-metricas group paint full-width grey,
   matches the hero's banding behavior, styles the numbers and labels.
   ================================================================= */

/* Full-width grey band — overrides the v1.0 §3 cap for this section */
.entry-content > .unir-metricas {
    background-color: #f5f5f5 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-top: clamp(2rem, 4vw, 3rem) !important;
    padding-bottom: clamp(2rem, 4vw, 3rem) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Inner content capped at 1200px, centered, with fluid padding */
.entry-content > .unir-metricas > .wp-block-group__inner-container {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    width: 100%;
    box-sizing: border-box;
}

/* Heading: left-aligned, consistent with Proyectos and Noticias */
.unir-metricas .wp-block-heading {
    color: #121212;
    margin-top: 0 !important;
    margin-bottom: clamp(1rem, 2vw, 1.5rem) !important;
}

/* Number digits — big and blue */
.unir-metricas__num {
    color: #0098CD !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    margin: 0 !important;
}

/* Label under each number */
.unir-metricas__label {
    color: #414141 !important;
    font-size: clamp(0.875rem, 1.1vw, 1rem) !important;
    margin-top: 0.25rem !important;
    margin-bottom: 0 !important;
}

/* Tighter column rhythm inside métricas */
.unir-metricas .wp-block-columns {
    gap: clamp(1rem, 2vw, 2rem) !important;
    margin: 0 !important;
}

.unir-metricas .wp-block-column {
    text-align: center;
}

/* =================================================================
   END OF v1.6 ADDENDUM
   ================================================================= */
   
   /* =================================================================
   UNIR DIVULGA — Dark Footer (Addendum v1.7)
   Paste at the END of style.css after all previous patches.
   
   Adds a dark band footer to visually close the page and separate
   it from content above. Matches the full-width banding rhythm
   used on hero/métricas.
   ================================================================= */

/* Full-width dark footer band */
.site-footer {
    background-color: #1f2937;
    color: #e5e7eb;
    padding-block: clamp(1.5rem, 3vw, 2.5rem);
    width: 100%;
    margin-top: clamp(2rem, 4vw, 4rem);
}

/* Inner content (© line, widgets) stays capped + centered */
.site-footer .inside-site-info,
.site-footer .site-info,
.site-footer .footer-widgets-container {
    color: inherit;
}

/* All text inside footer inherits light color */
.site-footer,
.site-footer p,
.site-footer span,
.site-footer .copyright {
    color: #e5e7eb;
}

/* Headings inside footer widgets — if any get added later */
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6 {
    color: #ffffff;
}

/* Links in the footer — light blue for legible contrast */
.site-footer a {
    color: #93c5fd;
    text-decoration: none;
    transition: color 200ms ease;
}

.site-footer a:hover,
.site-footer a:focus {
    color: #ffffff;
    text-decoration: underline;
}

/* Optional thin top accent so the dark band feels intentional, not abrupt */
.site-footer {
    border-top: 4px solid #0098CD;
}

/* =================================================================
   END OF v1.7 ADDENDUM
   
   Color options if you want to swap the dark grey:
   - Dark grey (default):  #1f2937  ← current
   - Slate grey:           #334155
   - Charcoal:             #18181b
   - Pure black:           #000000
   - UNIR dark blue:       #121212  (matches heading color, very on-brand)
   
   Just change the value of `background-color` on `.site-footer` above.
   ================================================================= */
   
  /* =================================================================
   UNIR DIVULGA — Footer White-Frame Fix (Addendum v1.8)
   Paste at the END of style.css after v1.7.
   
   The .site-info inner wrapper (a <footer> element nested inside
   .site-footer) carries a white background from GeneratePress
   defaults, creating a "white frame" inside the dark footer band.
   This makes that wrapper transparent so the dark color shows through.
   ================================================================= */

.site-footer .site-info,
footer.site-info {
    background-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* =================================================================
   END OF v1.8 ADDENDUM
   ================================================================= */

/* =================================================================
   v1.9 - Subsite layout polish + En Pocas Palabras BEM classes
   Added 2026-06-24
   Covers: entry-title suppression when a hero is present, team card
   hover, episode card hover, social icon hover, mobile stacking.
   ================================================================= */

/* Hide GeneratePress entry-title whenever a UNIR page hero is present.
   The hero carries its own H1; the entry-title above it would be redundant. */
body:has(.unir-page-hero) header.entry-header,
body:has(.unir-page-hero) .inside-article > header.entry-header {
    display: none;
}

/* Team card hover affordance */
.unir-team-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.unir-team-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(7, 54, 118, 0.08);
}

/* Social icon hover */
.unir-team-card__social a {
    transition: background-color 0.2s ease, color 0.2s ease;
}
.unir-team-card__social a:hover {
    background-color: #0098CD !important;
    color: #ffffff !important;
}

/* Episode card hover */
.unir-episode-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.unir-episode-card:not(.is-pending):hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(7, 54, 118, 0.08);
    border-color: #0098CD !important;
}

/* Metric card subtle hover */
.unir-metric-card {
    transition: transform 0.2s ease;
}
.unir-metric-card:hover {
    transform: translateY(-2px);
}

/* Mobile: stack team + episode grids earlier so cards don't squeeze */
@media (max-width: 768px) {
    .unir-equipo-personas .wp-block-columns,
    .unir-episodios .wp-block-columns {
        flex-wrap: wrap;
    }
    .unir-equipo-personas .wp-block-column,
    .unir-episodios .wp-block-column {
        flex-basis: 100% !important;
        margin-left: 0 !important;
        margin-bottom: 1rem;
    }
}

/* =================================================================
   END OF v1.9 ADDENDUM
   ================================================================= */


/* =================================================================
   v1.10 - Subsite footer + equal-height grids + light ficha strip
   Added 2026-06-24
   Covers: DEFINITIVA-aligned footer, CSS Grid containers for team
   and episode cards (equal height + width via auto-fit), and the
   redesigned ficha tecnica as a light compact strip.
   ================================================================= */

/* ---------- Footer (replaces simple copyright row) ---------- */
.copyright-bar .unir-footer-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    font-family: inherit;
}
.copyright-bar .unir-footer-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    justify-content: center;
    font-size: 0.88rem;
    line-height: 1.4;
}
.copyright-bar .unir-footer-meta {
    color: #dceaf5;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
}
.copyright-bar .unir-footer-row a {
    color: #dceaf5;
    text-decoration: none;
    transition: color 0.2s ease;
}
.copyright-bar .unir-footer-row a:hover {
    color: #ffffff;
    text-decoration: underline;
}
.copyright-bar .unir-footer-sep {
    opacity: 0.4;
}
.copyright-bar .unir-footer-nav {
    font-size: 0.85rem;
}
.copyright-bar .unir-footer-copy {
    font-size: 0.78rem;
    opacity: 0.65;
    margin-top: 0.25rem;
}

/* ---------- Team grid (replaces wp:columns for the team cards row) ---------- */
.unir-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    align-items: stretch;
}
.unir-team-grid .unir-team-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 0.5px solid #E9E9E9;
    border-radius: 8px;
    padding: 1.5rem 1.25rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.unir-team-grid .unir-team-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(7, 54, 118, 0.08);
}
.unir-team-grid .unir-team-card__avatar {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 1rem;
    display: block;
}
.unir-team-grid .unir-team-card__name {
    color: #121212;
    font-size: 1.1rem;
    font-weight: 500;
    text-align: center;
    margin: 0 0 0.25rem;
    line-height: 1.3;
}
.unir-team-grid .unir-team-card__role {
    color: #0098CD;
    font-size: 0.75rem;
    font-weight: 500;
    text-align: center;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 0.75rem;
}
.unir-team-grid .unir-team-card__bio {
    color: #414141;
    font-size: 0.92rem;
    line-height: 1.55;
    text-align: center;
    margin: 0;
    flex-grow: 1;
}
.unir-team-grid .unir-team-card__social {
    display: flex;
    gap: 10px;
    justify-content: center;
    padding-top: 14px;
    margin-top: 14px;
    border-top: 0.5px solid #E9E9E9;
}
.unir-team-grid .unir-team-card__social a,
.unir-team-grid .unir-team-card__social span {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #f5f5f5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #414141;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.unir-team-grid .unir-team-card__social a:hover {
    background-color: #0098CD;
    color: #ffffff;
}
.unir-team-grid .unir-team-card__social span {
    opacity: 0.35;
    color: #c5cdd6;
}

/* ---------- Episode grid (replaces wp:columns for episodes) ---------- */
.unir-episode-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.25rem;
    align-items: stretch;
}
.unir-episode-grid .unir-episode-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 0.5px solid #E9E9E9;
    border-radius: 8px;
    padding: 1.1rem 1.1rem 1.25rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.unir-episode-grid .unir-episode-card:not(.is-pending):hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(7, 54, 118, 0.08);
    border-color: #0098CD;
}
.unir-episode-grid .unir-episode-card__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.5rem;
    font-size: 0.78rem;
}
.unir-episode-grid .unir-episode-card__head .ep-num {
    background: #E6F1FB;
    color: #0C447C;
    padding: 3px 10px;
    border-radius: 12px;
    font-weight: 500;
    letter-spacing: 0.04em;
}
.unir-episode-grid .unir-episode-card__head .ep-date {
    color: #9ca3af;
}
.unir-episode-grid .unir-episode-card__title {
    color: #121212;
    font-size: 0.98rem;
    font-weight: 500;
    line-height: 1.35;
    margin: 0 0 0.4rem;
    text-align: left;
}
.unir-episode-grid .unir-episode-card__guest {
    color: #414141;
    font-size: 0.88rem;
    line-height: 1.4;
    margin: 0 0 0.9rem;
    text-align: left;
    flex-grow: 1;
}
.unir-episode-grid .unir-episode-card__player {
    margin-top: auto;
}
.unir-episode-grid .unir-episode-card__player iframe {
    display: block;
    width: 100%;
    border-radius: 12px;
    border: 0;
}
.unir-episode-grid .unir-episode-card.is-pending {
    background: #fafafa;
    border-style: dashed;
    border-color: #E9E9E9;
    opacity: 0.7;
}
.unir-episode-grid .unir-episode-card.is-pending .unir-episode-card__title {
    color: #6b7280;
}
.unir-episode-grid .unir-episode-card.is-pending .ep-num {
    background: #f0f2f5;
    color: #9ca3af;
    border: 0.5px solid #d1d5db;
}
.unir-episode-grid .unir-episode-card.is-pending .ep-date {
    color: #9ca3af;
    font-style: italic;
}
.unir-episode-grid .unir-episode-card__placeholder {
    background: #f0f2f5;
    border-radius: 8px;
    padding: 2rem 1rem;
    text-align: center;
    color: #9ca3af;
    font-size: 0.85rem;
    font-style: italic;
    margin-top: auto;
}

/* ---------- Ficha tecnica as a light, compact strip ---------- */
.unir-ficha-strip {
    background: #f5f7fa;
    border-top: 1px solid #E9E9E9;
    border-bottom: 1px solid #E9E9E9;
    padding: 1.5rem clamp(1rem, 4vw, 2rem);
}
.unir-ficha-strip__inner {
    display: grid;
    grid-template-columns: 1fr 1fr; /* v1.13: 2-col mobile, 4-col desktop via media query below */
    gap: 1.25rem 2rem;
    max-width: 1080px; /* v1.12: align with cifras (was 1200) */
    margin: 0 auto;
}
.unir-ficha-strip .ficha-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.unir-ficha-strip .ficha-label {
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #9ca3af;
}
.unir-ficha-strip .ficha-value {
    font-size: 0.92rem;
    color: #121212;
    font-weight: 500;
    line-height: 1.4;
}
.unir-ficha-strip .ficha-value.is-status-active {
    color: #0098CD;
}

/* =================================================================
   END OF v1.10 ADDENDUM
   ================================================================= */


/* =================================================================
   v1.11 - Subsite portal-logo header + simplified footer
   Added 2026-06-24
   ================================================================= */

/* Portal logo in subsite header (UNIR Divulga wordmark) */
.is-subsite .site-logo .custom-logo,
.is-subsite .custom-logo-link img {
    max-height: 56px;
    width: auto;
    object-fit: contain;
    display: block;
}
.is-subsite .unir-portal-logo-link {
    display: inline-flex;
    align-items: center;
}

/* Hide the site-branding container on subsites (title text is suppressed
   via display_header_text; this collapses the now-empty container). */
.is-subsite .site-branding-container,
.is-subsite .site-branding {
    display: none;
}

/* Ensure header layout balances cleanly with logo only */
.is-subsite .inside-header {
    align-items: center;
}

/* =================================================================
   END OF v1.11 ADDENDUM
   ================================================================= */


/* =================================================================
   v1.11-fix - Subsite header logo via generate_site_branding filter
   Added 2026-06-24 (correcting v1.11 which targeted wrong classes)
   ================================================================= */

/* Size and align the portal logo in the subsite header */
.is-subsite .unir-subsite-logo {
    display: inline-flex;
    align-items: center;
}
.is-subsite .unir-subsite-logo a {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.is-subsite .unir-subsite-logo img {
    max-height: 56px;
    width: auto;
    object-fit: contain;
    display: block;
}

@media (max-width: 600px) {
    .is-subsite .unir-subsite-logo img {
        max-height: 40px;
    }
}

/* =================================================================
   END OF v1.11-fix
   ================================================================= */


/* =================================================================
   v1.13 - Ficha strip: explicit 4-col desktop / 2-col mobile
   Added 2026-06-24 (replaces auto-fit which produced 5/3 inconsistency)
   ================================================================= */
@media (min-width: 768px) {
    .unir-ficha-strip__inner {
        grid-template-columns: repeat(4, 1fr); /* v1.13: ficha 4-col desktop */
    }
}
/* =================================================================
   END OF v1.13
   ================================================================= */


/* ============================================================
   v1.15 — Adrián hero photo (right-side magazine composition)
   En Pocas Palabras subsite
   ============================================================ */
.unir-hero-inicio { position: relative; overflow: hidden; }


/* ============================================================
   v1.16 — Adrián hero photo: contain inside section container
   Cancel v1.15 viewport-wide ::after, scope photo to 1080px
   ============================================================ */
@media (max-width: 781px) {
  .unir-hero-inicio .wp-block-cover__inner-container::after {
    width: 100%;
    opacity: 0.30;
  }
}

/* ============================================================
   v1.17 — Restore hero gradient
   v1.15 broke .wp-block-cover__background by forcing position:relative;
   restore absolute positioning so the gradient covers the cover block.
   ============================================================ */

.unir-hero-inicio .wp-block-cover__inner-container {
  z-index: 2;
}

/* ============================================================
   v1.18 — Soften photo edges with radial mask
   The baked JPEG has flat #121212 corners that don't match the
   hero gradient. Apply a radial mask to fade top/bottom into
   transparency so the live gradient shows through.
   ============================================================ */


/* =============================================================
   v1.19 — Portal home: Presentación · Destacado · Muestra · Sobre · Participa
   ============================================================= */

/* ── Shared section base ────────────────────────────────────── */
.unir-section {
  padding-top: clamp(3rem, 6vw, 5rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

/* ── Block 1: Presentación ──────────────────────────────────── */
.unir-section--presentacion {
  background: #0A2240;
  color: #fff;
  text-align: center;
}

.unir-section--presentacion .wp-block-group__inner-container {
  max-width: 720px;
  margin-inline: auto;
}

/* Portal logo — constrain from 1120px natural size */
.unir-logo-portal {
  margin-bottom: 1.5rem !important;
}
.unir-logo-portal img {
  max-width: 220px;
  height: auto;
  filter: brightness(0) invert(1); /* white on dark bg */
}

/* Tagline */
.unir-tagline {
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: #fff !important;
  margin-top: 1.5rem !important;
  margin-bottom: 1rem !important;
  line-height: 1.3 !important;
}
.unir-section--presentacion h1.unir-tagline {
  margin-top: 1.5rem !important;
}
@media (min-width: 900px) {
  .unir-tagline { font-size: 1.75rem !important; }
}

/* Intro copy */
.unir-presentacion__texto {
  color: rgba(255,255,255,0.85) !important;
  font-size: 1rem !important;
  max-width: 60ch;
  margin-bottom: 2rem !important;
}

/* CTAs */
.unir-presentacion__ctas .wp-block-button__link {
  border-radius: 2rem !important;
  padding: 0.65em 1.75em !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
}
.unir-presentacion__ctas .is-style-fill .wp-block-button__link {
  background: #0098CD !important;
  color: #fff !important;
  border: 2px solid #0098CD !important;
}
.unir-presentacion__ctas .is-style-fill .wp-block-button__link:hover {
  background: #007faf !important;
  border-color: #007faf !important;
}
.unir-presentacion__ctas .is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,0.6) !important;
}
.unir-presentacion__ctas .is-style-outline .wp-block-button__link:hover {
  border-color: #fff !important;
  background: rgba(255,255,255,0.08) !important;
}

/* ── Block 2: Destacado ─────────────────────────────────────── */
.unir-section--destacado {
  background: #f8f9fb;
  border-top: 1px solid #e5e8ef;
  border-bottom: 1px solid #e5e8ef;
}

.unir-section--destacado .wp-block-group__inner-container {
  max-width: 960px;
  margin-inline: auto;
}

.unir-destacado {
  width: 100%;
}

.unir-destacado__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 720px) {
  .unir-destacado__inner {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
  }
}

.unir-destacado__media img {
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  display: block;
  box-shadow: 0 4px 20px rgba(0,0,0,0.12);
}

.unir-destacado__body {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.unir-destacado__tag {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0098CD;
}

.unir-destacado__estado {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2em 0.7em;
  border-radius: 2em;
  width: fit-content;
}
.unir-destacado__estado.is-en-curso {
  background: #e8f7ed;
  color: #1a7f3c;
}
.unir-destacado__estado.is-finalizado {
  background: #e8effa;
  color: #1a4fa0;
}
.unir-destacado__estado.is-previsto {
  background: #f3f0fa;
  color: #6230c5;
}

.unir-destacado__title {
  font-size: clamp(1.4rem, 3vw, 2rem) !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin: 0 !important;
  line-height: 1.25 !important;
}

.unir-destacado__gancho {
  font-size: 1rem !important;
  color: #3d4f6b !important;
  margin: 0 !important;
  line-height: 1.55 !important;
}

.unir-destacado__cta {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.6em 1.6em;
  background: #0098CD;
  color: #fff !important;
  border-radius: 2em;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.18s;
  width: fit-content;
}
.unir-destacado__cta:hover {
  background: #007faf;
}

/* ── Block 3: Muestra ───────────────────────────────────────── */
.unir-section--muestra {
  background: #fff;
}

.unir-section--muestra .wp-block-group__inner-container {
  max-width: 1080px;
  margin-inline: auto;
}

.unir-muestra {
  width: 100%;
}

.unir-muestra__header {
  margin-bottom: 2rem;
}

.unir-muestra__title {
  font-size: clamp(1.4rem, 2.5vw, 1.8rem) !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin: 0 !important;
}

.unir-muestra__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
@media (min-width: 600px) {
  .unir-muestra__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 960px) {
  .unir-muestra__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Project card */
.unir-project-card {
  background: #fff;
  border: 1px solid #e5e8ef;
  border-radius: 0.75rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  transition: box-shadow 0.18s, transform 0.18s;
}
.unir-project-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}
.unir-project-card.is-temporal {
  border-style: dashed;
  opacity: 0.8;
}

.unir-project-card__img {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #e5e8ef;
}
.unir-project-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.unir-project-card__body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}

.unir-project-card__estado {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2em 0.6em;
  border-radius: 2em;
  width: fit-content;
}
.unir-project-card__estado.is-en-curso {
  background: #e8f7ed;
  color: #1a7f3c;
}
.unir-project-card__estado.is-finalizado {
  background: #e8effa;
  color: #1a4fa0;
}
.unir-project-card__estado.is-previsto {
  background: #f3f0fa;
  color: #6230c5;
}

.unir-project-card__title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.unir-project-card__tag {
  font-size: 0.78rem;
  color: #0098CD;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.unir-project-card__gancho {
  font-size: 0.88rem !important;
  color: #3d4f6b !important;
  margin: 0 !important;
  line-height: 1.5 !important;
  flex: 1;
}

.unir-project-card__cta {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #0098CD !important;
  text-decoration: none !important;
  border: 1.5px solid #0098CD;
  border-radius: 2em;
  padding: 0.35em 1em;
  width: fit-content;
  transition: background 0.15s, color 0.15s;
}
.unir-project-card__cta:hover {
  background: #0098CD;
  color: #fff !important;
}

/* "Ver todos" link */
.unir-muestra__footer {
  text-align: center;
}
.unir-muestra__all {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0098CD !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
  transition: border-color 0.15s;
}
.unir-muestra__all:hover {
  border-bottom-color: #0098CD;
}

/* ── Block 4: Sobre UCC+i ───────────────────────────────────── */
.unir-section--sobre {
  background: #f8f9fb;
  border-top: 1px solid #e5e8ef;
  border-bottom: 1px solid #e5e8ef;
}

.unir-section--sobre .wp-block-group__inner-container {
  max-width: 760px;
  margin-inline: auto;
}

.unir-section--sobre h2 {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin-bottom: 1.25rem !important;
}
@media (min-width: 900px) {
  .unir-section--sobre h2 { font-size: 1.7rem !important; }
}

.unir-section--sobre p {
  font-size: 0.97rem !important;
  color: #3d4f6b !important;
  line-height: 1.7 !important;
  margin-bottom: 1rem !important;
}

/* ── Block 5: Participa ─────────────────────────────────────── */
.unir-section--participa {
  background: #0098CD;
  color: #fff;
  text-align: center;
}

.unir-section--participa .wp-block-group__inner-container {
  max-width: 640px;
  margin-inline: auto;
}
/* CTA button on cyan Participa band — white outline */
.unir-section--participa .wp-block-button__link {
  border-color: #ffffff !important;
  color: #ffffff !important;
}
.unir-section--participa .wp-block-button__link:hover {
  background: #ffffff !important;
  color: #0098CD !important;
}


.unir-section--participa h2 {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin-bottom: 0.75rem !important;
}
@media (min-width: 900px) {
  .unir-section--participa h2 { font-size: 1.7rem !important; }
}

.unir-section--participa p {
  color: rgba(255,255,255,0.85) !important;
  font-size: 0.97rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem !important;
}

.unir-section--participa .wp-block-button__link {
  border-radius: 2rem !important;
  padding: 0.65em 1.75em !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,0.6) !important;
}
.unir-section--participa .wp-block-button__link:hover {
  border-color: #fff !important;
  background: rgba(255,255,255,0.1) !important;
}

/* v1.19 fixes */
.unir-section--participa .wp-block-buttons {
  justify-content: center;
}
.unir-section--sobre {
  padding-bottom: 2.5rem;
}
@media (min-width: 900px) {
  .unir-section--sobre { padding-bottom: 4rem; }
}

/* v1.19b — center participa CTA (beat Gutenberg is-layout-flex specificity) */
.unir-section--participa .wp-block-buttons.is-layout-flex,
.unir-section--participa .wp-block-buttons.wp-block-buttons-is-layout-flex {
  justify-content: center !important;
}


/* ==========================================================================
   CSS v1.20 — Proyectos page: filter drawer + filterable grid
   ========================================================================== */

/* ── Page wrapper ─────────────────────────────────────────────────────────── */
.unir-proyectos {
  position: relative;
  padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 2rem);
  max-width: 1280px;
  margin: 0 auto;
}

/* ── Sticky trigger button ────────────────────────────────────────────────── */
.unir-proyectos__trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  background: #0098CD;
  color: #fff;
  border: none;
  border-radius: 2rem;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  margin-bottom: 2rem;
  transition: background 0.2s;
  z-index: 10;
}
.unir-proyectos__trigger:hover,
.unir-proyectos__trigger:focus-visible {
  background: #00729A;
  outline: 2px solid #00729A;
  outline-offset: 2px;
}
.unir-proyectos__trigger.is-sticky {
  position: fixed;
  top: 1.25rem;
  right: 1.5rem;
  margin-bottom: 0;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  z-index: 200;
}

/* ── Drawer overlay ───────────────────────────────────────────────────────── */
.unir-drawer__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 299;
}
.unir-drawer__overlay[hidden] { display: none; }

/* ── Drawer panel ─────────────────────────────────────────────────────────── */
.unir-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(380px, 92vw);
  background: #fff;
  box-shadow: -4px 0 24px rgba(0,0,0,0.12);
  z-index: 300;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.unir-drawer[hidden] { display: none; }

.unir-drawer__inner {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  gap: 0;
  min-height: 100%;
}

/* ── Drawer header ────────────────────────────────────────────────────────── */
.unir-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #E9E9E9;
}
.unir-drawer__title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #121212;
}
.unir-drawer__close {
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  color: #414141;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}
.unir-drawer__close:hover { background: #f0f0f0; }

/* ── Drawer sections ──────────────────────────────────────────────────────── */
.unir-drawer__section {
  margin-bottom: 1.25rem;
}
.unir-drawer__label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #121212;
  margin-bottom: 0.6rem;
}
.unir-drawer__input {
  width: 100%;
  padding: 0.6rem 0.85rem;
  border: 1px solid #E9E9E9;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.9rem;
  color: #414141;
  box-sizing: border-box;
}
.unir-drawer__input:focus {
  outline: 2px solid #0098CD;
  border-color: #0098CD;
}

/* ── Chips ────────────────────────────────────────────────────────────────── */
.unir-drawer__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.unir-chip {
  padding: 0.35rem 0.85rem;
  border: 1px solid #E9E9E9;
  border-radius: 2rem;
  background: #fff;
  font-family: inherit;
  font-size: 0.82rem;
  color: #414141;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.unir-chip:hover {
  border-color: #0098CD;
  color: #0098CD;
}
.unir-chip.is-active {
  background: #0098CD;
  border-color: #0098CD;
  color: #fff;
  font-weight: 500;
}

/* ── Más filtros (details/summary) ───────────────────────────────────────── */
.unir-drawer__more {
  border-top: 1px solid #E9E9E9;
  padding-top: 1rem;
  margin-bottom: 1rem;
}
.unir-drawer__more-toggle {
  font-size: 0.85rem;
  font-weight: 600;
  color: #0098CD;
  cursor: pointer;
  list-style: none;
  margin-bottom: 0.75rem;
}
.unir-drawer__more-toggle::-webkit-details-marker { display: none; }
.unir-drawer__more[open] .unir-drawer__more-toggle::after { content: ' ▲'; }
.unir-drawer__more:not([open]) .unir-drawer__more-toggle::after { content: ' ▼'; }

/* ── Drawer footer ────────────────────────────────────────────────────────── */
.unir-drawer__footer {
  margin-top: auto;
  padding-top: 1.5rem;
  border-top: 1px solid #E9E9E9;
  display: flex;
  gap: 0.75rem;
}
.unir-drawer__clear {
  flex: 1;
  padding: 0.6rem;
  border: 1px solid #E9E9E9;
  border-radius: 6px;
  background: #fff;
  font-family: inherit;
  font-size: 0.875rem;
  color: #414141;
  cursor: pointer;
}
.unir-drawer__clear:hover { border-color: #0098CD; color: #0098CD; }
.unir-drawer__close-btn {
  flex: 1;
  padding: 0.6rem;
  border: none;
  border-radius: 6px;
  background: #0098CD;
  color: #fff;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
}
.unir-drawer__close-btn:hover { background: #00729A; }

/* ── Body lock when drawer open ──────────────────────────────────────────── */
body.unir-drawer-open { overflow: hidden; }

/* ── Project grid ─────────────────────────────────────────────────────────── */
.unir-proyectos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}

/* ── Empty state ──────────────────────────────────────────────────────────── */
.unir-proyectos__empty {
  text-align: center;
  color: #414141;
  padding: 3rem 1rem;
  font-size: 1rem;
}
.unir-proyectos__empty-clear {
  background: none;
  border: none;
  color: #0098CD;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  text-decoration: underline;
  padding: 0;
}

/* ── Project cards (Proyectos page reuse of existing .unir-project-card) ─── */
/* Cards already styled by v1.19; extend only what differs on this page.      */
.unir-proyectos .unir-project-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #E9E9E9;
  border-radius: 0.75rem;
  overflow: hidden;
  transition: box-shadow 0.2s, transform 0.2s;
}
.unir-proyectos .unir-project-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}
.unir-proyectos .unir-project-card[hidden] { display: none; }
.unir-proyectos .unir-project-card.is-temporal {
  border-style: dashed;
  opacity: 0.7;
}

.unir-project-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #f0f4f8;
  overflow: hidden;
}
.unir-project-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
/* En Pocas Palabras wide banner has its branding on the far left —
   anchor that specific image so the speech bubble stays visible
   instead of getting cropped out by the 16:9 card frame. */
.unir-project-card__img[src*="epp-cabecera-wide"] {
  object-position: left center;
}
.unir-project-card__img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--accent, #0098CD) 0%, color-mix(in srgb, var(--accent, #0098CD) 60%, #fff) 100%);
}
.unir-project-card__badge {
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.6rem;
  border-radius: 2rem;
  background: rgba(255,255,255,0.92);
  color: #121212;
}
.unir-project-card__badge.is-finalizado { color: #0f6e56; }
.unir-project-card__badge.is-en_curso   { color: #0053AF; }
.unir-project-card__badge.is-previsto   { color: #7a5f00; }

.unir-project-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.1rem 1.25rem 1.25rem;
  gap: 0.4rem;
}
.unir-project-card__tag {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #0098CD;
}
.unir-project-card__title {
  font-size: 1rem;
  font-weight: 600;
  color: #121212;
  margin: 0;
  line-height: 1.35;
}
.unir-project-card__gancho {
  font-size: 0.875rem;
  color: #414141;
  line-height: 1.5;
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.unir-project-card__cta-wrap {
  margin-top: 0.75rem;
}
.unir-project-card__cta {
  display: inline-block;
  padding: 0.45rem 1rem;
  border: 1.5px solid #0098CD;
  border-radius: 2rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: #0098CD;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.unir-project-card__cta:hover {
  background: #0098CD;
  color: #fff;
}
.unir-project-card__cta.is-disabled {
  border-color: #E9E9E9;
  color: #999;
  cursor: default;
}

/* ── Proyectos page — heading section ─────────────────────────────────────── */
.page-id-114 .entry-content h1,
.page-id-114 .entry-content .wp-block-heading {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: #121212;
  margin-bottom: 0.35rem;
}
.page-id-114 .entry-content > p:first-of-type {
  color: #414141;
  font-size: 1.05rem;
  margin-bottom: 2rem;
}


/* ── v1.21 — Contacto page layout ───────────────────────────────────────── */
/* Constrain Fluent Form to match the centered 720px column */
.page-id-22 .wp-block-group .unir-contact-form,
.page-id-22 .fluentform-wrapper,
.page-id-22 .ff-message-success,
.page-id-22 .ff-el-group {
  max-width: 100%;
  box-sizing: border-box;
}

/* Ensure the form fields fill their container cleanly */
.page-id-22 .ff-el-input--content input,
.page-id-22 .ff-el-input--content textarea,
.page-id-22 .ff-el-input--content select {
  width: 100%;
  box-sizing: border-box;
}

/* Contacto intro heading */
.page-id-22 .wp-block-heading {
  color: #121212;
  margin-bottom: 1rem;
}

/* Email and convocatoria links */
.page-id-22 .entry-content a {
  color: #0098CD;
}
.page-id-22 .entry-content a:hover {
  color: #00729A;
}

/* ── v1.22 — Subsite top header bar ─────────────────────────────────────── */
.unir-subsite-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #121212;
  padding: 0 2rem;
  height: 76px;
  width: 100%;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  z-index: 9999;
}

.unir-subsite-topbar__logo img {
  height: 44px;
  width: auto;
  display: block;
  filter: brightness(0) invert(1);
}

.unir-subsite-topbar__back {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color 0.15s ease;
}

.unir-subsite-topbar__back:hover {
  color: #ffffff;
  text-decoration: none;
}

/* Push WP admin bar down so it doesn't overlap the topbar */
.admin-bar .unir-subsite-topbar {
  top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .unir-subsite-topbar {
    top: 46px;
  }
}

/* ── v1.23 — Subsite header: hide GP logo, topbar is the sole brand mark ── */
/* v1.24 — Topbar removed 2026-07-07: the UNIR Divulga logo now sits directly in the GP header via the generate_site_branding_output filter, so the old hide-and-expand rules are no longer needed. */

/* ── v1.24 — Full-width portal sections + color system update ─────────────── */
/* Portal home sections: full-bleed responsive backgrounds ─────────────────── */
/* Override GP's grid-container max-width on the homepage only.               */
/* The container becomes full-width; inner-containers constrain the content.  */
/* Works at ALL viewport sizes — mobile, tablet, desktop.                     */
.page-id-112 .site-content > .grid-container,
.page-id-112 .content-area,
.page-id-112 .site-main {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Remove entry-content horizontal padding on this page only                  */
.page-id-112 .entry-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Inner content: centred, padded, never wider than its per-section measure   */
/* !important needed to beat the Gutenberg inline style on inner-container    */
.page-id-112 .wp-block-group.unir-section > .wp-block-group__inner-container {
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1rem, 5vw, 3rem) !important;
  padding-right: clamp(1rem, 5vw, 3rem) !important;
  box-sizing: border-box;
  width: 100%;
}

/* Body text on dark sections: full white, not semi-transparent ─────────────── */
.unir-section--presentacion p,
.unir-section--participa p,
.unir-section--presentacion li {
  color: #ffffff !important;
  opacity: 1;
}

/* Hero paragraph — justified with centred last line */
.unir-section--presentacion p {
  text-align: justify;
  text-align-last: center;
}

/* Stats/metrics numbers: cyan is the hero ───────────────────────────────────── */
.unir-metrica__numero,
.unir-section--metricas .unir-metric-number,
[class*="metrica"] .numero,
[class*="metric"] .number {
  color: #0098CD;
}

/* H2/H3 on light sections: #121212 not deep blue ───────────────────────────── */
.unir-section--destacado h2,
.unir-section--destacado h3,
.unir-section--muestra h2,
.unir-section--muestra h3,
.unir-section--sobre h2,
.unir-section--sobre h3 {
  color: #121212;
}

/* Nav links: ensure #0098CD not GP default blue ─────────────────────────────── */
.main-navigation a,
.nav-menu a {
  color: #414141;
}
.main-navigation a:hover,
.nav-menu a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
  color: #0098CD;
}

/* ── v1.25 — Equipo grid: block-based team card layout ───────────────────── */
/* The team cards are now wp:group.unir-miembro blocks inside                  */
/* wp:group.unir-equipo__grid. These rules make them render identically       */
/* to the original raw-HTML card layout.                                       */

/* Grid: 3 columns on desktop, 1 on mobile */
.unir-equipo__grid > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding: 2rem 1.5rem 3rem;
  max-width: none !important;
}
@media (max-width: 900px) {
  .unir-equipo__grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .unir-equipo__grid > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
}

/* Card: match original .unir-team-card style */
.unir-team-card {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #ffffff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 2rem 1.5rem;
  gap: 0.5rem;
}

/* Photo: wp:image figure → circular avatar */
.unir-team-card .wp-block-image {
  margin: 0 0 0.75rem !important;
}
/* Team cards use native wp:cover for photos. Two things we need to enforce:
   1) Kill the GP-injected 40px padding on .wp-block-group__inner-container so the cover
      fills the card edge to edge.
   2) Force the card to be a flex column and let the inner text group grow so the
      social icons sit at the same y-position across every card in the row. */

/* Cover fills the card edge-to-edge */
.unir-team-card > .wp-block-group__inner-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
.unir-team-card .wp-block-cover {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
}

/* Card itself is a flex column and stretches to fill its parent column */
.wp-block-columns .wp-block-column > .unir-team-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 100% !important;
}

/* Second inner group (text + social) grows to fill remaining space in the card,
   and its own children stack so the social block can margin-top:auto to the bottom. */
.unir-team-card > .wp-block-group__inner-container > .wp-block-group:not(.wp-block-cover) {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
}
.unir-team-card > .wp-block-group__inner-container > .wp-block-group:not(.wp-block-cover) > .wp-block-group__inner-container {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  height: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.unir-team-card .wp-block-social-links {
  margin-top: auto !important;
}
.unir-team-card .wp-block-image figcaption {
  display: none;
}

/* Name */
.unir-team-card .unir-team-card__name {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: #121212 !important;
  margin: 0 !important;
}

/* Role label */
.unir-team-card .unir-team-card__role {
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #0098CD !important;
  margin: 0 0 0.5rem !important;
}

/* Bio */
.unir-team-card .unir-team-card__bio {
  font-size: 0.875rem !important;
  color: #414141 !important;
  line-height: 1.5 !important;
  margin: 0 0 auto !important;
}

/* Links row */
.unir-team-card .unir-team-card__links {
  display: flex !important;
  gap: 0.5rem !important;
  justify-content: center !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
}
.unir-team-card .unir-team-card__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #e0e0e0;
  color: #414141;
  font-size: 0.8rem;
  transition: background-color 0.2s, color 0.2s;
}
.unir-team-card .unir-team-card__links a:hover {
  background-color: #0098CD;
  color: #ffffff;
  border-color: #0098CD;
}

/* Section heading above grid */
.unir-equipo .unir-equipo__heading {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  text-align: center !important;
  color: #121212 !important;
  margin: 2rem 0 0 !important;
}

/* Remove extra spacing WP adds to inner-container */
.unir-equipo > .wp-block-group__inner-container {
  padding: 0 !important;
  max-width: 100% !important;
}

/* ── v1.26 — Team card: prevent global link/accent colour override ──────── */
.unir-team-card p,
.unir-team-card p a,
.unir-team-card .unir-team-card__name,
.unir-team-card .unir-team-card__bio {
  text-decoration: none !important;
}
.unir-team-card .unir-team-card__name {
  color: #121212 !important;
}
.unir-team-card .unir-team-card__bio {
  color: #414141 !important;
}
/* Hide figcaption inside team card avatars */
.unir-team-card .wp-block-image figcaption { display: none !important; }
/* Hide any stray block comment arrows */
.unir-team-card__avatar ~ p:first-of-type:empty { display: none; }

/* ============================================================
   v27–v30 — Equipo 3-col + Colaboradores 3-col grid
   Each colaborador = single wp:paragraph with inline ep span.
   No nested flex — works cleanly at any grid column width.
   ============================================================ */

/* --- Team cards: 3 equal columns, equal height --- */
.unir-equipo__grid.wp-block-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 2rem !important;
  width: 100%;
}
.unir-equipo__grid > .wp-block-group__inner-container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 2rem !important;
}
.unir-equipo__grid > .wp-block-group__inner-container > .unir-team-card {
  flex: 1 1 0 !important;
  min-width: 0;
}

/* --- Colaboradores section headings --- */
.unir-colaboradores__title { margin-bottom: 0.4rem; }
.unir-colaboradores__intro { color: #555; margin-bottom: 1.6rem; }

/* --- Colaboradores grid: 3 columns on the inner-container --- */
.unir-colaboradores__grid > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  column-gap: 2rem !important;
  row-gap: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* --- Each row: single paragraph, ep span floated right --- */
p.unir-colaboradores__item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 0.5rem !important;
  margin: 0 !important;
  padding: 0.55rem 0 !important;
  border-bottom: 0.5px solid #E9E9E9 !important;
  font-size: 0.9rem;
  line-height: 1.3;
}
.unir-colaboradores__ep {
  color: #888;
  font-size: 0.85rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ============================================================
   v32 — Proyecto hero: waveform at 10% opacity
   Adrián photo frame: match vignette background exactly
   ============================================================ */

/* Waveform background image: barely visible texture */
.unir-hero-inicio .wp-block-cover__image-background {
  opacity: 0.35 !important;
}

/* Adrián photo: the JPEG has #073676 baked into its edges.
   Force the figure background to match so the vignette is invisible. */



/* ------------------------------------------------------------------
   v1.21 — Fix GeneratePress .wp-block-group__inner-container wrapping
   breaking grid/flex layouts on intro, impacto-metricas, and equipo
   patterns. GP auto-wraps every wp:group's content in an
   inner-container div, which becomes the ONLY direct child of these
   grid/flex containers, collapsing the intended multi-column layout
   to a single column. Fix: let the inner-container inherit the
   parent's layout properties so the real children (image/content,
   metric cards, team cards) become the flex/grid items again.
   ------------------------------------------------------------------ */
.unir-intro__inner > .wp-block-group__inner-container,
.unir-impacto-metricas__grid > .wp-block-group__inner-container,
.unir-equipo__grid > .wp-block-group__inner-container,
.unir-objetivos__grid > .wp-block-group__inner-container,
.unir-actividades__grid > .wp-block-group__inner-container,
.unir-team-grid > .wp-block-group__inner-container,
.unir-galeria > .wp-block-group__inner-container,
.unir-videos > .wp-block-group__inner-container,
.unir-descargables > .wp-block-group__inner-container {
    display: inherit;
    grid-template-columns: inherit;
    gap: inherit;
    align-items: inherit;
    flex-wrap: inherit;
    width: 100%;
}


/* ------------------------------------------------------------------
   v1.22 — Recurso card with accompanying visual (image + content row)
   Used when a descargable/recurso has a poster/cartel image to show
   next to its title+description+CTA. Lightweight (no section padding,
   lives inside an existing .unir-descargable card).
   ------------------------------------------------------------------ */
.unir-descargable--media {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    align-items: start;
}
.unir-descargable--media > .wp-block-group__inner-container {
    display: inherit;
    grid-template-columns: inherit;
    gap: inherit;
    align-items: inherit;
    width: 100%;
}
@media (min-width: 640px) {
    .unir-descargable--media,
    .unir-descargable--media > .wp-block-group__inner-container {
        grid-template-columns: 140px 1fr;
    }
}
.unir-descargable__media-image {
    border-radius: var(--unir-radius-md);
    overflow: hidden;
    aspect-ratio: 3 / 4;
}
.unir-descargable__media-image img {
    width: 100%; height: 100%; object-fit: cover;
}


/* ============================================
   v2-comparison additions — additive only, new
   class names not used anywhere on the live
   En Pocas Palabras (blog_id=4) subsite.
   Purpose: give the métrica cards a real shared
   class instead of per-instance inline styles,
   and style the native embed wrapper for the
   Spotify show-level embed.
   ============================================ */

.unir-metricas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 2.5rem;
}
.unir-metric-card {
    background: #ffffff;
    border-radius: 8px;
    padding: 2rem 1.5rem;
    text-align: center;
}
.unir-metric-card__number {
    color: #0098CD;
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1;
    margin: 0;
}
.unir-metric-card__label {
    color: #414141;
    font-size: 0.95rem;
    margin: 0.5rem 0 0;
}
.unir-spotify-embed-proyecto,
.unir-spotify-embed-recursos {
    margin-top: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
.unir-spotify-embed-proyecto { max-width: 780px; }
.unir-spotify-embed-recursos { max-width: 840px; }
.unir-spotify-embed-proyecto .wp-block-embed__wrapper iframe,
.unir-spotify-embed-recursos .wp-block-embed__wrapper iframe {
    border-radius: 12px;
    display: block;
    width: 100%;
}


/* ============================================
   .unir-showcase — "Muestra de Proyectos" cards
   Native Cover blocks with rounded frame,
   UNIR-blue "Ver proyecto" button, sensible
   handling for both landscape and square images.
   ============================================ */

.unir-section--muestra { padding-block: 3rem; }
.unir-section--muestra > h2 {
  text-align: center;
  margin-bottom: 2rem;
}

/* ============================================
   Alignment lockdown — every home section shares
   the same content max-width and same padding so
   left/right edges line up with the Kadence rows.
   ============================================ */
.entry-content > .unir-section {
  padding-inline: 0;
}
.entry-content > .unir-section > .wp-block-group__inner-container {
  max-width: 1170px;
  margin-inline: auto;
  padding-inline: 0;
  box-sizing: border-box;
}
@media (max-width: 1200px) {
  .entry-content > .unir-section > .wp-block-group__inner-container {
    padding-inline: 1.5rem;
  }
}
.unir-section--muestra > h2 {
  text-align: left;
  margin: 0 0 1.5rem;
}

.unir-showcase-row {
  gap: 1.5rem;
}

/* Destacado card — SAME size as a Muestra grid card, so it visually
   matches the grid it sits above. Do not stretch to container width. */
.unir-section--destacado {
  padding-block: 0 3rem;
}
.unir-section--muestra {
  padding-block: 0 3rem;
}
.unir-showcase-solo .unir-showcase__cover {
  max-width: calc((100% - 1.5rem) / 2);
  margin-inline: 0;
}
@media (max-width: 782px) {
  .unir-showcase-solo .unir-showcase__cover { max-width: 100%; }
}
.unir-showcase__cover {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 0;
  background-color: #073676;
  aspect-ratio: 4 / 3 !important;
  min-height: 0 !important;
  height: auto !important;
}
.unir-showcase__cover .wp-block-cover__image-background {
  object-fit: cover !important;
  object-position: left center !important;
}
/* Autism card has a landscape photo — keep it centered */
.wp-block-column:nth-child(2) .unir-showcase__cover .wp-block-cover__image-background {
  object-position: center center !important;
}
/* Dark bottom-to-top gradient behind text, on top of the image */
.unir-showcase__cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,54,118,0) 40%, rgba(7,54,118,0.92) 100%);
  pointer-events: none;
  z-index: 1;
}
.unir-showcase__cover .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  padding: 1.5rem 1.75rem;
  width: 100% !important;
  max-width: none;
  margin: 0 !important;
  background: transparent;
  border-radius: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.unir-showcase__title {
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  text-align: right !important;
}
.unir-showcase__eyebrow {
  text-align: right !important;
}
.unir-showcase__cover .wp-block-buttons {
  justify-content: flex-end !important;
}
@media (max-width: 782px) {
  .unir-showcase-row .wp-block-column { flex-basis: 100% !important; }
  .unir-showcase__cover { aspect-ratio: 16 / 9 !important; }
  .unir-showcase__cover .wp-block-cover__inner-container { padding: 1.25rem; }
}
.unir-showcase__cover .wp-block-cover__inner-container {
  padding: 2.5rem;
}
.unir-showcase__eyebrow {
  color: rgba(255,255,255,0.9) !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 0.5rem !important;
  font-weight: 600 !important;
}
.unir-showcase__title {
  font-size: 1.8rem !important;
  font-weight: 500 !important;
  color: #ffffff !important;
  margin: 0 0 1.25rem !important;
  line-height: 1.25 !important;
}

/* Ver proyecto button — UNIR blue, matches the site palette.
   Scoped to unir-showcase so it does not affect other buttons. */
.unir-showcase .wp-block-buttons .wp-block-button__link {
  background-color: #0098CD !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 0.65rem 1.5rem !important;
  font-weight: 500 !important;
  transition: background-color 0.18s ease;
}
.unir-showcase .wp-block-buttons .wp-block-button__link:hover,
.unir-showcase .wp-block-buttons .wp-block-button__link:focus {
  background-color: #006C8F !important;
}

/* Square/portrait images (like the EPP square logo) look terrible
   when force-cropped into a wide letterbox. Detect via aspect ratio
   is not possible in CSS, so we tag EPP explicitly using the id class. */
.unir-showcase.wp-block-cover img.wp-block-cover__image-background {
  object-position: center center;
}

@media (max-width: 782px) {
  .unir-showcase__cover { min-height: 340px !important; }
  .unir-showcase__cover .wp-block-cover__inner-container { padding: 1.5rem; }
  .unir-showcase__title { font-size: 1.4rem !important; }
}


/* ─── Team card brand icons (2026-07-07) ─────────────────────────────
   Icons live in a native wp:paragraph with the class .unir-team-card__icons.
   Each anchor has class .unir-team-icon and contains either an <i> FontAwesome
   brand icon or an <img> (for UNIR). Hover uses the native title tooltip. */
.unir-team-card__icons {
  display: flex !important;
  justify-content: center !important;
  gap: 1rem !important;
  margin-top: auto !important;
  padding-top: 1rem !important;
}
.unir-team-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f0f2f5;
  color: #0A2240;
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none !important;
  border: none !important;
  transition: background-color 0.2s, color 0.2s, transform 0.2s;
}
.unir-team-icon:hover,
.unir-team-icon:focus {
  background: #0098CD;
  color: #ffffff !important;
  transform: translateY(-2px);
}
.unir-team-icon i {
  font-size: 1.25rem;
  line-height: 1;
}
.unir-team-icon--img img {
  width: 20px !important;
  height: 20px !important;
  display: block;
  margin: 0 !important;
  transition: filter 0.2s;
}
.unir-team-icon--img:hover img,
.unir-team-icon--img:focus img {
  /* invert dark-navy fill to white on hover */
  filter: brightness(0) invert(1);
}


/* v1.27 — Recursos (EPP) episode grid: 3 columns, uniform card size */
.unir-recursos__lista > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.unir-recursos__lista > .wp-block-group__inner-container > h3.wp-block-heading {
  grid-column: 1 / -1;
}
.unir-episodio {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 16px;
  background: #ffffff;
  border: 1px solid #e2e2e2;
  border-left: 3px solid #0098CD;
  border-radius: 8px;
  box-sizing: border-box;
}
.unir-episodio > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.unir-episodio > .wp-block-group__inner-container {
  padding: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  align-self: stretch !important;
}
.unir-episodio > .wp-block-group__inner-container.is-layout-constrained > * {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.unir-episodio__title {
  font-size: 1rem;
  line-height: 1.35;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 5.4em;
  flex-shrink: 0;
}
.unir-episodio__meta {
  font-size: 0.85rem;
  color: #666666;
  margin: 0 0 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 0;
}
.unir-episodio__embed {
  margin-top: auto;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 6px;
  background: #f4f4f4;
  box-sizing: border-box;
}
.unir-episodio__embed iframe {
  height: 100% !important;
  width: 100% !important;
  border-radius: 6px;
}
.unir-episodio__embed--cover {
  background: #0098CD;
}
.unir-episodio__embed--cover img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  border-radius: 0;
  display: block;
  margin: 0 auto;
}
.unir-episodio__embed--cover a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.unir-episodio__pending {
  margin-top: auto;
  font-style: italic;
  color: #999999;
  font-size: 0.9rem;
  width: 100%;
  aspect-ratio: 16 / 9;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f4f4;
  border-radius: 6px;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .unir-recursos__lista > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .unir-recursos__lista > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
}


/* unir-recurso-card image display */
.unir-recurso-card .wp-block-cover {
  background-color: #f5f7fa;
}
.unir-recurso-card .wp-block-cover__image-background {
  object-fit: contain !important;
}


/* ── v2.0 — Homepage (Inicio) brand alignment ─────────────────────────────
   Wires page 129 to the pre-built Presentacion/Destacado/Muestra/Sobre/
   Participa classes, fixes nav + footer tokens, adds intro-text section
   and Proyecto-destacado heading (not present in original v1.19 patch).
   ========================================================================= */

/* Nav active state -> brand link token */
.main-navigation .current-menu-item > a {
  color: #0053AF !important;
}

/* Footer strip -> unify to UNIR navy (site-wide) */
.site-footer {
  background-color: var(--unir-primary-dark) !important;
}

/* New standalone intro-text block (Block 1b, on white, not inside hero) */
.unir-section--intro {
  background: #fff;
}
.unir-section--intro .wp-block-group__inner-container {
  max-width: 1080px;
  margin-inline: auto;
}
.unir-section--intro p {
  font-size: 1.05rem;
  color: #414141;
  line-height: 1.7;
  margin: 0;
}

/* Proyecto destacado -- section heading (mirrors Muestra/Sobre weight) */
.unir-destacado__header-title {
  font-size: clamp(1.4rem, 2.5vw, 1.8rem) !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin: 0 0 2rem !important;
}

/* Destacado media needs a positioning context for the status badge */
.unir-destacado__media {
  position: relative;
}

/* Image fill for grid-based img-wrap box (project-card only -- has aspect-ratio) */
.unir-project-card__img-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
}
.unir-project-card__img-wrap figure {
  margin: 0;
  height: 100%;
}
/* Destacado media: give it a defined aspect box (like project-card) and fill
   it absolutely -- sidesteps the figure width:fit-content cascade issue */
.unir-destacado__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 0.75rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.12);
}
.unir-destacado__media figure {
  margin: 0;
  height: 100%;
}
.unir-destacado__media figure img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}


/* ── v2.1 — Hero color, destacado box, EPP anchor, spacing cleanup ────── */

/* 1) Hero -> real UNIR blue, not navy. Fill button flips to white/blue so
      it stays visible against the blue background. */
.unir-section--presentacion {
  background: #0098CD;
}
.unir-presentacion__ctas .is-style-fill .wp-block-button__link {
  background: #fff !important;
  color: #0098CD !important;
  border: 2px solid #fff !important;
}
.unir-presentacion__ctas .is-style-fill .wp-block-button__link:hover {
  background: #eaf7fc !important;
}

/* 2) Proyecto destacado -- wrap in the same box language as .unir-project-card */
.unir-destacado__inner {
  background: #fff;
  border: 1px solid #e5e8ef;
  border-radius: 0.75rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  padding: 1.5rem;
}
.unir-destacado__media {
  box-shadow: none; /* outer card now carries the shadow */
}

/* 3) EPP (and any project) card image can be anchored instead of centre-cropped */
.unir-project-card__img-wrap.is-anchor-left img {
  object-position: left center;
}

/* 4) Spacing cleanup -- the wrapper groups were each carrying their own
      default margin on top of explicit heading/flex-gap spacing, compounding
      into very large gaps. Zero the wrappers, control rhythm via section
      padding + the flex gaps that already exist on *__body. */
.unir-muestra__header,
.unir-muestra,
.unir-destacado,
.unir-destacado__inner,
.unir-muestra__footer,
.unir-muestra__grid {
  margin: 0 !important;
}
.unir-destacado__body > p,
.unir-project-card__body > p,
.unir-muestra__footer p {
  margin: 0 !important;
}
.unir-muestra__header {
  margin-bottom: 0 !important;
}

/* Deliberate, single source of vertical rhythm per section */
.unir-section--presentacion { padding: 4rem 1.5rem 3rem; }
.unir-section--intro        { padding: 2.5rem 1.5rem; }
.unir-section--destacado    { padding: 3rem 1.5rem; }
.unir-section--muestra      { padding: 3rem 1.5rem; }
.unir-section--sobre        { padding: 3rem 1.5rem; }
.unir-section--participa    { padding: 3rem 1.5rem; }


/* ── v2.2 — kill the compounding default inner-container padding ──────────
   WP core's block-layout support auto-applies padding-top (from the theme's
   blockGap setting) to every nested .wp-block-group__inner-container. My
   homepage markup nests groups several levels deep per section, so that
   ~40px was stacking 4-5x per section. Zero it everywhere in these
   sections; spacing is now controlled solely by explicit section padding
   and the flex gaps already set on *__body elements. */
.unir-section--presentacion .wp-block-group__inner-container,
.unir-section--intro .wp-block-group__inner-container,
.unir-section--destacado .wp-block-group__inner-container,
.unir-section--muestra .wp-block-group__inner-container,
.unir-section--sobre .wp-block-group__inner-container,
.unir-section--participa .wp-block-group__inner-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


/* ── v2.3 — Proyecto destacado: single column, bigger image, no 2nd column ─
   Was a 2-col grid (image | text) inherited from the old unused v1.19 CSS.
   Switching to single-column, stacked like .unir-project-card but larger,
   image flush to the top of the card (rounded top corners only), body
   padded below. display:block neutralises the old grid-template-columns
   media-query rule further up the file. */
.unir-destacado__inner {
  display: block;
  max-width: 620px;
  margin-inline: auto;
  padding: 0;
  overflow: hidden;
}
.unir-destacado__media {
  position: relative;
  aspect-ratio: 16 / 9;      /* was 4/3 -- wider + full card width = ~1.5x+ the previous image size */
  overflow: hidden;
  border-radius: 0;
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
  box-shadow: none;
}
.unir-destacado__body {
  padding: 1.5rem;
}


/* ── v2.4 — Muestra grid: match Destacado's box width while there's only
   one sample project. Was constrained to a 1/3-width grid track even
   though it's the sole card. Revisit grid-template-columns once more real
   projects land and this genuinely needs multiple columns. */
.unir-muestra__grid {
  grid-template-columns: 1fr;
  max-width: 620px;
  margin-inline: auto;
}

.unir-muestra__grid .unir-project-card {
  width: 100%;
}


/* ── v2.5 — the default WP inner-container padding was also 40px LEFT/RIGHT,
   not just top/bottom (v2.2 only zeroed vertical). That's what was eating
   80px off the muestra card's width (620 -> 540). Zero all four sides. */
.unir-section--presentacion .wp-block-group__inner-container,
.unir-section--intro .wp-block-group__inner-container,
.unir-section--destacado .wp-block-group__inner-container,
.unir-section--muestra .wp-block-group__inner-container,
.unir-section--sobre .wp-block-group__inner-container,
.unir-section--participa .wp-block-group__inner-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* ── v2.6 — the actual CSS-grid item is .unir-muestra__grid's direct child
   (the auto-inserted .wp-block-group__inner-container), not .unir-project-card
   two levels down. That direct child wasn't stretching to the 620px track.
   Force it explicitly instead of relying on default justify-items:stretch. */
.unir-muestra__grid > .wp-block-group__inner-container {
  width: 100% !important;
}


/* ── v2.7 — flex column stretch wasn't reliably filling width for children
   that also carry aspect-ratio (img-wrap) -- known flex+aspect-ratio
   interaction quirk. Force width explicitly instead of relying on stretch. */
.unir-project-card__img-wrap,
.unir-project-card__body,
.unir-destacado__media,
.unir-destacado__body {
  width: 100% !important;
}


/* ── v2.8 — same flex-stretch issue, one level higher: .unir-project-card's
   own auto-generated .wp-block-group__inner-container (its actual direct
   flex child) wasn't stretching to the card's 620px width. Everything below
   it inherited that 395px ceiling. Fix at the real bottleneck. */
.unir-project-card > .wp-block-group__inner-container {
  width: 100% !important;
}


/* ── v2.9 — fix box centering + heading alignment.
   The v2.1 spacing-cleanup rule zeroed margin on .unir-destacado__inner and
   .unir-muestra__grid with !important, which silently killed their intended
   margin-inline:auto centering (set later in v2.3/v2.4, but non-important
   rules can't beat an earlier !important one). That left both boxes flush
   against their section's left edge -- and since Destacado's container is
   960px and Muestra's is 1080px, their flush-left edges landed at different
   x-positions, i.e. the two sections didn't line up.
   Restore centering with matching specificity+importance, and center the
   headings above each box the same way so heading and box share edges. */
.unir-destacado__inner,
.unir-muestra__grid {
  margin-left: auto !important;
  margin-right: auto !important;
}
.unir-destacado__header-title,
.unir-muestra__title {
  max-width: 620px;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}


/* ── v3.0 — left-align instead of center, matching the rest of the site's
   convention. Also unify Destacado's and Muestra's container width (was
   960px vs 1080px) so their content lines up on the same left edge -- this
   also means once more projects land and Muestra becomes a real multi-card
   grid, it'll sit flush with Destacado above it rather than needing another
   pass. */
.unir-section--destacado .wp-block-group__inner-container {
  max-width: 1080px !important;
}

.unir-destacado__header-title,
.unir-muestra__title {
  text-align: left;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.unir-destacado__inner,
.unir-muestra__grid {
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* ── v3.1 — breathing room between the last project card and "Ver todos
   los proyectos" (was flush at 0px from the earlier blanket margin reset). */
.unir-muestra__footer {
  margin-top: 2rem !important;
}


/* ── v3.2 — "Sobre la UCC+i y Divulga" was still on the old dormant 760px
   centered container (left edge 386px), not matching Destacado/Muestra's
   1080px left-aligned container (left edge 226px). Match it. */
/* Keep this container centered like Destacado/Muestra's own containers --
   the margin-left:0 was wrongly applied here (should only zero the *content*
   margin, not the container's own centering, which is what put it at 24px
   instead of matching the 226px shared left edge). */
.unir-section--sobre .wp-block-group__inner-container {
  max-width: 1080px !important;
}
.unir-section--sobre h2,
.unir-section--sobre p {
  max-width: 760px;
  margin-left: 0 !important;
}

/* =========================================================================
   v3.3 — Portal home dynamic grid
   -------------------------------------------------------------------------
   Both [divulga_destacado] and [divulga_muestra] wrap their cards in
   .unir-home-project-grid. Grid scales 3 → 2 → 1 by fixed breakpoints
   (no clamp / no auto-fit per project convention). When a section renders
   exactly one card, .is-single centers it and caps its width.
   ========================================================================= */
.unir-home-project-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 16px;
	box-sizing: border-box;
}
@media (max-width: 900px) {
	.unir-home-project-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 600px) {
	.unir-home-project-grid {
		grid-template-columns: 1fr;
	}
}
.unir-home-project-grid.is-single {
	grid-template-columns: 1fr;
	max-width: 720px;
}

/* v1.9 - equal-height cards fill their stretched column */
.unir-colaborador-card,
.unir-prensa-card,
.unir-noticia-card {
    height: 100%;
}

/* Entidades colaboradoras — optional logo above the entity title (pattern 60) */
.unir-colaborador-card__logo.wp-block-image {
	margin: 0 0 0.75rem 0;
}
.unir-colaborador-card__logo {
	/* reserved logo slot: fixed height, bottom-aligned, so titles align across cards */
	height: 100px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	margin: 0 0 1rem 0 !important;
}
.unir-colaborador-card__logo img {
	max-height: 80px;
	max-width: 220px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

/* Recursos: horizontal card layout (image left, text right, full image visible) */
.unir-recurso-card--horizontal > .wp-block-group__inner-container {
	display: flex !important;
	align-items: flex-start;
	gap: 0;
}
.unir-recurso-card--horizontal .unir-recurso-card__thumb {
	flex: 0 0 280px;
	width: 280px;
	min-width: 280px;
	background: #ffffff;
}
.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-cover {
	min-height: 0 !important;
	height: 220px;
}
.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-cover__image-background {
	object-fit: cover;
}
.unir-recurso-card--horizontal.unir-recurso-card--contain .unir-recurso-card__thumb .wp-block-cover__image-background {
	object-fit: contain;
}
.unir-recurso-card--horizontal .unir-recurso-card__body {
	flex: 1 1 auto;
	padding: 1.5rem;
	min-width: 0;
}
@media (max-width: 782px) {
	.unir-recurso-card--horizontal > .wp-block-group__inner-container {
		flex-direction: column;
	}
	.unir-recurso-card--horizontal .unir-recurso-card__thumb {
		flex-basis: auto;
		width: 100%;
		min-width: 0;
	}
}

/* Recursos: thumbnail width modifiers by image orientation */
.unir-recurso-card--horizontal.unir-recurso-card--thumb-narrow .unir-recurso-card__thumb {
	flex-basis: 260px;
	width: 260px;
	min-width: 260px;
}
.unir-recurso-card--horizontal.unir-recurso-card--thumb-wide .unir-recurso-card__thumb {
	flex-basis: 420px;
	width: 420px;
	min-width: 420px;
}
.unir-recurso-card--horizontal.unir-recurso-card--thumb-medium .unir-recurso-card__thumb {
	flex-basis: 340px;
	width: 340px;
	min-width: 340px;
}
@media (max-width: 782px) {
	.unir-recurso-card--horizontal.unir-recurso-card--thumb-narrow .unir-recurso-card__thumb,
	.unir-recurso-card--horizontal.unir-recurso-card--thumb-wide .unir-recurso-card__thumb,
	.unir-recurso-card--horizontal.unir-recurso-card--thumb-medium .unir-recurso-card__thumb {
		flex-basis: auto;
		width: 100%;
		min-width: 0;
	}
}

.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-group__inner-container {
	padding: 0 !important;
}
.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-cover {
	padding: 0 !important;
}

.unir-recurso-card--horizontal .unir-recurso-card__body .wp-block-group__inner-container {
	padding: 0 !important;
}
.unir-recurso-card--horizontal > .wp-block-group__inner-container {
	align-items: flex-start;
}

/* v1.10 - override global !important block-gap margin for unir-recurso-card--horizontal cards */
.unir-recurso-card.unir-recurso-card--horizontal > .wp-block-group__inner-container > .unir-recurso-card__body {
	margin-top: 0 !important;
}
/* v1.11b - unir-recurso-mediatext: rounded-corner clip, image cover/contain, top-align, spacing */
.unir-recurso-mediatext {
	overflow: hidden;
	align-items: stretch;
}
.unir-recurso-mediatext .wp-block-media-text__media {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #f5f7fb;
}
.unir-recurso-mediatext .wp-block-media-text__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Card 2 (Teaser) uses contain so the OpenClass poster isn't cropped on the sides */
.unir-recurso-mediatext-contain .wp-block-media-text__media img {
	object-fit: contain !important;
}
.unir-recurso-mediatext .wp-block-media-text__content {
	padding: 2.5rem 2rem 1.5rem 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-self: start;
}
@media (max-width: 600px) {
	.unir-recurso-mediatext.is-stacked-on-mobile {
		grid-template-columns: 1fr !important;
	}
	.unir-recurso-mediatext.is-stacked-on-mobile .wp-block-media-text__media {
		height: 220px;
	}
	.unir-recurso-mediatext.is-stacked-on-mobile .wp-block-media-text__content {
		padding: 1.5rem;
	}
}
/* v1.12 - autismo recursos thumb white background (override old grey #f5f7fa) */
.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-cover,
.unir-recurso-card--horizontal .unir-recurso-card__thumb .wp-block-cover__background {
	background-color: #ffffff !important;
}
/* v1.13 - unir-colaboradores__grid: fixed 3-column grid, equal card heights */
.unir-colaboradores__grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	align-items: stretch;
}
.unir-colaboradores__grid > * {
	flex-basis: auto !important;
	max-width: none !important;
	width: auto !important;
	margin: 0 !important;
}
.unir-colaboradores__grid .unir-colaborador-card--compact {
	height: 100%;
	min-height: 160px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
.unir-colaboradores__grid {
	grid-auto-rows: 1fr;
}
.unir-colaboradores__grid .unir-colaborador-card--compact .wp-block-group__inner-container {
	height: 100%;
	display: flex;
	flex-direction: column;
}
@media (max-width: 900px) {
	.unir-colaboradores__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.unir-colaboradores__grid { grid-template-columns: 1fr; }
}
/* v1.14 - unir-team-card figure image uniform height (cover, top-focus) */
.unir-team-card > .wp-block-image,
.unir-team-card .wp-block-image {
	margin: 0 !important;
	width: 100% !important;
	height: 300px !important;
	overflow: hidden;
	border-radius: 12px 12px 0 0;
}
.unir-team-card .wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center top !important;
	display: block;
}

/* ---------- FAQ accordion (Preguntas frecuentes) — minimal chrome ---------- */
/* Frame removed entirely: spacing only, no divider lines */
.unir-faq .kt-blocks-accordion-header {
  border: none !important;
  background: transparent !important;
  padding: 0.6rem 0 !important;
}
.unir-faq .wp-block-kadence-pane {
  margin-bottom: 0.5rem !important;
}
.unir-faq .kt-blocks-accordion-header:hover,
.unir-faq .kt-blocks-accordion-header[aria-expanded="true"] {
  background: transparent !important;
}
/* Questions: semibold (friendlier than full bold), dark navy */
.unir-faq .kt-blocks-accordion-title {
  font-weight: 600 !important;
  color: #0A2240 !important;
}
/* Match the page's standard 1080px content width (other sections use this
   same custom max-width pattern instead of the block editor's native
   "constrained" layout, which was rendering 1170px and causing a mismatch) */
.unir-faq .wp-block-group__inner-container {
  max-width: 1080px !important;
  margin-inline: auto !important;
}
/* Double spacing between each FAQ group heading — beats the sitewide
   ".wp-block-group.has-background .wp-block-heading { margin-top: 0 }" rhythm rule */
.wp-block-group.has-background.unir-faq .unir-faq__group-heading {
  margin-top: 4rem !important;
}
/* Plus/minus icon hidden entirely — not needed */
.unir-faq .kt-blocks-accordion-icon-trigger {
  display: none !important;
}
/* Answer text sits flush, no extra boxed padding */
.unir-faq .kt-blocks-accordion-panel-inner {
  padding: 0 0 0.85rem !important;
}

/* ---------- Blog listing (Query Loop grid) ---------- */
.unir-blog-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.unir-blog-grid > li {
  list-style: none;
  margin: 0;
}
.unir-blog-card {
  height: 100%;
}
.unir-blog-card img {
  width: 100%;
  object-fit: cover;
}
@media (max-width: 900px) {
  .unir-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .unir-blog-grid { grid-template-columns: 1fr; }
}
.unir-blog-list .wp-block-group__inner-container {
  max-width: 1170px !important;
  margin-inline: auto !important;
}
.unir-blog-header .wp-block-group__inner-container {
  max-width: 1170px !important;
  margin-inline: auto !important;
}

/* Blog listing page: hide default theme title (custom header block used instead) */
.page-id-20 .entry-header {
  display: none;
}
