:root {
    --paper: #f4f0e7;
    --paper-2: #e8ebdd;
    --peat: #173a31;
    --ink: #252925;
    --rust: #a84724;
    --gold: #d2a72b;
    --sage: #b9c6ae;
    --line: #cfc6b7;
    --dark: #101917;
    --teal: #2f6960;
    --header-height: 82px;
}

/*==================================================
    GALERÍA DE CAMPO · NARRATIVA FOTOGRÁFICA
==================================================*/

.field-gallery {
    padding-top: clamp(4.5rem, 8vw, 8rem);
    padding-bottom: clamp(4.5rem, 8vw, 8rem);
    background: var(--paper-2);
}

.field-gallery-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    max-width: 1320px;
    margin: 0 auto clamp(2.2rem, 4vw, 4rem);
}

.field-gallery-heading h2 {
    max-width: 780px;
    margin: 1rem 0 0;
    color: var(--peat);
    font: 400 clamp(3rem, 5.8vw, 6.2rem)/.94 Georgia, serif;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.field-gallery-heading>p {
    max-width: 560px;
    margin: 0;
    color: #42524b;
    font-size: .96rem;
    line-height: 1.75;
}

.field-gallery-stage {
    position: relative;
    max-width: 1320px;
    margin: 0 auto;
    overflow: hidden;
    background: var(--dark);
}

.field-gallery-slide {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.58fr) minmax(320px, .72fr);
    min-height: min(680px, 72dvh);
    margin: 0;
    animation: fieldGalleryEntrance .55s ease both;
}

.field-gallery-slide[hidden] {
    display: none;
}

.field-gallery-slide img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
}

.field-gallery-slide figcaption {
    display: flex;
    padding: clamp(2.2rem, 5vw, 4.8rem);
    flex-direction: column;
    justify-content: flex-end;
    color: #d5e1db;
    background: var(--dark);
}

.field-gallery-slide figcaption span {
    margin-bottom: 1.25rem;
    color: var(--gold);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.field-gallery-slide figcaption strong {
    color: var(--paper);
    font: 400 clamp(2rem, 3vw, 3.5rem)/1.02 Georgia, serif;
    letter-spacing: -.025em;
}

.field-gallery-slide figcaption p {
    margin: 1.35rem 0 0;
    color: #abc0b7;
    font-size: .9rem;
    line-height: 1.7;
}

.field-gallery-controls {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: grid;
    grid-template-columns: auto minmax(80px, 160px) 48px auto 48px;
    gap: .75rem;
    align-items: center;
    width: min(100%, 550px);
    padding: 1rem 1.25rem;
    color: var(--paper);
    background: rgba(16, 25, 23, .96);
    border-top: 1px solid rgba(185, 198, 174, .2);
}

.field-gallery-controls p {
    margin: 0;
    color: var(--sage);
    font: 400 .82rem/1 Georgia, serif;
}

.field-gallery-progress {
    height: 1px;
    overflow: hidden;
    background: rgba(185, 198, 174, .28);
}

.field-gallery-progress i {
    display: block;
    width: 20%;
    height: 100%;
    background: var(--gold);
    transition: width .4s ease;
}

.field-gallery-controls button {
    min-height: 38px;
    padding: 0 .65rem;
    border: 1px solid rgba(185, 198, 174, .28);
    background: transparent;
    color: var(--paper);
    cursor: pointer;
}

.field-gallery-controls button:hover {
    border-color: var(--gold);
    color: var(--gold);
}

.field-gallery-credit {
    max-width: 1320px;
    margin: .9rem auto 0;
    color: rgba(23, 58, 49, .6);
    font-size: .65rem;
    letter-spacing: .06em;
}

@keyframes fieldGalleryEntrance {
    from { opacity: 0; transform: scale(1.012); }
    to { opacity: 1; transform: scale(1); }
}

/*==================================================
    NUEVOS RESULTADOS · VARIANTES DE TARJETAS
==================================================*/

.visual-allelopathy .publication-mini-visual,
.visual-soil .publication-mini-visual {
    background: linear-gradient(145deg, rgba(47, 105, 96, .08), rgba(210, 167, 43, .08));
}

.visual-allelopathy .publication-mini-visual i {
    width: 2px;
    height: calc(22% + var(--i, 0%));
    background: var(--teal);
    transform-origin: bottom;
}

.visual-allelopathy .publication-mini-visual i:nth-child(1) { --i: 15%; }
.visual-allelopathy .publication-mini-visual i:nth-child(2) { --i: 35%; }
.visual-allelopathy .publication-mini-visual i:nth-child(3) { --i: 68%; background: var(--gold); }
.visual-allelopathy .publication-mini-visual i:nth-child(4) { --i: 30%; }
.visual-allelopathy .publication-mini-visual i:nth-child(5) { --i: 48%; }

.visual-soil .publication-mini-visual i {
    align-self: end;
    width: 13%;
    border: 1px solid var(--teal);
    border-bottom: 0;
}

.visual-soil .publication-mini-visual i:nth-child(odd) { height: 32%; }
.visual-soil .publication-mini-visual i:nth-child(even) { height: 53%; border-color: var(--gold); }

/*==================================================
    FIGURAS CIENTÍFICAS · EVIDENCIA MÚLTIPLE
==================================================*/






.research-figure-dialog-wide {
    width: min(1380px, calc(100vw - 2rem));
}

.research-figure-dialog-wide .research-figure-shell {
    grid-template-columns: minmax(480px, 1.18fr) minmax(410px, .82fr);
}

.research-figure-image-light {
    background: #eef0e7;
}

.research-figure-image-light img {
    max-height: min(62dvh, 650px);
}

.research-figure-evidence-stack {
    display: block;
    padding: 2rem;
    overflow-y: auto;
    background: #e7e9df;
}

.research-figure-evidence-stack figure {
    height: auto;
    margin: 0 0 1.5rem;
    padding: 1.25rem;
    background: #fff;
}

.research-figure-evidence-stack figure:last-child {
    margin-bottom: 0;
}

.research-figure-evidence-stack img {
    max-height: 48dvh;
    box-shadow: none;
}

.research-evidence-map img {
    max-height: 43dvh;
}

/*==================================================
    NUEVAS SECCIONES · RESPONSIVE
==================================================*/

@media (max-width: 900px) {
    .field-gallery-heading {
        grid-template-columns: 1fr;
    }

    .field-gallery-slide {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .field-gallery-slide img {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .field-gallery-slide figcaption {
        min-height: 280px;
        padding-bottom: 5.5rem;
    }

    .field-gallery-controls {
        width: 100%;
    }

    .research-figure-dialog-wide .research-figure-shell {
        display: block;
        overflow-y: auto;
    }
}

@media (max-width: 600px) {
    .field-gallery {
        padding-inline: 1rem;
    }

    .field-gallery-heading h2 {
        font-size: clamp(2.65rem, 13vw, 4rem);
    }

    .field-gallery-slide img {
        aspect-ratio: 4 / 3;
    }

    .field-gallery-slide figcaption {
        min-height: 330px;
        padding: 2rem 1.35rem 6.5rem;
        justify-content: flex-start;
    }

    .field-gallery-controls {
        grid-template-columns: auto 1fr 42px auto 42px;
        gap: .35rem;
        padding: .8rem;
    }

    .field-gallery-controls button {
        padding-inline: .4rem;
        font-size: .72rem;
    }

    .research-figure-dialog-wide {
        width: 100%;
    }

    .research-figure-evidence-stack {
        padding: 4.6rem .85rem 1rem;
    }

    .research-figure-evidence-stack figure {
        padding: .65rem;
    }

}

@media (prefers-reduced-motion: reduce) {
    .field-gallery-slide {
        animation: none;
    }
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height);
}

body {
    margin: 0;
    padding-top: var(--header-height);
    background: var(--paper);
    color: var(--ink);
    font-family: Inter, Arial, sans-serif;
}

a {
    color: inherit;
    text-decoration: none
}

button {
    font: inherit
}

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

.brand,
.footer-brand {
    font-family: Georgia, serif;
    font-size: 1.55rem;
    color: var(--peat)
}

.brand span,
.footer-brand span {
    font-style: italic;
    font-size: .78em
}


/*==================================================
 LOGO
==================================================*/
.brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}

.brand-icon {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex: 0 0 auto;
    filter: saturate(.78);
    opacity: .9;
}

.brand-text {
    padding-left: .8rem;
    border-left: 1px solid rgba(23, 58, 49, .22);
    color: var(--peat);
    font-family: Georgia, serif;
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1;
}

.brand-text em {
    font-size: .84em;
    font-weight: 400;
}

@media (max-width: 700px) {

    .brand-icon {
        width: 34px;
        height: 34px;
    }

    .brand-text {
        font-size: 1.05rem;
    }

    .brand-text em {
        display: none;
    }
}

/*==================================================
    INSTRUCTIVO EPICollect5
==================================================*/

.participation-section .participatory-monitoring-status {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
    transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}

.participation-section .participatory-monitoring-status:hover {
    color: var(--rust);
    border-color: var(--rust);
    background: rgba(255, 255, 255, .72);
}

.epicollect-guide {
    width: min(1320px, 100%);
    margin: clamp(1.5rem, 2.5vw, 2.25rem) auto 0;
    color: #e8eee7;
    background: var(--dark);
}

.epicollect-guide summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 2rem;
    align-items: center;
    min-height: 118px;
    padding: 1.6rem clamp(1.5rem, 3vw, 2.8rem);
    cursor: pointer;
    list-style: none;
}

.epicollect-guide summary::-webkit-details-marker {
    display: none;
}

.epicollect-guide summary span {
    display: grid;
    gap: .45rem;
}

.epicollect-guide summary small {
    color: var(--gold);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.epicollect-guide summary strong {
    color: #f0ede3;
    font: 400 clamp(1.45rem, 2.2vw, 2.15rem)/1.15 Georgia, serif;
}

.epicollect-guide summary>b {
    position: relative;
    display: block;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(169, 196, 184, .4);
    border-radius: 50%;
}

.epicollect-guide summary>b::before,
.epicollect-guide summary>b::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background: var(--gold);
    transform: translate(-50%, -50%);
    transition: transform .3s ease;
}

.epicollect-guide summary>b::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.epicollect-guide[open] summary>b::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.epicollect-guide[open] summary {
    border-bottom: 1px solid rgba(169, 196, 184, .18);
}

.epicollect-guide-body {
    padding: clamp(2rem, 4vw, 4rem) clamp(1.5rem, 4vw, 4rem) clamp(2.5rem, 5vw, 5rem);
}

.epicollect-guide-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr);
    gap: 1rem clamp(3rem, 7vw, 8rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.epicollect-guide-intro .eyebrow {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--gold);
}

.epicollect-guide-intro h3 {
    max-width: 720px;
    margin: 0;
    color: #f0ede3;
    font: 400 clamp(2.35rem, 4vw, 4.25rem)/.98 Georgia, serif;
    letter-spacing: -.04em;
}

.epicollect-guide-intro>p:last-child {
    max-width: 500px;
    margin: 0;
    color: #afc2ba;
    font-size: .92rem;
    line-height: 1.75;
}

.epicollect-guide-resources {
    display: grid;
    grid-template-columns: minmax(260px, 1.15fr) repeat(2, minmax(210px, .85fr));
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
    border-top: 1px solid rgba(169, 196, 184, .2);
    border-left: 1px solid rgba(169, 196, 184, .2);
}

.epicollect-guide-resources-copy,
.epicollect-guide-resources button,
.epicollect-guide-resources a {
    min-height: 118px;
    padding: 1.35rem 1.5rem;
    border-right: 1px solid rgba(169, 196, 184, .2);
    border-bottom: 1px solid rgba(169, 196, 184, .2);
}

.epicollect-guide-resources-copy {
    display: grid;
    align-content: center;
    gap: .55rem;
}

.epicollect-guide-resources-copy span,
.epicollect-guide-resources small {
    color: var(--gold);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.epicollect-guide-resources-copy p {
    max-width: 440px;
    margin: 0;
    color: #afc2ba;
    font-size: .8rem;
    line-height: 1.55;
}

.epicollect-guide-resources button,
.epicollect-guide-resources a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    min-width: 0;
    color: #e8eee7;
    background: transparent;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: color .25s ease, background-color .25s ease;
}

.epicollect-guide-resources button {
    border-top: 0;
    border-left: 0;
}

.epicollect-guide-resources button:hover,
.epicollect-guide-resources a:hover {
    color: #fff;
    background: rgba(210, 167, 43, .1);
}

.epicollect-guide-resources button>span,
.epicollect-guide-resources a>span {
    display: grid;
    gap: .45rem;
}

.epicollect-guide-resources strong {
    font: 400 1.2rem/1.2 Georgia, serif;
}

.epicollect-guide-resources b {
    color: var(--gold);
    font-size: 1rem;
    font-weight: 400;
}

.epicollect-downloads {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
    border-top: 1px solid rgba(169, 196, 184, .2);
    border-left: 1px solid rgba(169, 196, 184, .2);
}

.epicollect-downloads a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .35rem 1rem;
    min-height: 118px;
    padding: 1.5rem;
    color: #e8eee7;
    border-right: 1px solid rgba(169, 196, 184, .2);
    border-bottom: 1px solid rgba(169, 196, 184, .2);
    text-decoration: none;
    transition: background-color .25s ease;
}

.epicollect-downloads a:hover {
    background: rgba(210, 167, 43, .1);
}

.epicollect-downloads span {
    grid-column: 1;
    color: var(--gold);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.epicollect-downloads strong {
    grid-column: 1;
    align-self: end;
    font: 400 1.25rem/1.25 Georgia, serif;
}

.epicollect-downloads b {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    color: var(--gold);
}

.epicollect-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(169, 196, 184, .2);
    border-left: 1px solid rgba(169, 196, 184, .2);
    list-style: none;
}

.epicollect-steps li {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 1.1rem;
    min-height: 210px;
    padding: clamp(1.4rem, 2.5vw, 2.2rem);
    border-right: 1px solid rgba(169, 196, 184, .2);
    border-bottom: 1px solid rgba(169, 196, 184, .2);
}

.epicollect-steps li>span {
    padding-top: .25rem;
    color: var(--gold);
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.epicollect-steps h4 {
    margin: 0 0 .8rem;
    color: #f0ede3;
    font: 400 clamp(1.4rem, 2vw, 1.85rem)/1.15 Georgia, serif;
}

.epicollect-steps p {
    margin: 0;
    color: #afc2ba;
    font-size: .87rem;
    line-height: 1.7;
}

.epicollect-steps p strong {
    color: #dbe5e0;
}

.epicollect-steps a {
    display: inline-flex;
    gap: .5rem;
    margin-top: 1rem;
    color: var(--gold);
    font-size: .76rem;
    font-weight: 700;
    text-decoration: none;
}

.epicollect-steps code {
    display: block;
    max-width: 100%;
    margin-top: .8rem;
    padding: .65rem .8rem;
    overflow-wrap: anywhere;
    color: #afc2ba;
    background: rgba(0, 0, 0, .16);
    font-size: .72rem;
}

.epicollect-guide-note {
    margin: 1.25rem 0 0;
    color: #8fa69c;
    font-size: .74rem;
    line-height: 1.6;
}

@media (max-width: 900px) {
    .epicollect-guide-intro {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .epicollect-guide-intro .eyebrow {
        grid-column: auto;
    }

    .epicollect-guide-resources {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .epicollect-guide-resources-copy {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .epicollect-guide summary {
        grid-template-columns: minmax(0, 1fr) 44px;
        gap: 1rem;
        min-height: 102px;
        padding: 1.3rem;
    }

    .epicollect-guide summary>b {
        width: 42px;
        height: 42px;
    }

    .epicollect-downloads,
    .epicollect-steps,
    .epicollect-guide-resources {
        grid-template-columns: 1fr;
    }

    .epicollect-guide-resources-copy {
        grid-column: auto;
    }

    .epicollect-steps li {
        min-height: 0;
        padding: 1.5rem 1.25rem;
    }
}

.epicollect-video-dialog {
    width: min(580px, calc(100vw - 2rem));
    max-width: none;
    margin: auto;
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
}

.epicollect-video-dialog::backdrop {
    background: rgba(8, 22, 18, .86);
    backdrop-filter: blur(7px);
}

.epicollect-video-shell {
    overflow: hidden;
    color: #e8eee7;
    background: var(--dark);
    border: 1px solid rgba(169, 196, 184, .22);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .42);
}

.epicollect-video-shell header,
.epicollect-video-shell footer {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
}

.epicollect-video-shell header {
    border-bottom: 1px solid rgba(169, 196, 184, .18);
}

.epicollect-video-shell header p,
.epicollect-video-shell footer p,
.epicollect-video-shell footer span {
    margin: 0;
}

.epicollect-video-shell header p {
    margin-bottom: .3rem;
    color: var(--gold);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.epicollect-video-shell h2 {
    margin: 0;
    color: #f0ede3;
    font: 400 clamp(1.25rem, 2vw, 1.65rem)/1.1 Georgia, serif;
}

.epicollect-video-shell header button {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    place-items: center;
    padding: 0;
    color: #e8eee7;
    border: 1px solid rgba(169, 196, 184, .35);
    border-radius: 50%;
    background: transparent;
    font-size: 1.45rem;
    cursor: pointer;
}

.epicollect-video-frame {
    display: grid;
    max-height: calc(100dvh - 190px);
    place-items: center;
    overflow: hidden;
    background: #07100d;
}

.epicollect-video-frame video {
    display: block;
    width: 100%;
    max-height: calc(100dvh - 190px);
    object-fit: contain;
    background: #07100d;
}

.epicollect-video-shell footer {
    color: #9eb1a9;
    border-top: 1px solid rgba(169, 196, 184, .18);
    font-size: .7rem;
    line-height: 1.45;
}

.epicollect-video-shell footer span {
    flex: 0 0 auto;
    color: #789087;
}

@media (max-width: 600px) {
    .epicollect-video-dialog {
        width: calc(100vw - 1rem);
    }

    .epicollect-video-shell header,
    .epicollect-video-shell footer {
        padding: .8rem 1rem;
    }

    .epicollect-video-shell footer {
        display: block;
    }

    .epicollect-video-shell footer span {
        display: block;
        margin-top: .25rem;
    }
}

.footer-brand {
    display: flex;
    align-items: flex-start;
}

.footer-logo {
    display: block;
    width: 190px;
    height: auto;
    object-fit: contain;
}

/*==================================================
    MENU FIJO
==================================================*/


.site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-height);
    padding: 0 3.2vw;
    background: rgba(244, 240, 231, .94);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.site-header nav {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    color: var(--peat);
    font-size: .88rem;
    font-weight: 600;
    letter-spacing: .015em;
}

.site-header nav a {
    position: relative;
    padding: 1rem 0;
    opacity: .82;
    transition:
        opacity .2s ease,
        color .2s ease;
}

.site-header nav a:hover,
.site-header nav a:focus-visible {
    color: var(--rust);
    opacity: 1;
}

.site-header nav a::after {
    content: "";
    position: absolute;
    right: 100%;
    bottom: 8px;
    left: 0;
    height: 1px;
    background: var(--rust);
    transition: right .25s ease;
}

.site-header nav a:hover::after {
    right: 0;
}

.menu-button {
    display: none;
    border: 0;
    background: none;
}



.hero {
    min-height: calc(100vh - var(--header-height));
    display: grid;
    grid-template-columns: 42% 58%;
    position: relative;
    overflow: hidden
}

.hero-copy {
    padding: 10vh 4.5vw 8vh 3.2vw;
    align-self: center;
    z-index: 3
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .18em;
    font-weight: 700;
    font-size: .75rem;
    color: var(--rust);
    margin: 0 0 1.3rem
}

.hero h1,
.section h2,
.map-section h2,
.context-card h2 {
    font-family: Georgia, serif;
    font-weight: 400;
    color: var(--peat);
    letter-spacing: -.035em
}

.hero h1 {
    font-size: clamp(3.4rem, 5.4vw, 6rem);
    line-height: .96;
    margin: 0;
    max-width: 650px
}

.rust-line {
    width: 72px;
    height: 2px;
    background: var(--rust);
    margin: 2rem 0 1.4rem
}

.hero-lead {
    font-size: 1.08rem;
    line-height: 1.65;
    max-width: 480px;
    margin-bottom: 1.7rem
}


.plant-credit {
    display: block;
    margin-top: .4rem;
    color: #879189;
    font-family: Inter, Arial, sans-serif;
    font-size: .48rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: .015em;
    opacity: .78;
}

.plant-credit a {
    color: inherit;
    text-decoration: none;
}

.plant-credit a:hover {
    color: var(--rust);
    opacity: 1;
}

.button {
    display: inline-flex;
    gap: 2rem;
    align-items: center;
    padding: 1rem 1.25rem;
    font-weight: 600;
    transition: .25s
}

.button-rust {
    background: var(--rust);
    color: white
}

.button:hover {
    transform: translateY(-2px)
}

.button span {
    transition: .25s
}

.button:hover span {
    transform: translate(4px, -4px)
}

.hero-visual {
    position: relative;
    min-height: 680px;
    overflow: visible
}

.steppe-image {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(.75) contrast(.95);
    animation: revealImage 1.1s ease both
}

.plant-card {
    position: absolute;
    z-index: 3;
    left: 2rem;
    bottom: 10%;
    width: min(310px, 33vw);
    margin: 0;
    padding: 12px;
    background: #f8f4eb;
    box-shadow: 0 15px 40px #16271f30;
    animation: cardIn .8s .3s ease both
}

.plant-card img {
    aspect-ratio: 1/1;
    object-fit: cover
}

.plant-card figcaption {
    display: flex;
    flex-direction: column;
    padding: 10px 3px 2px;
    font-family: Georgia, serif;
    color: var(--peat)
}

.plant-card figcaption span {
    font: 400 .72rem Inter, Arial;
    margin-top: 3px;
    color: #65726b
}

.place-caption {
    position: absolute;
    z-index: 2;
    right: 3vw;
    bottom: 2.5rem;
    color: white;
    font-size: .78rem;
    text-shadow: 0 2px 8px #000
}

.place-caption span {
    display: block;
    margin-top: .25rem;
    font-size: .85em;
    opacity: .78;
}

.contours {
    position: absolute;
    width: 430px;
    height: 250px;
    left: 20%;
    bottom: -50px;
    opacity: .16;
    background: repeating-radial-gradient(ellipse at 30% 70%, transparent 0 13px, var(--peat) 14px 15px, transparent 16px 24px);
    transform: rotate(-12deg)
}

.section {
    padding: 8.5rem max(4vw, calc((100vw - 1320px)/2))
}

.section-kicker {
    border-top: 1px solid var(--line);
    padding-top: 1rem;
    display: flex;
    justify-content: space-between;
    text-transform: uppercase;
    letter-spacing: .13em;
    font-size: .68rem;
    color: var(--rust)
}

.section-kicker b {
    color: var(--peat)
}

.intro-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 8vw;
    margin: 5rem 0
}

.intro h2,
.section-heading h2,
.team h2 {
    font-size: clamp(2.7rem, 4.5vw, 5.2rem);
    line-height: 1.03;
    margin: 0
}

.intro-grid p,
.team-grid p {
    line-height: 1.8;
    margin-top: 0
}

.large-copy {
    font-family: Georgia, serif;
    font-size: 1.45rem;
    line-height: 1.55 !important;
    color: var(--peat)
}

.facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line)
}

.facts article {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 310px;
    padding: clamp(1.8rem, 2.6vw, 2.6rem);
    border-right: 1px solid var(--line)
}

.facts article:last-child {
    border: 0
}

.fact-kicker {
    margin: 0 0 1.15rem;
    color: var(--rust);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase
}

.facts h3 {
    max-width: 360px;
    margin: 0 0 1rem;
    color: var(--peat);
    font: 400 clamp(1.45rem, 2vw, 2rem)/1.12 Georgia, serif;
    letter-spacing: -.02em
}

.fact-copy {
    max-width: 390px;
    margin: 0 0 1.5rem;
    color: #3c4d45;
    font-size: .88rem;
    line-height: 1.7
}

.fact-copy strong {
    color: var(--peat);
    font-size: inherit;
    font-weight: 700
}

.fact-source {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: .55rem;
    margin-top: auto;
    color: var(--peat);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none
}

.fact-source cite {
    font-style: normal
}

.fact-source span {
    color: var(--rust);
    transition: transform .25s ease
}

.fact-source:hover {
    color: var(--rust)
}

.fact-source:hover span {
    transform: translate(3px, -3px)
}

/*==================================================
    POR QUE ES UN PROBLEMA
==================================================*/

.why-it-matters {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding:
        clamp(2.8rem, 4vh, 3.8rem) max(4vw, calc((100vw - 1320px) / 2));
    background: var(--peat);
    color: #e8eee7;
}

.why-heading {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5vw;
    align-items: end;
    margin-bottom: 2.4rem;
}

.why-heading .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: -.2rem;
    color: #d2a72b;
}

.why-heading h2 {
    max-width: 680px;
    margin: 0;
    color: #f0ede3;
    font: 400 clamp(2.8rem, 3.8vw, 4.4rem)/1.02 Georgia, serif;
    letter-spacing: -.035em;
}

.why-lead {
    max-width: 590px;
    margin: 0 0 .35rem;
    color: #b8c8c1;
    font-size: 1rem;
    line-height: 1.7;
}

.why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(169, 196, 184, .25);
    border-bottom: 1px solid rgba(169, 196, 184, .25);
}

.why-grid article {
    min-width: 0;
    padding: 1.55rem 2rem;
    border-right: 1px solid rgba(169, 196, 184, .25);
}

.why-grid article:first-child {
    padding-left: 0;
}

.why-grid article:last-child {
    padding-right: 0;
    border-right: 0;
}

.why-grid span {
    display: block;
    margin-bottom: .85rem;
    color: #d2a72b;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .16em;
}

.why-grid h3 {
    margin: 0 0 .6rem;
    color: #f0ede3;
    font: 400 1.3rem/1.2 Georgia, serif;
}

.why-grid p {
    margin: 0;
    color: #a9bbb3;
    font-size: .82rem;
    line-height: 1.6;
}

.why-statement {
    margin: 1.4rem 0 0;
    color: #d2a72b;
    font: italic 1.05rem/1.4 Georgia, serif;
    text-align: center;
}

.why-source {
    margin: .7rem 0 0;
    color: rgba(232, 238, 231, .55);
    font-size: .63rem;
    line-height: 1.4;
}

.why-source a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgba(210, 167, 43, .45);
    text-underline-offset: 3px;
    transition: color .2s ease;
}

.why-source a:hover {
    color: #d2a72b;
}

@media (max-width: 900px) {

    .why-it-matters {
        padding: 4.5rem 6vw;
    }

    .why-heading {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        margin-bottom: 3rem;
    }

    .why-heading .eyebrow {
        margin-bottom: 0;
    }

    .why-grid {
        grid-template-columns: 1fr;
    }

    .why-grid article,
    .why-grid article:first-child,
    .why-grid article:last-child {
        padding: 1.5rem 0;
        border-right: 0;
        border-bottom: 1px solid rgba(169, 196, 184, .2);
    }

    .why-grid article:last-child {
        border-bottom: 0;
    }

    .why-grid span {
        margin-bottom: .6rem;
    }

    .why-statement {
        text-align: left;
    }
}


.story {
    background: var(--paper-2)
}

.section-heading {
    max-width: 840px;
    margin-bottom: 5rem
}

.section-heading h2 {
    margin: 0 0 1.2rem
}

.section-heading>p:last-child {
    font-size: 1.08rem;
    line-height: 1.7;
    max-width: 650px
}

.question-list {
    border-top: 1px solid #aab3a2
}

.question {
    position: relative;
    display: grid;
    grid-template-columns: 58px minmax(280px, .85fr) minmax(420px, 1.35fr);
    grid-template-rows: auto auto;
    gap: .9rem clamp(2rem, 4vw, 4.5rem);
    margin: 0 -1.25rem;
    padding: clamp(2.2rem, 3.5vw, 3.4rem) 1.25rem;
    border-bottom: 1px solid #aab3a2;
    align-items: start;
    transition: background-color .3s ease
}

.question:hover {
    background: rgba(255, 255, 255, .26)
}

.question-number {
    grid-column: 1;
    grid-row: 1 / 3;
    color: var(--rust);
    font: italic 1rem Georgia
}

.question h3 {
    grid-column: 2;
    grid-row: 1;
    max-width: 440px;
    font: 400 clamp(1.8rem, 2.3vw, 2.45rem)/1.06 Georgia;
    color: var(--peat);
    margin: 0
}

.question p {
    grid-column: 3;
    grid-row: 1;
    max-width: 650px;
    color: #263f36;
    font-size: .98rem;
    line-height: 1.65;
    margin: 0
}

.question blockquote {
    grid-column: 3;
    grid-row: 2;
    max-width: 650px;
    margin: 0;
    padding: 1rem 1.2rem;
    border-left: 3px solid var(--gold);
    background: rgba(210, 167, 43, .16);
    color: #173a31;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.02rem;
    font-style: normal;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: .005em
}

.map-section {
    min-height: 760px;
    background: var(--dark);
    color: #e8eee7;
    display: grid;
    grid-template-columns: 38% 62%;
    align-items: center;
    overflow: hidden;
    padding: 5rem 4vw
}

.map-copy {
    max-width: 500px;
    z-index: 2
}

.map-section h2 {
    color: #f0ede3;
    font-size: clamp(3rem, 5vw, 5.5rem);
    line-height: .98;
    margin: 0 0 2rem
}

.map-copy>p:not(.eyebrow):not(.map-note) {
    line-height: 1.8;
    color: #b8c8c1
}

.map-note {
    margin-top: 3rem;
    font-size: .75rem;
    line-height: 1.6;
    color: #8fa69c;
    display: flex;
    gap: 12px
}

.map-note span {
    width: 8px;
    height: 8px;
    background: var(--gold);
    border-radius: 50%;
    flex: 0 0 auto;
    margin-top: 3px
}

.art-map {
    height: 650px;
    position: relative
}

.art-map svg {
    width: 100%;
    height: 100%
}

.island {
    fill: #17332e;
    stroke: #5f8f83;
    stroke-width: 2
}

.real-island {
    filter: drop-shadow(0 20px 38px rgba(0, 0, 0, .28));
    stroke-dasharray: 1800;
    stroke-dashoffset: 1800;
    animation: drawTerritory 2.2s ease forwards
}

.north-highlight {
    fill: url(#northLight);
    opacity: .78
}


.map-label {
    position: absolute;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: #adc3ba
}

.label-north {
    top: 15%;
    left: 40%;
    color: #e2c86f
}

.label-sector {
    bottom: 19%;
    left: 58%
}

.map-sources {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: .45rem;
    color: #8fa69c;
    font-size: .6rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.map-source-status {
    position: static;
    color: #718d82;
}

.map-source-separator {
    color: rgba(169, 196, 184, .45);
}

.map-paper-source {
    color: #8fa69c;
    text-decoration: none;
    transition: color .2s ease;
}

.map-paper-source:hover {
    color: #d2a72b;
}

@media (max-width: 700px) {

    .map-sources {
        top: 3.6rem;
        right: .6rem;
        bottom: auto;
        left: .6rem;
        justify-content: flex-end;
        flex-wrap: wrap;
        font-size: .52rem;
    }
}

.territorial-note {
    grid-column: 1/-1;
    max-width: 980px;
    margin: 1rem auto 0;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(169, 196, 184, .2);
    font-size: .7rem;
    line-height: 1.65;
    text-align: center;
    color: #718d82
}

/*==================================================
    PUBLICACIONES
==================================================*/


.publications {
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 6%, rgba(210, 167, 43, .1), transparent 24rem),
        var(--paper);
    padding-inline:
        max(4vw, calc((100vw - 1560px) / 2));
}

.publication-heading {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(3rem, 8vw, 9rem);
    align-items: end;
    max-width: 1320px;
    margin: 0 auto clamp(3rem, 6vw, 6rem);
}

.publication-heading h2 {
    max-width: 700px;
    margin: 0;
    color: var(--peat);
    font: 400 clamp(3.5rem, 6.2vw, 7rem)/.88 Georgia, serif;
    letter-spacing: -.055em;
}

.publication-intro {
    max-width: 580px;
    padding-bottom: .6rem;
}

.publication-intro p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.7;
}

.publication-intro .publication-deck {
    margin-bottom: 1.25rem;
    color: var(--peat);
    font: 400 clamp(1.3rem, 1.7vw, 1.75rem)/1.45 Georgia, serif;
}

.featured-publication {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    width: 100%;
    min-height: 540px;
    max-width: 1560px;
    margin: 0 auto;
    overflow: hidden;
    background: var(--dark);
    color: #e8eee7;
    box-shadow: 0 30px 80px rgba(16, 25, 23, .16);
    padding-inline: max(4vw, calc((100vw - 1560px) / 2));
}

.featured-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    padding: clamp(2.2rem, 3.5vw, 4rem);
}

.publication-overline,
.publication-card-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--gold);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.featured-number {
    position: absolute;
    top: 5.4rem;
    right: 1.7rem;
    margin: 0;
    color: rgba(169, 196, 184, .075);
    font: 400 clamp(9rem, 16vw, 17rem)/1 Georgia, serif;
    letter-spacing: -.08em;
    pointer-events: none;
}

.featured-copy h3 {
    position: relative;
    max-width: 620px;
    margin: clamp(2.5rem, 4vw, 4rem) 0 1.2rem;
    color: #f0ede3;
    font: 400 clamp(2.5rem, 3.6vw, 4.2rem)/.98 Georgia, serif;
    letter-spacing: -.045em;
}

.featured-copy>p:not(.featured-number) {
    max-width: 590px;
    margin: 0;
    color: #afc2ba;
    font-size: .96rem;
    line-height: 1.75;
}

.featured-findings {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin: auto 0 1.6rem;
    padding: 1.4rem 0 0;
    border-top: 1px solid rgba(169, 196, 184, .2);
    list-style: none;
}

.featured-findings li {
    padding-right: 1rem;
}

.featured-findings strong,
.featured-findings span {
    display: block;
}

.featured-findings strong {
    margin-bottom: .35rem;
    color: #f0ede3;
    font: 400 1.35rem/1.2 Georgia, serif;
}

.featured-findings span {
    color: #829b91;
    font-size: .68rem;
    line-height: 1.4;
}

.publication-link,
.publication-grid a {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: .75rem;
    color: var(--peat);
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}

.publication-link-light {
    color: var(--gold);
}

.publication-link span,
.publication-grid a span {
    transition: transform .25s ease;
}

.publication-link:hover span,
.publication-grid a:hover span {
    transform: translate(4px, -4px);
}

.featured-visual {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 0;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(47, 105, 96, .18), transparent 55%),
        #0c1412;
}

.featured-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .16;
    background-image: radial-gradient(rgba(169, 196, 184, .4) .7px, transparent .7px);
    background-size: 18px 18px;
}

.featured-visual svg {
    position: relative;
    z-index: 1;
    width: min(90%, 560px);
    height: auto;
}

.featured-visual>p {
    position: absolute;
    right: 2rem;
    bottom: 1.7rem;
    z-index: 2;
    margin: 0;
    color: #718d82;
    font-size: .58rem;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.paper-contour {
    fill: none;
    stroke: rgba(169, 196, 184, .16);
    stroke-width: 1.2;
}

.paper-contour-two {
    transform: translateY(7px);
}

.paper-contour-three {
    transform: translateY(14px);
}

.paper-coast {
    fill: rgba(47, 105, 96, .2);
    stroke: #5f8f83;
    stroke-width: 2;
}

.paper-study-area {
    fill: rgba(210, 167, 43, .16);
    stroke: rgba(210, 167, 43, .8);
    stroke-width: 1.5;
    stroke-dasharray: 7 6;
}

.paper-transect {
    fill: none;
    stroke: #dce6df;
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
}

.paper-transect-two {
    opacity: .65;
}

.paper-sites circle {
    fill: var(--gold);
    stroke: #fff0b6;
    stroke-width: 1;
}

.paper-hotspot-glow {
    fill: url(#paper-map-glow);
    filter: url(#paper-soft-glow);
}

.paper-hotspot {
    fill: rgba(210, 167, 43, .6);
    stroke: #ffe8a0;
    stroke-width: 2;
}

.paper-wind path {
    fill: none;
    stroke: #a9c4b8;
    stroke-width: 2;
    stroke-linecap: round;
}

.featured-visual text {
    fill: #829b91;
    font: 700 10px Inter, Arial, sans-serif;
    letter-spacing: 2.2px;
}

.publication-archive-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    max-width: 1320px;
    margin: clamp(4rem, 7vw, 7rem) auto 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.publication-archive-heading p {
    margin: 0;
    color: var(--peat);
    font: 400 clamp(1.8rem, 2.5vw, 2.6rem)/1 Georgia, serif;
}

.publication-archive-heading span {
    color: #6f776f;
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.publication-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1320px;
    margin: 0 auto;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.publication-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 480px;
    padding: 1.8rem;
    overflow: hidden;
    background: rgba(244, 240, 231, .64);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    transition: background-color .35s ease, box-shadow .35s ease, transform .35s ease;
}

.publication-card:nth-child(3n + 2) {
    background: rgba(232, 235, 221, .66);
}

.publication-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 100%;
    left: 0;
    height: 3px;
    background: var(--rust);
    transition: right .35s ease;
}

.publication-card:hover {
    z-index: 2;
    background: #f8f4eb;
    box-shadow: 0 24px 55px rgba(23, 58, 49, .12);
    transform: translateY(-6px);
}

.publication-card:hover::before {
    right: 0;
}

.publication-mini-visual {
    position: relative;
    height: 104px;
    margin: 2rem 0 1.3rem;
    overflow: hidden;
    border-bottom: 1px solid rgba(23, 58, 49, .14);
}

.publication-mini-visual i {
    position: absolute;
    display: block;
}

.publication-meta {
    margin: 0 0 1rem;
    color: #758078;
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.publication-grid h3 {
    max-width: 360px;
    margin: 0 0 1rem;
    color: var(--peat);
    font: 400 clamp(1.55rem, 2vw, 2rem)/1.08 Georgia, serif;
    transition: color .25s ease;
}

.publication-card:hover h3 {
    color: var(--rust);
}

.publication-grid .publication-card>p:not(.publication-meta) {
    max-width: 360px;
    margin: 0 0 1.6rem;
    color: #434b45;
    font-size: .82rem;
    line-height: 1.6;
}

.publication-grid a {
    margin-top: auto;
    transition: color .25s ease;
}

.publication-grid a:hover {
    color: var(--rust);
}

/* Miniaturas cientÃ­ficas conceptuales */
.visual-communities .publication-mini-visual i {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(47, 105, 96, .36);
}

.visual-communities .publication-mini-visual i:nth-child(1) {
    left: 8%;
    top: 45%;
    width: 45px;
    height: 45px;
}

.visual-communities .publication-mini-visual i:nth-child(2) {
    left: 23%;
    top: 28%;
}

.visual-communities .publication-mini-visual i:nth-child(3) {
    left: 38%;
    top: 52%;
    width: 31px;
    height: 31px;
    background: rgba(210, 167, 43, .55);
}

.visual-communities .publication-mini-visual i:nth-child(4) {
    left: 58%;
    top: 20%;
    width: 54px;
    height: 54px;
}

.visual-communities .publication-mini-visual i:nth-child(5) {
    left: 82%;
    top: 60%;
    background: var(--rust);
}

.visual-gradient .publication-mini-visual::before,
.visual-gradient .publication-mini-visual::after {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    height: 1px;
    background: rgba(23, 58, 49, .18);
}

.visual-gradient .publication-mini-visual::before {
    top: 28%;
    transform: rotate(-7deg);
}

.visual-gradient .publication-mini-visual::after {
    top: 65%;
    transform: rotate(5deg);
}

.visual-gradient .publication-mini-visual i {
    bottom: 17%;
    width: 2px;
    background: var(--teal);
    transform-origin: bottom;
}

.visual-gradient .publication-mini-visual i:nth-child(1) {
    left: 12%;
    height: 23px;
}

.visual-gradient .publication-mini-visual i:nth-child(2) {
    left: 29%;
    height: 43px;
}

.visual-gradient .publication-mini-visual i:nth-child(3) {
    left: 47%;
    height: 63px;
    background: var(--gold);
}

.visual-gradient .publication-mini-visual i:nth-child(4) {
    left: 66%;
    height: 48px;
}

.visual-gradient .publication-mini-visual i:nth-child(5) {
    left: 84%;
    height: 27px;
}

.visual-germination .publication-mini-visual i {
    bottom: 15px;
    width: 12px;
    border: 1.5px solid var(--teal);
    border-radius: 50% 50% 45% 55%;
}

.visual-germination .publication-mini-visual i::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 1px;
    background: var(--teal);
    transform-origin: bottom;
}

.visual-germination .publication-mini-visual i:nth-child(1) {
    left: 8%;
    height: 8px;
}

.visual-germination .publication-mini-visual i:nth-child(2) {
    left: 25%;
    height: 10px;
}

.visual-germination .publication-mini-visual i:nth-child(2)::after {
    height: 23px;
    transform: rotate(-12deg);
}

.visual-germination .publication-mini-visual i:nth-child(3) {
    left: 44%;
    height: 12px;
    background: rgba(210, 167, 43, .35);
}

.visual-germination .publication-mini-visual i:nth-child(3)::after {
    height: 48px;
}

.visual-germination .publication-mini-visual i:nth-child(4) {
    left: 64%;
    height: 10px;
}

.visual-germination .publication-mini-visual i:nth-child(4)::after {
    height: 35px;
    transform: rotate(10deg);
}

.visual-germination .publication-mini-visual i:nth-child(5) {
    left: 84%;
    height: 8px;
}

.visual-transects .publication-mini-visual::before,
.visual-transects .publication-mini-visual::after {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    border-top: 1px dashed var(--teal);
}

.visual-transects .publication-mini-visual::before {
    top: 34%;
}

.visual-transects .publication-mini-visual::after {
    top: 67%;
}

.visual-transects .publication-mini-visual i {
    width: 10px;
    height: 10px;
    border: 2px solid var(--gold);
    border-radius: 50%;
    background: var(--paper);
}

.visual-transects .publication-mini-visual i:nth-child(1) {
    left: 12%;
    top: 29%;
}

.visual-transects .publication-mini-visual i:nth-child(2) {
    left: 36%;
    top: 62%;
}

.visual-transects .publication-mini-visual i:nth-child(3) {
    left: 53%;
    top: 29%;
}

.visual-transects .publication-mini-visual i:nth-child(4) {
    left: 72%;
    top: 62%;
}

.visual-transects .publication-mini-visual i:nth-child(5) {
    left: 88%;
    top: 29%;
}

.visual-disturbance .publication-mini-visual {
    background: linear-gradient(90deg, transparent 0 48%, rgba(168, 71, 36, .08) 48% 100%);
}

.visual-disturbance .publication-mini-visual i {
    bottom: 10px;
    width: 1px;
    background: var(--peat);
}

.visual-disturbance .publication-mini-visual i:nth-child(1) {
    left: 10%;
    height: 34px;
}

.visual-disturbance .publication-mini-visual i:nth-child(2) {
    left: 26%;
    height: 53px;
}

.visual-disturbance .publication-mini-visual i:nth-child(3) {
    left: 45%;
    height: 28px;
}

.visual-disturbance .publication-mini-visual i:nth-child(4) {
    left: 66%;
    height: 18px;
    background: var(--rust);
}

.visual-disturbance .publication-mini-visual i:nth-child(5) {
    left: 84%;
    height: 9px;
    background: var(--rust);
}

.visual-suitability .publication-mini-visual i {
    border: 1px solid rgba(47, 105, 96, .5);
    border-radius: 48% 52% 42% 58%;
}

.visual-suitability .publication-mini-visual i:nth-child(1) {
    inset: 8px 4%;
}

.visual-suitability .publication-mini-visual i:nth-child(2) {
    inset: 20px 13%;
}

.visual-suitability .publication-mini-visual i:nth-child(3) {
    inset: 32px 25%;
    border-color: var(--gold);
}

.visual-suitability .publication-mini-visual i:nth-child(4) {
    width: 8px;
    height: 8px;
    left: 47%;
    top: 44%;
    border: 0;
    background: var(--rust);
}

.visual-suitability .publication-mini-visual i:nth-child(5) {
    width: 5px;
    height: 5px;
    left: 58%;
    top: 29%;
    border: 0;
    background: var(--gold);
}

.visual-treatment .publication-mini-visual {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 7px;
    padding: 8px 4% 14px;
}

.visual-treatment .publication-mini-visual i {
    position: relative;
    inset: auto;
    align-self: end;
    height: 70%;
    border: 1px solid rgba(23, 58, 49, .25);
    background: rgba(185, 198, 174, .24);
}

.visual-treatment .publication-mini-visual i:nth-child(2) {
    height: 45%;
}

.visual-treatment .publication-mini-visual i:nth-child(3) {
    height: 85%;
    background: rgba(210, 167, 43, .2);
}

.visual-treatment .publication-mini-visual i:nth-child(4) {
    height: 30%;
    background: rgba(168, 71, 36, .16);
}

.visual-treatment .publication-mini-visual i:nth-child(5) {
    height: 58%;
}

.visual-time .publication-mini-visual::before {
    content: "";
    position: absolute;
    left: 5%;
    right: 5%;
    top: 50%;
    height: 1px;
    background: var(--teal);
}

.visual-time .publication-mini-visual i {
    top: calc(50% - 5px);
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--teal);
}

.visual-time .publication-mini-visual i:nth-child(1) {
    left: 6%;
}

.visual-time .publication-mini-visual i:nth-child(2) {
    left: 25%;
}

.visual-time .publication-mini-visual i:nth-child(3) {
    left: 46%;
    border-color: var(--gold);
}

.visual-time .publication-mini-visual i:nth-child(4) {
    left: 68%;
}

.visual-time .publication-mini-visual i:nth-child(5) {
    left: 90%;
    border-color: var(--rust);
}

.visual-wetland .publication-mini-visual i {
    left: -5%;
    right: -5%;
    height: 18px;
    border-top: 1px solid rgba(47, 105, 96, .45);
    border-radius: 50%;
}

.visual-wetland .publication-mini-visual i:nth-child(1) {
    top: 8%;
}

.visual-wetland .publication-mini-visual i:nth-child(2) {
    top: 26%;
}

.visual-wetland .publication-mini-visual i:nth-child(3) {
    top: 44%;
    border-color: var(--gold);
}

.visual-wetland .publication-mini-visual i:nth-child(4) {
    top: 62%;
}

.visual-wetland .publication-mini-visual i:nth-child(5) {
    top: 80%;
}



/*==================================================
    FIGURA CIENTÍFICA · ACCIONES DE LA PUBLICACIÓN
==================================================*/

.publication-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(23, 58, 49, .16);
}

.publication-card-actions a {
    flex: 0 0 auto;
    margin-top: 0;
    white-space: nowrap;
}

.publication-figure-button {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--peat);
    font: inherit;
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .25s ease;
}

.publication-figure-button span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border: 1px solid rgba(23, 58, 49, .28);
    border-radius: 50%;
    color: var(--rust);
    font-size: .9rem;
    line-height: 1;
    transition: border-color .25s ease, transform .25s ease;
}

.publication-figure-button:hover {
    color: var(--rust);
}

.publication-figure-button:hover span {
    border-color: var(--rust);
    transform: rotate(90deg);
}


/*==================================================
    FIGURA CIENTÍFICA · MODAL EDITORIAL
==================================================*/

.research-figure-dialog {
    width: min(1120px, calc(100vw - 3rem));
    max-width: none;
    max-height: calc(100dvh - 3rem);
    margin: auto;
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
    color: inherit;
}

.research-figure-dialog::backdrop {
    background: rgba(7, 17, 15, .84);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.research-figure-dialog[open] {
    animation: researchFigureEntrance .36s ease both;
}

.research-figure-shell {
    position: relative;
    display: grid;
    grid-template-columns: minmax(310px, .82fr) minmax(430px, 1.18fr);
    max-height: calc(100dvh - 3rem);
    overflow: hidden;
    border: 1px solid rgba(185, 198, 174, .24);
    background: var(--dark);
    box-shadow: 0 32px 100px rgba(0, 0, 0, .38);
}

.research-figure-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(244, 240, 231, .32);
    border-radius: 50%;
    background: rgba(16, 25, 23, .82);
    color: var(--paper);
    cursor: pointer;
    transition: color .25s ease, border-color .25s ease, transform .25s ease;
}

.research-figure-close span {
    font-size: 1.55rem;
    font-weight: 300;
    line-height: 1;
}

.research-figure-close:hover {
    border-color: var(--gold);
    color: var(--gold);
    transform: rotate(90deg);
}

.research-figure-image {
    display: grid;
    min-height: 0;
    padding: 2rem;
    place-items: center;
    background: var(--paper-2);
}

.research-figure-image figure {
    display: flex;
    height: 100%;
    min-height: 0;
    margin: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.research-figure-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: min(68dvh, 690px);
    object-fit: contain;
    background: white;
    box-shadow: 0 18px 48px rgba(23, 58, 49, .14);
}

.research-figure-image figcaption {
    max-width: 340px;
    margin-top: .85rem;
    color: rgba(23, 58, 49, .7);
    font-size: .68rem;
    line-height: 1.5;
    text-align: center;
}

.research-figure-copy {
    min-height: 0;
    padding: clamp(2.8rem, 5vw, 4.7rem);
    overflow-y: auto;
    color: #d4e0da;
}

.research-figure-kicker {
    margin: 0 0 1.45rem;
    color: var(--gold);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.research-figure-copy h2 {
    max-width: 600px;
    margin: 0 0 1.5rem;
    color: var(--paper);
    font: 400 clamp(2.35rem, 4vw, 4.2rem)/.98 Georgia, serif;
    text-wrap: balance;
}

.research-figure-lead {
    max-width: 590px;
    margin: 0 0 2rem;
    color: #bfd1c8;
    font-size: .98rem;
    line-height: 1.75;
}

.research-figure-reading {
    padding: 1.35rem 0;
    border-top: 1px solid rgba(185, 198, 174, .2);
    border-bottom: 1px solid rgba(185, 198, 174, .2);
}

.research-figure-reading>span,
.research-figure-reference>span {
    display: block;
    margin-bottom: .65rem;
    color: var(--gold);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.research-figure-reading p {
    max-width: 570px;
    margin: 0;
    color: #d4e0da;
    font-size: .86rem;
    line-height: 1.7;
}

.research-figure-copy blockquote {
    margin: 2rem 0;
    padding-left: 1.2rem;
    border-left: 2px solid var(--gold);
    color: var(--paper);
    font: italic 1.16rem/1.55 Georgia, serif;
}

.research-figure-reference {
    padding-top: .25rem;
}

.research-figure-reference p {
    margin: 0 0 1rem;
    color: var(--sage);
    font-size: .78rem;
    line-height: 1.6;
}

.research-figure-reference a {
    display: inline-flex;
    gap: .65rem;
    color: var(--gold);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/*==================================================
    FIGURA CIENTÍFICA · VARIANTE HORIZONTAL

    Se utiliza en las figuras que necesitan una lectura
    apaisada mediante la clase:
    .research-figure-dialog-landscape
==================================================*/

.research-figure-dialog-landscape .research-figure-shell {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(310px, 46dvh) auto;
    overflow-y: auto;
}

/* Primera fila: figura sobre fondo claro */

.research-figure-dialog-landscape .research-figure-image {
    min-height: 310px;
    padding: 1.35rem 3rem;
}

.research-figure-dialog-landscape .research-figure-image figure {
    width: 100%;
    height: 100%;
}

.research-figure-dialog-landscape .research-figure-image img {
    max-width: min(100%, 960px);
    max-height: min(38dvh, 400px);
}

.research-figure-dialog-landscape .research-figure-image figcaption {
    max-width: 760px;
    margin-top: .7rem;
}

/* Segunda fila: lectura distribuida horizontalmente */

.research-figure-dialog-landscape .research-figure-copy {
    display: grid;
    grid-template-columns:
        minmax(220px, .82fr)
        minmax(300px, 1.15fr)
        minmax(220px, .85fr);
    grid-template-areas:
        "kicker lead quote"
        "title  reading reference";
    gap: 1rem 2.5rem;
    align-items: start;
    padding: 1.9rem 2.7rem 2.15rem;
    overflow: visible;
}

.research-figure-dialog-landscape .research-figure-kicker {
    grid-area: kicker;
    margin: 0;
}

.research-figure-dialog-landscape .research-figure-copy h2 {
    grid-area: title;
    max-width: 360px;
    margin: 0;
    font-size: clamp(2rem, 2.8vw, 3rem);
    line-height: 1;
}

.research-figure-dialog-landscape .research-figure-lead {
    grid-area: lead;
    max-width: 520px;
    margin: 0;
    font-size: .92rem;
    line-height: 1.7;
}

.research-figure-dialog-landscape .research-figure-reading {
    grid-area: reading;
    padding: 1rem 0 0;
    border-top: 1px solid rgba(185, 198, 174, .2);
    border-bottom: 0;
}

.research-figure-dialog-landscape .research-figure-copy blockquote {
    grid-area: quote;
    margin: 0;
    padding-left: 1rem;
    font-size: 1rem;
}

.research-figure-dialog-landscape .research-figure-reference {
    grid-area: reference;
    align-self: end;
    padding-top: 1rem;
    border-top: 1px solid rgba(185, 198, 174, .2);
}

/*==================================================
    FIGURA CIENTÍFICA · SUELO EN CUATRO PANELES

    Esta variante afecta solamente al modal #figure-soil.
==================================================*/

.research-figure-dialog-soil .research-figure-shell {
    grid-template-rows: minmax(430px, 55dvh) auto;
}

.research-figure-dialog-soil .research-figure-image {
    min-height: 430px;
    padding: 1.2rem 3rem 1.35rem;
}

.research-soil-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.4rem;
    width: min(100%, 1040px);
    margin: auto;
}

.research-figure-dialog-soil .research-soil-grid figure {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: .65rem .8rem .6rem;
    background: rgba(255, 255, 255, .84);
    border: 1px solid rgba(22, 57, 47, .12);
}

.research-figure-dialog-soil .research-soil-grid img {
    width: 100%;
    max-width: none;
    height: min(18dvh, 178px);
    max-height: none;
    object-fit: contain;
    box-shadow: none;
}

.research-figure-dialog-soil .research-soil-grid figcaption {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    max-width: none;
    margin: .4rem 0 0;
    padding-top: .45rem;
    border-top: 1px solid rgba(22, 57, 47, .12);
    text-align: left;
}

.research-soil-grid figcaption strong {
    color: var(--peat);
    font-family: Georgia, serif;
    font-size: .88rem;
    font-weight: 400;
}

.research-soil-grid figcaption span {
    color: rgba(22, 57, 47, .7);
    font-size: .62rem;
    line-height: 1.35;
    text-align: right;
}

/*==================================================
    FIGURAS CIENTÍFICAS · MELISA COOKE

    La tarjeta ofrece dos lecturas independientes.
    Cada modal mantiene todas sus evidencias visibles.
==================================================*/

.publication-card-actions-cooke {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
}

.publication-card-actions-cooke a {
    grid-column: auto;
}

.research-figure-dialog-cooke .research-figure-shell {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(280px, 43dvh) auto;
    max-height: calc(100dvh - 3rem);
    overflow: hidden;
}

.research-figure-dialog-cooke .research-figure-evidence-stack {
    display: grid;
    gap: 1rem;
    align-content: center;
    padding: 1.35rem 3rem;
    overflow: hidden;
    background: #e7e9df;
}

.research-figure-dialog-cooke .research-figure-evidence-stack figure {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: min(35dvh, 330px);
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: .85rem;
    overflow: hidden;
    background: rgba(255, 255, 255, .82);
}

.research-figure-dialog-cooke .research-figure-evidence-stack img {
    display: block;
    width: 100%;
    height: min(28dvh, 255px);
    max-width: 100%;
    max-height: none;
    object-fit: contain;
    box-shadow: none;
}

.research-figure-dialog-cooke .research-figure-evidence-stack figcaption {
    margin-top: .55rem;
}

.cooke-biological-evidence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cooke-chemical-evidence {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.research-figure-dialog-cooke .research-figure-copy {
    display: grid;
    grid-template-columns: minmax(210px, .82fr) minmax(300px, 1.15fr) minmax(220px, .85fr);
    grid-template-areas:
        "kicker lead quote"
        "title reading reference";
    gap: .9rem 2.2rem;
    align-items: start;
    padding: 1.5rem 2.7rem 1.7rem;
    overflow: hidden;
}

.research-figure-dialog-cooke .research-figure-kicker {
    grid-area: kicker;
    margin: 0;
}

.research-figure-dialog-cooke .research-figure-copy h2 {
    grid-area: title;
    max-width: 360px;
    margin: 0;
    font-size: clamp(1.8rem, 2.5vw, 2.7rem);
    line-height: 1;
}

.research-figure-dialog-cooke .research-figure-lead {
    grid-area: lead;
    max-width: 520px;
    margin: 0;
    font-size: .82rem;
    line-height: 1.55;
}

.research-figure-dialog-cooke .research-figure-reading {
    grid-area: reading;
    padding: .85rem 0 0;
    border-top: 1px solid rgba(185, 198, 174, .2);
    border-bottom: 0;
}

.research-figure-dialog-cooke .research-figure-reading p {
    font-size: .82rem;
    line-height: 1.55;
}

.research-figure-dialog-cooke .research-figure-copy blockquote {
    grid-area: quote;
    margin: 0;
    padding-left: 1rem;
    font-size: 1rem;
}

.research-figure-dialog-cooke .research-figure-reference {
    grid-area: reference;
    align-self: end;
    padding-top: .85rem;
    border-top: 1px solid rgba(185, 198, 174, .2);
}

/*==================================================
    FIGURA CIENTÍFICA · CARBONI, ESCALAS CONECTADAS

    Las tres evidencias se leen juntas en la fila superior;
    la interpretación ocupa la franja horizontal inferior.
==================================================*/

.research-figure-dialog-carboni .research-figure-shell {
    grid-template-rows: minmax(370px, 49dvh) auto;
}

.research-figure-dialog-carboni .research-figure-evidence-stack {
    display: grid;
    grid-template-columns: minmax(210px, .78fr) minmax(300px, 1.2fr) minmax(250px, 1fr);
    gap: 1rem;
    align-items: stretch;
    padding: 1.25rem 2rem 1.35rem;
    overflow: hidden;
}

.research-figure-dialog-carboni .research-figure-evidence-stack figure,
.research-figure-dialog-carboni .research-figure-evidence-stack figure:last-child {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: .8rem;
    background: rgba(255, 255, 255, .88);
}

.research-figure-dialog-carboni .research-figure-evidence-stack img,
.research-figure-dialog-carboni .research-evidence-map img {
    width: 100%;
    height: min(31dvh, 265px);
    max-height: none;
    object-fit: contain;
}

.research-figure-dialog-carboni .research-figure-evidence-stack figcaption {
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px solid rgba(22, 57, 47, .12);
    font-size: .66rem;
    line-height: 1.45;
}

body.dialog-open {
    overflow: hidden;
}

@keyframes researchFigureEntrance {
    from {
        opacity: 0;
        transform: translateY(16px) scale(.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}


/*==================================================
    FIGURA CIENTÍFICA · RESPONSIVE
==================================================*/

@media (max-width: 760px) {

    .publication-card-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .research-figure-dialog {
        width: 100%;
        max-height: 100dvh;
        margin: 0;
    }

    .research-figure-shell {
        display: block;
        width: 100%;
        max-height: 100dvh;
        overflow-y: auto;
        border: 0;
    }

    .research-figure-image {
        min-height: auto;
        padding: 4.7rem 1.25rem 1.5rem;
    }

    .research-figure-image img {
        max-height: 50dvh;
    }

    .research-figure-copy {
        padding: 2rem 1.4rem 3rem;
        overflow: visible;
    }

    .research-figure-copy h2 {
        font-size: clamp(2.25rem, 12vw, 3.35rem);
    }

    /* En pantallas pequeñas, las dos figuras horizontales
       vuelven a una lectura vertical natural. */

    .research-figure-dialog-landscape .research-figure-shell {
        display: block;
        max-height: 100dvh;
        overflow-y: auto;
    }

    .research-figure-dialog-landscape .research-figure-image {
        min-height: auto;
        padding: 4.7rem 1rem 1.4rem;
    }

    .research-figure-dialog-landscape .research-figure-image img {
        max-width: 100%;
        max-height: 42dvh;
    }

    .research-figure-dialog-landscape .research-figure-copy {
        display: block;
        padding: 2rem 1.4rem 3rem;
    }

    .research-figure-dialog-landscape .research-figure-copy h2 {
        max-width: none;
        margin: 1rem 0 1.4rem;
        font-size: clamp(2.1rem, 10vw, 3rem);
    }

    .research-figure-dialog-landscape .research-figure-lead {
        margin-bottom: 1.5rem;
    }

    .research-figure-dialog-landscape .research-figure-reading {
        padding: 1.2rem 0;
        border-bottom: 1px solid rgba(185, 198, 174, .2);
    }

    .research-figure-dialog-landscape .research-figure-copy blockquote {
        margin: 1.5rem 0;
    }

    .research-figure-dialog-landscape .research-figure-reference {
        padding-top: 1.2rem;
    }

    .research-figure-dialog-soil .research-figure-image {
        min-height: auto;
        padding: 4.7rem 1rem 1.5rem;
    }

    .research-soil-grid {
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    .research-figure-dialog-soil .research-soil-grid img {
        height: auto;
        max-height: 280px;
    }

    .research-figure-dialog-soil .research-soil-grid figcaption {
        align-items: flex-start;
    }

    .publication-card-actions-cooke {
        grid-template-columns: 1fr;
    }

    .publication-card-actions-cooke a {
        grid-column: auto;
    }

    .research-figure-dialog-cooke .research-figure-shell {
        display: block;
        grid-template-rows: auto auto;
        max-height: 100dvh;
        overflow-y: auto;
    }

    .research-figure-dialog-cooke .research-figure-evidence-stack,
    .cooke-biological-evidence,
    .cooke-chemical-evidence {
        grid-template-columns: 1fr;
        gap: .75rem;
        padding: 4.7rem 1rem 1rem;
        overflow: visible;
    }

    .research-figure-dialog-cooke .research-figure-evidence-stack figure {
        height: auto;
        padding: .7rem;
    }

    .research-figure-dialog-cooke .research-figure-evidence-stack img {
        height: auto;
        max-height: 230px;
    }

    .research-figure-dialog-cooke .research-figure-copy {
        display: block;
        padding: 2rem 1.4rem 3rem;
        overflow: visible;
    }

    .research-figure-dialog-cooke .research-figure-copy h2 {
        max-width: none;
        margin: 1rem 0 1.4rem;
        font-size: clamp(2.1rem, 10vw, 3rem);
    }

    .research-figure-dialog-cooke .research-figure-lead {
        margin-bottom: 1.5rem;
    }

    .research-figure-dialog-cooke .research-figure-reading {
        padding: 1.2rem 0;
        border-bottom: 1px solid rgba(185, 198, 174, .2);
    }

    .research-figure-dialog-cooke .research-figure-copy blockquote {
        margin: 1.5rem 0;
    }

    .research-figure-dialog-cooke .research-figure-reference {
        padding-top: 1.2rem;
    }

    .research-figure-dialog-carboni .research-figure-evidence-stack {
        display: grid;
        grid-template-columns: 1fr;
        gap: .85rem;
        padding: 4.7rem 1rem 1.4rem;
        overflow: visible;
    }

    .research-figure-dialog-carboni .research-figure-evidence-stack img,
    .research-figure-dialog-carboni .research-evidence-map img {
        height: auto;
        max-height: 300px;
    }

    .research-figure-close {
        position: fixed;
        top: 1rem;
        right: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .research-figure-dialog[open] {
        animation: none;
    }

    .publication-figure-button span,
    .research-figure-close {
        transition: none;
    }
}


.context-section {
    display: grid;
    align-items: center;
    padding: clamp(2rem, 3.5vw, 4rem) 4vw;
    background: linear-gradient(120deg, #aebba3, #e5e7d8)
}

.context-card {
    width: min(1240px, 100%);
    margin: auto;
    background: rgba(244, 240, 231, .8);
    padding: clamp(2.25rem, 3.5vw, 4rem) clamp(2.5rem, 5vw, 5.5rem);
    border-radius: 48% 52% 46% 54%/10% 10% 10% 10%
}

.context-card h2 {
    max-width: 1050px;
    font-size: clamp(2.8rem, 4vw, 4.25rem);
    line-height: .98;
    margin: 0 0 1.35rem
}

.context-card>p:last-child {
    max-width: 720px;
    line-height: 1.8
}

.action-intro {
    max-width: 900px;
    margin-bottom: 1.8rem;
    font-family: Georgia, serif;
    font-size: 1.08rem;
    line-height: 1.5;
    color: var(--peat);
}

.action-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(23, 58, 49, .22);
    border-bottom: 1px solid rgba(23, 58, 49, .22);
}

.action-grid article {
    padding: 1.35rem 1.8rem;
    border-right: 1px solid rgba(23, 58, 49, .22);
}

.action-grid article:first-child {
    padding-left: 0;
}

.action-grid article:last-child {
    padding-right: 0;
    border-right: 0;
}

.action-grid article>span {
    display: block;
    margin-bottom: .75rem;
    color: var(--rust);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
}

.action-grid h3 {
    margin: 0 0 .65rem;
    color: var(--peat);
    font: 400 1.45rem/1.2 Georgia, serif;
}

.action-grid p {
    margin: 0;
    font-size: .86rem;
    line-height: 1.55;
}

.action-footer {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 3rem;
    padding-top: 1.35rem;
}

.action-footer p {
    max-width: 690px;
    margin: 0;
    color: #43554c;
    font-size: .82rem;
    line-height: 1.55;
}

.action-link {
    color: var(--peat);
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.action-link span {
    display: inline-block;
    margin-left: .7rem;
    transition: transform .2s ease;
}

.action-link:hover {
    color: var(--rust);
}

.action-link:hover span {
    transform: translate(3px, -3px);
}

@media (max-width: 900px) {

    .action-grid {
        grid-template-columns: 1fr;
    }

    .action-grid article,
    .action-grid article:first-child,
    .action-grid article:last-child {
        padding: 1.7rem 0;
        border-right: 0;
        border-bottom: 1px solid rgba(23, 58, 49, .18);
    }

    .action-grid article:last-child {
        border-bottom: 0;
    }

    .action-grid article>span {
        margin-bottom: .8rem;
    }

    .action-footer {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 1.5rem;
    }
}


.team-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7vw
}

.team {
    background: #f7f3eb
}

.team>.eyebrow {
    margin-bottom: 3rem
}

.site-footer {
    display: grid;
    grid-template-columns: 1.05fr 1.25fr .7fr;
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: start;
    min-height: 280px;
    padding: clamp(3.5rem, 6vw, 5.5rem) 4vw 2rem;
    color: #e7ece5;
    background:
        radial-gradient(circle at 8% 0, rgba(210, 167, 43, .1), transparent 22rem),
        var(--peat);
}

.footer-identity {
    display: grid;
    gap: 1.5rem;
}

.footer-brand {
    color: white;
}

.footer-brand span {
    display: block;
}

.footer-identity p {
    max-width: 310px;
    margin: 0;
    color: #aebdb5;
    font-size: .8rem;
    line-height: 1.65;
}

.footer-location {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding-left: clamp(1.5rem, 3vw, 3rem);
    border-left: 1px solid rgba(169, 196, 184, .18);
    font-style: normal;
}

.footer-location>span,
.footer-navigation>span {
    color: var(--gold);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.footer-location strong {
    color: #edf2ee;
    font: 400 1.05rem/1.35 Georgia, serif;
}

.footer-location a {
    align-self: start;
    color: #9fb3aa;
    font-size: .73rem;
    line-height: 1.7;
    text-decoration: none;
    transition: color .25s ease;
}

.footer-location a:hover {
    color: var(--gold);
}

.footer-navigation {
    display: grid;
    justify-items: start;
    gap: 1rem;
}

.footer-navigation a {
    color: #dce6e1;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .25s ease;
}

.footer-navigation a:hover {
    color: var(--gold);
}

.footer-closing {
    grid-column: 1 / -1;
    max-width: none;
    margin: clamp(2rem, 4vw, 3.5rem) 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(169, 196, 184, .15);
    color: #789087;
    font-size: .65rem;
    letter-spacing: .04em;
}

.reveal {
    animation: copyIn .9s ease both
}

@keyframes copyIn {
    from {
        opacity: 0;
        transform: translateY(18px)
    }
}

@keyframes revealImage {
    from {
        clip-path: inset(0 100% 0 0)
    }

    to {
        clip-path: inset(0)
    }
}

@keyframes cardIn {
    from {
        opacity: 0;
        transform: scale(.97) translateY(12px)
    }
}

@keyframes drawTerritory {
    to {
        stroke-dashoffset: 0
    }
}


@media(max-width:900px) {
    :root {
        --header-height: 70px;
    }

    .brand {
        font-size: 1.2rem
    }

    .menu-button {
        display: flex;
        flex-direction: column;
        gap: 7px;
        padding: 12px
    }

    .menu-button span {
        width: 25px;
        height: 1px;
        background: var(--peat)
    }

    .site-header nav {
        display: none;
        position: fixed;
        top: var(--header-height);
        right: 0;
        left: 0;
        z-index: 999;
        padding: 1.5rem 4vw;
        flex-direction: column;
        gap: .3rem;
        background: var(--paper);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 18px 35px rgba(0, 0, 0, .16);
    }

    .site-header nav.open {
        display: flex;
    }

    .hero {
        grid-template-columns: 1fr
    }

    .hero-copy {
        padding: 5rem 6vw 4rem
    }

    .hero h1 {
        font-size: clamp(3.2rem, 12vw, 5rem)
    }

    .hero-visual {
        min-height: 520px;
        margin-left: 7vw
    }

    .plant-card {
        left: 1.25rem;
        width: 230px
    }

    .section {
        padding: 6rem 6vw
    }

    .intro-grid,
    .team-grid,
    .split-heading {
        grid-template-columns: 1fr;
        gap: 3rem
    }

    .facts {
        grid-template-columns: 1fr
    }

    .facts article {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 1.8rem 0
    }

    .question {
        grid-template-columns: 40px 1fr
    }

    .question p,
    .question blockquote {
        grid-column: 2
    }

    .map-section {
        grid-template-columns: 1fr;
        padding: 6rem 6vw 2rem
    }

    .art-map {
        height: 500px
    }

    .publication-grid {
        grid-template-columns: 1fr
    }

    .context-section {
        padding: 5rem 4vw
    }

    .context-card {
        border-radius: 40px
    }

    .site-footer {
        grid-template-columns: 1fr 1fr;
    }

    .footer-identity {
        grid-column: 1 / -1;
    }

    .footer-location {
        padding-left: 0;
        border-left: 0;
    }

    .footer-closing {
        grid-column: 1 / -1;
    }
}

@media(max-width:560px) {
    .site-footer {
        grid-template-columns: 1fr;
        gap: 2.5rem;
        padding: 3rem 6vw 1.75rem;
    }

    .footer-identity,
    .footer-closing {
        grid-column: auto;
    }

    .footer-navigation {
        padding-top: 1.5rem;
        border-top: 1px solid rgba(169, 196, 184, .15);
    }

    .brand span {
        display: none
    }

    .hero-copy {
        padding-top: 4rem
    }

    .hero-visual {
        min-height: 430px
    }

    .plant-card {
        width: 180px
    }

    .place-caption {
        display: none
    }

    .intro h2,
    .section-heading h2,
    .team h2 {
        font-size: 2.8rem
    }

    .question {
        gap: 1rem
    }

    .question h3 {
        font-size: 1.5rem
    }

    .art-map {
        height: 380px
    }

    .map-section {
        min-height: auto
    }

    .publication-grid h3 {
        margin-top: 2.5rem
    }

    .section-kicker {
        flex-direction: column;
        gap: .8rem
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,
    *:before,
    *:after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important
    }
}


/*==================================================
    MAPA NARRATIVO
==================================================*/

#territory-scene {
    opacity: 1;
    transition: opacity 1.2s ease;
}

#animated-map.study-view-active #territory-scene {
    opacity: 0;
}

/* Ventana de localizaciÃ³n */

.study-locator {
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.88);
    transition:
        opacity .7s ease,
        transform .9s cubic-bezier(.34, 1.56, .64, 1);
}

#animated-map.show-locator .study-locator {
    opacity: 1;
    transform: scale(1);
}

.study-locator-box {
    fill: rgba(210, 167, 43, .09);
    stroke: #d2a72b;
    stroke-width: 2;
    stroke-dasharray: 8 6;
}

.study-locator-label {
    fill: #d2a72b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
}

.locator-corner {
    fill: none;
    stroke: #ffe08a;
    stroke-width: 3;
    stroke-linecap: square;
}

/* Nueva escena conceptual */

#study-scene {
    opacity: 0;
    transform: translate(155px, 72px) scale(.19);
    transform-origin: 0 0;
    transition:
        opacity .75s ease,
        transform 1.9s cubic-bezier(.65, 0, .35, 1);
    will-change: transform, opacity;
}

#animated-map.study-view-active #study-scene {
    opacity: 1;
    transform: translate(0, 0) scale(1);
}

.study-field {
    fill: #111f1b;
    stroke: rgba(169, 196, 184, .3);
    stroke-width: 1;
}

.study-landscape-shape {
    fill: rgba(80, 108, 73, .26);
}

.study-grid {
    opacity: .13;
    fill: none;
    stroke: #a9c4b8;
    stroke-width: 1;
    stroke-dasharray: 3 6;
}

.study-view-kicker,
.study-west,
.study-east {
    fill: #d2a72b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
}

.study-east {
    text-anchor: end;
}

/* Capas narrativas */

.story-layer {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.story-layer.active {
    opacity: 1;
    transform: translateY(0);
}

#animated-map.study-view-active .layer-transects.active {
    transition-delay: 1.2s;
}

/* Transectas */

.transect-line {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.northern-transect {
    stroke: #d2a72b;
}

.southern-transect {
    stroke: #8fb4a6;
}

.layer-transects.active .transect-line {
    animation: drawTransect 2.2s ease forwards;
}

.layer-transects.active .southern-transect {
    animation-delay: .55s;
}

.transect-name {
    fill: #d8e1dc;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.sample-site {
    fill: #d2a72b;
    stroke: #fff0b6;
    stroke-width: 1.5;
    transform-box: fill-box;
    transform-origin: center;
    animation: samplePulse 3s ease-in-out infinite;
}

.southern-sites .sample-site {
    fill: #78a795;
    stroke: #d9ede5;
}

.plots-label {
    fill: #8fa69c;
    font-size: 10px;
    letter-spacing: .08em;
}

/* Disturbios */

.degraded-area {
    fill: rgba(168, 71, 36, .16);
    stroke: #bd765d;
    stroke-width: 2;
    stroke-dasharray: 7 7;
}

.invasion-focus-glow {
    fill: #d2a72b;
    opacity: .18;
    filter: url(#glow);
    transform-box: fill-box;
    transform-origin: center;
    animation: hotspotPulse 3.5s ease-in-out infinite;
}

.invasion-focus {
    fill: #d2a72b;
    stroke: #ffe8a0;
    stroke-width: 2;
}

/* PresiÃ³n de propÃ¡gulos */

.distance-ring {
    fill: none;
    stroke: #d2a72b;
    stroke-width: 1.5;
    opacity: .4;
    transform-box: fill-box;
    transform-origin: center;
    animation: ringExpansion 3s ease-out infinite;
}

.ring-two {
    animation-delay: .7s;
}

.ring-three {
    animation-delay: 1.4s;
}

/* Gradiente */

.gradient-arrow {
    fill: none;
    stroke: #d2a72b;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 8 7;
}

.gradient-dot {
    fill: #d2a72b;
    stroke: #ffe8a0;
    stroke-width: 1;
}

.gradient-dot-1 {
    opacity: 1;
}

.gradient-dot-2 {
    opacity: .82;
}

.gradient-dot-3 {
    opacity: .64;
}

.gradient-dot-4 {
    opacity: .46;
}

.gradient-dot-5 {
    opacity: .28;
}

/* DispersiÃ³n */

.seed-route {
    fill: none;
    stroke: rgba(210, 167, 43, .5);
    stroke-width: 1.5;
    stroke-dasharray: 4 8;
}

.wind-symbol {
    fill: none;
    stroke: #a9c4b8;
    stroke-width: 2;
    stroke-linecap: round;
}

.flying-seed {
    fill: #f4d36e;
    stroke: #f4d36e;
    stroke-width: 1.2;
}

.new-focus {
    fill: #d2a72b;
    stroke: #ffe8a0;
    stroke-width: 2;
    transform-box: fill-box;
    transform-origin: center;
    animation: newFocusPulse 2s ease-in-out infinite;
}

/* Escala local */

.patch-window {
    fill: rgba(23, 58, 49, .95);
    stroke: #5f8f83;
    stroke-width: 2;
}

.vegetative-patch {
    fill: rgba(210, 167, 43, .62);
    stroke: #e3ca73;
    stroke-width: 1.5;
    transform-box: fill-box;
    transform-origin: center;
    animation: patchGrowth 4s ease-in-out infinite alternate;
}

.patch-b,
.patch-d {
    animation-delay: .5s;
}

.patch-c,
.patch-e {
    animation-delay: 1s;
}

.patch-f {
    animation-delay: 1.5s;
}

.patch-title {
    fill: #f0ede3;
    font-family: Georgia, serif;
    font-size: 16px;
}

.patch-description {
    fill: #a9c4b8;
}

/* ProyecciÃ³n futura */

.outlook-wave {
    fill: none;
    stroke: rgba(210, 167, 43, .38);
    stroke-width: 42;
    stroke-linecap: round;
    filter: url(#glow);
}

.outlook-wave-b {
    stroke: rgba(95, 143, 131, .3);
}

.outlook-title {
    fill: #f0ede3;
    font-family: Georgia, serif;
    font-size: 20px;
    text-anchor: middle;
}

.outlook-copy {
    fill: #d2a72b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-anchor: middle;
    text-transform: uppercase;
}

/* Textos internos */

.svg-label {
    fill: #d8e1dc;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
}

.svg-small-label {
    fill: #8fa69c;
    font-size: 9px;
    letter-spacing: .04em;
}

.degraded-label,
.distance-label {
    fill: #d2a72b;
}

/* Panel narrativo */

.map-story-panel {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    z-index: 5;
    width: min(330px, 70%);
    padding: 1rem 1.2rem;
    border: 1px solid rgba(169, 196, 184, .25);
    background: rgba(16, 25, 23, .88);
    backdrop-filter: blur(10px);
}

.story-step {
    color: #d2a72b;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .16em;
}

.story-caption {
    min-height: 48px;
    margin: .55rem 0 .8rem;
    color: #e8eee7;
    font-family: Georgia, serif;
    font-size: .95rem;
    line-height: 1.45;
}

/* Controles de la historia */

.map-controls {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .65rem;
    padding-top: .75rem;
    border-top: 1px solid rgba(169, 196, 184, .18);
}

.map-control {
    padding: .35rem 0;
    border: 0;
    background: transparent;
    color: #a9c4b8;
    cursor: pointer;
    font-size: .66rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition:
        color .2s ease,
        opacity .2s ease;
}

.map-control:hover {
    color: #d2a72b;
}

.map-control:focus-visible {
    outline: 1px solid #d2a72b;
    outline-offset: 4px;
}

.map-control:disabled {
    opacity: .28;
    cursor: default;
}

.map-control:disabled:hover {
    color: #a9c4b8;
}

.map-previous {
    text-align: left;
}

.map-next {
    text-align: right;
}

.map-pause {
    padding-inline: .7rem;
    color: #d2a72b;
}

/* Detiene las animaciones CSS del paso actual */

#animated-map.map-paused .story-layer,
#animated-map.map-paused .story-layer * {
    animation-play-state: paused !important;
}

@media (max-width: 480px) {

    .map-controls {
        gap: .35rem;
    }

    .map-control {
        font-size: .58rem;
        letter-spacing: .03em;
    }
}

.demo-warning {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    padding: .45rem .65rem;
    border: 1px solid rgba(210, 167, 43, .35);
    background: rgba(16, 25, 23, .72);
    color: #d2a72b;
    font-size: .62rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

#animated-map.study-view-active .label-north,
#animated-map.study-view-active .label-sector {
    opacity: 0;
}

/* Animaciones */

@keyframes drawTransect {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes samplePulse {
    50% {
        transform: scale(1.28);
    }
}

@keyframes hotspotPulse {
    50% {
        opacity: .4;
        transform: scale(1.18);
    }
}

@keyframes ringExpansion {
    0% {
        opacity: .55;
        transform: scale(.88);
    }

    100% {
        opacity: 0;
        transform: scale(1.16);
    }
}

@keyframes newFocusPulse {
    50% {
        transform: scale(1.5);
    }
}

@keyframes patchGrowth {
    from {
        transform: scale(.88);
    }

    to {
        transform: scale(1.12);
    }
}

@media (max-width: 700px) {

    .map-story-panel {
        left: .5rem;
        bottom: .5rem;
        width: calc(100% - 1rem);
    }

    .demo-warning {
        top: .5rem;
        right: .5rem;
    }

    .label-north,
    .label-sector {
        display: none;
    }

    .study-view-kicker {
        font-size: 9px;
    }
}


/*==================================================
    INFOGRAFÃA RESPONSIVE
==================================================*/

@media (max-width: 700px) {

    .map-section {
        display: block;
        min-height: auto;
        padding: 4.5rem 5vw 3rem;
        overflow: hidden;
    }

    .map-copy {
        max-width: none;
        margin-bottom: 2.5rem;
    }

    .map-section h2 {
        max-width: 520px;
        margin-bottom: 1.4rem;
        font-size: clamp(2.7rem, 13vw, 4rem);
    }

    .map-copy>p:not(.eyebrow):not(.map-note) {
        font-size: .92rem;
        line-height: 1.7;
    }

    .map-note {
        margin-top: 1.8rem;
    }

    /*
     * En mÃ³vil los elementos dejan de estar superpuestos
     * y pasan a ocupar filas independientes.
     */

    .art-map {
        display: grid;
        grid-template-areas:
            "warning"
            "visual"
            "panel"
            "sources";
        gap: 1rem;
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .art-map svg {
        grid-area: visual;
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 760 / 600;
        overflow: visible;
    }

    .demo-warning {
        grid-area: warning;
        position: static;
        width: fit-content;
        margin: 0;
        padding: .42rem .6rem;
        justify-self: start;
        font-size: .55rem;
    }

    .map-story-panel {
        grid-area: panel;
        position: static;
        width: 100%;
        margin: 0;
        padding: 1.1rem;
    }

    .story-caption {
        min-height: 0;
        margin: .6rem 0 1rem;
        font-size: .92rem;
        line-height: 1.45;
    }

    .map-sources {
        grid-area: sources;
        position: static;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
        gap: .3rem .45rem;
        margin: 0;
        padding: 0 .2rem;
        font-size: .48rem;
        line-height: 1.5;
        text-align: left;
    }

    .map-controls {
        gap: .4rem;
    }

    .map-control {
        font-size: .57rem;
        white-space: nowrap;
    }

    /*
     * Los textos internos del SVG necesitan un tamaÃ±o
     * mayor porque todo el viewBox se reduce en celular.
     */

    .study-locator-label {
        font-size: 18px;
    }

    .study-view-kicker,
    .study-west,
    .study-east {
        font-size: 17px;
    }

    .transect-name {
        font-size: 18px;
    }

    .plots-label {
        font-size: 15px;
    }

    .svg-label {
        font-size: 17px;
    }

    .svg-small-label {
        font-size: 14px;
    }

    .direction-label {
        font-size: 15px;
    }

    .patch-title {
        font-size: 21px;
    }

    .outlook-title {
        font-size: 24px;
    }

    .outlook-copy {
        font-size: 15px;
    }

    .label-north,
    .label-sector {
        display: none;
    }

    .territorial-note {
        margin-top: 2.2rem;
        padding: 1.5rem .25rem 0;
        font-size: .64rem;
        line-height: 1.65;
    }
}


/*==================================================
    SCROLL POR SECCIONES
==================================================*/

@media (min-width: 901px) {

    html {
        scroll-snap-type: y proximity;
    }

    .hero,
    .intro,
    .why-it-matters,
    .map-section,
    .context-section,
    .team,
    footer {
        scroll-snap-align: start;
        scroll-margin-top: 0;
    }

    .hero,
    .why-it-matters,
    .map-section,
    .context-section,
    .team {
        min-height: calc(100svh - var(--header-height));
    }
}

@media (max-width: 900px) {

    html {
        scroll-snap-type: none;
    }
}

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-snap-type: none;
    }
}

/*==================================================
    PUBLICACIONES Â· RESPONSIVE Y ENTRADA EDITORIAL
==================================================*/

.publication-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity .75s ease var(--publication-delay, 0ms),
        transform .75s cubic-bezier(.2, .8, .2, 1) var(--publication-delay, 0ms),
        background-color .35s ease,
        box-shadow .35s ease;
}

.publication-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.publication-card.publication-reveal.is-visible:hover {
    transform: translateY(-6px);
}

.paper-sites circle {
    transform-box: fill-box;
    transform-origin: center;
    animation: paperSitePulse 3.4s ease-in-out infinite;
}

.paper-sites circle:nth-child(2n) {
    animation-delay: .6s;
}

.paper-sites circle:nth-child(3n) {
    animation-delay: 1.2s;
}

.paper-wind {
    animation: paperWindDrift 5s ease-in-out infinite;
}

@keyframes paperSitePulse {
    50% {
        transform: scale(1.35);
        opacity: .72;
    }
}

@keyframes paperWindDrift {
    50% {
        transform: translateX(10px);
        opacity: .65;
    }
}

@media (max-width: 1100px) {
    .publication-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .publication-card:nth-child(3n + 2) {
        background: rgba(244, 240, 231, .64);
    }

    .publication-card:nth-child(4n + 2),
    .publication-card:nth-child(4n + 3) {
        background: rgba(232, 235, 221, .66);
    }
}

@media (max-width: 900px) {
    .publication-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .publication-heading h2 {
        font-size: clamp(3.4rem, 12vw, 6rem);
    }

    .featured-publication {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .featured-copy {
        min-height: 590px;
    }

    .featured-visual {
        min-height: 460px;
    }

    .publication-grid {
        grid-template-columns: 1fr;
    }

    .publication-card {
        min-height: 430px;
    }

    .publication-card:nth-child(n) {
        background: rgba(244, 240, 231, .64);
    }

    .publication-card:nth-child(even) {
        background: rgba(232, 235, 221, .66);
    }

    .publication-grid h3 {
        margin-top: 0;
    }
}

@media (max-width: 560px) {
    .publication-heading {
        margin-bottom: 3rem;
    }

    .publication-heading h2 {
        font-size: clamp(3rem, 16vw, 4.6rem);
    }

    .publication-intro .publication-deck {
        font-size: 1.2rem;
    }

    .featured-copy {
        min-height: 0;
        padding: 1.75rem 1.25rem 2rem;
    }

    .publication-overline {
        align-items: flex-start;
        flex-direction: column;
        gap: .45rem;
        font-size: .6rem;
    }

    .publication-overline span:last-child {
        text-align: left;
    }

    .featured-number {
        top: 4.2rem;
        right: .75rem;
        font-size: 7rem;
    }

    .featured-copy h3 {
        max-width: 100%;
        margin: 3.25rem 0 1rem;
        font-size: clamp(2.15rem, 12vw, 2.65rem);
        line-height: .98;
    }

    .featured-copy>p:not(.featured-number) {
        font-size: .93rem;
        line-height: 1.65;
    }

    .featured-findings {
        grid-template-columns: 1fr;
        gap: 0;
        margin: 2rem 0 1.5rem;
        padding-top: 0;
    }

    .featured-findings li {
        display: block;
        padding: .9rem 0;
        border-bottom: 1px solid rgba(169, 196, 184, .14);
    }

    .featured-findings li:last-child {
        border-bottom: 0;
    }

    .featured-findings strong {
        margin-bottom: .2rem;
        font-size: 1.3rem;
    }

    .featured-findings span {
        font-size: .74rem;
        line-height: 1.45;
    }

    .featured-visual {
        min-height: 330px;
    }

    .featured-visual>p {
        right: 1rem;
        bottom: 1rem;
    }

    .publication-archive-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .7rem;
        margin-top: 4.5rem;
    }

    .publication-card {
        min-height: 420px;
        padding: 1.5rem;
    }

    .publication-grid h3 {
        margin-top: 0;
        font-size: 1.8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .publication-reveal {
        opacity: 1;
        transform: none;
    }
}

/*==================================================
    PREGUNTAS CONECTADAS CON EL ARCHIVO
==================================================*/

.question-papers {
    grid-column: 2;
    grid-row: 2;
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: .65rem;
    margin-top: .15rem;
    padding: .62rem .9rem;
    border: 1px solid rgba(23, 58, 49, .22);
    border-radius: 999px;
    color: var(--rust);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .075em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}

.question-papers span {
    color: var(--peat);
    transition: color .25s ease, transform .25s ease;
}

.question-papers:hover {
    color: var(--gold);
    border-color: var(--peat);
    background: var(--peat);
}

.question-papers:hover span {
    color: #f4f0e7;
    transform: translate(3px, -2px);
}

@media (max-width: 900px) {
    .question {
        grid-template-columns: 40px 1fr;
        grid-template-rows: auto;
        gap: 1rem;
        margin: 0;
        padding-right: 0;
        padding-left: 0;
    }

    .question-number {
        grid-column: 1;
        grid-row: 1 / 5;
    }

    .question h3 {
        grid-column: 2;
        grid-row: 1;
    }

    .question p {
        grid-column: 2;
        grid-row: 2;
    }

    .question blockquote {
        grid-column: 2;
        grid-row: 3;
    }

    .question-papers {
        grid-column: 2;
        grid-row: 4;
    }
}

.questions-to-map {
    display: grid;
    grid-template-columns:
        minmax(300px, .95fr) minmax(260px, 1.05fr) clamp(6.5rem, 8vw, 8.75rem);
    margin-top: clamp(2rem, 4vw, 4rem);
    border-top: 3px solid var(--gold);
    color: #f4f0e7;
    background: var(--peat);
    text-decoration: none;
    overflow: hidden;
    transition: background-color .35s ease;
}

.questions-to-map-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .65rem;
    padding: clamp(2rem, 3vw, 3rem) clamp(1.6rem, 3.5vw, 3.5rem);
}

.questions-to-map-heading small {
    color: var(--gold);
    font-size: .62rem;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.questions-to-map-heading strong {
    font: 400 clamp(2rem, 3vw, 3.25rem)/.98 Georgia, serif;
    letter-spacing: -.025em;
}

.questions-to-map-description {
    display: flex;
    align-items: center;
    margin: clamp(2rem, 3vw, 3rem) 0;
    padding: 0 clamp(2rem, 4vw, 4rem);
    border-left: 1px solid rgba(169, 196, 184, .28);
    color: #c2d1ca;
    font-size: clamp(.95rem, 1.15vw, 1.08rem);
    line-height: 1.7;
}

.questions-to-map-arrow {
    display: grid;
    place-items: center;
    min-width: 0;
    border-left: 1px solid rgba(210, 167, 43, .38);
    color: var(--gold);
    font-family: Arial, sans-serif;
    font-size: clamp(2.6rem, 3.5vw, 4rem);
    font-weight: 200;
    line-height: 1;
    transition:
        color .35s ease,
        background-color .35s ease,
        transform .35s ease;
}

.questions-to-map:hover .questions-to-map-arrow {
    color: var(--peat);
    background: var(--gold);
    transform: translateY(5px);
}

.questions-to-map:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 4px;
}

#paper-01,
#paper-02,
#paper-03,
#paper-04,
#paper-05,
#paper-06,
#paper-07,
#paper-08,
#paper-09,
#paper-10,
#paper-11,
#paper-12,
#archivo-publicaciones {
    scroll-margin-top: calc(var(--header-height) + 1.5rem);
}

/*==================================================
    SÃNTESIS ANIMADA DE LAS ESCALAS
==================================================*/

.research-journey {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 0;
    overflow: hidden;
    outline: none;
    background:
        radial-gradient(circle at 50% 42%, rgba(47, 105, 96, .22), transparent 48%),
        #0c1412;
}

.research-journey::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .15;
    background-image: radial-gradient(rgba(169, 196, 184, .45) .65px, transparent .65px);
    background-size: 18px 18px;
}

.research-journey:focus-visible {
    box-shadow: inset 0 0 0 2px var(--gold);
}

.research-journey svg {
    position: relative;
    z-index: 1;
    width: min(84%, 560px);
    height: auto;
    margin-bottom: 2.7rem;
}

.journey-horizon,
.journey-ground {
    fill: none;
    stroke: rgba(169, 196, 184, .13);
    stroke-width: 1.2;
}

.journey-ground {
    stroke-dasharray: 5 8;
}

.research-stage {
    opacity: 0;
    transform: translateY(12px) scale(.985);
    transform-origin: center;
    transition: opacity .9s ease, transform .9s cubic-bezier(.2, .8, .2, 1);
    pointer-events: none;
}

.research-stage.active {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.journey-wind {
    fill: none;
    stroke: #8aaca0;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 8 10;
}

.journey-wind-small {
    opacity: .5;
}

.journey-seed ellipse {
    fill: var(--gold);
    stroke: #ffe8a0;
    stroke-width: 1.4;
}

.journey-seed path {
    fill: none;
    stroke: #d8e1dc;
    stroke-width: 1.2;
    stroke-linecap: round;
}

.stage-seed.active .journey-seed {
    animation: seedFloat 4s ease-in-out infinite;
}

.stage-seed.active .journey-wind {
    animation: seedWind 5s linear infinite;
}

.journey-glow {
    fill: url(#journeyGlow);
}

.journey-rosette path:not(.journey-flower-stem) {
    fill: rgba(95, 143, 131, .55);
    stroke: #a9c4b8;
    stroke-width: 1.3;
}

.journey-rosette .journey-flower-stem {
    fill: none;
    stroke: #a9c4b8;
    stroke-width: 2;
}

.journey-flower {
    fill: var(--gold);
    stroke: #ffe8a0;
    stroke-width: 2;
}

.stage-plant.active .journey-rosette-main {
    transform-origin: 312px 340px;
    animation: plantBreathe 4.5s ease-in-out infinite;
}

.journey-stolon {
    fill: none;
    stroke: #8fb0a4;
    stroke-width: 2;
    stroke-dasharray: 6 5;
}

.journey-patch-dots circle {
    fill: rgba(210, 167, 43, .24);
    stroke: #d2a72b;
    stroke-width: 1.5;
}

.stage-patch.active .journey-patch-dots circle {
    transform-box: fill-box;
    transform-origin: center;
    animation: patchResearchPulse 3.4s ease-in-out infinite alternate;
}

.stage-patch.active .journey-patch-dots circle:nth-child(2n) {
    animation-delay: .7s;
}

.journey-grasses path,
.journey-grass-bites path,
.journey-new-growth path {
    fill: none;
    stroke: #8aaca0;
    stroke-width: 2;
    stroke-linecap: round;
}

.journey-patch-community circle {
    fill: rgba(210, 167, 43, .35);
}

.journey-mountain {
    fill: rgba(47, 105, 96, .14);
    stroke: #71998d;
    stroke-width: 2;
}

.journey-landscape-patches ellipse {
    fill: rgba(210, 167, 43, .48);
    stroke: #e3ca73;
    stroke-width: 1;
}

.journey-fence {
    fill: none;
    stroke: rgba(169, 196, 184, .35);
    stroke-width: 1.5;
}

.journey-animal path {
    fill: none;
    stroke: var(--gold);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.stage-territory.active .journey-animal {
    animation: animalWalk 4.5s ease-in-out infinite;
}

.journey-plots path {
    fill: rgba(185, 198, 174, .09);
    stroke: #70978b;
    stroke-width: 1.5;
}

.journey-new-growth path {
    stroke: #b9c6ae;
}

.journey-monitor,
.journey-check {
    fill: none;
    stroke: var(--gold);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.research-journey-ui {
    position: absolute;
    right: 1.6rem;
    bottom: 1.4rem;
    left: 1.6rem;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto auto;
    align-items: center;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(169, 196, 184, .18);
}

.research-stage-label {
    margin: 0;
    color: #e8eee7;
    font: italic 1rem/1 Georgia, serif;
}

.research-progress {
    display: flex;
    gap: .5rem;
}

.research-progress button {
    width: 22px;
    height: 2px;
    padding: 0;
    border: 0;
    background: rgba(169, 196, 184, .28);
    cursor: pointer;
    transition: width .25s ease, background-color .25s ease;
}

.research-progress button.active {
    width: 38px;
    background: var(--gold);
}

.research-progress button:focus-visible,
.research-toggle:focus-visible {
    outline: 2px solid #ffe8a0;
    outline-offset: 4px;
}

.research-toggle {
    padding: 0;
    border: 0;
    background: transparent;
    color: #8fa69c;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
}

.research-toggle:hover {
    color: var(--gold);
}

@keyframes seedFloat {
    50% {
        transform: translate(18px, 12px) rotate(8deg);
    }
}

@keyframes seedWind {
    to {
        stroke-dashoffset: -36;
    }
}

@keyframes plantBreathe {
    50% {
        transform: scale(1.035);
    }
}

@keyframes patchResearchPulse {
    to {
        transform: scale(1.12);
        opacity: .72;
    }
}

@keyframes animalWalk {
    50% {
        transform: translateX(12px) translateY(-2px);
    }
}

/* El trabajo regional vuelve al archivo con una imagen propia */
.visual-regional .publication-mini-visual::before {
    content: "";
    position: absolute;
    inset: 8px 22% 10px 18%;
    border: 1.5px solid rgba(47, 105, 96, .55);
    border-radius: 38% 55% 46% 52%;
    transform: rotate(-7deg);
}

.visual-regional .publication-mini-visual i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--gold);
    box-shadow: 0 0 0 7px rgba(210, 167, 43, .1);
}

.visual-regional .publication-mini-visual i:nth-child(1) {
    left: 31%;
    top: 20%;
}

.visual-regional .publication-mini-visual i:nth-child(2) {
    left: 43%;
    top: 42%;
    width: 6px;
    height: 6px;
}

.visual-regional .publication-mini-visual i:nth-child(3) {
    left: 58%;
    top: 31%;
    width: 5px;
    height: 5px;
}

.visual-regional .publication-mini-visual i:nth-child(4) {
    left: 51%;
    top: 68%;
    width: 7px;
    height: 7px;
}

.visual-regional .publication-mini-visual i:nth-child(5) {
    left: 69%;
    top: 55%;
    width: 4px;
    height: 4px;
}

/* Gradientes: catena topogrÃ¡fica y respuesta de la vegetaciÃ³n */
.visual-gradient .publication-mini-visual::before {
    top: auto;
    right: 3%;
    bottom: 17%;
    left: 3%;
    height: 55px;
    background: transparent;
    border: 0;
    border-bottom: 1.5px solid var(--teal);
    border-radius: 0 0 55% 45%;
    transform: rotate(-3deg);
}

.visual-gradient .publication-mini-visual::after {
    top: 14%;
    right: auto;
    bottom: auto;
    left: 6%;
    width: 88%;
    height: 1px;
    background: linear-gradient(90deg, var(--rust), var(--gold), var(--teal));
    transform: none;
}

.visual-gradient .publication-mini-visual i {
    bottom: 16%;
    width: 1.5px;
    background: var(--teal);
    transform-origin: bottom;
}

.visual-gradient .publication-mini-visual i:nth-child(1) {
    left: 12%;
    height: 43px;
    transform: rotate(-12deg);
}

.visual-gradient .publication-mini-visual i:nth-child(2) {
    left: 29%;
    height: 32px;
    transform: rotate(8deg);
}

.visual-gradient .publication-mini-visual i:nth-child(3) {
    left: 48%;
    height: 18px;
    background: var(--gold);
}

.visual-gradient .publication-mini-visual i:nth-child(4) {
    left: 68%;
    height: 29px;
    transform: rotate(-8deg);
}

.visual-gradient .publication-mini-visual i:nth-child(5) {
    left: 86%;
    height: 47px;
    transform: rotate(11deg);
}

/* Manejo: parcelas experimentales, no grÃ¡fico de barras */
.visual-treatment .publication-mini-visual {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 7px;
    padding: 12px 3% 16px;
    perspective: 180px;
}

.visual-treatment .publication-mini-visual i {
    position: relative;
    inset: auto;
    align-self: end;
    height: 52px;
    border: 1px solid rgba(23, 58, 49, .3);
    background:
        repeating-linear-gradient(90deg, transparent 0 6px, rgba(47, 105, 96, .18) 6px 7px),
        rgba(185, 198, 174, .16);
    transform: rotateX(42deg);
}

.visual-treatment .publication-mini-visual i:nth-child(2) {
    height: 52px;
    background-color: rgba(210, 167, 43, .14);
}

.visual-treatment .publication-mini-visual i:nth-child(3) {
    height: 52px;
    background-color: rgba(95, 143, 131, .18);
}

.visual-treatment .publication-mini-visual i:nth-child(4) {
    height: 52px;
    background-color: rgba(168, 71, 36, .1);
}

.visual-treatment .publication-mini-visual i:nth-child(5) {
    height: 52px;
    background-color: rgba(23, 58, 49, .08);
}

@media (max-width: 900px) {
    .research-journey {
        min-height: 520px;
    }
}

@media (max-width: 700px) {
    .question-papers {
        grid-column: 2;
    }

    .questions-to-map {
        grid-template-columns: 1fr clamp(4.75rem, 20vw, 6rem);
    }

    .questions-to-map-heading {
        padding: 1.6rem 1.35rem .8rem;
    }

    .questions-to-map-description {
        grid-column: 1;
        margin: 0 1.35rem 1.6rem;
        padding: .9rem 0 0;
        border-top: 1px solid rgba(169, 196, 184, .28);
        border-left: 0;
        font-size: .92rem;
        line-height: 1.6;
    }

    .questions-to-map-arrow {
        grid-column: 2;
        grid-row: 1 / 3;
        font-size: clamp(3rem, 15vw, 4.25rem);
    }
}

@media (max-width: 560px) {
    .research-journey {
        min-height: 350px;
    }

    .research-journey svg {
        width: min(100%, 360px);
        margin-bottom: 3rem;
    }

    .research-journey-ui {
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
        grid-template-columns: 1fr auto;
        gap: .8rem;
    }

    .research-progress {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-content: space-between;
    }

    .research-progress button {
        width: 12%;
    }

    .research-progress button.active {
        width: 20%;
    }

    .research-stage-label {
        grid-column: 1;
        grid-row: 2;
    }

    .research-toggle {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (prefers-reduced-motion: reduce) {

    .research-stage,
    .research-stage.active {
        transition: none;
    }

    .stage-seed.active .journey-seed,
    .stage-seed.active .journey-wind,
    .stage-plant.active .journey-rosette-main,
    .stage-patch.active .journey-patch-dots circle,
    .stage-territory.active .journey-animal {
        animation: none;
    }
}

/*==================================================
    ESCALA GLOBAL Y TESIS DOCTORAL
==================================================*/

.featured-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.featured-actions .publication-link {
    margin: 0;
}

.publication-link-secondary {
    color: #8fa69c;
}

.publication-link-secondary:hover {
    color: var(--gold);
}

.journey-world {
    fill: rgba(47, 105, 96, .13);
    stroke: #71998d;
    stroke-width: 2;
}

.journey-world-grid {
    fill: none;
    stroke: rgba(169, 196, 184, .25);
    stroke-width: 1;
}

.journey-native-range {
    fill: rgba(95, 143, 131, .7);
    stroke: #a9c4b8;
    stroke-width: 1.3;
}

.journey-invaded-range {
    fill: rgba(210, 167, 43, .55);
    stroke: #ffe8a0;
    stroke-width: 1.2;
}

.journey-climate-shift {
    fill: none;
    stroke: var(--rust);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 6 8;
}

.stage-global.active .journey-climate-shift {
    animation: globalClimateShift 4s linear infinite;
}

@keyframes globalClimateShift {
    to {
        stroke-dashoffset: -28;
    }
}

.visual-global-niche .publication-mini-visual::before,
.visual-global-niche .publication-mini-visual::after {
    content: "";
    position: absolute;
    width: 118px;
    height: 72px;
    border-radius: 50%;
}

.visual-global-niche .publication-mini-visual::before {
    left: 17%;
    top: 16%;
    border: 1.5px solid var(--teal);
    background: rgba(47, 105, 96, .08);
    transform: rotate(-10deg);
}

.visual-global-niche .publication-mini-visual::after {
    right: 17%;
    top: 20%;
    border: 1.5px solid var(--gold);
    background: rgba(210, 167, 43, .08);
    transform: rotate(9deg);
}

.visual-global-niche .publication-mini-visual i {
    z-index: 2;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rust);
}

.visual-global-niche .publication-mini-visual i:nth-child(1) {
    left: 28%;
    top: 31%;
}

.visual-global-niche .publication-mini-visual i:nth-child(2) {
    left: 39%;
    top: 55%;
}

.visual-global-niche .publication-mini-visual i:nth-child(3) {
    left: 52%;
    top: 39%;
    background: var(--gold);
}

.visual-global-niche .publication-mini-visual i:nth-child(4) {
    left: 65%;
    top: 58%;
    background: var(--gold);
}

.visual-global-niche .publication-mini-visual i:nth-child(5) {
    left: 73%;
    top: 29%;
    background: var(--gold);
}

/* 
.visual-thesis .publication-mini-visual::before {
    content: "";
    position: absolute;
    top: 11%;
    bottom: 14%;
    left: 50%;
    width: 1px;
    background: rgba(23, 58, 49, .25);
}

.visual-thesis .publication-mini-visual i {
    width: 48px;
    height: 14px;
    border: 1px solid rgba(23, 58, 49, .28);
    background: var(--paper);
}

.visual-thesis .publication-mini-visual i::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 28px;
    height: 1px;
    background: rgba(23, 58, 49, .22);
} */


/* Tesis doctoral Â· de la escala global al proceso local */

.visual-thesis .publication-mini-visual::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 27%;
    width: 84px;
    height: 84px;
    border: 1.5px solid rgba(47, 105, 96, .58);
    border-radius: 50%;
    background: rgba(47, 105, 96, .06);
    transform: translateX(-50%);
}

/* Paralelo del globo */

.visual-thesis .publication-mini-visual::after {
    content: "";
    position: absolute;
    top: 34px;
    left: 27%;
    width: 76px;
    height: 30px;
    border: 1px solid rgba(47, 105, 96, .27);
    border-radius: 50%;
    transform: translateX(-50%);
}

/* Meridiano */

.visual-thesis .publication-mini-visual i:nth-child(1) {
    top: 8px;
    left: 27%;
    width: 32px;
    height: 84px;
    border: 1px solid rgba(47, 105, 96, .34);
    border-radius: 50%;
    background: transparent;
    transform: translateX(-50%);
    transition: transform .45s ease;
}

/* Segundo paralelo */

.visual-thesis .publication-mini-visual i:nth-child(2) {
    top: 21px;
    left: 27%;
    width: 78px;
    height: 57px;
    border: 1px solid rgba(47, 105, 96, .18);
    border-radius: 50%;
    background: transparent;
    transform: translateX(-50%);
}

/* Recorrido desde la escala global */

.visual-thesis .publication-mini-visual i:nth-child(3) {
    top: 50px;
    left: calc(27% + 43px);
    right: 13%;
    height: 1px;
    background:
        repeating-linear-gradient(90deg,
            rgba(47, 105, 96, .42) 0 6px,
            transparent 6px 12px);
}

/* Escala intermedia */

.visual-thesis .publication-mini-visual i:nth-child(4) {
    top: 41px;
    left: 61%;
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--teal);
    border-radius: 50%;
    background: var(--paper);
    transform: translateX(-50%);
    transition:
        border-color .35s ease,
        transform .35s ease;
}

/* Foco local */

.visual-thesis .publication-mini-visual i:nth-child(5) {
    top: 44px;
    left: 84%;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--gold);
    box-shadow:
        0 0 0 7px rgba(210, 167, 43, .12),
        0 0 0 14px rgba(210, 167, 43, .05);
    transform: translateX(-50%);
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

/* InteracciÃ³n breve, no animaciÃ³n permanente */

.visual-thesis:hover .publication-mini-visual i:nth-child(1) {
    transform: translateX(-50%) scaleX(.72);
}

.visual-thesis:hover .publication-mini-visual i:nth-child(4) {
    border-color: var(--gold);
    transform: translateX(-50%) scale(1.12);
}

.visual-thesis:hover .publication-mini-visual i:nth-child(5) {
    transform: translateX(-50%) scale(1.18);
    box-shadow:
        0 0 0 10px rgba(210, 167, 43, .1),
        0 0 0 18px rgba(210, 167, 43, .04);
}

@media (prefers-reduced-motion: reduce) {
    .visual-thesis .publication-mini-visual i {
        transition: none;
    }
}

@media (max-width: 560px) {
    .featured-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .research-progress {
        gap: .25rem;
    }

    .research-progress button {
        width: 8%;
    }

    .research-progress button.active {
        width: 17%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stage-global.active .journey-climate-shift {
        animation: none;
    }
}

/*==================================================
    EQUIPO Â· DIRECTORIO CIENTÃFICO EDITORIAL
==================================================*/

.team {
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 6%, rgba(210, 167, 43, .12), transparent 26rem),
        #f7f3eb;
}

.team-heading {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(3rem, 8vw, 9rem);
    align-items: end;
    max-width: 1320px;
    margin: 0 auto clamp(3.5rem, 6vw, 6rem);
}

.team-heading h2 {
    margin: 0;
    color: var(--peat);
    font: 400 clamp(3.6rem, 6vw, 6.6rem)/.9 Georgia, serif;
    letter-spacing: -.055em;
}

.team-intro {
    max-width: 560px;
    padding-bottom: .4rem;
}

.team-intro p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.7;
}

.team-intro .large-copy {
    margin-bottom: 1rem;
    color: var(--peat);
    font: 400 clamp(1.35rem, 1.8vw, 1.8rem)/1.4 Georgia, serif;
}

.team-roster {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1320px;
    margin: 0 auto;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.team-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 570px;
    padding: 1.7rem;
    overflow: hidden;
    background: rgba(244, 240, 231, .72);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}

.team-card::after {
    content: "";
    position: absolute;
    right: 100%;
    bottom: 0;
    left: 0;
    height: 3px;
    background: var(--rust);
    transition: right .35s ease;
}

.team-card:hover {
    z-index: 2;
    background: #fbf7ef;
    box-shadow: 0 25px 60px rgba(23, 58, 49, .12);
    transform: translateY(-6px);
}

.team-card:hover::after {
    right: 0;
}

.team-card-top {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--rust);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.team-portrait {
    position: relative;
    display: grid;
    place-items: center;
    height: 150px;
    margin: 1.8rem 0 1.5rem;
    overflow: hidden;
    border-bottom: 1px solid rgba(23, 58, 49, .16);
}

.team-portrait>span {
    position: relative;
    z-index: 2;
    color: var(--peat);
    font: 400 clamp(3.4rem, 5vw, 5.4rem)/1 Georgia, serif;
    letter-spacing: -.06em;
}

.team-portrait i {
    position: absolute;
    display: block;
    border: 0;
    pointer-events: none;
}

.team-portrait i:nth-of-type(1) {
    width: 270px;
    height: 62px;
    margin-top: 17px;
    border-bottom: 1px solid rgba(47, 105, 96, .32);
    border-radius: 0 0 48% 42%;
    transform: rotate(-5deg);
}

.team-portrait i:nth-of-type(2) {
    width: 205px;
    height: 48px;
    margin: 38px 0 0 54px;
    border-top: 1px solid rgba(47, 105, 96, .23);
    border-radius: 52% 46% 0 0;
    transform: rotate(12deg);
}

.team-portrait i:nth-of-type(3) {
    width: 9px;
    height: 9px;
    margin: 66px 0 0 218px;
    border-radius: 50%;
    background: var(--gold);
    box-shadow:
        -238px -17px 0 -2px rgba(47, 105, 96, .65),
        -177px 16px 0 -2px rgba(47, 105, 96, .48),
        -72px -7px 0 -1px rgba(210, 167, 43, .52),
        0 0 0 8px rgba(210, 167, 43, .09);
}

.team-portrait i:nth-of-type(1)::before,
.team-portrait i:nth-of-type(1)::after,
.team-portrait i:nth-of-type(2)::before,
.team-portrait i:nth-of-type(2)::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gold);
}

.team-portrait i:nth-of-type(1)::before {
    bottom: -3px;
    left: 1px;
}

.team-portrait i:nth-of-type(1)::after {
    right: 36px;
    bottom: 4px;
    width: 8px;
    height: 8px;
}

.team-portrait i:nth-of-type(2)::before {
    top: -3px;
    left: 0;
    width: 5px;
    height: 5px;
    background: #6e998e;
}

.team-portrait i:nth-of-type(2)::after {
    top: 4px;
    right: 0;
    background: var(--rust);
}

.team-card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.team-discipline {
    min-height: 2.5em;
    margin: 0 0 .8rem;
    color: #6f796f;
    font-size: .62rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.team-card h3 {
    margin: 0 0 1rem;
    color: var(--peat);
    font: 400 clamp(2rem, 2.8vw, 2.8rem)/.98 Georgia, serif;
    letter-spacing: -.035em;
}

.team-card-copy>p:not(.team-discipline) {
    margin: 0 0 1.5rem;
    color: #454d47;
    font-size: .82rem;
    line-height: 1.62;
}

.team-affiliation {
    display: grid;
    gap: .25rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(23, 58, 49, .13);
    color: #687269;
    font-size: .66rem;
    line-height: 1.45;
}

.team-card a {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: .6rem;
    margin-top: 1rem;
    color: var(--peat);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
}

.team-card a span {
    transition: transform .25s ease;
}

.team-card a:hover {
    color: var(--rust);
}

.team-card a:hover span {
    transform: translate(4px, -4px);
}

.team-lead {
    grid-column: span 2;
    display: grid;
    grid-template-columns: minmax(190px, .65fr) 1.35fr;
    grid-template-rows: auto 1fr;
    gap: 0 2.5rem;
    background: var(--dark);
    color: #e8eee7;
}

.team-lead:hover {
    background: #121f1c;
}

.team-lead .team-card-top {
    grid-column: 1 / -1;
    color: var(--gold);
}

.team-lead .team-portrait {
    grid-column: 1;
    grid-row: 2;
    height: auto;
    min-height: 330px;
    margin-bottom: 0;
    border-bottom: 0;
    border-right: 1px solid rgba(169, 196, 184, .17);
}

.team-lead .team-portrait>span {
    color: #f0ede3;
    font-size: clamp(4.5rem, 7vw, 7.4rem);
}

.team-lead .team-portrait i:nth-of-type(1) {
    border-bottom-color: rgba(169, 196, 184, .28);
}

.team-lead .team-portrait i:nth-of-type(2) {
    border-top-color: rgba(169, 196, 184, .2);
}

.team-lead .team-portrait i:nth-of-type(3) {
    box-shadow:
        -238px -17px 0 -2px rgba(169, 196, 184, .62),
        -177px 16px 0 -2px rgba(169, 196, 184, .42),
        -72px -7px 0 -1px rgba(210, 167, 43, .52),
        0 0 0 8px rgba(210, 167, 43, .09);
}

.team-lead .team-card-copy {
    grid-column: 2;
    grid-row: 2;
    padding: 2.6rem 1rem 0 0;
}

.team-lead .team-discipline {
    color: var(--gold);
}

.team-lead h3 {
    color: #f0ede3;
    font-size: clamp(3rem, 4.5vw, 4.9rem);
}

.team-lead .team-card-copy>p:not(.team-discipline) {
    max-width: 580px;
    color: #afc2ba;
    font-size: .9rem;
}

.team-lead .team-affiliation {
    border-color: rgba(169, 196, 184, .17);
    color: #8fa69c;
}

.team-lead a {
    color: var(--gold);
}

.team-quantitative {
    background: rgba(232, 235, 221, .82);
}

.team-experimental .team-portrait i:nth-of-type(1) {
    border-bottom-color: rgba(168, 71, 36, .34);
}

.team-spatial .team-portrait i:nth-of-type(2) {
    border-top-style: dashed;
}

.team-technical {
    background: rgba(210, 167, 43, .09);
}

.team-technical .team-portrait i:nth-of-type(3) {
    background: var(--rust);
    box-shadow: 0 0 0 9px rgba(168, 71, 36, .09);
}

/* Red ampliada de investigaciÃ³n */

.research-network,
.scientific-training {
    max-width: 1320px;
    margin: clamp(5rem, 8vw, 8rem) auto 0;
}

.research-network {
    color: #e8eee7;
    background:
        radial-gradient(circle at 85% 12%, rgba(210, 167, 43, .12), transparent 20rem),
        var(--dark);
}

.research-network-heading {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(3rem, 7vw, 8rem);
    align-items: end;
    padding: clamp(2.5rem, 5vw, 5rem);
    border-bottom: 1px solid rgba(169, 196, 184, .18);
}

.research-network-heading .eyebrow {
    margin: 0 0 1.15rem;
    color: var(--gold);
}

.research-network-heading h3,
.scientific-training-heading h3 {
    margin: 0;
    font: 400 clamp(2.8rem, 4.8vw, 5.2rem)/.94 Georgia, serif;
    letter-spacing: -.045em;
}

.research-network-heading h3 {
    color: #f0ede3;
}

.research-network-heading>p {
    max-width: 510px;
    margin: 0;
    color: #afc2ba;
    font-size: .9rem;
    line-height: 1.75;
}

.research-network-groups {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.network-group {
    min-width: 0;
    padding: clamp(2rem, 3vw, 3rem);
    border-right: 1px solid rgba(169, 196, 184, .16);
}

.network-group:last-child {
    border-right: 0;
}

.network-group-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.2rem;
    min-height: 4.25rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid rgba(169, 196, 184, .18);
}

.network-group-heading span {
    color: var(--gold);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .15em;
}

.network-group-heading h4 {
    max-width: 230px;
    margin: 0;
    color: #f0ede3;
    font: 400 1.45rem/1.15 Georgia, serif;
    text-align: right;
}

.network-group ul,
.degree-theses ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.network-group li {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 4.3rem;
    border-bottom: 1px solid rgba(169, 196, 184, .12);
}

.network-group li:last-child {
    border-bottom: 0;
}

.network-node {
    flex: 0 0 2.35rem;
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid rgba(210, 167, 43, .48);
    border-radius: 50%;
    color: var(--gold);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.network-group strong {
    color: #dce7e1;
    font-size: .8rem;
    font-weight: 600;
}

.network-group li>div {
    display: grid;
    gap: .2rem;
}

.network-group small {
    color: #809b90;
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* FormaciÃ³n de recursos humanos */

.scientific-training {
    padding: clamp(3rem, 5vw, 5rem);
    border-top: 3px solid var(--gold);
    background: #eef0e4;
}

.network-member-memorial {
    position: relative;
}

.network-member-memorial .network-node {
    border-color: rgba(210, 167, 43, .45);
    color: var(--gold);
}

.network-member-memorial small {
    color: var(--rust);
    font-family: Georgia, serif;
    font-style: italic;
    letter-spacing: .03em;
    text-transform: none;
}

/*==================================================
    EQUIPO · IN MEMORIAM
==================================================*/

/* Alicia dentro del listado */

.network-member-memorial .network-node {
    border-color: rgba(210, 167, 43, .7);
    color: var(--gold);
}

.network-member-memorial small {
    color: #d8bd68;
    font-family: Georgia, serif;
    font-style: italic;
    font-weight: 400;
    letter-spacing: .03em;
    text-transform: none;
}


/* Homenaje al final de la red */

.team-memorial {
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(110px, .3fr) minmax(340px, 1.25fr) minmax(250px, .8fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;

    margin: 0;
    padding:
        2.4rem clamp(2.5rem, 5vw, 5rem);

    border-top: 1px solid rgba(169, 196, 184, .18);
    background: rgba(255, 255, 255, .018);
}

/* Pequeña línea dorada dentro del margen real */

.team-memorial::before {
    content: "";
    position: absolute;
    top: -1px;
    left: clamp(2.5rem, 5vw, 5rem);

    width: 74px;
    height: 2px;

    background: var(--gold);
}

.team-memorial-label {
    margin: 0;

    color: var(--gold);

    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.team-memorial>p:not(.team-memorial-label) {
    margin: 0;

    color: #f0ede3;

    font: 400 1.18rem/1.55 Georgia, serif;
}

.team-memorial>p strong {
    color: #f0ede3;
    font-weight: 600;
}

.team-memorial>span {
    color: #9fb5ab;

    font-size: .78rem;
    line-height: 1.65;
}

.scientific-training-heading {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: clamp(3rem, 7vw, 8rem);
    align-items: end;
    margin-bottom: clamp(3rem, 5vw, 5rem);
}

.scientific-training-heading .eyebrow {
    margin: 0 0 1.15rem;
}

.scientific-training-heading h3 {
    color: var(--peat);
}

.scientific-training-intro p {
    margin: 0 0 1.25rem;
    color: #3f4942;
    font-size: .9rem;
    line-height: 1.75;
}

.scientific-training-intro span {
    display: block;
    padding-top: 1rem;
    border-top: 1px solid rgba(23, 58, 49, .18);
    color: var(--rust);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.doctoral-paths {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(23, 58, 49, .2);
    border-left: 1px solid rgba(23, 58, 49, .2);
}

.doctoral-path {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 340px;
    padding: clamp(1.7rem, 2.5vw, 2.5rem);
    border-right: 1px solid rgba(23, 58, 49, .2);
    border-bottom: 1px solid rgba(23, 58, 49, .2);
    background: rgba(244, 240, 231, .46);
}

.doctoral-path-featured {
    color: #e8eee7;
    background: var(--peat);
}

.doctoral-path-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--rust);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.doctoral-path-featured .doctoral-path-top {
    color: var(--gold);
}

.doctoral-path-status {
    margin: 2rem 0 .75rem;
    color: #707a72;
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.doctoral-path-featured .doctoral-path-status {
    color: #8fa69c;
}

.doctoral-path h4 {
    margin: 0 0 1.25rem;
    color: var(--peat);
    font: 400 clamp(2rem, 3vw, 3rem)/.98 Georgia, serif;
    letter-spacing: -.035em;
}

.doctoral-path-featured h4 {
    color: #f0ede3;
}

.doctoral-path>p:not(.doctoral-path-status) {
    margin: 0 0 1.5rem;
    color: #4b544e;
    font-size: .78rem;
    line-height: 1.65;
}

.doctoral-path-featured>p:not(.doctoral-path-status) {
    color: #afc2ba;
}

.doctoral-path a,
.doctoral-path-pending {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(23, 58, 49, .16);
    font-size: .68rem;
    font-weight: 700;
}

.doctoral-path a {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--peat);
    text-decoration: none;
}

.doctoral-path a span {
    transition: transform .25s ease;
}

.doctoral-path a:hover {
    color: var(--rust);
}

.doctoral-path a:hover span {
    transform: translate(4px, -4px);
}

.doctoral-path-featured a {
    border-color: rgba(169, 196, 184, .17);
    color: var(--gold);
}

.doctoral-path-pending {
    display: block;
    color: #7a837b;
    font-weight: 500;
}

.degree-theses {
    margin-top: clamp(3rem, 5vw, 5rem);
}

.degree-theses-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.25rem;
}

.degree-theses-heading p {
    margin: 0;
    color: var(--peat);
    font: 400 2rem/1 Georgia, serif;
}

.degree-theses-heading span {
    color: #6f796f;
    font-size: .68rem;
}

.degree-theses ul {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    border-top: 1px solid rgba(23, 58, 49, .2);
    border-left: 1px solid rgba(23, 58, 49, .2);
}

.degree-theses li {
    display: grid;
    align-content: space-between;
    gap: 2.2rem;
    min-height: 135px;
    padding: 1.25rem;
    border-right: 1px solid rgba(23, 58, 49, .2);
    border-bottom: 1px solid rgba(23, 58, 49, .2);
}

.degree-theses li span {
    color: var(--rust);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.degree-theses li strong {
    color: var(--peat);
    font: 400 1.15rem/1.15 Georgia, serif;
}

.scientific-training-closing {
    max-width: 850px;
    margin: clamp(2.5rem, 4vw, 4rem) auto 0;
    color: var(--rust);
    font: italic 400 clamp(1.2rem, 2vw, 1.65rem)/1.45 Georgia, serif;
    text-align: center;
}

.team-institutions {
    display: grid;
    grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr);
    gap: clamp(2rem, 5vw, 6rem);
    align-items: center;
    max-width: 1320px;
    margin: 3.5rem auto 0;
    padding: clamp(2rem, 3vw, 3rem) 0 0;
    border-top: 1px solid var(--line);
}

.institution-heading p {
    margin: 0;
    color: var(--rust);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.institution-heading span {
    display: block;
    max-width: 280px;
    margin-top: .65rem;
    color: #687269;
    font-size: .72rem;
    line-height: 1.55;
}

.institution-logos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: clamp(3rem, 7vw, 7rem);
}

.institution-logo {
    display: grid;
    place-items: center;
    min-height: 135px;
    padding: 1rem;
    overflow: hidden;
    background: transparent;
}

.institution-logo img {
    display: block;
    max-width: 100%;
    max-height: 105px;
    object-fit: contain;
    mix-blend-mode: multiply;
    filter: grayscale(1);
    opacity: .48;
    transition: filter .35s ease, opacity .35s ease, transform .35s ease;
}

.institution-logo-ifeva img {
    width: min(100%, 390px);
}

.institution-logo-fauba img {
    width: auto;
    height: 105px;
}

.institution-logo:hover,
.institution-logo:focus-visible {
    z-index: 1;
}

.institution-logo:hover img,
.institution-logo:focus-visible img {
    filter: grayscale(0);
    opacity: 1;
    transform: translateY(-4px) scale(1.02);
}

.institution-logo:active img {
    filter: grayscale(0);
    opacity: 1;
    transform: translateY(-1px) scale(.99);
}

@media (max-width: 760px) {

    .team-memorial {
        grid-template-columns: 1fr;
        gap: 1rem;

        padding:
            2rem clamp(1.4rem, 6vw, 2rem);
    }

    .team-memorial::before {
        left: clamp(1.4rem, 6vw, 2rem);
    }

    .team-memorial>p:not(.team-memorial-label) {
        font-size: 1.08rem;
    }

    .team-memorial>span {
        max-width: 34rem;
    }
}

@media (max-width: 1050px) {
    .team-roster {
        grid-template-columns: repeat(2, 1fr);
    }

    .team-lead {
        grid-column: 1 / -1;
    }

    .team-technical {
        grid-column: 1 / -1;
        min-height: 460px;
    }

    .research-network-groups {
        grid-template-columns: 1fr 1fr;
    }

    .network-group:nth-child(2) {
        border-right: 0;
    }

    .network-group:last-child {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(169, 196, 184, .16);
    }

    .degree-theses ul {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 900px) {
    .team-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .team-heading h2 {
        font-size: clamp(3.4rem, 12vw, 5.8rem);
    }

    .team-institutions {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .research-network-heading,
    .scientific-training-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .doctoral-paths {
        grid-template-columns: 1fr;
    }

    .doctoral-path {
        min-height: 0;
    }
}

@media (max-width: 700px) {
    .team-roster {
        grid-template-columns: 1fr;
    }

    .team-card,
    .team-technical {
        grid-column: auto;
        min-height: 520px;
    }

    .team-lead {
        display: flex;
        min-height: 0;
    }

    .team-lead .team-card-top {
        order: 0;
    }

    .team-lead .team-portrait {
        order: 1;
        width: 100%;
        min-height: 190px;
        margin: 1.6rem 0;
        border-right: 0;
        border-bottom: 1px solid rgba(169, 196, 184, .17);
    }

    .team-lead .team-card-copy {
        order: 2;
        padding: 0;
    }

    .team-lead h3 {
        font-size: 3.2rem;
    }

    .team-heading h2 {
        font-size: clamp(3.2rem, 15vw, 4.8rem);
    }

    .research-network,
    .scientific-training {
        margin-top: 4rem;
    }

    .research-network-heading,
    .scientific-training {
        padding: 2rem 1.35rem;
    }

    .research-network-heading h3,
    .scientific-training-heading h3 {
        font-size: clamp(2.5rem, 12vw, 3.8rem);
    }

    .research-network-groups {
        grid-template-columns: 1fr;
    }

    .network-group,
    .network-group:nth-child(2),
    .network-group:last-child {
        grid-column: auto;
        border-top: 1px solid rgba(169, 196, 184, .16);
        border-right: 0;
    }

    .degree-theses-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }

    .degree-theses ul {
        grid-template-columns: 1fr;
    }

    .degree-theses li {
        min-height: 0;
        grid-template-columns: 2rem 1fr;
        align-items: baseline;
        gap: .75rem;
    }

    .institution-logos {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .institution-logo {
        min-height: 130px;
        padding: 1.25rem 1.5rem;
    }

    .institution-logo img {
        max-height: 88px;
    }

    .institution-logo-fauba img {
        height: 88px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .team-card,
    .team-card a span,
    .doctoral-path a span {
        transition: none;
    }
}

/*==================================================
    ÃšLTIMA PASADA Â· NAVEGACIÃ“N Y ACCESIBILIDAD
==================================================*/

.skip-link {
    position: fixed;
    top: .75rem;
    left: .75rem;
    z-index: 2000;
    padding: .75rem 1rem;
    color: #fff;
    background: var(--peat);
    font-size: .78rem;
    font-weight: 700;
    transform: translateY(-160%);
    transition: transform .2s ease;
}

.skip-link:focus {
    transform: translateY(0);
}

:where(a, button, [tabindex]):focus-visible {
    outline: 2px solid var(--rust);
    outline-offset: 4px;
}

.site-header nav a[aria-current="location"] {
    color: var(--peat);
    opacity: 1;
}

.site-header nav a[aria-current="location"]::after {
    right: 0;
    height: 2px;
    background: var(--gold);
}

@media (max-width: 900px) {
    .site-header nav a[aria-current="location"] {
        color: var(--rust);
    }

    .site-header nav a[aria-current="location"]::after {
        display: none;
    }
}

/* PÃ¡gina 404 */

.error-page {
    min-height: 100svh;
    color: #f0ede3;
    background:
        radial-gradient(circle at 78% 26%, rgba(210, 167, 43, .13), transparent 24rem),
        var(--dark);
}

.error-page main {
    min-height: 100svh;
}

.error-brand {
    position: absolute;
    top: 2rem;
    left: 3vw;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    color: #f0ede3;
    font: 400 1.1rem/1 Georgia, serif;
}

.error-brand img {
    width: 38px;
    height: 38px;
    object-fit: contain;
}

.error-brand em {
    color: #a9c4b8;
}

.error-content {
    position: relative;
    display: grid;
    align-content: center;
    min-height: 100svh;
    width: min(920px, 88vw);
    margin: 0 auto;
    overflow: hidden;
}

.error-content h1 {
    max-width: 820px;
    margin: 1rem 0 1.5rem;
    font: 400 clamp(3.4rem, 7vw, 7.5rem)/.92 Georgia, serif;
    letter-spacing: -.055em;
}

.error-content>p:not(.eyebrow) {
    max-width: 520px;
    margin: 0 0 2rem;
    color: #a9c4b8;
    line-height: 1.7;
}

.error-content .button {
    justify-self: start;
}

.error-network {
    position: absolute;
    right: 0;
    bottom: 12%;
    width: 310px;
    height: 150px;
    opacity: .55;
    border-bottom: 1px solid rgba(169, 196, 184, .35);
    border-radius: 0 0 50% 35%;
    transform: rotate(-7deg);
}

.error-network i {
    position: absolute;
    bottom: -5px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--gold);
}

.error-network i:nth-child(1) {
    left: 0;
}

.error-network i:nth-child(2) {
    left: 30%;
    bottom: -18px;
}

.error-network i:nth-child(3) {
    left: 66%;
    bottom: 1px;
}

.error-network i:nth-child(4) {
    right: 0;
    bottom: 22px;
    background: var(--rust);
}

@media (max-width: 700px) {
    .error-brand {
        top: 1.25rem;
        left: 6vw;
    }

    .error-content {
        width: 88vw;
    }

    .error-network {
        right: -120px;
        bottom: 8%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .skip-link {
        transition: none;
    }

    .story-layer,
    #map-study-view,
    #map-overview,
    .north-locator,
    .publication-reveal,
    .research-stage,
    .team-card,
    .team-card a span {
        transition: none !important;
    }
}

/*==================================================
    NUEVA ARQUITECTURA CIENTÍFICA
==================================================*/

.research-index {
    background: var(--paper);
}

.research-index-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, .58fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: end;
    margin-bottom: clamp(3.5rem, 6vw, 6rem);
}

.research-index-heading h2,
.chapter-heading h2,
.model-story-heading h2,
.global-resources h2 {
    margin: 0;
    color: var(--peat);
    font: 400 clamp(3rem, 5.2vw, 5.8rem)/.97 Georgia, serif;
    letter-spacing: -.045em;
}

.research-index-heading>p {
    max-width: 560px;
    margin: 0 0 .4rem;
    color: #40534b;
    font-size: 1.03rem;
    line-height: 1.75;
}

.research-index-list {
    border-top: 1px solid var(--peat);
}

.research-index-list a {
    display: grid;
    grid-template-columns: 60px minmax(260px, .85fr) minmax(300px, 1fr) 54px;
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
    min-height: 126px;
    padding: 1.4rem 0;
    border-bottom: 1px solid rgba(23, 58, 49, .32);
    transition: padding .3s ease, background-color .3s ease;
}

.research-index-list a:hover {
    padding-right: 1.2rem;
    padding-left: 1.2rem;
    background: rgba(232, 235, 221, .7);
}

.research-index-list span {
    color: var(--rust);
    font: italic 1rem Georgia, serif;
}

.research-index-list strong {
    color: var(--peat);
    font: 400 clamp(1.65rem, 2.4vw, 2.65rem)/1.05 Georgia, serif;
}

.research-index-list em {
    max-width: 520px;
    color: #40534b;
    font-size: .95rem;
    font-style: normal;
    line-height: 1.6;
}

.research-index-list b {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(23, 58, 49, .28);
    border-radius: 50%;
    color: var(--rust);
    font-size: 1.25rem;
    font-weight: 400;
    transition: color .25s ease, background-color .25s ease, transform .25s ease;
}

.research-index-list a:hover b {
    color: var(--paper);
    background: var(--rust);
    transform: translateY(4px);
}

/* Apertura común de cada capítulo */

.research-chapter {
    scroll-margin-top: var(--header-height);
}

.chapter-heading {
    display: grid;
    grid-template-columns: 70px minmax(0, 1.08fr) minmax(320px, .62fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
}

.chapter-number {
    align-self: start;
    color: var(--rust);
    font: italic 1.1rem Georgia, serif;
}

.chapter-heading h2 {
    max-width: 850px;
    font-size: clamp(3.2rem, 5.3vw, 5.9rem);
}

.chapter-heading>p {
    max-width: 550px;
    margin: 0 0 .3rem;
    color: #40534b;
    font-size: 1rem;
    line-height: 1.75;
}

.chapter-patterns {
    background: var(--paper-2);
}

.chapter-patterns .chapter-heading {
    padding-bottom: clamp(4rem, 7vw, 7rem);
}

.chapter-visual {
    scroll-margin-top: var(--header-height);
}

/* Resultados y recursos integrados en los ejes */

.chapter-evidence {
    background: var(--paper);
}

.pattern-evidence {
    padding-top: 7rem;
    padding-bottom: 7rem;
}

.evidence-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: end;
    margin-bottom: clamp(3rem, 5vw, 5rem);
}

.evidence-heading .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: -1rem;
}

.evidence-heading h3 {
    max-width: 850px;
    margin: 0;
    color: var(--peat);
    font: 400 clamp(2.7rem, 4.4vw, 4.9rem)/1 Georgia, serif;
    letter-spacing: -.04em;
}

.evidence-heading>p {
    margin: 0;
    color: #40534b;
    font-size: .98rem;
    line-height: 1.72;
}

.evidence-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.evidence-list article {
    display: flex;
    flex-direction: column;
    min-height: 360px;
    padding: clamp(1.7rem, 2.6vw, 2.6rem);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .12);
}

.evidence-meta {
    color: var(--rust);
    font-size: .63rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.5;
    text-transform: uppercase;
}

.evidence-list h4 {
    max-width: 430px;
    margin: 2.7rem 0 1rem;
    color: var(--peat);
    font: 400 clamp(1.65rem, 2.2vw, 2.2rem)/1.08 Georgia, serif;
    letter-spacing: -.02em;
}

.evidence-list article>p {
    max-width: 450px;
    margin: 0 0 1.5rem;
    color: #40534b;
    font-size: .88rem;
    line-height: 1.7;
}

.evidence-list a,
.model-copy a,
.context-resource a {
    display: inline-flex;
    gap: .7rem;
    align-items: center;
    align-self: flex-start;
    margin-top: auto;
    color: var(--peat);
    font-size: .75rem;
    font-weight: 700;
}

.evidence-list a span,
.model-copy a span,
.context-resource a span {
    color: var(--rust);
    transition: transform .25s ease;
}

.evidence-list a:hover span,
.model-copy a:hover span,
.context-resource a:hover span {
    transform: translate(4px, -4px);
}

/* La síntesis animada se conserva, pero ya no funciona como archivo */

.research-synthesis-section {
    padding-top: 7rem;
    padding-bottom: 7rem;
    background: #efebe2;
}

.research-synthesis-section .publication-heading {
    margin-bottom: 3.5rem;
}

.research-synthesis-section .featured-publication {
    margin-bottom: 0;
}

/* Eje 02 */

.chapter-mechanisms {
    background: var(--paper-2);
}

.chapter-mechanisms .chapter-heading {
    margin-bottom: clamp(4rem, 7vw, 7rem);
}

.mechanism-statements {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: clamp(4rem, 7vw, 7rem);
    border-top: 1px solid #aab3a2;
    border-bottom: 1px solid #aab3a2;
}

.mechanism-statements article {
    min-height: 240px;
    padding: 2rem clamp(1.5rem, 3vw, 3rem);
    border-right: 1px solid #aab3a2;
}

.mechanism-statements article:last-child {
    border-right: 0;
}

.mechanism-statements span {
    color: var(--rust);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .13em;
}

.mechanism-statements h3 {
    margin: 2.4rem 0 .8rem;
    color: var(--peat);
    font: 400 1.75rem/1.08 Georgia, serif;
}

.mechanism-statements p {
    margin: 0;
    color: #40534b;
    font-size: .88rem;
    line-height: 1.65;
}

.evidence-list-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.evidence-list-four article {
    min-height: 330px;
}

/* Infografía de modelos */

.model-story {
    background: var(--dark);
    color: #e8eee7;
    scroll-margin-top: var(--header-height);
}

.model-story-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(330px, .55fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: end;
    margin-bottom: clamp(4rem, 7vw, 7rem);
}

.model-story-heading .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: -1.2rem;
    color: var(--gold);
}

.model-story-heading h2 {
    max-width: 900px;
    color: #f4f0e7;
}

.model-story-heading>p {
    margin: 0;
    color: #afc2ba;
    font-size: 1rem;
    line-height: 1.75;
}

.model-comparison {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 100px minmax(0, 1fr);
    align-items: stretch;
}

.model-panel {
    display: grid;
    grid-template-rows: auto 280px 1fr;
    min-width: 0;
    border: 1px solid rgba(169, 196, 184, .22);
    background: rgba(255, 255, 255, .025);
}

.model-panel-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.3rem;
    border-bottom: 1px solid rgba(169, 196, 184, .18);
    color: var(--gold);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.model-panel-top b {
    color: #8fa69c;
    font-weight: 600;
}

.model-visual {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-bottom: 1px solid rgba(169, 196, 184, .18);
    background: radial-gradient(circle at center, rgba(47, 105, 96, .18), transparent 58%);
}

.world-sphere {
    position: relative;
    width: 190px;
    height: 190px;
    border: 1.5px solid #8fb2a4;
    border-radius: 50%;
    animation: modelFloat 6s ease-in-out infinite;
}

.world-sphere::before,
.world-sphere::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(143, 178, 164, .52);
    border-radius: 50%;
}

.world-sphere::before {
    inset: 0 50px;
}

.world-sphere::after {
    top: 50%;
    right: 0;
    left: 0;
    height: 70px;
    transform: translateY(-50%);
}

.world-sphere i {
    position: absolute;
    width: 13px;
    height: 13px;
    border: 2px solid #ffe8a0;
    border-radius: 50%;
    background: var(--gold);
    box-shadow: 0 0 22px rgba(210, 167, 43, .45);
}

.world-sphere i:nth-child(1) {
    top: 26%;
    left: 27%;
}

.world-sphere i:nth-child(2) {
    top: 56%;
    left: 22%;
}

.world-sphere i:nth-child(3) {
    top: 38%;
    right: 25%;
}

.world-sphere i:nth-child(4) {
    right: 34%;
    bottom: 17%;
}

.world-sphere i:nth-child(5) {
    top: 15%;
    right: 39%;
}

.regional-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(8, 25px);
    grid-template-rows: repeat(6, 25px);
    border-top: 1px solid rgba(143, 178, 164, .5);
    border-left: 1px solid rgba(143, 178, 164, .5);
    transform: rotate(-7deg);
}

.regional-grid::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(90deg, transparent 0 24px, rgba(143, 178, 164, .35) 24px 25px),
        repeating-linear-gradient(0deg, transparent 0 24px, rgba(143, 178, 164, .35) 24px 25px);
}

.regional-grid i {
    position: absolute;
    z-index: 2;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background: rgba(210, 167, 43, .2);
    animation: cellPulse 4s ease-in-out infinite;
}

.regional-grid i:nth-child(1) {
    top: 2px;
    left: 27px;
}

.regional-grid i:nth-child(2) {
    top: 27px;
    left: 52px;
    animation-delay: .3s;
}

.regional-grid i:nth-child(3) {
    top: 52px;
    left: 77px;
    animation-delay: .6s;
}

.regional-grid i:nth-child(4) {
    top: 77px;
    left: 102px;
    animation-delay: .9s;
}

.regional-grid i:nth-child(5) {
    top: 27px;
    left: 127px;
    animation-delay: 1.2s;
}

.regional-grid i:nth-child(6) {
    top: 102px;
    left: 152px;
    animation-delay: 1.5s;
}

.regional-grid i:nth-child(7) {
    top: 52px;
    left: 177px;
    animation-delay: 1.8s;
}

.regional-grid i:nth-child(8) {
    top: 127px;
    left: 52px;
    animation-delay: 2.1s;
}

.model-copy {
    display: flex;
    flex-direction: column;
    padding: clamp(1.6rem, 3vw, 2.8rem);
}

.model-question {
    margin: 0 0 .75rem;
    color: var(--gold);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.model-copy h3 {
    max-width: 500px;
    margin: 0 0 1rem;
    color: #f4f0e7;
    font: 400 clamp(1.9rem, 2.6vw, 2.8rem)/1.05 Georgia, serif;
}

.model-copy>p:not(.model-question) {
    margin: 0 0 2rem;
    color: #afc2ba;
    font-size: .9rem;
    line-height: 1.72;
}

.model-copy a {
    color: var(--gold);
}

.model-transition {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .85rem;
    align-items: center;
    color: #789b8d;
    font-size: .58rem;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.model-transition b {
    color: var(--gold);
    font-size: 2rem;
    font-weight: 300;
}

@keyframes modelFloat {
    50% {
        transform: translateY(-7px) rotate(2deg);
    }
}

@keyframes cellPulse {

    0%,
    100% {
        background: rgba(210, 167, 43, .14);
    }

    50% {
        background: rgba(210, 167, 43, .75);
        box-shadow: 0 0 18px rgba(210, 167, 43, .35);
    }
}

/* Eje 03 */

.chapter-impacts {
    background: var(--paper);
}

.chapter-impacts .chapter-heading {
    margin-bottom: clamp(4rem, 7vw, 7rem);
}

.impact-framework {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.impact-framework article {
    min-height: 260px;
    padding: 2rem clamp(1.5rem, 2.7vw, 2.7rem);
    border-right: 1px solid var(--line);
}

.impact-framework article:last-child {
    border-right: 0;
}

.impact-framework span {
    color: var(--rust);
    font-size: .63rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.impact-framework h3 {
    margin: 2.5rem 0 .8rem;
    color: var(--peat);
    font: 400 1.75rem/1.08 Georgia, serif;
}

.impact-framework p {
    margin: 0;
    color: #40534b;
    font-size: .88rem;
    line-height: 1.68;
}

.impact-pending {
    background: rgba(210, 167, 43, .08);
}

.context-resource {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    margin-top: 3rem;
    padding: 2rem 0;
    border-top: 1px solid var(--peat);
    border-bottom: 1px solid var(--peat);
}

.context-resource h3 {
    margin: 0 0 .6rem;
    color: var(--peat);
    font: 400 1.8rem/1.1 Georgia, serif;
}

.context-resource p {
    max-width: 700px;
    margin: 0;
    color: #40534b;
    font-size: .88rem;
    line-height: 1.65;
}

/* Eje 04 y recursos finales */

.chapter-management {
    scroll-margin-top: var(--header-height);
}

.management-evidence {
    background: var(--paper-2);
}

.evidence-list-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.evidence-list-two article {
    min-height: 350px;
}

.global-resources {
    display: grid;
    grid-template-columns: minmax(300px, .65fr) minmax(0, 1.1fr);
    gap: clamp(3rem, 8vw, 8rem);
    background: var(--paper);
}

.global-resources header>p:last-child {
    max-width: 570px;
    color: #40534b;
    line-height: 1.72;
}

.compact-resources {
    border-top: 1px solid var(--peat);
}

.compact-resources article {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    min-height: 150px;
    padding: 1.4rem 0;
    border-bottom: 1px solid rgba(23, 58, 49, .3);
}

.compact-resources article>span {
    color: var(--rust);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.5;
    text-transform: uppercase;
}

.compact-resources h3 {
    margin: 0;
    color: var(--peat);
    font: 400 1.55rem/1.12 Georgia, serif;
}

.compact-resources a {
    color: var(--peat);
    font-size: .72rem;
    font-weight: 700;
}

/* Destinos y responsive */

#patrones,
#mecanismos,
#modelos,
#impactos,
#manejo,
#paper-01,
#paper-02,
#paper-03,
#paper-04,
#paper-05,
#paper-06,
#paper-07,
#paper-08,
#paper-09,
#paper-10,
#paper-11,
#paper-12 {
    scroll-margin-top: calc(var(--header-height) + 1rem);
}

@media (max-width: 1050px) {
    .chapter-heading {
        grid-template-columns: 55px 1fr;
    }

    .chapter-heading>p {
        grid-column: 2;
        max-width: 720px;
    }

    .model-comparison {
        grid-template-columns: 1fr;
    }

    .model-transition {
        min-height: 90px;
        flex-direction: row;
    }

    .model-transition b {
        transform: rotate(90deg);
    }
}

@media (max-width: 900px) {

    .research-index-heading,
    .model-story-heading,
    .evidence-heading,
    .global-resources {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .research-index-list a {
        grid-template-columns: 48px 1fr 48px;
        gap: 1.25rem;
    }

    .research-index-list em {
        grid-column: 2;
    }

    .research-index-list b {
        grid-column: 3;
        grid-row: 1 / 3;
    }

    .evidence-list,
    .evidence-list-four {
        grid-template-columns: 1fr;
    }

    .evidence-list article {
        min-height: 300px;
    }

    .mechanism-statements,
    .impact-framework {
        grid-template-columns: 1fr;
    }

    .mechanism-statements article,
    .impact-framework article {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid #aab3a2;
    }

    .context-resource,
    .compact-resources article {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }
}

@media (max-width: 560px) {

    .research-index-heading h2,
    .chapter-heading h2,
    .model-story-heading h2,
    .global-resources h2 {
        font-size: clamp(2.65rem, 13vw, 4rem);
    }

    .research-index-list a {
        grid-template-columns: 38px 1fr;
        min-height: 0;
        padding: 1.5rem 0;
    }

    .research-index-list em {
        grid-column: 2;
    }

    .research-index-list b {
        display: none;
    }

    .chapter-heading {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .chapter-heading>p {
        grid-column: 1;
    }

    .chapter-number {
        margin-bottom: .4rem;
    }

    .model-panel {
        grid-template-rows: auto 220px 1fr;
    }

    .model-panel-top {
        flex-direction: column;
    }

    .world-sphere {
        width: 150px;
        height: 150px;
    }

    .regional-grid {
        transform: scale(.82) rotate(-7deg);
    }

    .evidence-list-two {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {

    .world-sphere,
    .regional-grid i {
        animation: none;
    }
}

/* ==================================================
   ARCHIVO CIENTÍFICO POR EJES
================================================== */

.research-axes {
    padding-top: clamp(5rem, 8vw, 8rem);
    padding-bottom: clamp(5rem, 8vw, 8rem);
}

.research-axes-heading {
    display: grid;
    grid-template-columns: .8fr 1.7fr;
    gap: clamp(2rem, 7vw, 8rem);
    align-items: start;
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

.research-axes-heading h2 {
    max-width: 920px;
    margin: 0 0 1.25rem;
    color: var(--peat);
    font: 400 clamp(3rem, 5.3vw, 6rem)/.94 Georgia, serif;
    letter-spacing: -.045em;
}

.research-axes-heading div>p {
    max-width: 720px;
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
}

.research-accordion {
    border-top: 1px solid var(--peat);
}

.research-axis {
    border-bottom: 1px solid var(--peat);
    scroll-margin-top: calc(var(--header-height) + 24px);
}

.research-axis summary {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) 56px;
    gap: 1.5rem;
    align-items: center;
    min-height: 144px;
    padding: 1.8rem 0;
    cursor: pointer;
    list-style: none;
}

.research-axis summary::-webkit-details-marker {
    display: none;
}

.axis-number {
    align-self: start;
    padding-top: .35rem;
    color: var(--rust);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
}

.axis-summary-copy {
    display: grid;
    grid-template-columns: minmax(220px, .75fr) minmax(280px, 1fr);
    gap: clamp(2rem, 7vw, 8rem);
    align-items: center;
}

.axis-summary-copy strong {
    color: var(--peat);
    font: 400 clamp(2.3rem, 4vw, 4.6rem)/1 Georgia, serif;
}

.axis-summary-copy em {
    max-width: 620px;
    color: #40534b;
    font-style: normal;
    font-size: .96rem;
    line-height: 1.65;
}

.axis-toggle {
    position: relative;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(23, 58, 49, .42);
    border-radius: 50%;
    transition: background .25s ease, transform .35s ease;
}

.axis-toggle::before,
.axis-toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background: var(--rust);
    transform: translate(-50%, -50%);
}

.axis-toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform .3s ease;
}

.research-axis[open] .axis-toggle {
    background: var(--peat);
    transform: rotate(180deg);
}

.research-axis[open] .axis-toggle::after {
    transform: translate(-50%, -50%) rotate(0);
}

.axis-panel {
    padding: 0 0 clamp(3rem, 6vw, 5rem) 80px;
}

.axis-intro {
    display: flex;
    justify-content: space-between;
    gap: 3rem;
    margin-bottom: 2rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--line);
}

.axis-intro p {
    max-width: 760px;
    margin: 0;
    line-height: 1.7;
}

.axis-intro span {
    color: var(--rust);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.axis-publications {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.axis-publications .publication-card {
    min-height: 390px;
}

.visual-spread-model .publication-mini-visual i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--gold);
    box-shadow: 36px -14px 0 rgba(210, 167, 43, .72), 78px 9px 0 rgba(210, 167, 43, .45);
}


/*==================================================
    TRANSICIONES ENTRE CAPÍTULOS
==================================================*/

.story-transition {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(320px, 1.4fr) 60px;
    gap: clamp(2rem, 6vw, 7rem);
    align-items: center;
    width: min(1400px, 86vw);
    margin: 0 auto;
    padding: 2.2rem 0;
    border-top: 1px solid var(--line);
}

.story-transition-label span {
    color: var(--rust);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.story-transition p {
    max-width: 650px;
    margin: 0;
    color: var(--peat);
    font: 400 clamp(1.25rem, 1.7vw, 1.65rem)/1.4 Georgia, serif;
}

.story-transition p strong {
    display: block;
    margin-bottom: .25rem;
    font-weight: 400;
}

.story-transition-arrow {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(23, 58, 49, .35);
    border-radius: 50%;
    color: var(--rust);
    font-size: 1.25rem;
}

/* Monitoreo participativo dentro del capítulo Actuar */

.participatory-monitoring {
    display: grid;
    grid-template-columns: minmax(240px, .75fr) minmax(320px, 1.3fr) auto;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    margin-top: clamp(2.5rem, 5vw, 4.5rem);
    padding: clamp(1.8rem, 3vw, 2.8rem) 0;
    border-top: 1px solid var(--peat);
    border-bottom: 1px solid var(--peat);
}

.participatory-monitoring-kicker {
    margin: 0 0 .7rem;
    color: var(--rust);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.participatory-monitoring h3 {
    margin: 0;
    color: var(--peat);
    font: 400 clamp(1.8rem, 2.6vw, 2.7rem)/1.05 Georgia, serif;
}

.participatory-monitoring>p {
    margin: 0;
    color: #30473f;
    font-size: .9rem;
    line-height: 1.7;
}

.participatory-monitoring-status {
    padding: .75rem 1rem;
    border: 1px solid rgba(23, 58, 49, .3);
    color: #52645d;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Responsive */

@media (max-width: 700px) {

    .story-transition {
        grid-template-columns: 1fr 42px;
        gap: 1rem;
        width: calc(100% - 2rem);
        padding: 2rem 0;
    }

    .story-transition-label {
        grid-column: 1 / -1;
    }

    .story-transition p {
        font-size: 1.2rem;
    }

    .story-transition-arrow {
        width: 42px;
        height: 42px;
    }

    .participatory-monitoring {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .participatory-monitoring-status {
        justify-self: start;
        white-space: normal;
    }
}

@media (min-width: 701px) and (max-width: 1000px) {
    .participatory-monitoring {
        grid-template-columns: 1fr 1.25fr;
    }

    .participatory-monitoring-status {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 900px) {
    .research-axes-heading {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }

    .axis-summary-copy {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    .axis-publications {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .research-axis summary {
        grid-template-columns: 40px minmax(0, 1fr) 42px;
        gap: .7rem;
        min-height: 118px;
    }

    .axis-toggle {
        width: 40px;
        height: 40px;
    }

    .axis-panel {
        padding-left: 0;
    }

    .axis-intro {
        display: block;
    }

    .axis-intro span {
        display: block;
        margin-top: 1rem;
    }
}

/*==================================================
    SISTEMA EDITORIAL GLOBAL · REVISIÓN 2026
    Jerarquía, ritmo y responsive unificados.
==================================================*/

:root {
    --content-width: 1320px;
    --page-gutter: clamp(1.25rem, 4vw, 4.5rem);
    --section-space: clamp(5.5rem, 8vw, 8rem);
    --display-xl: clamp(3.7rem, 5.8vw, 6.1rem);
    --display-lg: clamp(3rem, 4.7vw, 5rem);
    --copy-lg: clamp(1.16rem, 1.45vw, 1.35rem);
    --copy-base: clamp(.98rem, 1.05vw, 1.08rem);
}

body {
    font-size: 16px;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

p,
li,
blockquote {
    text-wrap: pretty;
}

h1,
h2,
h3,
h4 {
    text-wrap: balance;
}

.section {
    padding: var(--section-space) max(var(--page-gutter), calc((100vw - var(--content-width)) / 2));
}

.eyebrow,
.section-kicker,
.publication-overline,
.model-panel-top,
.team-card-top,
.doctoral-path-top {
    font-size: clamp(.7rem, .72vw, .78rem);
    line-height: 1.4;
}

.eyebrow {
    margin-bottom: 1rem;
}

/* Navegación y hero */

.site-header nav {
    gap: clamp(1.35rem, 2.3vw, 2.7rem);
    font-size: .9rem;
}

.hero-copy {
    padding-top: clamp(4.5rem, 8vh, 7rem);
    padding-bottom: clamp(4rem, 7vh, 6rem);
}

.hero h1 {
    max-width: 620px;
    font-size: clamp(3.25rem, 5vw, 5.5rem);
    line-height: .98;
}

.hero-lead {
    max-width: 510px;
    font-size: var(--copy-base);
    line-height: 1.7;
}

.hero-institutions {
    max-width: 540px;
    margin: -0.55rem 0 1.7rem;
    color: #59675f;
    font-size: .88rem;
    line-height: 1.65;
}

/* El caso Pilosella dentro del programa general de investigación */

.research-framework {
    padding-top: clamp(5rem, 8vw, 8rem);
    padding-bottom: clamp(5rem, 8vw, 8rem);
    background: var(--paper);
}

.research-framework>.eyebrow {
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.research-framework-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: start;
    padding-top: clamp(2rem, 3.5vw, 3.5rem);
    border-top: 1px solid var(--line);
}

.research-framework h2 {
    max-width: 760px;
    margin: 0;
    color: var(--peat);
    font: 400 var(--display-lg)/1 Georgia, serif;
    letter-spacing: -.035em;
}

.research-framework-grid>div {
    max-width: 620px;
}

.research-framework-grid p {
    margin: 0 0 1.35rem;
    font-size: var(--copy-base);
    line-height: 1.72;
}

.research-framework-grid .large-copy {
    font-size: var(--copy-lg);
    line-height: 1.5 !important;
}

/* Introducción y problema */

.intro-grid {
    gap: clamp(3rem, 7vw, 7rem);
    margin: clamp(3.5rem, 6vw, 5.5rem) 0;
}

.intro h2,
.section-heading h2 {
    max-width: 720px;
    font-size: var(--display-lg);
    line-height: 1;
}

.large-copy {
    font-size: var(--copy-lg);
    line-height: 1.55 !important;
}

.intro-grid p:not(.large-copy),
.why-lead,
.research-axes-heading div>p {
    font-size: var(--copy-base);
}

.facts article {
    min-height: 270px;
}

.fact-copy {
    font-size: .94rem;
}

.why-it-matters {
    padding-top: clamp(4.5rem, 7vw, 6.5rem);
    padding-bottom: clamp(4.5rem, 7vw, 6.5rem);
}

.why-heading h2 {
    font-size: var(--display-lg);
    line-height: 1;
}

.why-grid p {
    font-size: .9rem;
    line-height: 1.68;
}

/* Cuatro ejes y archivo */

.research-axes-heading {
    grid-template-columns: minmax(180px, .55fr) minmax(0, 1.45fr);
    gap: clamp(2rem, 6vw, 6rem);
    margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.research-axes-heading h2 {
    max-width: 920px;
    font-size: var(--display-lg);
    line-height: .98;
}

.research-axis summary {
    min-height: 128px;
}

.axis-summary-copy strong {
    font-size: clamp(2.15rem, 3.25vw, 3.65rem);
}

.axis-summary-copy em,
.axis-intro p {
    font-size: .98rem;
    line-height: 1.68;
}

.axis-publications .publication-card {
    min-height: 620px;
}

.publication-grid h3,
.publication-card h3 {
    font-size: clamp(1.65rem, 2.15vw, 2.25rem);
    line-height: 1.1;
}

.publication-card>p:not(.publication-meta) {
    font-size: .92rem;
    line-height: 1.68;
}

.publication-card .publication-study {
    margin-bottom: 1.1rem !important;
}

.publication-card .publication-result {
    max-width: none !important;
    margin: 0 0 1rem !important;
    padding: 1rem 1.05rem;
    background: rgba(210, 167, 43, .09);
    border-left: 2px solid var(--gold);
    color: var(--peat) !important;
}

.publication-card .publication-result span {
    display: block;
    margin-bottom: .45rem;
    color: var(--rust);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.publication-card .publication-resource,
.publication-card .publication-synthesis {
    background: rgba(95, 143, 131, .1);
    border-left-color: var(--sage);
}

.publication-card .publication-message {
    margin: 0 0 1.4rem !important;
    color: var(--peat) !important;
    font-family: Georgia, serif;
    font-size: 1rem !important;
    font-style: italic;
    line-height: 1.5 !important;
}

/* Aperturas de capítulo */

.story-transition {
    grid-template-columns: minmax(230px, .72fr) minmax(420px, 1.25fr) 54px;
    gap: clamp(2.5rem, 6vw, 6rem);
    width: min(var(--content-width), calc(100% - (var(--page-gutter) * 2)));
    padding: clamp(2.6rem, 4vw, 3.8rem) 0;
}

.story-transition-label {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: .7rem;
    align-items: baseline;
}

.story-transition-label span {
    color: var(--rust);
    font: 700 .72rem/1 Inter, Arial, sans-serif;
    letter-spacing: .14em;
}

.story-transition-label strong {
    color: var(--peat);
    font: 400 clamp(2.15rem, 3.2vw, 3.5rem)/1 Georgia, serif;
    letter-spacing: -.035em;
}

.story-transition p {
    max-width: 680px;
    color: #40534b;
    font: 400 var(--copy-base)/1.65 Inter, Arial, sans-serif;
}

.story-transition p strong {
    margin-bottom: .45rem;
    color: var(--peat);
    font: 400 clamp(1.45rem, 1.8vw, 1.85rem)/1.2 Georgia, serif;
}

/* Observar: mapa */

.map-section {
    min-height: 720px;
    grid-template-columns: minmax(330px, .78fr) minmax(0, 1.22fr);
    gap: clamp(2rem, 5vw, 5rem);
    padding: clamp(4.5rem, 7vw, 7rem) max(var(--page-gutter), calc((100vw - var(--content-width)) / 2));
}

.map-copy {
    max-width: 520px;
}

.map-section h2 {
    max-width: 620px;
    margin-bottom: 1.5rem;
    font-size: var(--display-lg);
    line-height: 1;
}

.map-copy>p:not(.eyebrow):not(.map-note) {
    font-size: 1rem;
    line-height: 1.72;
}

.map-note {
    margin-top: 2rem;
    font-size: .78rem;
}

.art-map {
    height: min(650px, 72vh);
    min-height: 540px;
}

/* Comprender: síntesis */

.research-synthesis-section {
    padding-top: var(--section-space);
    padding-bottom: var(--section-space);
}

.publication-heading {
    gap: clamp(3rem, 7vw, 7rem);
    margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.publication-heading h2 {
    font-size: var(--display-lg);
    line-height: .98;
}

.publication-deck {
    font-size: var(--copy-lg);
    line-height: 1.45;
}

.publication-intro>p:not(.publication-deck) {
    font-size: 1rem;
    line-height: 1.72;
}

.research-synthesis-section .featured-publication {
    min-height: 560px;
}

.featured-copy {
    padding: clamp(3rem, 5vw, 5rem);
}

.featured-copy h3 {
    max-width: 640px;
    font-size: clamp(2.7rem, 4vw, 4.35rem);
    line-height: .99;
}

.featured-copy>p {
    font-size: .98rem;
    line-height: 1.72;
}

/* Anticipar: modelos */

.model-story {
    padding-top: clamp(5.5rem, 8vw, 8rem);
    padding-bottom: clamp(5.5rem, 8vw, 8rem);
}

.model-story-heading {
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, .62fr);
    gap: clamp(3rem, 7vw, 7rem);
    margin-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.model-story-heading .eyebrow {
    margin-bottom: -.25rem;
}

.model-story-heading h2 {
    max-width: 760px;
    font-size: var(--display-lg);
    line-height: .98;
}

.model-story-heading>p {
    font-size: 1rem;
    line-height: 1.72;
}

.model-panel {
    grid-template-rows: auto 250px 1fr;
}

.model-copy h3 {
    font-size: clamp(1.8rem, 2.35vw, 2.45rem);
}

.model-copy>p:not(.model-question) {
    font-size: .94rem;
}

/* Actuar */

.context-section {
    padding: clamp(4rem, 6vw, 6.5rem) var(--page-gutter);
}

.context-card {
    width: min(var(--content-width), 100%);
    padding: clamp(3rem, 5vw, 5rem);
    border-radius: clamp(2rem, 4vw, 4.5rem);
}

.context-card h2 {
    max-width: 1000px;
    margin-bottom: 1.5rem;
    font-size: var(--display-lg);
    line-height: 1;
}

.action-intro {
    max-width: 920px;
    font-size: var(--copy-lg);
    line-height: 1.55;
}

.action-grid h3 {
    font-size: 1.65rem;
}

.action-grid p,
.action-footer p,
.participatory-monitoring>p {
    font-size: .92rem;
    line-height: 1.68;
}

/* Equipo y red */

.team-heading {
    gap: clamp(3rem, 7vw, 7rem);
    margin-bottom: clamp(3.5rem, 5vw, 5rem);
}

.team-heading h2 {
    font-size: var(--display-xl);
    line-height: .94;
}

.team-intro p:not(.large-copy),
.research-network-heading>p,
.scientific-training-intro p {
    font-size: .95rem;
    line-height: 1.72;
}

.team-card {
    min-height: 540px;
}

.team-card-copy>p:not(.team-discipline) {
    font-size: .88rem;
    line-height: 1.68;
}

.research-network,
.scientific-training {
    margin-top: clamp(4.5rem, 7vw, 7rem);
}

.research-network-heading h3,
.scientific-training-heading h3 {
    font-size: clamp(2.7rem, 4.2vw, 4.5rem);
    line-height: .98;
}

.network-group strong {
    font-size: .86rem;
}

.doctoral-path>p:not(.doctoral-path-status) {
    font-size: .85rem;
    line-height: 1.68;
}

/* Tablet */

@media (max-width: 1050px) {
    :root {
        --section-space: clamp(5rem, 8vw, 6.5rem);
    }

    .story-transition {
        grid-template-columns: minmax(210px, .7fr) minmax(0, 1.3fr) 48px;
        gap: 2.5rem;
    }

    .map-section {
        grid-template-columns: minmax(290px, .72fr) minmax(0, 1.28fr);
    }
}

@media (max-width: 900px) {
    :root {
        --display-xl: clamp(3.3rem, 9vw, 5.2rem);
        --display-lg: clamp(2.8rem, 7.5vw, 4.4rem);
    }

    .intro-grid,
    .why-heading,
    .research-axes-heading,
    .publication-heading,
    .model-story-heading,
    .team-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .story-transition {
        grid-template-columns: minmax(190px, .65fr) minmax(0, 1.35fr) 44px;
        gap: 1.5rem;
    }

    .map-section {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .map-copy {
        max-width: 720px;
    }

    .art-map {
        height: 620px;
    }

    .research-synthesis-section .featured-publication {
        min-height: 0;
    }

    .model-story-heading .eyebrow {
        margin-bottom: 0;
    }
}

/* Teléfonos */

@media (max-width: 700px) {
    :root {
        --header-height: 68px;
        --page-gutter: 1.25rem;
        --section-space: 4.5rem;
        --display-xl: clamp(2.85rem, 13vw, 4rem);
        --display-lg: clamp(2.55rem, 11.5vw, 3.65rem);
        --copy-lg: 1.14rem;
        --copy-base: 1rem;
    }

    .site-header {
        padding: 0 1rem;
    }

    .hero {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .hero-copy {
        display: contents;
    }

    .hero-copy-primary {
        order: 1;
        padding: 4.25rem 1.25rem 2.6rem;
    }

    .hero-copy-secondary {
        order: 3;
        padding: 2.5rem 1.25rem 3rem;
    }

    .hero h1 {
        font-size: clamp(3rem, 14vw, 4.35rem);
    }

    .hero-visual {
        order: 2;
        width: auto;
        margin-right: 1.25rem;
        margin-left: 1.25rem;
    }

    .hero .contours {
        order: 4;
    }

    .intro-grid {
        margin: 3rem 0;
    }

    .facts,
    .why-grid {
        grid-template-columns: 1fr;
    }

    .facts article,
    .why-grid article,
    .why-grid article:first-child,
    .why-grid article:last-child {
        min-height: 0;
        padding: 1.6rem 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .story-transition {
        grid-template-columns: minmax(0, 1fr) 42px;
        gap: 1.25rem;
        padding: 2.4rem 0;
    }

    .story-transition-label {
        grid-column: 1 / -1;
    }

    .story-transition-label strong {
        font-size: 2.4rem;
    }

    .story-transition p {
        font-size: 1rem;
    }

    .story-transition p strong {
        font-size: 1.4rem;
    }

    .story-transition-arrow {
        align-self: end;
    }

    .research-axis summary {
        grid-template-columns: 34px minmax(0, 1fr) 38px;
        min-height: 106px;
        padding: 1.35rem 0;
    }

    .axis-summary-copy strong {
        font-size: 2rem;
    }

    .axis-summary-copy em {
        font-size: .9rem;
    }

    .map-section {
        padding: 4.5rem 1.25rem;
    }

    .art-map {
        height: auto;
        min-height: 610px;
    }

    .publication-heading h2 br,
    .team-heading h2 br {
        display: none;
    }

    .featured-copy {
        padding: 2.2rem 1.4rem;
    }

    .featured-copy h3 {
        font-size: clamp(2.35rem, 10vw, 3.2rem);
    }

    .model-story {
        padding: 4.5rem 1.25rem;
    }

    .model-panel {
        grid-template-rows: auto 210px 1fr;
    }

    .context-section {
        padding: 3.5rem .75rem;
    }

    .context-card {
        padding: 2.5rem 1.25rem;
        border-radius: 2rem;
    }

    .team-card,
    .team-technical {
        min-height: 0;
    }

    .research-network-heading,
    .scientific-training {
        padding: 2.25rem 1.35rem;
    }

    .research-network-heading h3,
    .scientific-training-heading h3 {
        font-size: clamp(2.4rem, 10vw, 3.25rem);
    }

    .degree-theses-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-footer {
        padding-right: 1.25rem;
        padding-left: 1.25rem;
    }
}

/*==================================================
    TRANSICIÓN MARCO DE INVESTIGACIÓN → CASO DE ESTUDIO
==================================================*/

@media (max-width: 700px) {

    .research-framework {
        padding-bottom: 2rem;
    }

    .research-framework-grid p:last-child {
        margin-bottom: 0;
    }

    .intro {
        padding-top: 2rem;
    }

}


@media (max-width: 420px) {
    .hero h1 {
        font-size: 2.85rem;
    }

    .brand-text {
        font-size: .98rem;
    }

    .axis-number {
        font-size: .64rem;
    }

    .story-transition-label {
        grid-template-columns: 30px minmax(0, 1fr);
    }

    .story-transition-label strong {
        font-size: 2.15rem;
    }
}

/*==================================================
    PARTICIPACIÓN EXTERNA · MAPA COLABORATIVO
==================================================*/

.participation-section {
    background:
        radial-gradient(circle at 88% 12%, rgba(210, 167, 43, .15), transparent 25rem),
        #e8eadf;
}

.participation-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .72fr);
    gap: clamp(3rem, 7vw, 8rem);
    align-items: end;
    width: min(1320px, 100%);
    margin: 0 auto clamp(3rem, 5vw, 5rem);
}

.participation-heading .eyebrow {
    margin: 0 0 1rem;
    color: var(--rust);
}

.participation-heading h2 {
    max-width: 850px;
    margin: 0;
    color: var(--peat);
    font: 400 clamp(3rem, 5vw, 5.5rem)/.95 Georgia, serif;
    letter-spacing: -.05em;
}

.participation-heading>p {
    max-width: 550px;
    margin: 0;
    color: #30473f;
    font-size: .98rem;
    line-height: 1.75;
}

.participation-section .participatory-monitoring,
.participation-section .action-footer {
    width: min(1320px, 100%);
    margin-right: auto;
    margin-left: auto;
}

.participation-section .participatory-monitoring {
    grid-template-columns: minmax(260px, .82fr) minmax(360px, 1.18fr) auto;
    gap: clamp(2rem, 4vw, 4.5rem);
    margin-top: 0;
    padding: clamp(2.4rem, 4vw, 3.8rem);
    background: rgba(247, 243, 235, .82);
    border-top: 3px solid var(--gold);
    border-bottom: 0;
    box-shadow: 0 25px 70px rgba(23, 58, 49, .07);
}

.participation-section .participatory-monitoring h3 {
    max-width: 460px;
    font-size: clamp(2.15rem, 3.2vw, 3.5rem);
    line-height: 1;
}

.participation-section .participatory-monitoring>p {
    max-width: 620px;
    color: #263e36;
    font-size: .96rem;
    line-height: 1.75;
}

.participation-section .participatory-monitoring-status {
    align-self: center;
    background: rgba(255, 255, 255, .38);
}

.participation-section .action-footer {
    padding: 1.8rem 0 0;
}

/* Franja institucional independiente, inmediatamente antes del footer */

.team-institutions.institution-strip {
    width: min(1320px, calc(100% - (2 * var(--page-gutter))));
    max-width: none;
    margin: 0 auto;
    padding: clamp(2.5rem, 4vw, 4rem) 0;
    border-top: 0;
}

@media (max-width: 900px) {
    .participation-heading {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .participation-heading>p {
        max-width: 720px;
    }

    .participation-section .participatory-monitoring {
        grid-template-columns: minmax(220px, .82fr) minmax(0, 1.18fr);
    }

    .participation-section .participatory-monitoring-status {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 700px) {
    .participation-heading {
        margin-bottom: 2.5rem;
    }

    .participation-heading h2 {
        font-size: clamp(2.65rem, 12vw, 3.7rem);
    }

    .participation-heading>p {
        font-size: .95rem;
        line-height: 1.7;
    }

    .participation-section .participatory-monitoring {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 1.35rem;
    }

    .participation-section .participatory-monitoring-status {
        grid-column: auto;
    }

    .participation-section .action-footer {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        align-items: start;
    }

    .team-institutions.institution-strip {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        width: calc(100% - 2.5rem);
    }
}


/*==================================================
    EQUIPO · ORDEN SEMÁNTICO EN EL HTML
==================================================*/

/* Variaciones visuales sutiles; todas conservan igual tamaño. */
.team-modeling .team-portrait i:nth-of-type(2) {
    border-top-style: dashed;
    border-top-color: rgba(210, 167, 43, .5);
}

.team-patterns,
.team-territorial {
    background: rgba(232, 235, 221, .72);
}

.team-management .team-portrait i:nth-of-type(1) {
    border-bottom-color: rgba(168, 71, 36, .42);
}

/* La red territorial ocupa una fila completa dentro de la red ampliada. */
.research-network-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.network-group:nth-child(2) {
    border-right: 0;
}

.network-group:nth-child(3) {
    grid-column: 1 / -1;
    border-top: 1px solid rgba(169, 196, 184, .16);
    border-right: 0;
}

.network-group:nth-child(3) ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(1.5rem, 4vw, 4rem);
}

.degree-theses ul {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

/* Soporte técnico: ficha secundaria, sin retrato ni jerarquía directiva. */
.technical-support {
    display: grid;
    grid-template-columns: minmax(170px, .42fr) minmax(0, 1.58fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    max-width: 1320px;
    margin: 1.5rem auto 0;
    padding: clamp(1.6rem, 2.8vw, 2.5rem);
    background: rgba(210, 167, 43, .07);
    border: 1px solid var(--line);
}

.technical-support-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    color: var(--rust);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.technical-support-copy {
    display: grid;
    grid-template-columns: minmax(210px, .72fr) minmax(280px, 1.28fr);
    gap: .75rem clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.technical-support-copy .team-discipline {
    grid-column: 1 / -1;
    min-height: 0;
    margin-bottom: 0;
}

.technical-support-copy h3 {
    margin: 0;
    color: var(--peat);
    font: 400 clamp(1.9rem, 2.8vw, 2.8rem)/1 Georgia, serif;
    letter-spacing: -.035em;
}

.technical-support-copy>p:not(.team-discipline) {
    margin: 0;
    color: #454d47;
    font-size: .84rem;
    line-height: 1.65;
}

.technical-support-copy .team-affiliation {
    grid-column: 1;
    margin-top: .5rem;
}

.technical-support-copy>a {
    grid-column: 2;
    align-self: end;
    justify-self: start;
    color: var(--peat);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 1050px) {
    .network-group:nth-child(3) ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .degree-theses ul {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .network-group:nth-child(3) {
        grid-column: auto;
    }

    .network-group:nth-child(3) ul,
    .degree-theses ul {
        grid-template-columns: 1fr;
    }

    .technical-support,
    .technical-support-copy {
        grid-template-columns: 1fr;
    }

    .technical-support {
        gap: 1.5rem;
        margin-top: 1rem;
        padding: 1.5rem 1.25rem;
    }

    .technical-support-copy .team-discipline,
    .technical-support-copy .team-affiliation,
    .technical-support-copy>a {
        grid-column: auto;
    }

    .hero-institutions {
        font-size: .82rem;
    }

    .research-framework-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .research-framework h2 {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }

    .axis-publications .publication-card {
        min-height: 0;
    }

    .publication-card .publication-result {
        padding: .9rem;
    }

    /* Cada grupo ocupa todo el ancho */

    .research-network-groups {
        grid-template-columns: 1fr;
    }

    .network-group,
    .network-group:nth-child(2),
    .network-group:nth-child(3),
    .network-group:last-child {
        grid-column: 1;
        padding: 2rem 1.35rem;
        border-right: 0;
        border-top: 1px solid rgba(169, 196, 184, .16);
    }

    .network-group:first-child {
        border-top: 0;
    }

    /* Encabezado de cada grupo */

    .network-group-heading {
        display: grid;
        grid-template-columns: 2.5rem minmax(0, 1fr);
        align-items: start;
        justify-content: initial;
        gap: .85rem;
        min-height: 0;
        padding-bottom: 1.25rem;
    }

    .network-group-heading span {
        padding-top: .35rem;
    }

    .network-group-heading h4 {
        max-width: none;
        font-size: 1.65rem;
        line-height: 1.08;
        text-align: left;
    }

    /* Listado de integrantes */

    .network-group ul,
    .network-group:nth-child(3) ul {
        display: grid;
        grid-template-columns: 1fr;
    }

    .network-group li {
        gap: 1rem;
        min-height: 4.1rem;
        padding: .55rem 0;
    }

    .network-node {
        flex-basis: 2.5rem;
        width: 2.5rem;
        height: 2.5rem;
    }

    .network-group strong {
        font-size: .92rem;
        line-height: 1.3;
    }

    .network-group small {
        font-size: .65rem;
        line-height: 1.5;
    }
}

/*==================================================
    MODELOS PREDICTIVOS · INFOGRAFÍAS FINALES
==================================================*/

.predictive-models {
    display: grid;
    gap: clamp(3.5rem, 7vw, 7rem);
}

.predictive-model {
    overflow: hidden;
    border: 1px solid rgba(169, 196, 184, .24);
    background: rgba(255, 255, 255, .025);
}

.predictive-model-heading {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, .55fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    padding: clamp(2rem, 4vw, 3.5rem);
    border-bottom: 1px solid rgba(169, 196, 184, .2);
}

.predictive-model-heading span {
    display: block;
    margin-bottom: 1rem;
    color: var(--gold);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.predictive-model-heading h3 {
    max-width: 760px;
    margin: 0;
    color: #f4f0e7;
    font: 400 clamp(2.4rem, 4.8vw, 5rem)/.98 Georgia, serif;
}

.predictive-model-heading p {
    max-width: 520px;
    margin: 0;
    color: #b9cbc3;
    font-size: .98rem;
    line-height: 1.75;
}

.predictive-model-frame {
    display: block;
    width: 100%;
    height: 670px;
    border: 0;
    background: var(--dark);
}

.predictive-model-frame-regional {
    height: 650px;
}

.predictive-model-footer {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: center;
    padding: 1.25rem clamp(2rem, 4vw, 3.5rem);
    border-top: 1px solid rgba(169, 196, 184, .2);
}

.predictive-model-footer p {
    max-width: 760px;
    margin: 0;
    color: #a9c4b8;
    font-family: Georgia, serif;
    font-size: 1rem;
    font-style: italic;
    line-height: 1.55;
}

.predictive-model-footer a {
    flex: 0 0 auto;
    color: var(--gold);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.models-scale-transition {
    display: grid;
    grid-template-columns: auto minmax(80px, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    color: #a9c4b8;
    font-family: Georgia, serif;
    font-size: clamp(1.15rem, 1.8vw, 1.65rem);
    font-style: italic;
}

.models-scale-transition i {
    position: relative;
    height: 1px;
    background: rgba(169, 196, 184, .32);
}

.models-scale-transition i::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 8px;
    height: 8px;
    border-top: 1px solid var(--gold);
    border-right: 1px solid var(--gold);
    transform: translateY(-50%) rotate(45deg);
}

.models-scale-transition strong {
    color: #e8eee7;
    font-weight: 400;
}

@media (max-width: 900px) {
    .predictive-model-heading {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .predictive-model-heading p {
        max-width: 680px;
    }

    .predictive-model-frame,
    .predictive-model-frame-regional {
        height: 780px;
    }
}

@media (max-width: 600px) {
    .predictive-models {
        gap: 3.25rem;
    }

    .predictive-model-heading {
        padding: 1.6rem 1.25rem;
    }

    .predictive-model-heading h3 {
        font-size: clamp(2.15rem, 11vw, 3.2rem);
    }


    .predictive-model-frame-global {
        height: 540px;
    }

    .predictive-model-frame-regional {
        height: 680px;
    }

    .predictive-model-footer {
        align-items: flex-start;
        flex-direction: column;
        padding: 1.25rem;
    }

    .models-scale-transition {
        grid-template-columns: 1fr;
        gap: .8rem;
    }

    .models-scale-transition i {
        width: 100%;
    }
}

/*==================================================
    RITMO VERTICAL FINAL

    El desplazamiento queda completamente libre. Cada modelo funciona como
    un capítulo de una pantalla en escritorio; en pantallas pequeñas recupera
    altura natural para preservar la legibilidad.
==================================================*/

html {
    scroll-snap-type: none !important;
}

.model-story {
    padding: clamp(2.5rem, 5vh, 4.25rem) var(--page-gutter);
}

.model-story-heading {
    width: min(var(--content-width), 100%);
    margin: 0 auto clamp(2rem, 4vh, 3.25rem);
}

.predictive-models {
    width: min(var(--content-width), 100%);
    margin: 0 auto;
    gap: clamp(2rem, 4vh, 3.25rem);
}

.predictive-model {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    height: calc(100svh - var(--header-height));
    min-height: 0;
    max-height: 880px;
}

.predictive-model-heading {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr);
    gap: clamp(2rem, 5vw, 5rem);
    padding: clamp(1.25rem, 2.2vh, 1.8rem) clamp(1.5rem, 3vw, 2.75rem);
}

.predictive-model-heading span {
    margin-bottom: .55rem;
}

.predictive-model-heading h3 {
    font-size: clamp(2.1rem, 3.5vw, 3.8rem);
    line-height: 1;
}

.predictive-model-heading p {
    font-size: .9rem;
    line-height: 1.55;
}

.predictive-model-frame,
.predictive-model-frame-regional {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.predictive-model-footer {
    min-height: 58px;
    padding: .8rem clamp(1.5rem, 3vw, 2.75rem);
}

.predictive-model-footer p {
    font-size: .9rem;
    line-height: 1.4;
}

.models-scale-transition {
    min-height: clamp(60px, 8vh, 88px);
}

@media (max-width: 900px) {
    .model-story {
        padding: 4rem 1.25rem;
    }

    .predictive-model {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .predictive-model-heading {
        grid-template-columns: 1fr;
    }

    .predictive-model-frame,
    .predictive-model-frame-regional {
        height: 760px;
    }
}

@media (max-width: 600px) {

    .predictive-model-frame-global {
        height: 540px;
    }

    .predictive-model-frame-regional {
        height: 560px;
    }

}

@media (min-width: 901px) and (max-height: 720px) {
    .model-story {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .model-story-heading {
        margin-bottom: 1.75rem;
    }

    .predictive-model-heading {
        padding-top: .9rem;
        padding-bottom: .9rem;
    }

    .predictive-model-heading h3 {
        font-size: clamp(1.9rem, 3vw, 2.8rem);
    }

    .predictive-model-heading p {
        font-size: .82rem;
        line-height: 1.4;
    }

    .predictive-model-footer {
        min-height: 48px;
        padding-top: .55rem;
        padding-bottom: .55rem;
    }
}

/*==================================================
    MODELOS PREDICTIVOS · TABLET
==================================================*/

@media (min-width: 601px) and (max-width: 1100px) {

    /* En tablet las tarjetas recuperan su altura natural */

    .predictive-model {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    /* Cada infografía conserva la altura que necesita */

    .predictive-model-frame-global {
        height: 520px;
    }

    .predictive-model-frame-regional {
        height: 390px;
    }

}
