/* EFRS shared content-page system
 *
 * Loaded after the active annual Theme so Platform-owned routes and permanent
 * institutional pages share the same editorial rhythm. This file deliberately
 * contains only page-architecture rules; the approved EFRS palette and brand
 * primitives continue to come from the Platform/Theme identity stylesheets.
 */

/* Direct Platform routes must not inherit Leconfe's generic white bordered
 * content card. The annual editorial pages use an open page canvas, and the
 * Programme, Speakers and profile routes should read as part of that system. */
.page-main:has(.rsf-native-page) {
    width: 100% !important;
    max-width: none !important;
    padding-block: 0 !important;
}

.page-content:has(> .rsf-native-page) {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rsf-native-page {
    padding-top: clamp(3.2rem, 6vw, 6.2rem);
    padding-bottom: clamp(3.8rem, 7vw, 7rem);
}

.rsf-native-page-head {
    max-width: 1040px;
}

.rsf-native-page-head > p {
    max-width: 900px;
    font-size: clamp(1rem, 1.45vw, 1.18rem);
    line-height: 1.68;
}

/* Governance hub */
.rsf-governance-page-head {
    margin-bottom: clamp(2.2rem, 4vw, 3.5rem);
}

.rsf-governance-intro {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
    padding: clamp(2rem, 4vw, 3.3rem) 0;
    border-top: 4px solid var(--rsf-ochre, #C9A227);
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsf-governance-intro h2 {
    max-width: 620px;
    margin: 0.7rem 0 0;
    color: var(--rsf-indigo, #20243F);
    font-size: clamp(1.75rem, 3vw, 2.75rem);
    line-height: 1.06;
}

.rsf-governance-intro > p {
    max-width: 760px;
    margin: 0;
    color: var(--rsf-slate, #626673);
    font-size: 1rem;
    line-height: 1.75;
}

.rsf-governance-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem 1.5rem;
    padding: 1.35rem 0;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsf-governance-jump a {
    color: var(--rsf-indigo, #20243F);
    font: 600 0.72rem/1.4 'IBM Plex Mono', monospace;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-underline-offset: 0.25em;
}

.rsf-governance-body {
    scroll-margin-top: 8rem;
    padding: clamp(3.2rem, 6vw, 5.8rem) 0;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsf-governance-body-head {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
    margin-bottom: 2rem;
}

.rsf-governance-body-head h2 {
    margin: 0.7rem 0 0;
    color: var(--rsf-indigo, #20243F);
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: 0.98;
}

.rsf-governance-body-head > p {
    max-width: 760px;
    margin: 0;
    color: var(--rsf-slate, #626673);
    line-height: 1.7;
}

.rsf-governance-member-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rsf-governance-member-card {
    min-height: 190px;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 1.3rem;
    padding: 1.5rem;
}

.rsf-governance-member-card img {
    width: 92px;
    height: 92px;
}

.rsf-governance-member-card .rsf-person-kind {
    display: block;
    margin-bottom: 0.55rem;
}

.rsf-governance-member-card .rsf-committee-name {
    font-family: 'Archivo', sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.08;
}

.rsf-committee-title {
    margin-top: 0.45rem;
    color: var(--rsf-indigo, #20243F);
    font-size: 0.86rem;
    line-height: 1.45;
}

.rsf-committee-country {
    margin-top: 0.25rem;
    color: var(--rsf-slate, #626673);
    font-size: 0.74rem;
}

.rsf-governance-empty {
    padding: 1.5rem 0;
    border-top: 1px solid var(--rsf-border, #D7D4CC);
    color: var(--rsf-slate, #626673);
}

.rsf-governance-empty p {
    max-width: 720px;
    margin: 0;
}

/* Speaker directory empty state: informative rather than visually abandoned. */
.rsf-speakers-empty .rsf-speaker-directory-explainer {
    margin-top: 2rem;
    margin-bottom: 1.5rem;
}

.rsf-speakers-empty .rsf-editorial-card {
    min-height: 165px;
}

/* Profile pages keep role-specific context without turning the entire body into
 * a generic Leconfe card. */
.rsf-person-page-committee .rsf-person-hero {
    border-top: 4px solid var(--rsf-ochre, #C9A227);
    padding-top: 2rem;
}

.rsf-person-facts dl > div {
    align-items: start;
}

/* Permanent institutional pages */
.rsfp-page {
    width: min(calc(100% - (2 * var(--rsf-pad, 24px))), var(--rsf-max, 1440px));
    margin-inline: auto;
    padding-block: clamp(3.5rem, 7vw, 7rem);
}

.rsfp-page-grid {
    display: grid;
    grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1.65fr);
    gap: clamp(2.5rem, 7vw, 7rem);
}

.rsfp-page-aside {
    padding-top: 0.6rem;
}

.rsfp-page-aside > span {
    display: block;
    padding-top: 0.9rem;
    border-top: 3px solid var(--rsf-indigo, #20243F);
    color: var(--rsf-indigo, #20243F);
    font: 600 0.65rem/1.4 'IBM Plex Mono', monospace;
    letter-spacing: 0.1em;
}

.rsfp-page-article {
    max-width: 980px;
}

.rsfp-page-article > header {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-page-article > header h1 {
    margin: 0;
    color: var(--rsf-indigo, #20243F);
    font-size: clamp(2.8rem, 5vw, 5.4rem);
    line-height: 0.96;
}

.rsfp-page .user-content {
    max-width: 900px;
}

.rsfp-page .user-content > h2:first-child {
    margin-top: 2.5rem !important;
}

.rsfp-supplement {
    margin-top: clamp(3rem, 6vw, 5.5rem);
}

.rsfp-feature-band {
    padding: clamp(2rem, 4vw, 3.5rem) 0;
    border-top: 4px solid var(--rsf-ochre, #C9A227);
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-feature-band h2 {
    max-width: 820px;
    margin: 0.8rem 0 1rem;
    color: var(--rsf-indigo, #20243F);
    font-size: clamp(1.8rem, 3.8vw, 3.25rem);
    line-height: 1.03;
}

.rsfp-feature-band p {
    max-width: 820px;
    margin: 0;
    color: var(--rsf-slate, #626673);
    font-size: 1rem;
    line-height: 1.75;
}

.rsfp-section-block {
    padding: clamp(3rem, 6vw, 5rem) 0;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-section-head {
    display: grid;
    grid-template-columns: minmax(145px, 0.3fr) minmax(0, 1.7fr);
    gap: 1.5rem 3rem;
    align-items: start;
    margin-bottom: 2rem;
}

.rsfp-section-head > span {
    color: var(--rsf-slate, #626673);
    font: 600 0.65rem/1.4 'IBM Plex Mono', monospace;
    letter-spacing: 0.1em;
}

.rsfp-section-head h2 {
    max-width: 760px;
    margin: 0;
    color: var(--rsf-indigo, #20243F);
    font-size: clamp(1.7rem, 3vw, 2.8rem);
    line-height: 1.05;
}

.rsfp-card-grid {
    display: grid;
    border-top: 1px solid var(--rsf-border, #D7D4CC);
    border-left: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-card-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rsfp-card-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rsfp-card-grid > article {
    min-height: 220px;
    padding: clamp(1.4rem, 3vw, 2rem);
    border-right: 1px solid var(--rsf-border, #D7D4CC);
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
    background: var(--rsf-white, #FFFFFF);
}

.rsfp-card-grid > article > span {
    color: var(--rsf-slate, #626673);
    font: 600 0.64rem/1.35 'IBM Plex Mono', monospace;
    letter-spacing: 0.08em;
}

.rsfp-card-grid h3 {
    margin: 1.1rem 0 0.75rem;
    color: var(--rsf-indigo, #20243F);
    font-size: 1.3rem;
    line-height: 1.1;
}

.rsfp-card-grid p,
.rsfp-role-list p,
.rsfp-list-grid p {
    color: var(--rsf-slate, #626673);
    line-height: 1.65;
}

.rsfp-card-grid a {
    display: inline-block;
    margin-top: 1rem;
    color: var(--rsf-indigo, #20243F);
    font: 600 0.68rem/1.4 'IBM Plex Mono', monospace;
    text-transform: uppercase;
    text-underline-offset: 0.25em;
}

.rsfp-list-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-list-grid > div {
    padding: 1.5rem 1.5rem 1.5rem 0;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-list-grid > div:nth-child(even) {
    padding-left: 1.5rem;
    border-left: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-list-grid strong,
.rsfp-role-list strong {
    display: block;
    color: var(--rsf-indigo, #20243F);
    font-family: 'Archivo', sans-serif;
    font-size: 1.15rem;
}

.rsfp-list-grid p,
.rsfp-role-list p {
    margin: 0.55rem 0 0;
}

.rsfp-role-list {
    border-top: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-role-list > div {
    display: grid;
    grid-template-columns: minmax(180px, 0.48fr) minmax(220px, 0.62fr) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
    padding: 1.4rem 0;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-role-list > div > span {
    color: var(--rsf-slate, #626673);
    font: 600 0.62rem/1.45 'IBM Plex Mono', monospace;
    letter-spacing: 0.07em;
}

.rsfp-role-list p {
    margin: 0;
}

.rsfp-principles {
    border-top: 1px solid var(--rsf-border, #D7D4CC);
}

.rsfp-principles p {
    position: relative;
    margin: 0;
    padding: 1rem 0 1rem 2rem;
    border-bottom: 1px solid var(--rsf-border, #D7D4CC);
    color: var(--rsf-indigo, #20243F);
    line-height: 1.55;
}

.rsfp-principles p::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--rsf-ochre, #C9A227);
    font-weight: 700;
}

.rsfp-next-action {
    display: grid;
    grid-template-columns: minmax(150px, 0.35fr) minmax(0, 1fr) auto;
    gap: 1.5rem 2rem;
    align-items: center;
    padding: clamp(2rem, 4vw, 3rem) 0;
}

.rsfp-next-action > span {
    color: var(--rsf-slate, #626673);
    font: 600 0.64rem/1.4 'IBM Plex Mono', monospace;
    letter-spacing: 0.08em;
}

.rsfp-next-action p {
    margin: 0;
    color: var(--rsf-indigo, #20243F);
    font-size: 1.08rem;
}

@media (max-width: 860px) {
    .rsf-governance-intro,
    .rsf-governance-body-head,
    .rsfp-page-grid,
    .rsfp-section-head,
    .rsfp-next-action {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }

    .rsf-governance-member-grid,
    .rsfp-card-grid-3 {
        grid-template-columns: 1fr;
    }

    .rsfp-card-grid-2 {
        grid-template-columns: 1fr;
    }

    .rsfp-list-grid,
    .rsfp-role-list > div {
        grid-template-columns: 1fr;
    }

    .rsfp-list-grid > div:nth-child(even) {
        padding-left: 0;
        border-left: 0;
    }

    .rsfp-page-aside {
        max-width: 260px;
        padding-top: 0;
    }
}

@media (max-width: 580px) {
    .rsf-governance-member-card {
        grid-template-columns: 72px minmax(0, 1fr);
        padding: 1rem;
    }

    .rsf-governance-member-card img {
        width: 72px;
        height: 72px;
    }
}
