:root {
    --font-heading: Arial, "Helvetica Neue", Helvetica, sans-serif;
    --font-body: Georgia, "Times New Roman", serif;
    --heading-transform: uppercase;
    --brand-yellow: #d0b826;
    --brand-gray: #9d9f98;
    --brand-blue: #59c6e5;
    --brand-burgundy: #b54b74;
    --ink: #17231f;
    --muted: #5c6863;
    --paper: #f3f1e9;
    --surface: #ffffff;
    --line: #d9d8d0;
    --accent: var(--brand-yellow);
    --accent-dark: #695c00;
    --link: var(--brand-burgundy);
    --shadow: 0 10px 30px rgba(23, 35, 31, 0.08);
    --content-width: 1200px;
}

* { box-sizing: border-box; }

html { color-scheme: light; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--font-body);
    line-height: 1.5;
}

a { color: var(--link); }

.site-header {
    position: absolute;
    inset: 0 0 auto;
    z-index: 2;
    min-height: 96px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    padding: 0 max(5vw, calc((100vw - var(--content-width)) / 2));
    background: transparent;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
    font-family: var(--font-heading);
    font-weight: 800;
    letter-spacing: -0.02em;
    text-decoration: none;
}

.brand-logo {
    display: block;
    width: 150px;
    height: 88px;
    object-fit: contain;
}

.brand-mark {
    width: 28px;
    height: 36px;
    background: var(--accent);
    clip-path: polygon(50% 0, 100% 22%, 82% 100%, 50% 82%, 18% 100%, 0 22%);
}

.site-header nav a {
    color: var(--ink);
    font-family: var(--font-heading);
    font-weight: 700;
    text-decoration: none;
}

main { padding: 0 5vw 80px; }

.start-page,
.message-page {
    max-width: 820px;
    min-height: calc(100vh - 156px);
    display: grid;
    align-content: center;
    justify-items: start;
}

.home-page {
    --home-module-padding: clamp(30px, 5vw, 58px);
    padding: 0;
    background: var(--paper);
}

.home-page + .site-footer { margin-top: 0; }
body.home .site-header { display: none; }

.home-hero {
    position: relative;
    min-height: 880px;
    padding: clamp(104px, 10vw, 156px) 5vw 72px;
    color: #fff;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.34), rgba(0, 0, 0, 0.72)),
        url('/assets/brand/backgrounds/home-hero-violoncello.jpg') center / cover no-repeat;
}

.site-menu {
    position: fixed;
    top: 26px;
    right: max(26px, calc((100vw - var(--content-width)) / 2));
    z-index: 3;
    font-family: var(--font-heading);
}

.site-menu summary {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    list-style: none;
    cursor: pointer;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 50%;
    backdrop-filter: blur(8px);
}

.site-menu summary::-webkit-details-marker { display: none; }

.site-menu summary span,
.site-menu summary span::before,
.site-menu summary span::after {
    display: block;
    width: 19px;
    height: 2px;
    background: #fff;
    content: '';
}

.site-menu summary span { position: relative; }
.site-menu summary span::before { position: absolute; top: -6px; left: 0; }
.site-menu summary span::after { position: absolute; top: 6px; left: 0; }
.site-menu summary:focus-visible { outline: 4px solid var(--brand-yellow); outline-offset: 3px; }

.site-menu nav {
    display: grid;
    min-width: 190px;
    margin-top: 10px;
    padding: 9px;
    background: rgba(23, 35, 31, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: var(--shadow);
}

.site-menu nav a {
    padding: 10px 12px;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
}

.site-menu nav a:hover,
.site-menu nav a:focus-visible { background: rgba(255, 255, 255, 0.12); }

.home-hero-inner {
    max-width: var(--content-width);
    margin: 0 auto;
    text-align: center;
}

.home-hero h1 {
    max-width: none;
    font-size: clamp(2rem, 4vw, 4rem);
    letter-spacing: -0.025em;
}

.home-vision {
    max-width: 900px;
    margin: clamp(42px, 6vw, 70px) auto clamp(52px, 7vw, 82px);
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    font-weight: 700;
    line-height: 1.55;
}

.home-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 4vw, 62px);
    align-items: start;
}

.home-feature { min-width: 0; }

.home-feature-image {
    position: relative;
    display: block;
    width: min(100%, 310px);
    aspect-ratio: 1;
    margin: 0 auto;
    overflow: visible;
    color: var(--ink);
    background: #ddd;
    border: 10px solid #fff;
    border-radius: 50%;
}

.home-feature-image img,
.home-feature-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    object-fit: cover;
    border-radius: 50%;
}

.home-feature-placeholder { background: rgba(255, 255, 255, 0.22); }

.home-feature-date {
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    width: 70px;
    height: 70px;
    place-content: center;
    color: #111;
    background: #fff;
    border-radius: 50%;
    font-family: var(--font-body);
    line-height: 1;
}

.home-feature-date strong { font-size: 2rem; font-weight: 400; }
.home-feature-date small { margin-top: 3px; font-size: 0.66rem; letter-spacing: 0.12em; }

.home-feature-type {
    margin: 18px 0 8px;
    padding-bottom: 9px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
}

.home-feature h2 {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    line-height: 1.38;
}

.home-feature h2 a,
.home-feature-more { color: #fff; }
.home-feature h2 a { text-decoration: none; }
.home-feature h2 a:hover { text-decoration: underline; }

.home-feature-more {
    display: inline-block;
    margin-top: 18px;
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.home-module {
    display: block;
    width: min(calc(100% - 10vw), var(--content-width));
    max-width: var(--content-width);
    margin: clamp(42px, 7vw, 90px) auto;
}

.assistant-module {
    padding: var(--home-module-padding);
    background: var(--surface);
    border: 2px solid var(--ink);
}

.home-module h2,
.event-module strong {
    margin: 0;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1;
    text-transform: var(--heading-transform);
}

.assistant-module > p:not(.eyebrow) {
    max-width: 650px;
    margin: 22px 0 0;
    color: var(--muted);
    font-size: 1.15rem;
}

.assistant-direct-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    max-width: 840px;
    margin-top: 34px;
}

.assistant-direct-form textarea {
    width: 100%;
    min-height: 58px;
    padding: 15px 17px;
    resize: vertical;
    color: var(--ink);
    background: var(--surface);
    border: 2px solid var(--ink);
    border-radius: 0;
    font: 1.08rem/1.4 var(--font-heading);
}

.assistant-direct-form textarea:focus {
    outline: 4px solid color-mix(in srgb, var(--brand-blue) 65%, transparent);
    outline-offset: 2px;
}

.assistant-direct-form button {
    min-height: 58px;
    padding: 14px 20px;
    color: var(--ink);
    background: var(--brand-blue);
    border: 2px solid var(--ink);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
}

.assistant-direct-status {
    grid-column: 1 / -1;
    min-height: 1.4em;
    margin: 0 !important;
    color: var(--muted);
    font: 0.86rem/1.4 var(--font-heading);
}

.event-module {
    padding: var(--home-module-padding);
    color: #fff;
    background: var(--ink);
    text-decoration: none;
}

.event-module .eyebrow { color: rgba(255, 255, 255, 0.72); }
.event-module strong {
    display: block;
    margin: 8px 0 24px;
    max-width: 100%;
    overflow-wrap: anywhere;
    font-family: var(--font-heading);
}
.event-module > span:last-child { font-family: var(--font-heading); font-weight: 800; }

.home-module-heading,
.jobs-module {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
}

.home-module-heading > a { font-family: var(--font-heading); font-weight: 800; }

.latest-reports { padding: var(--home-module-padding) 0; }

.home-report-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-top: 34px;
}

.hub-page main { padding-bottom: clamp(60px, 8vw, 120px); }
.hub-navigation-grid,
.hub-section {
    width: 100%;
    max-width: var(--content-width);
    margin: 0 auto clamp(54px, 7vw, 96px);
}
.hub-navigation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.hub-link-card {
    display: flex;
    min-height: 230px;
    padding: clamp(28px, 4vw, 48px);
    flex-direction: column;
    justify-content: flex-end;
    gap: 14px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    text-decoration: none;
}
.hub-link-card strong {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.65rem);
    line-height: 1.02;
}
.hub-link-card > span:last-child {
    font-family: var(--font-body);
    font-size: 1.05rem;
    line-height: 1.5;
}
.hub-link-card:hover strong { text-decoration: underline; }
.hub-section .article-stream { width: 100%; margin: 28px 0 0; }
.hub-section.latest-reports { padding: 0; }
.hub-report-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hub-publication-placeholder {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    margin: 0;
    background: #e8e6de;
}

.home-report-card {
    min-width: 0;
    background: var(--surface);
    border: 1px solid var(--line);
}

.home-report-card a { color: var(--ink); text-decoration: none; }
.home-report-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    padding: 14px;
    object-fit: contain;
    background: #e8e6de;
}
.home-report-card span,
.home-report-card h3 { display: block; margin-right: 18px; margin-left: 18px; }
.home-report-card span {
    margin-top: 17px;
    color: var(--muted);
    font-family: var(--font-heading);
    font-size: 0.76rem;
    font-weight: 800;
}
.home-report-card h3 { margin-top: 6px; margin-bottom: 22px; font-size: 1rem; line-height: 1.25; }
.home-report-card a:hover h3 { text-decoration: underline; }

.jobs-module {
    display: block;
    padding: var(--home-module-padding);
    background: var(--brand-yellow);
}
.jobs-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.jobs-heading h2 { margin: 0; font-size: clamp(2.5rem, 5vw, 5rem); line-height: .95; }
.jobs-heading > a,
.jobs-submit-link { color: var(--ink); font: 800 .92rem/1.3 var(--font-heading); }
.job-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 34px; }
.jobs-rotator { grid-template-columns: 1fr; }
.jobs-rotator-slide[hidden] { display: none; }
.jobs-rotator-controls { display: flex; align-items: center; justify-content: center; gap: 13px; margin-top: 15px; font: 800 .76rem/1.2 var(--font-heading); }
.jobs-rotator-controls button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: var(--ink); background: transparent; border: 1px solid var(--ink); border-radius: 50%; cursor: pointer; }
.jobs-rotator-controls button:hover,
.jobs-rotator-controls button:focus-visible { color: #fff; background: var(--ink); }
.job-card { display: flex; min-width: 0; flex-direction: column; padding: 28px; background: #fff; border: 1px solid rgba(23,35,31,.22); box-shadow: var(--shadow); }
.job-card--expired { background: #f5f3ec; }
.job-card-heading h3 { margin: 12px 0 20px; font: 800 clamp(1.35rem, 2.5vw, 2rem)/1.08 var(--font-heading); }
.job-card-heading h3 a { color: var(--ink); text-decoration: none; }
.job-card-heading h3 a:hover { text-decoration: underline; }
.job-badge { display: inline-block; padding: 5px 9px; color: #174e2c; background: #d9f1df; border-radius: 999px; font: 800 .72rem/1.2 var(--font-heading); text-transform: uppercase; letter-spacing: .05em; }
.job-badge--expired { color: #702528; background: #f2d7d6; }
.job-card-meta { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; margin: 0 0 22px; }
.job-card-meta div { min-width: 0; }
.job-card-meta dt,
.job-facts dt { color: var(--muted); font: 800 .7rem/1.25 var(--font-heading); text-transform: uppercase; letter-spacing: .06em; }
.job-card-meta dd,
.job-facts dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.job-card-link { margin-top: auto; color: var(--ink); font: 800 .86rem/1.3 var(--font-heading); }
.jobs-submit-link { display: inline-block; margin-top: 28px; }

.jobs-page,
.job-submit-page,
.job-detail { max-width: var(--content-width); margin: 0 auto; }
.jobs-page .page-intro,
.job-submit-page .page-intro { margin: 0; }
.jobs-page-actions { display: flex; justify-content: flex-end; margin: -18px 0 28px; }
.job-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.jobs-empty,
.job-success,
.job-form-errors { padding: 30px; background: #fff; border: 1px solid var(--line); }
.job-success h2,
.job-form-errors h2 { margin-top: 0; font-family: var(--font-heading); }
.job-form-errors { margin-bottom: 24px; color: #702528; border-left: 5px solid #a63e43; }
.job-detail { padding-top: clamp(70px,9vw,120px); }
.job-detail-header { max-width: 930px; margin: 30px 0 48px; }
.job-detail-header h1 { max-width: 100%; margin-top: 16px; font-size: clamp(2.4rem,6vw,5.2rem); }
.job-expired-notice { max-width: 720px; margin-top: 25px; padding: 18px 20px; color: #702528; background: #f2d7d6; font-weight: 700; }
.job-detail-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(280px,.7fr); gap: 30px; align-items: start; }
.job-description,
.job-facts { padding: clamp(25px,4vw,48px); background: #fff; border: 1px solid var(--line); }
.job-description h2,
.job-facts h2 { margin-top: 0; font-family: var(--font-heading); }
.job-description > div { white-space: normal; }
.job-facts dl { margin: 0; }
.job-facts dl div { padding: 13px 0; border-bottom: 1px solid var(--line); }
.job-apply { display: block; margin-top: 24px; padding: 16px 18px; color: var(--ink); background: var(--brand-yellow); font: 800 .95rem/1.3 var(--font-heading); text-align: center; }
.job-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; padding: clamp(26px,5vw,55px); background: #fff; border: 1px solid var(--line); }
.job-form label { display: grid; gap: 7px; font: 800 .86rem/1.3 var(--font-heading); }
.job-form input,
.job-form textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: #fff; border: 1px solid #9ba19e; font: 400 1rem/1.45 var(--font-body); }
.job-form textarea { resize: vertical; }
.job-form-wide { grid-column: 1 / -1; }
.job-form button { justify-self: start; padding: 14px 20px; color: var(--ink); background: var(--brand-yellow); border: 1px solid #8c7b00; font: 800 .9rem/1.2 var(--font-heading); cursor: pointer; }
.job-honeypot { position: absolute !important; left: -10000px !important; }

.page-intro {
    width: 100%;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: clamp(56px, 9vw, 112px) 0 48px;
}

.eyebrow {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-family: var(--font-heading);
}

h1 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(2.7rem, 6.4vw, 6.2rem);
    line-height: 0.95;
    font-family: var(--font-heading);
    letter-spacing: -0.035em;
    text-transform: var(--heading-transform);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

h2,
h3,
.filters,
.result-heading,
.publication-meta,
.pdf-link,
.primary-link,
.secondary-link,
.article-meta,
.article-card,
.back-link,
.article-related {
    font-family: var(--font-heading);
}

.lead {
    max-width: 720px;
    margin: 28px 0 0;
    color: var(--muted);
    font-size: clamp(1.1rem, 2vw, 1.45rem);
}

/* About */
.about-main { padding-bottom: 0; }
.about-section,
.about-history,
.about-resources { width: 100%; max-width: var(--content-width); margin: 0 auto; }
.about-section { padding: clamp(56px, 8vw, 96px) 0; border-top: 1px solid var(--line); }
.about-section > h2 { max-width: 780px; margin: 0 0 42px; font-size: clamp(2rem, 4vw, 4.2rem); line-height: 1; text-transform: var(--heading-transform); }
.about-mission-grid { display: grid; gap: clamp(24px, 4vw, 44px); }
.editorial-feature-card .article-stream-header h3 { text-transform: none; }
.editorial-feature-card .article-stream-copy { max-height: none; }
.editorial-feature-card .article-stream-image { cursor: default; }
.about-people { border-top-color: var(--ink); }
.about-people-intro { max-width: 900px; margin: -16px 0 48px; font-size: clamp(1.08rem, 1.8vw, 1.35rem); line-height: 1.5; }
.about-people-intro p { margin: 0; }
.about-people-intro p + p { margin-top: 18px; }
.about-people-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(290px, 1fr); gap: 24px; }
.about-person-group { padding: clamp(24px, 3.5vw, 44px); background: var(--surface); box-shadow: var(--shadow); }
.about-person-group > header { margin-bottom: 30px; }
.about-person-group > header h3 { margin: 0; font-size: clamp(1.3rem, 2.2vw, 2rem); text-transform: var(--heading-transform); }
.about-person-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.about-person { min-width: 0; }
.about-person img { display: block; width: 100%; aspect-ratio: 1; margin-bottom: 22px; object-fit: cover; filter: grayscale(100%); }
.about-person h4 { margin: 0 0 4px; font: 800 clamp(1.15rem, 1.8vw, 1.55rem)/1.1 var(--font-heading); }
.about-person p { margin: 0 0 14px; color: var(--muted); }
.about-person a { display: block; width: fit-content; max-width: 100%; color: var(--ink); overflow-wrap: anywhere; }
.about-full-board { margin-top: 36px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.about-full-board summary { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 20px; list-style: none; cursor: pointer; font: 800 0.9rem/1.2 var(--font-heading); text-transform: uppercase; }
.about-full-board summary::-webkit-details-marker { display: none; }
.about-full-board summary span { position: relative; width: 28px; height: 28px; flex: 0 0 auto; }
.about-full-board summary span::before,
.about-full-board summary span::after { position: absolute; top: 50%; left: 50%; width: 16px; height: 2px; background: var(--ink); content: ''; transform: translate(-50%, -50%); }
.about-full-board summary span::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 160ms ease; }
.about-full-board[open] summary span::after { transform: translate(-50%, -50%) rotate(0); }
.about-board-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; padding: 0 0 28px; }
.about-board-list > div { min-width: 0; padding: 20px 0; border-top: 1px solid var(--line); }
.about-board-list h4 { margin: 0 0 10px; font: 800 1rem/1.2 var(--font-heading); }
.about-board-list a { display: block; width: fit-content; max-width: 100%; color: var(--ink); font-size: 0.92rem; overflow-wrap: anywhere; }
.about-history { padding: 0 0 clamp(56px, 8vw, 96px); }
.about-history details { border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.about-history summary { display: flex; min-height: 150px; align-items: center; justify-content: space-between; gap: 30px; padding: 28px 0; list-style: none; cursor: pointer; }
.about-history summary::-webkit-details-marker { display: none; }
.about-history summary strong { display: block; max-width: 820px; font: 800 clamp(1.6rem, 3.4vw, 3.2rem)/1.05 var(--font-heading); text-transform: var(--heading-transform); }
.about-history-toggle { position: relative; flex: 0 0 auto; width: 52px; height: 52px; border: 2px solid var(--ink); border-radius: 50%; }
.about-history-toggle::before,
.about-history-toggle::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background: var(--ink); content: ''; transform: translate(-50%, -50%); }
.about-history-toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 160ms ease; }
.about-history details[open] .about-history-toggle::after { transform: translate(-50%, -50%) rotate(0); }
.about-history-content { max-width: 820px; padding: 0 0 48px; }
.about-history-content h2 { margin: 0 0 20px; font-size: 2rem; text-transform: var(--heading-transform); }
.about-history-content p { font-size: 1.08rem; }
.about-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: clamp(72px, 9vw, 112px); }
.about-resources a { display: flex; min-height: 108px; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 0; color: var(--ink); border-top: 1px solid var(--line); font: 800 clamp(1rem, 2vw, 1.35rem)/1.25 var(--font-heading); text-decoration: none; }
.about-resources a:nth-child(odd) { padding-right: 28px; }
.about-resources a:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
.about-resources a:nth-last-child(-n + 2) { border-bottom: 1px solid var(--line); }
.about-resources a:hover span { transform: translate(3px, -3px); }
.about-resources span { color: var(--brand-burgundy); transition: transform 150ms ease; }
.press-picture-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 34px); }
.press-picture-card { min-width: 0; margin: 0; background: var(--surface); box-shadow: var(--shadow); }
.press-picture-card > a { display: block; color: inherit; }
.press-picture-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.press-picture-card figcaption { display: grid; gap: 3px; padding: 22px; }
.press-picture-card strong { font: 800 clamp(1.1rem, 1.8vw, 1.4rem)/1.15 var(--font-heading); }
.press-picture-card figcaption > span { color: var(--muted); }
.press-picture-card figcaption a { width: fit-content; margin-top: 14px; color: var(--link); font: 800 0.95rem/1.2 var(--font-heading); }

.primary-link {
    display: inline-block;
    margin-top: 36px;
    padding: 15px 20px;
    color: var(--ink);
    background: var(--accent);
    border-radius: 3px;
    font-weight: 800;
    text-decoration: none;
}

.secondary-link {
    display: inline-block;
    margin: 18px 0 0 18px;
    color: var(--ink);
    font-weight: 800;
}

.filters {
    display: grid;
    grid-template-columns: minmax(250px, 1.4fr) minmax(150px, 0.55fr) minmax(240px, 1fr) auto;
    gap: 18px;
    align-items: end;
    padding: 24px;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}

.article-filters {
    grid-template-columns: minmax(330px, 1.4fr) minmax(145px, 0.5fr) minmax(145px, 0.55fr) minmax(240px, 1fr) auto;
}

.project-filters {
    grid-template-columns: minmax(180px, 0.55fr) minmax(320px, 1.45fr) auto;
}

.content-filter-disclosure {
    max-width: 1200px;
    margin: 0 auto 34px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    font-family: var(--font-heading);
}

.content-filter-disclosure summary {
    display: flex;
    min-height: 66px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 2px;
    list-style: none;
    cursor: pointer;
}

.content-filter-disclosure summary::-webkit-details-marker { display: none; }

.content-result-count,
.content-filter-label {
    font-size: 0.92rem;
    font-weight: 800;
}

.content-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.content-filter-symbol {
    display: inline-block;
    font-size: 1.35rem;
    line-height: 1;
    transition: transform 180ms ease-out;
}

.content-filter-disclosure[open] .content-filter-symbol { transform: rotate(180deg); }
.content-filter-disclosure summary:focus-visible { outline: 4px solid var(--accent); outline-offset: 3px; }

.content-filter-disclosure .filters {
    margin: 0 0 24px;
    box-shadow: none;
}

.project-result-bar { margin-bottom: 34px; }
.project-result-summary {
    display: flex;
    min-height: 66px;
    align-items: center;
    padding: 12px 2px;
    font-family: var(--font-heading);
    font-size: 0.92rem;
    font-weight: 800;
}

.project-stream-card .article-stream-image img { object-fit: cover; }
.project-inline-content { max-width: 900px; }

.category-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}

.category-filter legend,
.field label {
    display: block;
    width: 100%;
    margin-bottom: 7px;
    font-size: 0.82rem;
    font-weight: 750;
}

.category-filter input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.category-filter span {
    display: block;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    cursor: pointer;
}

.category-filter input:checked + span {
    color: var(--surface);
    background: var(--ink);
    border-color: var(--ink);
}

.category-filter input:focus-visible + span {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
}

select,
input[type="search"] {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid #aeb4b1;
    border-radius: 2px;
    font-family: var(--font-heading);
    font-size: inherit;
}

.filters button {
    min-height: 46px;
    padding: 10px 17px;
    color: var(--ink);
    background: var(--accent);
    border: 1px solid var(--accent-dark);
    border-radius: 2px;
    font-family: var(--font-heading);
    font-size: inherit;
    font-weight: 800;
    cursor: pointer;
}

.clear-link { align-self: center; }

.result-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 48px 0 20px;
    border-bottom: 1px solid var(--line);
}

.result-heading h2 {
    margin: 0 0 14px;
    font-size: 1rem;
}

.publication-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(22px, 3vw, 40px);
    width: 100%;
    max-width: var(--content-width);
    margin: 0 auto;
}

.publication-card {
    display: flex;
    height: 490px;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}

.cover-link {
    display: grid;
    place-items: center;
    height: 330px;
    padding: 18px;
    overflow: hidden;
    background: #e8e6de;
    border-bottom: 1px solid var(--line);
}

.cover-link img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.16));
}

.cover-placeholder {
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 700;
}

.card-content { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.publication-card:not(.media-card) .pdf-link { margin-top: auto; }

.publication-meta {
    margin: 0 0 9px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.publication-meta--issue {
    margin: 8px 0 0;
}

.publication-card h3 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.publication-card h3 a {
    color: var(--ink);
    text-decoration: none;
}

.publication-card h3 a:hover { text-decoration: underline; }

.article-stream {
    display: grid;
    gap: clamp(24px, 4vw, 44px);
    max-width: 1200px;
    margin: 0 auto;
}

.content-card {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}

.content-card:target,
.publication-card:target {
    outline: 4px solid var(--accent);
    outline-offset: 4px;
    scroll-margin-top: 28px;
}

.article-stream-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.78fr);
    grid-template-areas:
        "header header"
        "copy image";
}

.article-stream-header {
    grid-area: header;
    min-width: 0;
    padding: clamp(24px, 3vw, 38px) clamp(26px, 4vw, 48px) 18px;
    border-bottom: 1px solid var(--line);
}

.article-stream-copy {
    display: flex;
    grid-area: copy;
    min-width: 0;
    flex-direction: column;
    justify-content: flex-start;
    max-height: 390px;
    padding: 26px clamp(26px, 4vw, 48px) 38px;
    overflow: hidden;
}

.article-stream-image {
    display: grid;
    grid-area: image;
    min-width: 0;
    align-self: start;
    aspect-ratio: 4 / 3;
    margin: 26px clamp(26px, 4vw, 48px) 38px 0;
    place-items: center;
    overflow: hidden;
    background: #e8e6de;
}

.article-stream-figure {
    grid-area: image;
    min-width: 0;
    margin: 26px clamp(26px, 4vw, 48px) 38px 0;
}

.article-stream-figure .article-stream-image { margin: 0; }

.article-stream-figure figcaption {
    margin-top: 8px;
    color: var(--muted);
    font-size: 0.82rem;
}

.article-stream-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 180ms ease-out;
}

.article-stream-card:hover .article-stream-image img { transform: scale(1.01); }

.article-meta {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.article-stream-card h3 {
    max-width: none;
    margin: 0;
    font-size: clamp(1.55rem, 2.3vw, 2.5rem);
    hyphens: auto;
    line-height: 1.08;
    letter-spacing: -0.025em;
    overflow-wrap: anywhere;
    text-transform: none;
}

.article-stream-card h3 a {
    color: var(--ink);
    text-decoration: none;
}

.article-stream-card h3 a:hover { text-decoration: underline; }

.article-stream-lead {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-heading);
    font-size: clamp(1rem, 1.25vw, 1.14rem);
    font-weight: 700;
    line-height: 1.48;
    overflow-wrap: anywhere;
}

.article-stream-preview {
    margin: 20px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.58;
    overflow-wrap: anywhere;
}

.article-stream-preview.article-body > :first-child { margin-top: 0; }
.article-stream-card.is-expanded .article-stream-copy { max-height: none; overflow: visible; }

.article-expand {
    display: flex;
    width: 100%;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    padding: 14px clamp(24px, 5vw, 72px);
    color: var(--ink);
    background: var(--surface);
    border: 0;
    border-top: 1px solid var(--line);
    font-family: var(--font-heading);
    font-size: 0.92rem;
    font-weight: 800;
    cursor: pointer;
}

.article-expand:hover { background: #f8f7f2; }
.article-expand:focus-visible { outline: 4px solid var(--accent); outline-offset: -4px; }
.article-expand:disabled { cursor: wait; opacity: 0.65; }

.article-expand-symbol {
    font-size: 2rem;
    line-height: 0.7;
    transition: transform 180ms ease-out;
}

.article-stream-card.is-expanded .article-expand-symbol { transform: rotate(180deg); }

.article-inline {
    border-top: 1px solid var(--line);
}

.article-inline-content {
    max-width: 900px;
    padding: clamp(32px, 6vw, 82px);
}

.article-inline-content .article-body { max-width: 760px; }
.content-card-sections { margin-top: 28px; border-bottom: 1px solid var(--line); }
.content-card-section { border-top: 1px solid var(--line); }
.content-card-section summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 0;
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    font-weight: 800;
    list-style: none;
}
.content-card-section summary::-webkit-details-marker { display: none; }
.content-card-section summary span:last-child { font-size: 1.4rem; transition: transform 160ms ease; }
.content-card-section[open] summary span:last-child { transform: rotate(180deg); }
.content-card-section-body { max-width: 760px; padding: 0 0 28px; }
.content-card-section-body p:first-child { margin-top: 0; }

.article-inline-related {
    max-width: 760px;
    margin-top: 42px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    font-family: var(--font-heading);
}

.article-inline-related h4 { margin: 0; font-size: 1rem; }
.article-inline-related ul { margin: 14px 0 0; padding-left: 18px; }
.article-inline-related li + li { margin-top: 8px; }

.article-inline-actions {
    margin: 42px 0 0;
    font-family: var(--font-heading);
    font-weight: 800;
}

.article-load-more {
    display: grid;
    justify-items: center;
    gap: 12px;
    margin: 48px 0 0;
}

.load-more-button {
    display: inline-block;
    min-width: 240px;
    padding: 14px 22px;
    color: var(--ink);
    background: var(--accent);
    border: 1px solid var(--accent-dark);
    font-family: var(--font-heading);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.load-more-button[aria-disabled="true"] { opacity: 0.6; pointer-events: none; }
.article-load-more.is-complete .load-more-button { display: none; }
.article-load-status { min-height: 1.5em; color: var(--muted); font-size: 0.9rem; }
.article-load-sentinel { height: 1px; }

.article-detail {
    max-width: 1320px;
    margin: 0 auto;
    padding-top: clamp(110px, 12vw, 160px);
}

.back-link {
    color: var(--ink);
    font-size: 0.9rem;
    font-weight: 800;
}

.article-detail-header {
    max-width: 1000px;
    margin-top: 36px;
}

.article-detail-header h1 {
    max-width: 16ch;
    font-size: clamp(2.5rem, 6vw, 5.8rem);
}

.article-lead {
    max-width: 850px;
    margin: 30px 0 0;
    color: var(--muted);
    font-size: clamp(1.15rem, 2.2vw, 1.55rem);
    line-height: 1.5;
}

.article-byline {
    margin: 20px 0 0;
    font-family: var(--font-heading);
    font-size: 0.9rem;
    font-weight: 800;
}

.article-hero {
    max-width: 1200px;
    margin: 48px 0 0;
}

.article-hero img {
    display: block;
    width: 100%;
    max-height: 760px;
    object-fit: cover;
}

.article-hero figcaption {
    margin-top: 8px;
    color: var(--muted);
    font-size: 0.82rem;
}

.article-layout {
    display: grid;
    grid-template-columns: minmax(0, 760px) minmax(220px, 320px);
    gap: clamp(50px, 8vw, 110px);
    align-items: start;
    margin-top: 52px;
}

.article-body {
    font-size: 1.08rem;
    line-height: 1.72;
}

.article-body > :first-child { margin-top: 0; }

.article-body h2,
.article-body h3,
.article-body h4 {
    margin: 1.8em 0 0.55em;
    font-family: var(--font-heading);
    line-height: 1.12;
}

.article-body h2 { font-size: clamp(1.65rem, 3vw, 2.3rem); }
.article-body h3 { font-size: 1.45rem; }
.article-body a { overflow-wrap: anywhere; }
.article-body blockquote {
    margin: 2em 0;
    padding-left: 22px;
    border-left: 5px solid var(--accent);
    font-size: 1.18rem;
}

.article-related {
    padding: 22px;
    background: var(--surface);
    border: 1px solid var(--line);
}

.article-related h2 { margin: 0; font-size: 1rem; }
.article-related ul { margin: 16px 0 0; padding-left: 18px; }
.article-related li + li { margin-top: 10px; }

.leadership-module { background: var(--brand-blue); }
.leadership-status {
    margin: 0;
    padding: 16px 18px;
    background: #fff7cf;
    border-left: 5px solid var(--brand-yellow);
    font-family: var(--font-heading);
    font-weight: 800;
}
.article-related .leadership-status + h2 { margin-top: 28px; }

.pdf-link {
    display: inline-block;
    margin-top: 18px;
    font-size: 0.9rem;
    font-weight: 750;
}

.empty-state {
    padding: 48px;
    background: var(--surface);
    border: 1px solid var(--line);
}

.event-main {
    width: min(100%, calc(var(--content-width) + 10vw));
    margin: 0 auto;
    padding-top: 0;
}

.event-intro,
.event-section,
.event-empty,
.event-notice {
    width: min(100%, var(--content-width));
    margin-right: auto;
    margin-left: auto;
}

.event-facts { margin: 0; }
.event-facts > div { padding: 18px 0; border-top: 1px solid var(--line); }
.event-facts dt,
.event-facts dd { margin: 0; }
.event-facts dt { color: var(--muted); font: 800 0.72rem/1.3 var(--font-heading); letter-spacing: 0.1em; text-transform: uppercase; }
.event-facts dd { margin-top: 5px; font-family: var(--font-heading); font-size: 1.15rem; font-weight: 800; }
.event-facts dd span { color: var(--muted); font-family: var(--font-body); font-size: 0.95rem; font-weight: 400; }

.event-ticket-layout {
    padding: clamp(28px, 4vw, 48px);
}

.event-feature-card {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: 0 12px 34px rgb(18 37 32 / 6%);
}

.event-feature-header {
    display: flex;
    gap: 28px;
    align-items: end;
    justify-content: space-between;
    padding: clamp(26px, 4vw, 42px) clamp(28px, 4vw, 48px);
    border-bottom: 1px solid var(--line);
}

.event-feature-header .eyebrow { margin: 0 0 7px; }
.event-feature-header h2 {
    max-width: none;
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.event-feature-action {
    flex: 0 0 auto;
    padding-bottom: 5px;
    color: var(--ink);
    font-family: var(--font-heading);
    font-weight: 800;
    text-underline-offset: 0.22em;
}

.event-cinema-ticket-list { display: grid; gap: 24px; }
.event-cinema-ticket {
    position: relative;
    display: grid;
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr);
    color: var(--ink);
    background-color: #f3dfa3;
    background-image:
        linear-gradient(90deg, rgb(255 253 245 / 22%) 0%, rgb(255 253 245 / 8%) 52%, rgb(255 253 245 / 0%) 100%),
        url("/assets/events/sergel-hub-ticket-desktop.png");
    background-position: center;
    background-size: cover;
    border: 1px solid var(--ink);
    box-shadow: 0 12px 28px rgb(18 37 32 / 9%);
    text-decoration: none;
    transition: box-shadow 160ms ease, transform 160ms ease;
}
.event-cinema-ticket:hover {
    box-shadow: 0 18px 36px rgb(18 37 32 / 15%);
    transform: translateY(-3px);
}
.event-cinema-ticket:focus-visible {
    outline: 4px solid var(--brand-yellow);
    outline-offset: 4px;
}
.event-cinema-ticket::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    right: clamp(-118px, -7.2vw, -96px);
    width: clamp(260px, 32%, 380px);
    aspect-ratio: 3 / 1;
    background: url("/assets/events/sergel-hub-logo-transparent.png") center / contain no-repeat;
    content: "";
    opacity: 0.36;
    pointer-events: none;
    transform: translateY(-50%) rotate(90deg);
    transform-origin: center;
}
.event-cinema-ticket-main {
    position: relative;
    z-index: 1;
    display: grid;
    min-width: 0;
    padding: clamp(28px, 4vw, 50px);
    background: transparent;
}
.event-cinema-kicker {
    margin: 0 0 12px;
    color: var(--muted);
    font: 800 0.72rem/1.3 var(--font-heading);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.event-cinema-ticket h3 {
    max-width: none;
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 0.98;
    overflow-wrap: anywhere;
}
.event-cinema-description {
    max-width: 58ch;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 1.08rem;
}
.event-cinema-details {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 36px;
    margin-top: 30px;
    font-family: var(--font-heading);
    font-weight: 800;
}
.event-cinema-details span { display: grid; gap: 3px; }
.event-cinema-details small {
    color: var(--muted);
    font-size: 0.67rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.event-cinema-price {
    margin-top: 32px;
    font: 800 clamp(1.35rem, 2.5vw, 2rem)/1 var(--font-heading);
}
.event-included { margin-top: 34px; }

.event-notice {
    margin-top: 22px;
    padding: 14px 18px;
    background: #fff7cf;
    border: 1px solid var(--brand-yellow);
    font-family: var(--font-heading);
    font-size: 0.88rem;
}

.event-section,
.event-empty { padding: clamp(54px, 8vw, 100px) 0; }
.event-section + .event-section { border-top: 1px solid var(--line); }
.event-section h2,
.event-empty h2 { max-width: 18ch; margin: 8px 0 34px; font-size: clamp(2rem, 5vw, 4rem); line-height: 0.98; }

.event-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.event-card {
    display: flex;
    min-height: 230px;
    flex-direction: column;
    padding: 28px;
    background: var(--surface);
    border: 1px solid var(--line);
}
.event-card h3 { margin: 0; font-size: 1.4rem; }
.event-card p { color: var(--muted); }
.event-card strong { margin-top: auto; font-family: var(--font-heading); }
.event-card a { margin-top: 14px; font-family: var(--font-heading); font-weight: 800; }
.event-card-link {
    color: inherit;
    text-decoration: none;
    transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.event-card-link:hover {
    border-color: var(--ink);
    box-shadow: 0 12px 28px rgb(18 37 32 / 10%);
    transform: translateY(-2px);
}
.event-card-link:focus-visible {
    outline: 3px solid var(--brand-yellow);
    outline-offset: 3px;
}
.event-card-action {
    margin-top: 18px;
    font-family: var(--font-heading);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
.event-section-note {
    max-width: 760px;
    margin: -14px 0 34px;
    color: var(--muted);
    font-size: 1.08rem;
}
.event-section-note a {
    color: var(--ink);
    font-family: var(--font-heading);
    font-weight: 800;
    text-underline-offset: 0.2em;
}
.event-expand-grid {
    display: grid;
    gap: 18px;
}
.event-expand-card {
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: 0 10px 28px rgb(18 37 32 / 5%);
}
.event-expand-card summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 24px;
    gap: 24px;
    align-items: center;
    padding: 25px 28px;
    cursor: pointer;
    list-style: none;
}
.event-expand-card summary::-webkit-details-marker { display: none; }
.event-expand-card summary:hover { background: rgb(18 37 32 / 2.5%); }
.event-expand-card summary:focus-visible {
    outline: 3px solid var(--brand-yellow);
    outline-offset: -3px;
}
.event-expand-heading { display: grid; gap: 5px; }
.event-expand-kind {
    color: var(--muted);
    font: 800 0.72rem/1.3 var(--font-heading);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.event-expand-title {
    font-family: var(--font-heading);
    font-size: clamp(1.2rem, 2.6vw, 1.7rem);
    font-weight: 800;
    line-height: 1.08;
}
.event-expand-meta {
    font-family: var(--font-heading);
    font-weight: 800;
    white-space: nowrap;
}
.event-expand-chevron {
    width: 12px;
    height: 12px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    transform: rotate(45deg) translateY(-3px);
    transition: transform 160ms ease;
}
.event-expand-card[open] .event-expand-chevron { transform: rotate(225deg) translate(-2px, -2px); }
.event-expand-body {
    padding: 0 28px 28px;
    border-top: 1px solid var(--line);
}
.event-expand-body p { max-width: 760px; color: var(--muted); }
.event-expand-body h3 { margin: 24px 0 8px; font-size: 1rem; }
.event-expand-body a { font-family: var(--font-heading); font-weight: 800; }
.event-single-offer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 32px;
    align-items: center;
    padding: 28px;
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: 0 10px 28px rgb(18 37 32 / 5%);
}
.event-single-offer h3 { margin: 5px 0 0; font-size: clamp(1.2rem, 2.6vw, 1.7rem); }
.event-single-offer p { max-width: 760px; margin-bottom: 0; color: var(--muted); }
.event-single-offer strong { font-family: var(--font-heading); white-space: nowrap; }
.event-single-offer a { font-family: var(--font-heading); font-weight: 800; white-space: nowrap; }
.event-included { max-width: 760px; margin-top: 34px; }

.event-program-day + .event-program-day { margin-top: clamp(48px, 7vw, 82px); }
.event-program-day-heading {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 30px;
    align-items: baseline;
    margin-bottom: 18px;
}
.event-program-day-heading p {
    margin: 0;
    color: var(--muted);
    font: 800 0.76rem/1.3 var(--font-heading);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.event-program-day-heading h3 {
    margin: 0;
    font-size: clamp(1.65rem, 3.5vw, 2.8rem);
}
.event-program { border-top: 1px solid var(--ink); }
.event-slot { padding: 30px 0; border-bottom: 1px solid var(--line); }
.event-slot > header { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 30px; }
.event-slot header p { margin: 3px 0 0; color: var(--muted); font-family: var(--font-heading); font-weight: 800; }
.event-slot h3 { margin: 0; font-size: clamp(1.4rem, 3vw, 2.1rem); }
.event-sessions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 24px 0 0 210px; }
.event-sessions > div { padding: 22px; background: var(--surface); border: 1px solid var(--line); }
.event-sessions h4 { margin: 0; font-size: 1.1rem; }
.event-room { color: var(--muted); font-family: var(--font-heading); font-size: 0.82rem; font-weight: 800; }

.event-details details { max-width: 820px; border-top: 1px solid var(--line); }
.event-details details:last-of-type { border-bottom: 1px solid var(--line); }
.event-details summary { padding: 20px 0; cursor: pointer; font-family: var(--font-heading); font-weight: 800; }
.event-details details p { max-width: 740px; margin: 0 0 24px; }
.event-contact { margin-top: 42px; }
.event-contact h3 { margin-bottom: 8px; }

.site-footer {
    padding: clamp(42px, 7vw, 82px) max(5vw, calc((100vw - var(--content-width)) / 2)) 26px;
    color: #fff;
    background: var(--ink);
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 0.9rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(150px, 0.7fr);
    gap: clamp(30px, 6vw, 90px);
}
.site-footer h2 { margin: 0 0 16px; font-size: 1rem; text-transform: uppercase; }
.site-footer p { margin: 0; }
.site-footer p + p { margin-top: 14px; }
.site-footer a { color: #fff; }
.footer-logo {
    display: block;
    width: min(100%, 190px);
    height: 118px;
    justify-self: end;
    align-self: start;
}
.footer-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.footer-development {
    margin-top: 54px !important;
    padding-top: 20px;
    color: rgba(255, 255, 255, 0.6);
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    font-family: var(--font-heading);
    font-size: 0.72rem;
}

@media (max-width: 920px) {
    .press-picture-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .publication-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filters { grid-template-columns: 1fr 1fr; }
    .category-filter { grid-column: 1 / -1; }
    .article-layout { grid-template-columns: 1fr; }
    .article-related { max-width: 560px; }
    .article-stream-summary {
        grid-template-columns: 1fr;
        grid-template-areas:
            "image"
            "header"
            "copy";
    }
    .article-stream-image {
        width: 100%;
        aspect-ratio: 16 / 10;
        margin: 0;
    }
    .article-stream-figure { width: 100%; margin: 0; }
    .article-stream-figure figcaption { padding: 0 22px 10px; }
    .article-stream-image img { min-height: 0; }
    .home-hero { min-height: 0; }
    .home-features { gap: 24px; }
    .home-feature-image { border-width: 7px; }
    .home-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hub-navigation-grid { grid-template-columns: 1fr; }
    .event-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-sessions { margin-left: 0; }
    .job-detail-layout { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .press-picture-grid { grid-template-columns: 1fr; }
    .site-header { min-height: 66px; padding: 0 20px; }
    main { padding-right: 20px; padding-left: 20px; }
    .home-module-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
    .home-module-heading > div { width: 100%; min-width: 0; }
    .home-module-heading h2 { max-width: 100%; overflow-wrap: anywhere; }
    .hub-navigation-grid,
    .hub-section { width: 100%; }
    .hub-link-card { min-height: 190px; padding: 26px 22px; }
    .hub-report-grid { grid-template-columns: 1fr; }
    .filters { grid-template-columns: 1fr; padding: 18px; }
    .content-filter-disclosure { margin-bottom: 24px; }
    .content-filter-disclosure summary { min-height: 58px; gap: 12px; }
    .content-result-count,
    .content-filter-label { font-size: 0.82rem; }
    .content-filter-disclosure .filters { margin-bottom: 18px; }
    .category-filter { grid-column: auto; }
    .cover-link { height: 360px; }
    .publication-grid { grid-template-columns: 1fr; }
    .secondary-link { margin-left: 0; }
    .about-section { padding: 48px 0; }
    .about-mission-grid,
    .about-people-layout,
    .about-person-pair,
    .about-resources { grid-template-columns: 1fr; }
    .about-people-intro { margin-top: -18px; margin-bottom: 36px; }
    .about-person-group { padding: 22px; }
    .about-person-pair { gap: 38px; }
    .about-board-list { grid-template-columns: 1fr; }
    .about-history summary { min-height: 120px; gap: 18px; }
    .about-history-toggle { width: 44px; height: 44px; }
    .about-resources a:nth-child(n) { min-height: 82px; padding: 20px 0; border-right: 0; border-bottom: 0; border-left: 0; }
    .about-resources a:last-child { border-bottom: 1px solid var(--line); }
    .article-detail { padding-top: 96px; }
    .article-detail-header h1 { font-size: clamp(2.3rem, 12vw, 4rem); }
    .article-stream-header { padding: 20px 22px 12px; }
    .article-stream-copy { max-height: 300px; padding: 8px 22px 28px; }
    .article-stream-card h3 { width: 100%; max-width: 100%; font-size: clamp(1.65rem, 7.8vw, 2.15rem); line-height: 1.07; }
    .article-stream-card h3 a { display: block; max-width: 100%; white-space: normal; }
    .article-meta { margin-bottom: 7px; font-size: 0.7rem; }
    .article-stream-lead { font-size: 1rem; line-height: 1.42; }
    .article-stream-preview { margin-top: 14px; font-size: 0.96rem; line-height: 1.5; }
    .article-expand { min-height: 54px; font-size: 0.84rem; }
    .article-expand { padding-right: 22px; padding-left: 22px; }
    .article-inline-content { padding: 30px 22px 44px; }
    .event-ticket-layout { padding: 20px; }
    .event-feature-header { align-items: flex-start; padding: 24px 20px; }
    .event-cinema-ticket { width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr); }
    .event-cinema-ticket-main {
        min-width: 0;
        padding: 28px 24px 30px;
        background-position: center;
    }
    .event-cinema-ticket h3 { font-size: clamp(1.45rem, 7.5vw, 2rem); line-height: 1.02; }
    .event-cinema-description { font-size: 1rem; }
    .event-cinema-details { display: grid; gap: 14px; margin-top: 24px; }
    .home-hero { padding: 54px 20px 38px; }
    .site-menu { top: 14px; right: 14px; }
    .site-menu summary { width: 40px; height: 40px; }
    .home-hero h1 {
        max-width: 100%;
        font-size: clamp(1.65rem, 7.5vw, 2.15rem);
        line-height: 1;
        overflow-wrap: anywhere;
    }
    #leadership-title {
        max-width: 100%;
        font-size: clamp(1.1rem, 6.2vw, 2rem);
        line-height: 1;
        overflow-wrap: anywhere;
    }
    .event-module strong {
        font-size: clamp(0.95rem, 5vw, 1.65rem);
        line-height: 1.05;
        overflow-wrap: anywhere;
    }
    .home-vision {
        max-width: 34em;
        margin: 24px auto 32px;
        font-size: 0.94rem;
        line-height: 1.45;
    }
    .home-features {
        grid-template-columns: 1fr;
        gap: 30px;
        max-width: 300px;
        margin: 0 auto;
    }
    .home-feature-image {
        width: min(48vw, 190px);
        border-width: 6px;
    }
    .home-feature-date {
        width: 50px;
        height: 50px;
    }
    .home-feature-date strong { font-size: 1.35rem; }
    .home-feature-date small { font-size: 0.52rem; }
    .home-feature-type { margin-top: 12px; font-size: 0.78rem; }
    .home-feature h2 { font-size: 0.98rem; line-height: 1.32; }
    .home-feature-more { margin-top: 12px; font-size: 0.66rem; }
    .home-module { width: auto; margin: 34px 20px; }
    .assistant-module,
    .event-module,
    .jobs-module { padding: 30px 24px; }
    .latest-reports { padding: 30px 0; }
    .home-module-heading,
    .jobs-module { align-items: flex-start; flex-direction: column; }
    .jobs-heading { align-items: flex-start; flex-direction: column; }
    .job-card-grid,
    .job-list,
    .job-form { grid-template-columns: 1fr; }
    .job-card-meta { grid-template-columns: 1fr; }
    .job-form-wide { grid-column: auto; }
    .home-report-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .home-report-card span,
    .home-report-card h3 { margin-right: 12px; margin-left: 12px; }
    .home-report-card h3 { font-size: 0.88rem; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-logo { justify-self: start; }
    .assistant-direct-form { grid-template-columns: 1fr; }
    .assistant-direct-status { grid-column: auto; }
    .event-card-grid,
    .event-sessions { grid-template-columns: 1fr; }
    .event-program-day-heading { grid-template-columns: 1fr; gap: 6px; }
    .event-ticket-content .event-card-grid { grid-template-columns: 1fr; }
    .event-slot > header { grid-template-columns: 1fr; gap: 7px; }
    .event-card { width: 100%; min-height: 0; }
    .event-feature-header { align-items: flex-start; }
    .event-expand-card summary {
        grid-template-columns: minmax(0, 1fr) 20px;
        gap: 14px;
        padding: 22px 20px;
    }
    .event-expand-meta {
        grid-column: 1;
        white-space: normal;
    }
    .event-expand-chevron {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
    .event-expand-body { padding: 0 20px 22px; }
    .event-single-offer { grid-template-columns: 1fr; gap: 18px; padding: 22px 20px; }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.media-card-grid { align-items: stretch; }
.media-card { display: flex; height: 490px; min-height: 490px; flex-direction: column; overflow: hidden; }
.media-card-image {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 330px;
    overflow: hidden;
    background: #e8e6de;
    border-bottom: 1px solid var(--line);
}
.media-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.media-card-image img[hidden], .media-card-placeholder[hidden] { display: none; }
.media-card-play { position: absolute; inset: 0; display: grid; width: 100%; height: 100%; padding: 0; place-items: center; color: #fff; background: linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.2)); border: 0; cursor: pointer; }
.media-card-play-symbol { display: block; width: 70px; height: 70px; background: rgba(16,29,24,.88); border: 2px solid rgba(255,255,255,.92); border-radius: 50%; box-shadow: 0 5px 24px rgba(0,0,0,.28); transition: transform .16s ease, background .16s ease; }
.media-card-play-symbol::after { content: ''; display: block; width: 0; height: 0; margin: 20px 0 0 27px; border-top: 14px solid transparent; border-bottom: 14px solid transparent; border-left: 22px solid #fff; }
.media-card-play:hover .media-card-play-symbol, .media-card-play:focus-visible .media-card-play-symbol { transform: scale(1.07); background: var(--accent-dark); }
.media-card-play[hidden] { display: none; }
.media-card-video { display: block; width: 100%; height: 100%; background: #000; object-fit: contain; }
.media-card-video[hidden] { display: none; }
.media-card-audio-inline { position: absolute; z-index: 2; right: 12px; bottom: 12px; left: 12px; display: block; width: calc(100% - 24px); }
.media-card-audio-inline[hidden] { display: none; }
.media-card-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: #6b706b; background: #deddd6; font: 700 clamp(3rem,8vw,6rem)/1 var(--font-heading); }
.media-card .card-content { display: flex; flex: 1; flex-direction: column; padding: 14px 18px; }
.media-card h3 { display: -webkit-box; min-height: 2.5em; overflow: hidden; font-size: 1rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.media-card-copy { max-height: 29px; overflow: hidden; }
.media-card-lead { margin: 6px 0 0; font-size: .88rem; font-weight: 650; line-height: 1.35; }
.media-card-body { margin: 5px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.35; }
.media-card-read-more { position: absolute; right: 18px; bottom: 14px; margin: 0; padding: 0; color: var(--accent-dark); background: transparent; border: 0; border-bottom: 1px solid currentColor; font: 750 0.82rem/1.3 var(--font-heading); cursor: pointer; }
.media-card .card-content { position: relative; }
.media-card-action { margin-top: auto; padding-top: 5px; }
.media-card-action .pdf-link { font-size: .82rem; }
.media-card .pdf-link { margin-top: 0; }
.media-card-dialog { width: min(680px, calc(100% - 32px)); max-height: min(82vh, 780px); padding: 0; color: var(--ink); background: var(--surface); border: 1px solid var(--line); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.media-card-dialog::backdrop { background: rgba(15, 25, 21, .64); }
.media-card-dialog-inner { position: relative; padding: clamp(28px, 5vw, 54px); overflow: auto; }
.media-card-dialog h2 { max-width: 560px; margin: 0 44px 18px 0; font-size: clamp(1.7rem, 4vw, 2.5rem); line-height: 1.08; }
.media-card-dialog-close { position: absolute; top: 18px; right: 20px; width: 42px; height: 42px; color: var(--ink); background: transparent; border: 1px solid var(--line); border-radius: 50%; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.media-dialog-lead { font: 650 1.12rem/1.5 var(--font-body); }
.media-dialog-body { line-height: 1.65; }

@media (max-width: 640px) {
    .publication-card, .media-card { height: 460px; min-height: 460px; }
    .media-card-image { height: 300px; }
}
