:root {
    --ink: #292929;
    --muted: #5f6074;
    --surface: #ffffff;
    --surface-soft: #f2f6f0;
    --line: #d4dfd1;
    --accent: #2f6b35;
    --accent-dark: #214d29;
    --brand-gold: #ffd543;
    --brand-green: #5e963f;
    --brand-green-deep: #214d29;
    --brand-green-soft: #e9f2e6;
    --brand-blue: #252b73;
    --brand-blue-deep: #1d2266;
    --brand-blue-soft: #e8e9f5;
    --warning: #806000;
    --warning-soft: #fff8d9;
    --success: #4f750f;
    --success-soft: #f0f8e5;
    --shadow: 0 22px 60px rgba(47, 107, 53, 0.14);
    --shell-max: 1800px;
    --page-gutters: clamp(2rem, 3vw, 3.5rem);
    --layout-gap: clamp(1rem, 2vw, 2rem);
    --section-space: clamp(3.5rem, 6vw, 5.5rem);
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Phase 7 research metadata */
.metadata-summary { margin-bottom: 1.5rem; }
.metadata-panel { margin-top: 1.5rem; }
.metadata-admin-grid,
.public-metadata-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.metadata-admin-grid > div,
.public-metadata-card { min-width: 0; padding: 1.1rem; border: 1px solid var(--border, #dce3e8); border-radius: .75rem; background: #fff; }
.metadata-chip-grid { display: flex; flex-wrap: wrap; gap: .55rem; }
.metadata-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .7rem; border: 1px solid #cbd7df; border-radius: 999px; background: #f5f8fa; color: #243746; font-size: .88rem; line-height: 1.25; }
.metadata-chip form { display: inline; margin: 0; }
.metadata-chip button { border: 0; background: transparent; color: inherit; padding: 0 .1rem; cursor: pointer; font-size: 1.05rem; line-height: 1; }
.sdg-chip { border-left: .35rem solid var(--chip-colour, #425466); border-radius: .45rem; }
.compact-assignment-form { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1rem; }
.compact-assignment-form select { min-width: min(100%, 15rem); flex: 1; }
.compact-assignment-form label { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.metadata-partners { margin-top: 1.5rem; }
.compact-metadata-form { margin-top: 1rem; }
.research-metadata-section { background: #f4f7f6; border-top: 1px solid #dce5e1; }
.public-metadata-card.span-2 { grid-column: 1 / -1; }
.partner-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.partner-card { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem; border-left: .25rem solid var(--primary, #006b54); background: #f8faf9; }
.partner-card h4 { margin: .15rem 0 .4rem; }
.partner-logo { width: 4rem; height: 4rem; flex: 0 0 auto; object-fit: contain; border-radius: .35rem; background: #fff; }

@media (max-width: 760px) {
    .metadata-admin-grid,
    .public-metadata-grid { grid-template-columns: 1fr; }
    .public-metadata-card.span-2 { grid-column: auto; }
    .compact-assignment-form { align-items: stretch; flex-direction: column; }
    .compact-assignment-form select,
    .compact-assignment-form .button { width: 100%; }
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--surface);
    line-height: 1.6;
}

a {
    color: inherit;
}

.skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 10;
    padding: 0.7rem 1rem;
    color: #fff;
    background: var(--ink);
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.shell {
    width: min(var(--shell-max), calc(100% - var(--page-gutters)));
    margin-inline: auto;
}

.narrow {
    max-width: 780px;
}

.layout-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--layout-gap);
}

.site-header {
    position: relative;
    z-index: 30;
    background: #fff;
    box-shadow: 0 8px 28px rgba(25, 71, 34, 0.1);
}

.header-utility-band {
    color: #fff;
    background: var(--brand-blue);
}

.header-utility-row {
    display: flex;
    min-height: 40px;
    align-items: center;
    justify-content: flex-end;
}

.header-utility-row nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.header-utility-row a {
    padding: 0.5rem 0.75rem;
    color: #fff;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 700;
}

.header-utility-row a:hover,
.header-utility-row a:focus-visible {
    background: rgba(255, 255, 255, 0.14);
}

.header-identity-band {
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.header-identity-row {
    display: flex;
    min-height: 116px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.identity {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 1.25rem;
    text-decoration: none;
}

.identity-logo {
    width: 104px;
    height: 104px;
    flex: 0 0 auto;
    object-fit: contain;
}

.identity-copy,
.identity-name,
.identity-acronym {
    display: block;
}

.identity-name {
    max-width: none;
   /* max-width: 760px;*/
    color: var(--accent);
    font-size: clamp(1.35rem, 2.1vw, 2rem);
    font-weight: 850;
    letter-spacing: 0.015em;
    line-height: 1.08;
    text-transform: uppercase;
}

.identity-acronym {
    margin-top: 0.45rem;
    color: var(--accent-dark);
    font-size: 0.9rem;
    font-weight: 850;
    letter-spacing: 0.2em;
}

.header-motto-band {
    min-height: 36px;
    color: var(--accent-dark);
    background: var(--brand-gold);
}

.header-motto-band .shell {
    display: flex;
    min-height: 36px;
    align-items: center;
}

.header-motto-band strong {
    font-size: 0.8rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.header-navigation-band {
    color: #fff;
    background: var(--brand-blue);
}

.header-navigation-row {
    min-height: 50px;
}

.navigation-toggle {
    display: none;
    min-height: 44px;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--accent-dark);
    background: #fff;
    font: inherit;
    font-weight: 800;
}

.navigation-toggle-icon {
    display: grid;
    width: 20px;
    gap: 4px;
}

.navigation-toggle-icon i {
    display: block;
    height: 2px;
    background: currentColor;
}

.primary-navigation {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    min-width: 0;
    gap: 0;
}

.nav-link,
.nav-group > summary {
    display: flex;
    min-height: 50px;
    align-items: center;
    padding: 0.72rem clamp(0.58rem, 1vw, 0.85rem);
    border-radius: 0;
    color: #fff;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 750;
    white-space: nowrap;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-link[aria-current="page"],
.nav-group > summary:hover,
.nav-group > summary:focus-visible,
.nav-group[data-current="true"] > summary,
.nav-group[open] > summary {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
}

.nav-link[aria-current="page"],
.nav-group[data-current="true"] > summary {
    box-shadow: inset 0 -4px 0 var(--brand-gold);
}

.nav-group {
    position: relative;
}

.nav-group > summary {
    cursor: pointer;
    list-style: none;
}

.nav-group > summary::-webkit-details-marker {
    display: none;
}

.nav-group > summary::after {
    width: 0.42rem;
    height: 0.42rem;
    margin: -0.22rem 0 0 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: rotate(45deg);
    transition: transform 180ms ease;
}

.nav-group[open] > summary::after {
    margin-top: 0.2rem;
    transform: rotate(225deg);
}

.nav-submenu {
    position: absolute;
    z-index: 5;
    top: 100%;
    left: 0;
    display: grid;
    width: 250px;
    overflow: visible;
    padding: 0.45rem;
    border: 1px solid var(--line);
    border-top: 4px solid var(--brand-gold);
    border-radius: 0 0 8px 8px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(33, 93, 43, 0.16);
}

.nav-submenu-wide {
    width: 280px;
}

.nav-submenu-programmes {
    width: 280px;
}

.nav-submenu-departments {
    width: 360px;
}

.nav-submenu-end {
    right: 0;
    left: auto;
}

.nav-submenu a {
    padding: 0.72rem 0.8rem;
    border-radius: 5px;
    color: var(--ink);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 650;
}

.nav-submenu a:hover,
.nav-submenu a:focus-visible,
.nav-submenu a[aria-current="page"] {
    color: var(--accent-dark);
    background: var(--surface-soft);
}

.breadcrumbs {
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    background: #fff;
    font-size: 0.82rem;
}

.breadcrumbs ol {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 0.55rem;
    margin-block: 0;
    padding-block: 0.55rem;
    list-style: none;
}

.breadcrumbs li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.breadcrumbs li:not(:last-child)::after {
    color: #9899aa;
    content: "/";
}

.breadcrumbs a {
    color: var(--accent-dark);
    font-weight: 700;
    text-decoration: none;
}

.breadcrumbs li[aria-current="page"] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hero {
    overflow: hidden;
    padding: clamp(4.5rem, 9vw, 8rem) 0;
    background:
        radial-gradient(circle at 85% 18%, rgba(47, 107, 53, 0.18), transparent 28rem),
        linear-gradient(145deg, #fbfbfe 0%, #eef0fa 100%);
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.75fr);
    align-items: center;
    gap: clamp(2rem, 7vw, 6rem);
}

.eyebrow,
.status-label {
    margin: 0 0 0.75rem;
    color: var(--accent-dark);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    max-width: 820px;
    margin-bottom: 1.25rem;
    font-size: clamp(2.7rem, 7vw, 5.5rem);
    font-weight: 780;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

h2 {
    margin-bottom: 1.25rem;
    font-size: clamp(2rem, 4vw, 3.1rem);
    letter-spacing: -0.035em;
    line-height: 1.08;
}

h3 {
    margin-bottom: 0.6rem;
    font-size: 1.15rem;
}

.lead {
    max-width: 700px;
    color: var(--muted);
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

main .lead {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

.button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1.15rem;
    border: 1px solid transparent;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 750;
}

.button-primary {
    color: #fff;
    background: var(--accent);
}

.button-primary:hover {
    background: var(--accent-dark);
}

.button-secondary {
    color: var(--accent);
    border-color: var(--accent);
    background: var(--surface);
}

.button-secondary:hover { background: #edf3eb; }

.status-panel {
    padding: 2rem;
    border: 1px solid rgba(47, 107, 53, 0.22);
    border-top: 6px solid var(--brand-green);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.85);
    box-shadow: var(--shadow);
}

.status-panel strong {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 1.4rem;
}

.status-panel p:last-child {
    margin-bottom: 0;
    color: var(--muted);
}

.status-dot {
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-bottom: 1.4rem;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 7px var(--success-soft);
}

.section {
    padding: var(--section-space) 0;
}

.section-compact {
    padding-top: 1rem;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 2.5rem;
}

.feature-grid article {
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-top: 4px solid var(--brand-green);
    border-radius: 16px;
}

.feature-grid p {
    margin-bottom: 0;
    color: var(--muted);
}

.feature-number {
    display: block;
    margin-bottom: 2.3rem;
    color: #527a14;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.page-heading {
    padding: clamp(3.5rem, 7vw, 6rem) 0 2rem;
    border-bottom: 4px solid var(--brand-gold);
    background: var(--surface-soft);
}

.page-heading h1,
.error-page h1 {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
}

/*
 * Canonical interior-page title band. One component for every "you just
 * arrived on this page" moment site-wide (detail pages and, eventually,
 * listing pages too) - restrained size on purpose, matching how comparable
 * faculty sites (UCT/Wits/CEDAT) treat interior titles: the dramatic large
 * type is reserved for the homepage only. Works with or without a photo.
 */
.page-title-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
    background:
        radial-gradient(circle at 85% 20%, rgba(47, 107, 53, 0.15), transparent 22rem),
        var(--surface-soft);
    border-bottom: 4px solid var(--brand-gold);
}

.page-title-hero.has-image {
    padding: clamp(4rem, 9vw, 6.5rem) 0 clamp(3rem, 6vw, 4.5rem);
    background-color: var(--brand-blue);
    border-bottom: none;
}

.page-title-hero-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-title-hero.has-image::before {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: linear-gradient(180deg, rgba(18, 20, 32, .25), rgba(13, 15, 28, .85));
    content: "";
}

.page-title-hero.has-image .shell {
    position: relative;
    z-index: 2;
}

.page-title-hero .back-link {
    display: inline-block;
    margin-bottom: 1.25rem;
}

.page-title-hero .eyebrow {
    margin-bottom: 0.6rem;
}

.page-title-hero.has-image .eyebrow {
    color: var(--brand-gold);
}

.page-title-hero h1 {
    max-width: 1200px;
    margin-bottom: 0.5rem;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 780;
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.page-title-hero.has-image h1,
.page-title-hero.has-image .lead {
    color: #fff;
}

.page-title-hero .lead {
    max-width: 900px;
    margin-top: 0.35rem;
}

.health-summary {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 1.5rem;
    border-radius: 16px;
}

.health-summary .status-dot {
    flex: 0 0 auto;
    margin: 0;
}

.health-summary h2,
.health-summary p {
    margin-bottom: 0;
}

.health-summary.is-healthy {
    background: var(--success-soft);
}

.health-summary.needs-attention {
    background: var(--warning-soft);
}

.health-summary.needs-attention .status-dot {
    background: var(--warning);
    box-shadow: 0 0 0 7px rgba(155, 93, 19, 0.12);
}

.health-list {
    margin: 1.25rem 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
}

.health-list div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--line);
}

.health-list div:last-child {
    border-bottom: 0;
}

.health-list dt {
    font-weight: 700;
}

.health-list dd {
    margin: 0;
    color: var(--muted);
}

.health-note {
    color: var(--muted);
    font-size: 0.92rem;
}

.error-page {
    display: grid;
    min-height: 64vh;
    place-items: center;
    padding: 4rem 0;
    text-align: center;
}

.error-code {
    margin-bottom: 0.5rem;
    color: var(--accent);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.2em;
}

.site-footer {
    padding: clamp(3rem, 6vw, 4.5rem) 0 1.25rem;
    border-top: 6px solid var(--brand-gold);
    color: #fff;
    background: var(--brand-blue);
    font-size: 0.88rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(250px, 0.75fr) minmax(0, 1.5fr);
    gap: clamp(2.5rem, 7vw, 6rem);
}

.footer-identity {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.footer-logo {
    width: 64px;
    height: 64px;
    flex: 0 0 auto;
    border-radius: 50%;
    object-fit: contain;
}

.footer-identity strong {
    display: block;
    max-width: 280px;
    margin-bottom: 0.55rem;
    font-size: 1rem;
    line-height: 1.35;
}

.footer-identity p {
    margin-bottom: 0.15rem;
    color: #dadaef;
}

.footer-navigation {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.footer-navigation div {
    display: grid;
    align-content: start;
    gap: 0.55rem;
}

.footer-navigation h2 {
    margin-bottom: 0.45rem;
    color: var(--brand-gold);
    font-size: 0.75rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.footer-navigation a,
.footer-legal a {
    color: #fff;
    text-decoration: none;
}

.footer-navigation a:hover,
.footer-navigation a:focus-visible,
.footer-legal a:hover,
.footer-legal a:focus-visible {
    color: var(--brand-gold);
}

.footer-legal {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    color: #dadaef;
    font-size: 0.78rem;
}

.footer-legal p {
    margin: 0;
}

.auth-section {
    display: grid;
    min-height: 70vh;
    place-items: center;
    padding: clamp(3rem, 8vw, 6rem) 1rem;
    background:
        radial-gradient(circle at 15% 10%, rgba(47, 107, 53, 0.14), transparent 24rem),
        var(--surface-soft);
}

.auth-card {
    width: min(100%, 480px);
    padding: clamp(1.5rem, 5vw, 2.5rem);
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.auth-card-wide {
    width: min(100%, 580px);
}

.auth-heading {
    margin-bottom: 1.75rem;
}

.auth-heading h1 {
    margin-bottom: 0.8rem;
    font-size: clamp(2.2rem, 6vw, 3.6rem);
}

.auth-heading p:last-child,
.auth-note,
.field-guidance {
    color: var(--muted);
}

.form-field {
    margin-bottom: 1.2rem;
}

.form-field label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.92rem;
    font-weight: 750;
}

.form-field input {
    width: 100%;
    min-height: 48px;
    padding: 0.72rem 0.85rem;
    border: 1px solid #b8c5cb;
    border-radius: 9px;
    color: var(--ink);
    background: var(--surface);
    font: inherit;
}

.form-field input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(47, 107, 53, 0.16);
    outline: 0;
}

.field-guidance {
    margin: 0.4rem 0 0;
    font-size: 0.83rem;
}

.button-full {
    width: 100%;
}

button.button {
    cursor: pointer;
    font: inherit;
}

.form-alert,
.success-alert {
    margin-bottom: 1.25rem;
    padding: 0.9rem 1rem;
    border-radius: 10px;
}

.form-alert {
    border: 1px solid #e1b7b7;
    color: #7c2727;
    background: #fff0f0;
}

.form-alert ul {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
}

.success-alert {
    border: 1px solid #b9ddcf;
    color: var(--success);
    background: var(--success-soft);
}

.auth-note {
    margin: 1rem 0 0;
    font-size: 0.82rem;
    text-align: center;
}

.auth-alt-action {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
    text-align: center;
}

.auth-alt-action p {
    margin-bottom: 0.75rem;
    color: var(--muted);
    font-size: 0.9rem;
}

.admin-heading h1 {
    max-width: 760px;
}

.account-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.3rem;
    border: 1px solid var(--line);
    border-radius: 14px;
}

.account-card p {
    margin-bottom: 0.2rem;
}

.logout-form {
    margin-top: 1rem;
}

.department-heading {
    background:
        radial-gradient(circle at 85% 20%, rgba(47, 107, 53, 0.15), transparent 22rem),
        var(--surface-soft);
}

.public-search {
    max-width: 720px;
    margin-bottom: 2rem;
}

.public-search label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 750;
}

.public-search > div {
    display: flex;
    gap: 0.6rem;
}

.public-search input,
.public-search select {
    min-width: 0;
    padding: 0.75rem 0.9rem;
    border: 1px solid #b8c5cb;
    border-radius: 9px;
    background: #fff;
    font: inherit;
}

.public-search input {
    flex: 1;
}

.programme-search {
    max-width: 100%;
}

.programme-search select {
    max-width: 250px;
}

.department-card-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
}

.department-card-grid .department-card {
    flex: 1 1 280px;
}

.department-card-grid .department-card:only-child {
    max-width: 420px;
}

.research-department-group {
    margin-bottom: 2.5rem;
}

.research-department-group:last-child {
    margin-bottom: 0;
}

.research-department-heading {
    margin-bottom: 1rem;
    font-size: 1.6rem;
    letter-spacing: -0.02em;
}

.department-card {
    display: flex;
    min-height: 290px;
    flex-direction: column;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
}

/*
 * The card's actual text content is wrapped in a plain <div> (to sit below
 * an optional <img>), not a direct flex child of .department-card itself -
 * without this, .text-link's margin-top:auto has nothing to push against,
 * so short descriptions leave raw dead space instead of the CTA link
 * landing consistently at the same bottom edge on every card in a row.
 */
.department-card > div {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.department-card-image {
    width: calc(100% + 3rem);
    height: 180px;
    margin: -1.5rem -1.5rem 1.25rem;
    border-radius: 18px 18px 0 0;
    object-fit: cover;
}

.department-card h2 {
    min-height: 3rem;
    font-size: 1.4rem;
    letter-spacing: -0.025em;
}

.department-card h2 a {
    text-decoration: none;
}

.department-card p:not(.department-code):not(.eyebrow):not(.card-meta) {
    min-height: 4.8rem;
    color: var(--muted);
}

.department-code {
    color: var(--accent);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.text-link {
    margin-top: auto;
    color: var(--accent-dark);
    font-weight: 750;
    text-decoration: none;
}

.public-empty {
    padding: clamp(2rem, 7vw, 5rem);
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--surface-soft);
    text-align: center;
}

.public-empty h2 {
    font-size: clamp(1.7rem, 4vw, 2.5rem);
}

.public-empty p {
    max-width: 680px;
    margin-inline: auto;
    color: var(--muted);
}

.public-pagination {
    margin-top: 2rem;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
}

.pagination a {
    display: grid;
    min-width: 40px;
    min-height: 40px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    text-decoration: none;
}

.pagination a[aria-current="page"] {
    color: #fff;
    border-color: var(--accent);
    background: var(--accent);
}

.department-detail-hero {
    padding: clamp(4rem, 10vw, 8rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 80% 15%, rgba(255, 255, 255, 0.11), transparent 24rem),
        var(--accent-dark);
}

.department-detail-hero .eyebrow {
    color: var(--brand-gold);
}

.department-detail-hero h1 {
    max-width: 1000px;
}

.department-detail-hero .lead {
    color: #ececff;
}

.department-hero-image {
    width: 100%;
    max-height: 520px;
    margin-top: 2rem;
    border-radius: 20px;
    object-fit: cover;
}

.back-link {
    display: inline-block;
    margin-bottom: 2.5rem;
    color: var(--brand-gold);
}

.public-record-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.55fr);
    align-items: start;
    gap: clamp(2rem, 6vw, 5rem);
}

.public-content-section {
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--line);
    margin-bottom: 2.5rem;
}

.public-content-section h2 {
    font-size: clamp(1.7rem, 4vw, 2.4rem);
}

.public-content-section .prose {
    color: #35444d;
    font-size: 1.05rem;
}

.programme-curriculum .curriculum-year {
    margin-top: 2rem;
}

.programme-curriculum h3 {
    font-size: 1.35rem;
}

.programme-curriculum h4 {
    margin-top: 1.25rem;
}

.programme-curriculum .table-wrap {
    overflow-x: auto;
}

.programme-curriculum table {
    width: 100%;
    border-collapse: collapse;
}

.programme-curriculum th,
.programme-curriculum td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
}

.programme-curriculum th {
    color: var(--muted);
    font-size: 0.75rem;
    text-transform: uppercase;
}

/* Academic programmes: editorial directory and detail pages */
.programme-directory-hero,
.programme-detail-hero {
    overflow: hidden;
    color: #fff;
    background: var(--brand-blue);
}

.programme-directory-hero-grid,
.programme-detail-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(460px, 1.18fr);
    min-height: clamp(560px, 70vh, 760px);
    align-items: stretch;
}

.programme-directory-intro,
.programme-detail-copy {
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: clamp(4rem, 7vw, 7rem) clamp(2rem, 5vw, 5.5rem) clamp(4rem, 7vw, 7rem) 0;
}

.programme-directory-hero .eyebrow,
.programme-detail-hero .eyebrow,
.programme-action-panel .eyebrow {
    color: var(--brand-gold);
}

.programme-directory-hero h1,
.programme-detail-hero h1 {
    max-width: 850px;
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.2vw, 4.5rem);
}

.programme-detail-hero h1 {
    font-size: clamp(2.4rem, 4.8vw, 4rem);
}

.programme-directory-hero .lead,
.programme-detail-hero .lead {
    max-width: 650px;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1.05rem, 1.65vw, 1.35rem);
}

/* .programme-hero-link's rules now live with .department-hero-link, in the
   Departments section, since the two are the same component. */
.programme-back-link {
    width: fit-content;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
    color: rgba(255,255,255,.76);
    font-weight: 800;
    text-decoration: none;
}

.programme-directory-visual,
.programme-detail-image {
    position: relative;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
}

.programme-directory-visual::after,
.programme-detail-image::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(29,83,39,.3), transparent 35%), linear-gradient(0deg, rgba(12,45,20,.28), transparent 45%);
    pointer-events: none;
}

.programme-directory-visual img,
.programme-detail-image img {
    width: 100%;
    height: 100%;
    min-height: clamp(560px, 70vh, 760px);
    object-fit: cover;
    transition: transform 8s ease;
}

.programme-directory-visual:hover img,
.programme-detail-image:hover img {
    transform: scale(1.045);
}

.programme-directory-visual figcaption {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    display: flex;
    min-width: 220px;
    padding: 1.5rem 1.75rem;
    color: #173f22;
    background: var(--brand-gold);
    align-items: center;
    gap: 1rem;
}

.programme-directory-visual figcaption strong {
    font-size: 2.7rem;
    line-height: 1;
}

.programme-directory-visual figcaption span {
    max-width: 100px;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.programme-pathways {
    position: relative;
    z-index: 2;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.programme-pathways .shell {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding-block: 0;
}

.programme-pathways a {
    display: flex;
    min-height: 84px;
    padding: 1.2rem clamp(1rem, 3vw, 2.25rem);
    color: #202b34;
    border-right: 1px solid var(--line);
    align-items: center;
    justify-content: space-between;
    font-weight: 800;
    text-decoration: none;
}

.programme-pathways a:first-child { border-left: 1px solid var(--line); }
.programme-pathways a strong { color: var(--muted); font-size: .88rem; }
.programme-pathways a[aria-current="page"] { box-shadow: inset 0 -5px var(--brand-gold); color: var(--accent-dark); }

.programme-directory-section,
.programme-detail-body {
    padding: clamp(4rem, 8vw, 8rem) 0;
    background: #f6f4ef;
}

.programme-directory-heading {
    display: flex;
    margin-bottom: 2.3rem;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.programme-directory-heading h2 { margin-bottom: 0; font-size: clamp(2.3rem, 4vw, 4.4rem); letter-spacing: -.055em; }
.programme-directory-heading > p { color: var(--muted); }

.programme-filter-bar {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(190px, .8fr) minmax(170px, .65fr) auto auto;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--line);
    background: #fff;
    align-items: end;
    gap: .8rem;
}

.programme-filter-bar label { display: grid; gap: .45rem; }
.programme-filter-bar label > span { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.programme-filter-bar input,
.programme-filter-bar select { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #bac3c9; border-radius: 0; background: #fff; font: inherit; }
.programme-filter-bar .button { min-height: 48px; white-space: nowrap; }
.programme-clear-filter { padding: .8rem .35rem; color: var(--accent-dark); font-weight: 800; }

.programme-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.2rem, 2.6vw, 2.5rem); }
/* Base grid/hover/media/copy/link rules live with .department-directory-card
   in the Departments section - only what's genuinely different stays here. */
.programme-directory-card { grid-template-rows: 285px 1fr; }
.programme-card-media > span { display: grid; width: 100%; height: 100%; padding: 2rem; place-items: center; color: rgba(255,255,255,.16); background: radial-gradient(circle at 75% 25%, rgba(255,211,45,.24), transparent 32%), #285b32; font-size: clamp(3rem, 7vw, 6rem); font-weight: 900; letter-spacing: -.06em; text-align: center; }
.programme-card-copy h3 { margin-bottom: .9rem; font-size: clamp(1.55rem, 2.4vw, 2.25rem); line-height: 1.04; letter-spacing: -.045em; }
.programme-card-meta { display: flex; flex-wrap: wrap; margin: .7rem 0 1.35rem; padding: 0; list-style: none; gap: .45rem; }
.programme-card-meta li { padding: .38rem .6rem; color: #34434c; background: #eef0f2; font-size: .72rem; font-weight: 750; }

.programme-hero-facts { display: flex; flex-wrap: wrap; margin-top: 1.5rem; gap: .55rem; }
.programme-hero-facts span { padding: .5rem .75rem; color: #fff; border: 1px solid rgba(255,255,255,.28); font-size: .78rem; font-weight: 800; }
.programme-section-nav { position: sticky; z-index: 20; top: var(--public-header-offset, 0); overflow-x: auto; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.programme-section-nav .shell { display: flex; min-width: max-content; padding-block: 0; align-items: center; }
.programme-section-nav span,
.programme-section-nav a { padding: 1rem 1.1rem; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.programme-section-nav span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.programme-section-nav a { color: #27333d; text-decoration: none; }
.programme-section-nav a:hover { color: var(--accent-dark); background: #f5f3ed; }

.programme-fact-strip { color: #fff; background: var(--brand-blue); }
.programme-fact-strip .shell { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 0; }
.programme-fact-strip .shell > div { min-height: 145px; padding: 2rem clamp(1rem, 2.5vw, 2.2rem); border-right: 1px solid rgba(255,255,255,.14); }
.programme-fact-strip .shell > div:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.programme-fact-strip span { display: block; margin-bottom: .65rem; color: var(--brand-gold); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.programme-fact-strip strong { display: block; font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.25; }
.programme-fact-strip a { color: #fff; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.programme-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 370px); align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.programme-detail-content { min-width: 0; }
.programme-editorial-section { scroll-margin-top: 150px; margin-bottom: 1.5rem; padding: clamp(2rem, 4vw, 4rem); border: 1px solid var(--line); background: #fff; }
.programme-editorial-section h2 { max-width: 760px; margin-bottom: 1.5rem; font-size: clamp(2rem, 3.8vw, 3.6rem); letter-spacing: -.055em; }
.programme-editorial-section .prose { max-width: 820px; color: #35434c; font-size: 1.06rem; }
.programme-editorial-section.is-highlighted { border-top: 6px solid var(--brand-gold); background: #fffdf4; }
.programme-action-panel { position: sticky; top: calc(var(--public-header-offset, 0px) + 84px); padding: 2rem; color: #fff; background: var(--brand-blue); }
.programme-action-panel h2 { color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.5rem); letter-spacing: -.04em; }
.programme-action-panel p { color: rgba(255,255,255,.74); }
.programme-action-panel .button { width: 100%; margin: .5rem 0 1.2rem; text-align: center; }
.programme-panel-link { display: block; padding: .85rem 0; color: #fff; border-top: 1px solid rgba(255,255,255,.16); font-weight: 800; text-decoration: none; }
.programme-curriculum-summary { color: var(--muted); }
.programme-curriculum-years { display: grid; margin-top: 2rem; gap: .75rem; }
.programme-curriculum .curriculum-year { margin-top: 0; border: 1px solid var(--line); background: #fff; }
.programme-curriculum .curriculum-year summary { display: flex; padding: 1.2rem 1.4rem; cursor: pointer; align-items: center; justify-content: space-between; font-size: 1.2rem; font-weight: 850; }
.programme-curriculum .curriculum-year summary small { color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.curriculum-year-content { padding: 0 1.4rem 1.5rem; }
.programme-curriculum .curriculum-year h3 { margin-top: 1.4rem; font-size: 1.1rem; }

[data-programme-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .75s ease var(--programme-delay, 0ms), transform .75s cubic-bezier(.2,.75,.25,1) var(--programme-delay, 0ms); }
[data-programme-reveal].is-revealed { opacity: 1; transform: none; }
[data-programme-reveal].is-resetting { transition: none; }

@media (max-width: 1100px) {
    .programme-directory-hero-grid,
    .programme-detail-hero-grid { grid-template-columns: 1fr 1fr; }
    .programme-filter-bar { grid-template-columns: 1fr 1fr; }
    .programme-filter-search { grid-column: 1 / -1; }
    .programme-directory-intro,
    .programme-detail-copy { padding-right: 2rem; }
    .programme-detail-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 2rem; }
}

@media (max-width: 760px) {
    .programme-directory-hero-grid,
    .programme-detail-hero-grid { grid-template-columns: 1fr; min-height: 0; }
    .programme-directory-intro,
    .programme-detail-copy { padding: 4rem 0 3rem; }
    .programme-directory-hero h1,
    .programme-detail-hero h1 { font-size: clamp(2.4rem, 9vw, 3.4rem); }
    .programme-directory-visual,
    .programme-detail-image { min-height: 360px; }
    .programme-directory-visual img,
    .programme-detail-image img { min-height: 360px; }
    .programme-pathways .shell { width: 100%; grid-template-columns: 1fr; }
    .programme-pathways a { min-height: 60px; border-left: 0; }
    .programme-directory-heading { display: block; }
    .programme-filter-bar { grid-template-columns: 1fr; }
    .programme-filter-search { grid-column: auto; }
    .programme-directory-grid { grid-template-columns: 1fr; }
    .programme-directory-card { min-height: 0; grid-template-rows: 230px auto; }
    .programme-fact-strip .shell { width: 100%; grid-template-columns: 1fr 1fr; }
    .programme-fact-strip .shell > div { min-height: 115px; border-bottom: 1px solid rgba(255,255,255,.14); }
    .programme-detail-layout { grid-template-columns: 1fr; }
    .programme-action-panel { position: static; }
    .programme-editorial-section { padding: 1.5rem; }
    .programme-section-nav { top: 0; }
}

@media (prefers-reduced-motion: reduce) {
    [data-programme-reveal] { opacity: 1; transform: none; transition: none; }
    .programme-directory-visual img,
    .programme-detail-image img,
    .programme-card-media img,
    .programme-directory-card { transition: none; }
}

.publication-search > div {
    grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(130px, 1fr)) auto;
}

.publication-list {
    display: grid;
    gap: 1rem;
}

.publication-card {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
}

.publication-card h2 {
    margin-bottom: 0.6rem;
    font-size: clamp(1.3rem, 3vw, 1.7rem);
}

.publication-source {
    color: var(--accent-dark);
    font-weight: 700;
}

.publication-heading .lead a {
    color: inherit;
}

.publication-citation {
    margin: 0;
    padding: 1.25rem;
    border-left: 4px solid var(--accent);
    background: var(--surface-soft);
}

.public-contact-card {
    position: sticky;
    top: 1.5rem;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface-soft);
}

.public-contact-card h2 {
    font-size: 1.45rem;
}

.public-contact-card p {
    overflow-wrap: anywhere;
}

.hod-message {
    margin: 0;
    padding: 2rem;
    border-left: 5px solid var(--accent);
    background: var(--surface-soft);
    font-size: 1.1rem;
}

.hod-profile {
    display: grid;
    grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
    align-items: start;
    gap: clamp(1.25rem, 4vw, 2.5rem);
}

.hod-profile-image {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
    object-fit: cover;
}

.hod-profile-copy h3 {
    margin-bottom: 0.25rem;
    font-size: clamp(1.45rem, 3vw, 2rem);
}

.hod-title {
    margin-top: 0;
    color: var(--accent-dark);
    font-weight: 750;
}

/* Department detail pages */
.department-masthead {
    overflow: hidden;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 8% 12%, rgba(255, 213, 67, 0.2), transparent 19rem),
        linear-gradient(135deg, #f7f8fc 0%, #eef0fa 100%);
}

.department-masthead-grid {
    display: grid;
    min-height: 500px;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);
    align-items: center;
    gap: clamp(2.5rem, 7vw, 6rem);
    padding-block: clamp(3.5rem, 7vw, 6rem);
}

.department-masthead-copy {
    max-width: 690px;
}

.department-back-link {
    display: inline-block;
    margin-bottom: 2rem;
    color: var(--accent-dark);
    font-size: 0.86rem;
    font-weight: 800;
    text-decoration: none;
}

.department-masthead-copy .eyebrow {
    color: var(--accent);
}

.department-masthead-copy h1 {
    max-width: 760px;
    margin-bottom: 1.25rem;
    color: var(--accent-dark);
    font-size: clamp(2.5rem, 4.6vw, 4.1rem);
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.department-masthead-copy .lead {
    max-width: 62ch;
    color: #45485f;
    font-size: clamp(1.05rem, 1.7vw, 1.25rem);
}

.department-masthead-visual {
    position: relative;
}

.department-masthead-visual::before {
    position: absolute;
    top: -18px;
    right: -18px;
    width: 42%;
    height: 42%;
    border-radius: 18px;
    background: var(--brand-gold);
    content: "";
}

.department-masthead-visual img,
.department-masthead-placeholder {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 20px;
    box-shadow: var(--shadow);
    object-fit: cover;
}

.department-masthead-placeholder {
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
}

.department-masthead-placeholder span {
    font-size: clamp(3rem, 8vw, 6rem);
    font-weight: 900;
    letter-spacing: 0.08em;
}

.department-section-nav {
    position: sticky;
    z-index: 10;
    top: 0;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 24px rgba(33, 93, 43, 0.06);
}

.department-section-nav .shell {
    display: flex;
    min-height: 58px;
    align-items: center;
    gap: 1.8rem;
    overflow-x: auto;
}

.department-section-nav a {
    flex: 0 0 auto;
    padding-block: 1rem;
    color: #4c4e63;
    font-size: 0.84rem;
    font-weight: 800;
    text-decoration: none;
}

.department-section-nav a:hover,
.department-section-nav a:focus-visible {
    color: var(--accent);
}

.department-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.55fr);
    align-items: start;
    gap: clamp(3rem, 8vw, 7rem);
}

.department-reading-column {
    max-width: 760px;
}

.department-reading-column h2,
.department-section-heading h2,
.department-programmes-section h2 {
    font-size: clamp(1.9rem, 3.5vw, 2.8rem);
}

#overview,
#programmes,
#leadership,
#direction,
#contact {
    scroll-margin-top: 78px;
}

.department-prose {
    color: #3f4450;
    font-size: 1.03rem;
    line-height: 1.78;
}

.department-prose p {
    max-width: 100%;
}

.department-history {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--line);
}

.department-history h3 {
    font-size: 1.5rem;
}

.department-contact-panel {
    padding: 1.6rem;
    border: 1px solid var(--line);
    border-top: 5px solid var(--brand-gold);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(33, 93, 43, 0.08);
}

.department-contact-panel h2 {
    margin-bottom: 1.3rem;
    font-size: 1.5rem;
}

.department-contact-panel dl {
    display: grid;
    gap: 1rem;
    margin: 0 0 1.5rem;
}

.department-contact-panel dl div {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.department-contact-panel dt {
    margin-bottom: 0.2rem;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.department-contact-panel dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.department-programmes-section,
.department-direction-section {
    background: var(--surface-soft);
}

.department-programme-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.department-programme-card {
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.department-programme-card h3 {
    margin-bottom: 0.7rem;
    font-size: clamp(1.25rem, 2.3vw, 1.65rem);
}

.department-programme-card h3 a {
    color: var(--accent-dark);
    text-decoration: none;
}

.department-programme-card > p:not(.eyebrow) {
    color: var(--muted);
}

.department-section-heading {
    max-width: 760px;
    margin-bottom: 2.5rem;
}

.department-leadership-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.6fr) minmax(0, 1.4fr);
    align-items: start;
    gap: clamp(2rem, 6vw, 5rem);
}

.department-head-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
}

.department-head-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center 20%;
}

.department-head-card > div {
    display: grid;
    gap: 0.45rem;
    padding: 1.35rem;
}

.department-head-card h3,
.department-head-card p {
    margin: 0;
}

.department-head-card p {
    color: var(--muted);
}

.department-head-card a {
    color: var(--accent-dark);
    font-weight: 800;
}

.department-head-message {
    padding: clamp(1.6rem, 4vw, 3rem);
    border-left: 5px solid var(--brand-gold);
    border-radius: 0 16px 16px 0;
    background: #f8f8fc;
}

.department-head-message .department-prose {
    color: #343847;
    font-size: clamp(1.05rem, 1.7vw, 1.18rem);
}

.department-message-signature {
    margin: 2rem 0 0;
    color: var(--accent-dark);
    font-weight: 850;
}

.department-direction-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.department-direction-grid article {
    padding: clamp(1.4rem, 3vw, 2rem);
    border-top: 4px solid var(--accent);
    background: #fff;
}

.department-direction-grid h3 {
    color: var(--accent-dark);
    font-size: 1.35rem;
}

.hod-profile-copy .hod-message {
    margin: 1.5rem 0;
}

.staff-card-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.staff-card-grid .staff-card {
    flex: 1 1 240px;
}

.staff-card-grid .staff-card:only-child {
    max-width: 340px;
}

.staff-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
}

.staff-card > img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.staff-card > div {
    display: grid;
    gap: 0.5rem;
    padding: 1.35rem;
}

.staff-card h2 {
    margin: 0;
    font-size: 1.35rem;
}

.staff-profile-hero {
    padding: clamp(3rem, 8vw, 6rem) 0;
    color: #fff;
    background: var(--accent-dark);
}

.staff-profile-heading {
    display: grid;
    grid-template-columns: minmax(180px, 300px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 5rem);
}

.staff-profile-heading img {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 20px;
    object-fit: cover;
}

.hod-message footer {
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 750;
}

:focus-visible {
    outline: 3px solid rgba(47, 107, 53, 0.5);
    outline-offset: 3px;
}

.announcement-strip {
    padding: 0.65rem 0;
    color: var(--accent-dark);
    background: var(--brand-gold);
}

.announcement-strip .shell {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 2rem;
}

.announcement-strip p { margin: 0; }
.announcement-strip a { color: var(--accent-dark); font-weight: 800; }
.hero[style] { background-position: center; background-size: cover; }
.prose img, .section .shell > img { max-width: 100%; height: auto; border-radius: 18px; }

/* UI/UX Phase 2: homepage discovery */
.hero-carousel {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: var(--accent-dark);
}

.hero-carousel-slides {
    display: grid;
}

.hero-slide {
    position: relative;
    z-index: 0;
    display: grid;
    min-height: clamp(560px, 70vh, 760px);
    grid-area: 1 / 1;
    align-items: center;
    opacity: 0;
    transition: opacity 600ms ease;
}

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

.hero-slide.is-active {
    z-index: 1;
    opacity: 1;
}

.hero-slide::before,
.hero-slide::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
}

.hero-slide::before {
    background:
        radial-gradient(circle at 82% 18%, rgba(141, 199, 63, 0.2), transparent 28rem),
        linear-gradient(135deg, #204c29, var(--accent-dark));
}

.hero-slide.has-media::before {
    background: transparent;
}

.hero-slide::after {
    background: linear-gradient(90deg, rgba(14, 57, 24, 0.82) 0%, rgba(14, 57, 24, 0.58) 55%, rgba(14, 57, 24, 0.2) 100%);
}

.hero-slide.overlay-20::after { opacity: 0.35; }
.hero-slide.overlay-40::after { opacity: 0.58; }
.hero-slide.overlay-60::after { opacity: 0.78; }
.hero-slide.overlay-80::after { opacity: 0.94; }

.hero-slide-media,
.hero-slide-media img {
    position: absolute;
    z-index: -2;
    width: 100%;
    height: 100%;
    inset: 0;
}

.hero-slide-media img {
    object-fit: cover;
}

.hero-slide-inner {
    padding-block: clamp(5rem, 10vw, 8rem) 7rem;
}

.hero-slide-copy {
    width: min(780px, 72%);
}

.hero-slide-copy .eyebrow {
    color: var(--brand-gold);
}

.hero-slide-copy h1 {
    margin-bottom: 1.4rem;
    font-size: clamp(3.1rem, 7vw, 6.4rem);
}

.hero-slide-copy .lead {
    color: #f0f0ff;
    font-size: clamp(1.1rem, 2vw, 1.4rem);
}

.hero-align-centre .hero-slide-copy {
    margin-inline: auto;
    text-align: center;
}

.hero-align-centre .actions {
    justify-content: center;
}

.hero-align-right .hero-slide-copy {
    margin-left: auto;
    text-align: right;
}

.hero-align-right .actions {
    justify-content: flex-end;
}

.button-hero-secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.8);
    background: rgba(22, 72, 32, 0.24);
}

.button-hero-secondary:hover,
.button-hero-secondary:focus-visible {
    background: rgba(255, 255, 255, 0.14);
}

.hero-carousel-controls {
    position: absolute;
    z-index: 5;
    right: 0;
    bottom: 1.5rem;
    left: 0;
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.carousel-arrows {
    display: flex;
    gap: 0.4rem;
}

.carousel-arrows button,
.carousel-pause {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 6px;
    color: #fff;
    background: rgba(22, 72, 32, 0.66);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

.carousel-arrows button:hover,
.carousel-pause:hover {
    background: var(--accent);
}

.carousel-dots {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.carousel-dots button {
    width: 30px;
    height: 5px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.48);
    cursor: pointer;
}

.carousel-dots button[aria-pressed="true"] {
    background: var(--brand-gold);
}

.carousel-pause {
    display: inline-flex;
    width: auto;
    align-items: center;
    gap: 0.55rem;
    padding-inline: 0.85rem;
    font-size: 0.78rem;
}

.fast-statistics {
    color: #fff;
    background: var(--accent);
}

.statistics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.statistics-grid > div {
    display: grid;
    min-height: 132px;
    align-content: center;
    padding: 1.5rem clamp(1rem, 3vw, 2rem);
    border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.statistics-grid > div:last-child {
    border-right: 1px solid rgba(255, 255, 255, 0.22);
}

.statistics-grid strong {
    color: var(--brand-gold);
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1;
}

.statistics-grid span {
    margin-top: 0.45rem;
    font-size: 0.84rem;
    font-weight: 700;
}

.home-section-heading {
    align-items: end;
    margin-bottom: 2.5rem;
}

.home-section-heading > div {
    max-width: 780px;
}

.home-section-heading h2 {
    margin-bottom: 0;
}

.home-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.home-feature-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.home-feature-card:hover {
    border-color: #acaed3;
    box-shadow: var(--shadow);
    transform: translateY(-4px);
}

.home-feature-card > img,
.home-card-media-placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
}

.home-feature-card > img {
    object-fit: cover;
}

.home-card-media-placeholder {
    display: grid;
    place-items: center;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(255, 213, 67, 0.16), transparent 55%),
        var(--accent-dark);
}

.home-card-media-placeholder span {
    padding: 0.5rem 0.75rem;
    border-bottom: 4px solid var(--brand-gold);
    font-size: 0.85rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.home-feature-card > div {
    padding: 1.5rem;
}

.home-feature-card h3 {
    font-size: 1.4rem;
    line-height: 1.2;
}

.home-feature-card h3 a {
    text-decoration: none;
}

.home-feature-card h3 a::after {
    position: absolute;
    inset: 0;
    content: "";
}

.home-feature-card p:not(.eyebrow) {
    color: var(--muted);
}

.home-feature-card span {
    color: var(--accent-dark);
    font-weight: 800;
}

.home-pathway-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.home-pathway-grid a {
    display: grid;
    min-height: 240px;
    align-content: end;
    padding: 1.6rem;
    border: 1px solid var(--line);
    border-top: 5px solid var(--brand-green);
    border-radius: 10px;
    text-decoration: none;
}

.home-pathway-grid span {
    align-self: start;
    margin-bottom: auto;
    color: var(--accent);
    font-size: 0.75rem;
    font-weight: 850;
}

.home-pathway-grid strong {
    margin-bottom: 0.55rem;
    font-size: 1.45rem;
}

.home-pathway-grid small {
    color: var(--muted);
    font-size: 0.94rem;
}

.home-departments-section {
    color: #fff;
    background: var(--accent-dark);
}

.home-departments-section .eyebrow,
.home-departments-section .text-link {
    color: var(--brand-gold);
}

.home-department-list {
    border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.home-department-list a {
    display: grid;
    min-height: 94px;
    grid-template-columns: 42px minmax(0, 1fr) minmax(100px, 0.4fr) 30px;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.24);
    color: #fff;
    text-decoration: none;
}

.home-department-list a:hover {
    color: var(--brand-gold);
}

.home-department-list span,
.home-department-list small {
    color: #c7d6c4;
}

.home-department-list strong {
    font-size: clamp(1.15rem, 2vw, 1.5rem);
}

.home-department-list b {
    font-size: 1.35rem;
}

.home-research-section {
    background: #eef6e5;
}

.home-research-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: start;
    gap: clamp(3rem, 8vw, 7rem);
}

.home-research-links {
    display: grid;
    border-top: 1px solid #b9c9a9;
}

.home-research-links a {
    display: grid;
    min-height: 112px;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 0.8fr) 28px;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid #b9c9a9;
    text-decoration: none;
}

.home-research-links strong {
    color: var(--accent-dark);
    font-size: 1.2rem;
}

.home-research-links span {
    color: #52604c;
    font-size: 0.9rem;
}

.home-research-links b {
    color: var(--accent);
}

.home-updates-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid var(--line);
    background: var(--line);
}

.home-update-column {
    padding: clamp(1.4rem, 3vw, 2rem);
    background: #fff;
}

.home-update-column > h3 {
    margin-bottom: 1.5rem;
    color: var(--accent-dark);
    font-size: 1.35rem;
}

.home-update-column article {
    padding: 1rem 0;
    border-top: 1px solid var(--line);
}

.home-update-column h4 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.35;
}

.home-update-column h4 a {
    text-decoration: none;
}

/* UI/UX Phase 1: editorial homepage */
.home-hero-stage {
    padding: 0;
    background: #fff;
}

.home-hero-layout {
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(320px, 3fr);
    align-items: stretch;
    gap: 0;
}

.home-hero-layout > * {
    min-width: 0;
}

.home-hero-layout .hero-carousel {
    min-height: 590px;
    border-radius: 0;
}

.home-hero-layout .hero-slide,
.home-hero-layout .hero-slide-inner {
    min-height: 590px;
}

.home-hero-layout .hero-slide-inner {
    display: flex;
    align-items: center;
    padding: 4rem clamp(2rem, 4vw, 4.25rem) 6.5rem;
}

.home-hero-layout .hero-slide-copy {
    width: min(650px, 88%);
}

.home-hero-layout .hero-carousel-controls {
    right: clamp(1.5rem, 3vw, 3rem);
    left: clamp(1.5rem, 3vw, 3rem);
}

.home-hero-updates {
    min-height: 590px;
    padding: clamp(1.5rem, 2.5vw, 3rem);
    border-top: 0;
    background: #fff;
    box-shadow: none;
}

.home-hero-updates header {
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--line);
}

.home-hero-updates header .eyebrow,
.home-hero-updates header h2,
.home-hero-update-group h3,
.home-hero-update-group h4,
.home-hero-update-group p {
    margin-top: 0;
}

.home-hero-updates header .eyebrow {
    color: var(--accent);
}

.home-hero-updates header h2 {
    margin-bottom: 0;
    color: var(--accent-dark);
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    line-height: 1.08;
}

.home-hero-update-group {
    padding-top: 1.15rem;
}

.home-hero-update-group + .home-hero-update-group {
    margin-top: 1.15rem;
    border-top: 1px solid var(--line);
}

.home-hero-update-group h3 {
    margin-bottom: 0.7rem;
    color: var(--accent-dark);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-hero-update-group article + article {
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid #ececf5;
}

.home-hero-update-group article .eyebrow {
    margin-bottom: 0.25rem;
    color: var(--muted);
    font-size: 0.65rem;
}

.home-hero-update-group h4 {
    margin-bottom: 0.3rem;
    font-size: 0.95rem;
    line-height: 1.35;
}

.home-hero-update-group a {
    color: var(--accent);
    font-size: 0.78rem;
    font-weight: 800;
    text-decoration: none;
}

.home-hero-update-empty {
    color: var(--muted);
    font-size: 0.86rem;
}

.home-hero-all-news {
    display: inline-block;
    margin-top: 0.85rem;
}

.announcement-inner {
    align-items: center;
    justify-content: space-between;
}

.announcement-inner p {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.announcement-inner strong {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

.home-editorial-hero .hero-slide {
    min-height: 590px;
    transition: opacity 950ms cubic-bezier(0.4, 0, 0.2, 1);
}

.home-editorial-hero .hero-slide-inner {
    align-items: flex-end;
    padding-block: 3rem 6.25rem;
}

.home-editorial-hero .hero-slide-copy {
    width: min(640px, 78%);
    padding: clamp(1rem, 1.7vw, 1.4rem) clamp(1.1rem, 2vw, 1.6rem);
    border-left: 5px solid var(--brand-gold);
    background: rgba(17, 20, 72, 0.84);
    box-shadow: 0 18px 45px rgba(5, 8, 38, 0.22);
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity 600ms ease 240ms,
        transform 600ms cubic-bezier(0.22, 1, 0.36, 1) 240ms;
    backdrop-filter: blur(7px);
}

.home-editorial-hero .hero-slide.is-active .hero-slide-copy {
    opacity: 1;
    transform: translateY(0);
}

.home-editorial-hero .hero-slide-media img {
    transform: scale(1.02);
}

.home-editorial-hero .hero-slide.is-active .hero-slide-media img {
    animation: home-hero-zoom 12s ease-in-out infinite;
}

.home-editorial-hero .hero-slide:nth-child(even).is-active .hero-slide-media img {
    animation-name: home-hero-zoom-reverse;
}

@keyframes home-hero-zoom {
    0%, 100% { transform: scale(1.02); }
    50% { transform: scale(1.09); }
}

@keyframes home-hero-zoom-reverse {
    0%, 100% { transform: scale(1.09); }
    50% { transform: scale(1.02); }
}

.home-editorial-hero .hero-slide-copy .eyebrow {
    margin-bottom: 0.55rem;
    font-size: 0.7rem;
    letter-spacing: 0.13em;
}

.home-editorial-hero .hero-slide-copy .hero-slide-title {
    display: -webkit-box;
    max-width: 34ch;
    margin: 0;
    overflow: hidden;
    font-size: clamp(1.7rem, 2.4vw, 2.5rem);
    font-weight: 680;
    line-height: 1.12;
    letter-spacing: -0.025em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.home-editorial-hero .hero-slide-copy .lead {
    display: -webkit-box;
    max-width: 50ch;
    margin: 0;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(0.96rem, 1.35vw, 1.08rem);
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-editorial-hero .hero-slide-copy .actions {
    margin-top: 1rem;
}

.home-editorial-hero .hero-slide-copy .button {
    min-height: 42px;
    padding: 0.65rem 1rem;
    font-size: 0.82rem;
}

.home-quick-actions {
    position: relative;
    z-index: 3;
    padding: clamp(3.5rem, 6vw, 5.5rem) 0;
    color: var(--ink);
    background: #eef3ec;
}

.home-quick-actions-heading {
    display: grid;
    grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
    align-items: end;
    gap: 1rem 3rem;
    margin-bottom: 1.5rem;
}

.home-quick-actions-heading .eyebrow {
    grid-column: 1 / -1;
    color: var(--accent);
}

.home-quick-actions-heading h2,
.home-quick-actions-heading p {
    margin: 0;
}

.home-quick-actions-heading h2 {
    color: var(--accent-dark);
    font-size: clamp(2.15rem, 4vw, 3.8rem);
    line-height: 1.02;
}

.home-quick-actions-heading > p:last-child {
    max-width: 760px;
    color: var(--muted);
}

.home-quick-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 220px;
    gap: clamp(0.65rem, 1.2vw, 1rem);
}

.home-quick-action-grid a {
    position: relative;
    display: grid;
    min-height: 220px;
    align-content: end;
    overflow: hidden;
    padding: clamp(1.25rem, 2vw, 2rem);
    color: #fff;
    background: var(--accent-dark);
    text-decoration: none;
    isolation: isolate;
}

.home-quick-action-grid a:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.home-quick-action-grid img,
.home-quick-action-overlay {
    position: absolute;
    z-index: -2;
    width: 100%;
    height: 100%;
    inset: 0;
}

.home-quick-action-grid img {
    object-fit: cover;
    transform: scale(1.03);
    animation: quick-card-drift 14s ease-in-out infinite alternate;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 400ms ease;
}

.home-quick-action-grid a:nth-child(even) img {
    animation-delay: -7s;
    animation-direction: alternate-reverse;
}

.home-quick-action-overlay {
    z-index: -1;
    background: linear-gradient(180deg, rgba(22, 72, 32, 0.05) 15%, rgba(22, 72, 32, 0.88) 100%);
    transition: background 350ms ease;
}

.home-quick-action-grid a:hover img,
.home-quick-action-grid a:focus-visible img {
    filter: saturate(1.12);
    transform: scale(1.12);
}

.home-quick-action-grid a:hover .home-quick-action-overlay,
.home-quick-action-grid a:focus-visible .home-quick-action-overlay {
    background: linear-gradient(180deg, rgba(22, 72, 32, 0.08) 5%, rgba(33, 93, 43, 0.95) 100%);
}

.home-quick-action-number {
    position: absolute;
    top: 1.2rem;
    left: 1.25rem;
    color: var(--brand-gold);
    font-size: 0.74rem;
    font-weight: 850;
}

.home-quick-action-copy {
    display: grid;
    max-width: 34rem;
    gap: 0.45rem;
}

.home-quick-action-grid strong {
    font-size: clamp(1.05rem, 1.7vw, 1.45rem);
    line-height: 1.15;
}

.home-quick-action-grid small {
    color: #f2f2fa;
    font-size: 0.86rem;
    line-height: 1.45;
}

.home-quick-action-grid b {
    position: absolute;
    right: 1.25rem;
    bottom: 1.1rem;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 50%;
    transition: color 200ms ease, background 200ms ease, transform 200ms ease;
}

.home-quick-action-grid a:hover b,
.home-quick-action-grid a:focus-visible b {
    color: var(--accent-dark);
    background: var(--brand-gold);
    transform: translateX(4px);
}

@keyframes quick-card-drift {
    from { transform: scale(1.03) translate3d(0, 0, 0); }
    to { transform: scale(1.09) translate3d(-1.2%, -0.8%, 0); }
}

.home-quick-actions-layout {
    display: grid;
    min-height: 620px;
    grid-template-columns: minmax(420px, 0.95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(3rem, 7vw, 8rem);
}

.home-quick-visual-grid {
    display: grid;
    width: min(100%, 680px);
    min-height: 560px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(12, 1fr);
}

.home-quick-visual-grid figure {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #dfe2eb;
    box-shadow: 0 24px 54px rgba(33, 77, 41, 0.16);
}

.home-quick-visual-grid figure:nth-child(1) {
    z-index: 1;
    grid-column: 1 / 8;
    grid-row: 1 / 8;
}

.home-quick-visual-grid figure:nth-child(2) {
    z-index: 2;
    grid-column: 5 / 11;
    grid-row: 7 / 13;
}

.home-quick-visual-grid figure:nth-child(3) {
    z-index: 3;
    grid-column: 9 / 13;
    grid-row: 3 / 7;
    border: 7px solid #eef3ec;
}

.home-quick-visual-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 400ms ease;
}

.home-quick-visual-grid figure:hover img {
    filter: saturate(1.08);
    transform: scale(1.08);
}

.home-quick-actions-content {
    max-width: 780px;
}

.home-quick-actions-content .eyebrow {
    color: var(--accent);
}

.home-quick-actions-content h2 {
    max-width: 11ch;
    margin-bottom: 1.25rem;
    color: var(--accent-dark);
    font-size: clamp(3rem, 6vw, 6rem);
    line-height: 0.92;
}

.home-study-title-lead,
.home-study-title-accent {
    display: block;
}

.home-study-title-lead {
    margin-bottom: 0.15em;
    font-size: 0.48em;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.home-study-title-accent {
    position: relative;
    width: fit-content;
    color: var(--accent);
    font-size: 1.32em;
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.8;
}

.home-study-title-accent::after {
    position: absolute;
    right: -0.12em;
    bottom: -0.16em;
    left: 0.04em;
    height: 0.09em;
    background: var(--brand-gold);
    content: "";
    transform: scaleX(1);
    transform-origin: left;
    transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1) 760ms;
}

.js .home-quick-actions .home-quick-visual-grid figure,
.js .home-quick-actions .home-quick-actions-content .eyebrow,
.js .home-quick-actions .home-study-title-lead,
.js .home-quick-actions .home-study-title-accent,
.js .home-quick-actions .home-quick-actions-content .lead,
.js .home-quick-actions .home-quick-link-grid {
    opacity: 0;
}

.js .home-quick-actions .home-study-title-accent::after {
    transform: scaleX(0);
}

.js .home-quick-actions .home-quick-visual-grid figure {
    transform: translate3d(-34px, 30px, 0) scale(0.96);
    transition: opacity 1100ms ease, transform 1700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.js .home-quick-actions .home-quick-visual-grid figure:nth-child(2) {
    transform: translate3d(0, 42px, 0) scale(0.96);
    transition-delay: 260ms;
}

.js .home-quick-actions .home-quick-visual-grid figure:nth-child(3) {
    transform: translate3d(28px, -24px, 0) scale(0.94);
    transition-delay: 520ms;
}

.js .home-quick-actions .home-quick-actions-content .eyebrow,
.js .home-quick-actions .home-study-title-lead,
.js .home-quick-actions .home-study-title-accent,
.js .home-quick-actions .home-quick-actions-content .lead,
.js .home-quick-actions .home-quick-link-grid {
    transform: translate3d(0, 22px, 0);
    transition: opacity 600ms ease, transform 750ms cubic-bezier(0.22, 1, 0.36, 1);
}

.js .home-quick-actions .home-quick-actions-content .eyebrow { transition-delay: 220ms; }
.js .home-quick-actions .home-study-title-lead { transition-delay: 320ms; }
.js .home-quick-actions .home-study-title-accent {
    clip-path: inset(0 100% 0 0);
    transition: opacity 500ms ease 400ms, transform 800ms cubic-bezier(0.22, 1, 0.36, 1) 400ms, clip-path 900ms cubic-bezier(0.22, 1, 0.36, 1) 400ms;
}
.js .home-quick-actions .home-quick-actions-content .lead { transition-delay: 580ms; }
.js .home-quick-actions .home-quick-link-grid { transition-delay: 700ms; }

.js .home-quick-actions.is-revealed .home-quick-visual-grid figure,
.js .home-quick-actions.is-revealed .home-quick-actions-content .eyebrow,
.js .home-quick-actions.is-revealed .home-study-title-lead,
.js .home-quick-actions.is-revealed .home-study-title-accent,
.js .home-quick-actions.is-revealed .home-quick-actions-content .lead,
.js .home-quick-actions.is-revealed .home-quick-link-grid {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.js .home-quick-actions.is-revealed .home-study-title-accent {
    clip-path: inset(0 0 0 0);
}

.js .home-quick-actions.is-revealed .home-study-title-accent::after {
    transform: scaleX(1);
}

.js [data-study-reveal].is-resetting *,
.js [data-why-reveal].is-resetting * {
    transition: none !important;
}

.home-quick-actions-content .lead {
    max-width: 62ch;
    color: var(--muted);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
}

.home-quick-link-grid {
    display: grid;
    margin-top: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--line);
}

.home-quick-link-grid a {
    display: grid;
    min-height: 72px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 0.2rem;
    border-bottom: 1px solid var(--line);
    color: var(--accent-dark);
    text-decoration: none;
}

.home-quick-link-grid a:nth-child(odd) {
    padding-right: 1rem;
}

.home-quick-link-grid a:nth-child(even) {
    padding-left: 1rem;
}

.home-quick-link-grid span {
    color: var(--accent);
    font-size: 0.68rem;
    font-weight: 850;
}

.home-quick-link-grid strong {
    font-size: 0.92rem;
    line-height: 1.25;
}

.home-quick-link-grid b {
    transition: color 180ms ease, transform 180ms ease;
}

.home-quick-link-grid a:hover b,
.home-quick-link-grid a:focus-visible b {
    color: var(--accent);
    transform: translateX(5px);
}


.home-why-section {
    overflow: hidden;
    padding-block: clamp(2.75rem, 4vw, 4.25rem);
    background: #f8f7f2;
}

.home-why-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.45fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 4rem);
    margin-bottom: clamp(2rem, 3.5vw, 3rem);
    padding-bottom: clamp(1.25rem, 2vw, 1.75rem);
    border-bottom: 1px solid #d9d8d0;
}

.home-why-heading .eyebrow {
    color: var(--accent);
}

.home-why-heading h2,
.home-section-heading h2,
.home-research-intro h2,
.home-resources-section h2 {
    font-size: clamp(2.1rem, 4.5vw, 3.6rem);
    line-height: 1.06;
}

.home-why-heading h2 {
    max-width: 21ch;
    margin-bottom: 0;
    font-size: clamp(2.8rem, 4.6vw, 5.4rem);
    letter-spacing: -0.045em;
    line-height: 0.94;
}

.home-why-brand-message {
    max-width: 22ch;
    margin: 0;
    color: var(--accent-dark);
    font-size: clamp(1.35rem, 2.5vw, 2.2rem);
    font-weight: 780;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.home-why-story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(330px, 0.55fr);
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.5rem);
}

.home-why-visuals {
    display: grid;
    min-height: 540px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(10, minmax(0, 1fr));
    gap: 0.8rem;
}

.home-why-visuals figure {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #deded8;
    transition: opacity 900ms ease, transform 950ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 650ms ease, filter 500ms ease;
}

.home-why-visuals figure::after {
    position: absolute;
    z-index: 2;
    border: 1px solid rgba(255, 255, 255, 0.72);
    background: linear-gradient(180deg, transparent 65%, rgba(22, 72, 32, 0.22));
    content: "";
    opacity: 0;
    inset: 0.65rem;
    pointer-events: none;
    transition: opacity 450ms ease, inset 650ms cubic-bezier(0.16, 1, 0.3, 1);
}

.home-why-visuals figure:nth-child(1) {
    grid-column: 1 / 9;
    grid-row: 1 / 11;
}

.home-why-visuals figure:nth-child(2) {
    grid-column: 9 / 13;
    grid-row: 1 / 6;
}

.home-why-visuals figure:nth-child(3) {
    grid-column: 9 / 13;
    grid-row: 6 / 11;
}

.home-why-visuals img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.02);
}

.home-why-visuals figure:not([hidden]) img {
    animation: home-why-zoom 12s ease-in-out infinite;
}

.home-why-visuals figure[data-slot="2"] img {
    animation-name: home-why-zoom-reverse;
}

.home-why-visuals figure[data-slot="3"] img {
    animation-delay: -4s;
}

@keyframes home-why-zoom {
    0%, 100% { transform: scale(1.02); }
    50% { transform: scale(1.09); }
}

@keyframes home-why-zoom-reverse {
    0%, 100% { transform: scale(1.09); }
    50% { transform: scale(1.02); }
}

.home-why-visuals figure:hover img {
    filter: saturate(1.08) contrast(1.03);
    transform: scale(1.075);
}

.home-why-bento:has(.home-why-visuals figure:hover) .home-why-visuals figure:not(:hover) {
    filter: saturate(0.72);
    opacity: 0.72;
}

.home-why-bento .home-why-visuals figure:hover {
    z-index: 4;
    box-shadow: 0 24px 50px rgba(33, 77, 41, 0.22);
    transform: translate3d(0, -7px, 0) scale(1.012);
}

.home-why-visuals figure:hover::after {
    opacity: 1;
    inset: 0.9rem;
}

.home-why-history-card {
    display: flex;
    min-height: 540px;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(2rem, 4vw, 3.5rem);
    color: #fff;
    background: var(--accent-dark);
}

.home-why-history-card .eyebrow {
    color: var(--brand-gold);
}

.home-why-history-card h3 {
    max-width: 12ch;
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: clamp(2rem, 3.6vw, 3.4rem);
    line-height: 0.98;
}

.home-why-history-card > p:not(.eyebrow) {
    color: #dce9da;
}

.home-why-history-card a {
    width: fit-content;
    margin-top: 1.5rem;
    color: var(--brand-gold);
    font-weight: 850;
    text-decoration: none;
}

.home-proof-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 1px;
    background: #d9d8d0;
}

.home-proof-grid article {
    min-height: 170px;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    background: #fff;
}

.home-proof-grid article:first-child {
    grid-column: auto;
}

.home-proof-grid strong {
    display: block;
    margin-bottom: 1.4rem;
    color: var(--accent);
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1;
}

.home-proof-grid h3,
.home-proof-grid p {
    margin-bottom: 0.25rem;
}

.home-proof-grid h3 {
    font-size: 1.05rem;
}

.home-proof-grid p {
    color: var(--muted);
    font-size: 0.85rem;
}

.js .home-why-section .home-why-heading > *,
.js .home-why-section .home-why-visuals figure,
.js .home-why-section .home-why-history-card,
.js .home-why-section .home-proof-grid article {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition: opacity 800ms ease, transform 1200ms cubic-bezier(0.16, 1, 0.3, 1);
}

.js .home-why-section .home-why-heading > :nth-child(2) { transition-delay: 140ms; }
.js .home-why-section .home-why-visuals figure:nth-child(1) {
    clip-path: inset(0 100% 0 0);
    transition: opacity 900ms ease 220ms, transform 1450ms cubic-bezier(0.16, 1, 0.3, 1) 220ms, clip-path 1500ms cubic-bezier(0.16, 1, 0.3, 1) 220ms;
}
.js .home-why-section .home-why-visuals figure:nth-child(2) {
    clip-path: inset(100% 0 0 0);
    transition: opacity 850ms ease 360ms, transform 1350ms cubic-bezier(0.16, 1, 0.3, 1) 360ms, clip-path 1350ms cubic-bezier(0.16, 1, 0.3, 1) 360ms;
}
.js .home-why-section .home-why-visuals figure:nth-child(3) {
    clip-path: inset(0 0 100% 0);
    transition: opacity 850ms ease 500ms, transform 1350ms cubic-bezier(0.16, 1, 0.3, 1) 500ms, clip-path 1350ms cubic-bezier(0.16, 1, 0.3, 1) 500ms;
}
.js .home-why-section .home-why-history-card { transition-delay: 580ms; }
.js .home-why-section .home-proof-grid article:nth-child(1) { transition-delay: 680ms; }
.js .home-why-section .home-proof-grid article:nth-child(2) { transition-delay: 760ms; }
.js .home-why-section .home-proof-grid article:nth-child(3) { transition-delay: 840ms; }

.js .home-why-section.is-revealed .home-why-heading > *,
.js .home-why-section.is-revealed .home-why-visuals figure,
.js .home-why-section.is-revealed .home-why-history-card,
.js .home-why-section.is-revealed .home-proof-grid article {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.js .home-why-section.is-revealed .home-why-visuals figure {
    clip-path: inset(0 0 0 0);
}

.js .home-why-section.is-revealed .home-why-visuals figure:hover {
    transition-delay: 0s !important;
    transform: translate3d(0, -7px, 0) scale(1.012);
}

.home-why-audience-line {
    max-width: 27ch;
    margin: 0;
    padding: clamp(1.25rem, 2vw, 1.8rem);
    border-left: 6px solid var(--brand-gold);
    color: var(--accent-dark);
    background: #fff;
    font-size: clamp(1rem, 1.45vw, 1.25rem);
    font-weight: 760;
    box-shadow: 0 14px 32px rgba(33, 77, 41, 0.07);
}

.home-why-bento {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(6, 108px);
    gap: clamp(0.65rem, 1vw, 0.9rem);
}

.home-why-brand-card {
    position: relative;
    display: flex;
    overflow: hidden;
    grid-column: 1 / 5;
    grid-row: 1 / 4;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(1.5rem, 2.6vw, 2.5rem);
    border-top: 7px solid var(--brand-gold);
    background: #fff;
}

.home-why-brand-mark {
    position: absolute;
    top: -0.15em;
    right: -0.05em;
    color: transparent;
    font-size: clamp(5rem, 9vw, 9rem);
    font-weight: 900;
    letter-spacing: -0.09em;
    line-height: 1;
    opacity: 0.1;
    -webkit-text-stroke: 2px var(--accent);
    transition: opacity 650ms ease, transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.home-why-brand-card .eyebrow {
    color: var(--accent);
}

.home-why-brand-message {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--ink);
    font-size: clamp(1.55rem, 2.8vw, 2.55rem);
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 0.98;
}

.home-why-brand-message span {
    display: block;
}

.home-why-brand-message span:nth-child(2) {
    color: var(--accent);
}

.home-why-brand-message span:nth-child(3) {
    color: #567d22;
}

.home-why-audience-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    margin-top: 1.4rem;
}

.home-why-audience-links a {
    color: var(--accent-dark);
    font-size: 0.8rem;
    font-weight: 850;
    text-decoration: none;
    transition: color 220ms ease, transform 220ms ease;
}

.home-why-audience-links a:hover,
.home-why-audience-links a:focus-visible {
    color: var(--accent);
    transform: translateX(4px);
}

.home-why-brand-card:hover .home-why-brand-mark {
    opacity: 0.18;
    transform: translate3d(-12px, 8px, 0) rotate(-2deg);
}

.home-why-bento .home-why-visuals {
    display: contents;
    min-height: 0;
}

.home-why-bento .home-why-visuals figure {
    position: relative;
    min-height: 0;
}

.home-why-bento .home-why-visuals figure[data-slot="1"] {
    grid-column: 5 / 10;
    grid-row: 1 / 5;
}

.home-why-bento .home-why-visuals figure[data-slot="2"] {
    grid-column: 10 / 13;
    grid-row: 1 / 3;
}

.home-why-bento .home-why-visuals figure[data-slot="3"] {
    grid-column: 10 / 13;
    grid-row: 3 / 5;
}

.home-why-visuals.is-switching figure:not([hidden]) {
    opacity: 0 !important;
    transform: scale(0.975) !important;
}

.home-why-bento .home-why-history-card {
    min-height: 0;
    grid-column: 1 / 5;
    grid-row: 4 / 7;
    padding: clamp(1.5rem, 2.6vw, 2.5rem);
    transition: background 500ms ease, transform 650ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 500ms ease;
}

.home-why-bento .home-why-history-card:hover {
    background: #292d83;
    box-shadow: 0 22px 46px rgba(33, 77, 41, 0.2);
    transform: translateY(-5px);
}

.home-why-bento .home-why-history-card h3 {
    font-size: clamp(1.8rem, 3vw, 2.8rem);
}

.home-why-bento .home-why-history-card > p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
}

.home-why-bento .home-proof-grid {
    grid-column: 5 / 13;
    grid-row: 5 / 7;
    margin-top: 0;
}

.home-why-bento .home-proof-grid article {
    position: relative;
    overflow: hidden;
    min-height: 0;
    padding: clamp(1rem, 2vw, 1.6rem);
    transition: background 350ms ease, transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

.home-why-bento .home-proof-grid article::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 5px;
    background: var(--brand-gold);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.home-why-bento .home-proof-grid article:hover {
    background: #f7f7fc;
    transform: translateY(-4px);
}

.home-why-bento .home-proof-grid article:hover::before {
    transform: scaleX(1);
}

.home-why-bento .home-proof-grid strong {
    margin-bottom: 0.55rem;
    font-size: clamp(2.2rem, 4vw, 3.5rem);
}

.js .home-why-section .home-why-brand-card {
    opacity: 0;
    transform: translate3d(-28px, 24px, 0);
    transition: opacity 850ms ease 180ms, transform 1350ms cubic-bezier(0.16, 1, 0.3, 1) 180ms;
}

.js .home-why-section.is-revealed .home-why-brand-card {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.home-study-pathways {
    background: #f0f4ee;
}

.home-study-pathway-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.home-study-pathway-grid > a {
    position: relative;
    display: grid;
    min-height: 350px;
    align-content: end;
    overflow: hidden;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 14px;
    color: #fff;
    background: var(--accent-dark);
    text-decoration: none;
}

.home-study-pathway-grid > a:last-child {
    color: var(--accent-dark);
    background: #dcebc9;
}

.home-study-pathway-grid > a::before {
    position: absolute;
    width: 260px;
    height: 260px;
    right: -80px;
    top: -100px;
    border: 54px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    content: "";
}

.home-study-pathway-grid .eyebrow {
    color: var(--brand-gold);
}

.home-study-pathway-grid > a:last-child .eyebrow {
    color: #385820;
}

.home-pathway-number {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    font-size: clamp(3.5rem, 8vw, 6rem);
    font-weight: 850;
    line-height: 1;
    opacity: 0.22;
}

.home-study-pathway-grid h3 {
    max-width: 14ch;
    font-size: clamp(1.7rem, 3vw, 2.5rem);
}

.home-study-pathway-grid p:not(.eyebrow) {
    max-width: 52ch;
    color: #d7e5d4;
}

.home-study-pathway-grid > a:last-child p:not(.eyebrow) {
    color: #3c4935;
}

.home-study-pathway-grid b {
    margin-top: 1rem;
}

.home-departments-showcase {
    color: var(--text);
    background: #f6f6f3;
}

.home-departments-showcase .eyebrow {
    color: var(--accent);
}

.home-departments-showcase .text-link {
    color: var(--accent-dark);
}

.home-departments-showcase .lead {
    color: var(--muted);
}

.home-department-showcase-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.home-department-showcase-grid > a {
    position: relative;
    display: grid;
    min-height: 360px;
    grid-column: span 2;
    align-items: end;
    overflow: hidden;
    border-radius: 10px;
    color: #fff;
    background: #202461;
    text-decoration: none;
}

.home-department-showcase-grid > a:nth-child(4),
.home-department-showcase-grid > a:nth-child(5) {
    grid-column: span 3;
}

.home-department-showcase-grid img,
.home-department-placeholder {
    position: absolute;
    width: 100%;
    height: 100%;
    inset: 0;
    object-fit: cover;
    transition: transform 350ms ease;
}

.home-department-placeholder {
    display: grid;
    place-items: center;
    color: rgba(47, 107, 53, 0.32);
    background: linear-gradient(145deg, #e8e9f5, #cfd2e8);
    font-size: 3rem;
    font-weight: 850;
}

.home-department-showcase-grid > a:hover img {
    transform: scale(1.035);
}

.home-department-showcase-grid > a > div:last-child {
    position: relative;
    z-index: 1;
    padding: 4rem 1.5rem 1.5rem;
    background: linear-gradient(transparent, rgba(11, 54, 22, 0.94));
}

.home-department-showcase-grid h3 {
    margin-bottom: 1rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.home-department-showcase-grid span {
    color: var(--brand-gold);
    font-weight: 800;
}

.home-research-story {
    background: #eef6e5;
}

.home-research-story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: center;
    gap: clamp(3rem, 8vw, 7rem);
}

.home-research-feature {
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(24, 43, 13, 0.14);
}

.home-research-feature > img,
.home-research-visual {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.home-research-visual {
    display: grid;
    place-items: center;
    color: rgba(255, 255, 255, 0.55);
    background: linear-gradient(135deg, #2d531c, #8dc73f);
    font-size: clamp(3rem, 8vw, 7rem);
    font-weight: 850;
}

.home-research-feature > div:not(.home-research-visual) {
    padding: 1.5rem;
}

.home-research-feature h3 {
    font-size: clamp(1.45rem, 2.6vw, 2.1rem);
}

.home-research-feature h3 a {
    text-decoration: none;
}

.home-research-links {
    margin-top: 2rem;
}

.home-information-hub {
    background: #fff;
}

.home-information-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 1rem;
}

.home-information-grid > div {
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-top: 5px solid var(--accent);
    border-radius: 10px;
}

.home-information-grid > div:nth-child(2) {
    border-top-color: var(--brand-gold);
    background: #fffdf5;
}

.home-information-grid > div:nth-child(3) {
    border-top-color: var(--brand-green);
}

.home-information-grid > div > h3 {
    margin-bottom: 1.5rem;
    color: var(--accent-dark);
}

.home-information-grid article {
    padding: 1rem 0;
    border-top: 1px solid var(--line);
}

.home-information-grid h4 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.35;
}

.home-information-grid h4 a {
    text-decoration: none;
}

.home-news-panel article {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 1rem;
}

.home-news-panel img {
    width: 92px;
    aspect-ratio: 1;
    border-radius: 7px;
    object-fit: cover;
}

.home-events-panel article {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 1rem;
}

.home-events-panel time {
    display: grid;
    align-content: center;
    min-height: 58px;
    border: 1px solid var(--line);
    color: var(--accent-dark);
    text-align: center;
}

.home-events-panel time strong {
    font-size: 1.35rem;
    line-height: 1;
}

.home-events-panel time span {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.home-resources-section {
    color: var(--text);
    background: #edf3eb;
}

.home-resources-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
    gap: clamp(3rem, 8vw, 7rem);
}

.home-resources-section .eyebrow {
    color: var(--accent);
}

.home-resources-section .lead {
    color: var(--muted);
}

.home-resource-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    background: transparent;
}

.home-resource-links a {
    display: grid;
    min-height: 150px;
    align-content: center;
    padding: 1.4rem;
    border: 1px solid #d5d7e3;
    border-top: 4px solid var(--accent);
    border-radius: 9px;
    color: var(--accent-dark);
    background: #fff;
    text-decoration: none;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home-resource-links a:hover,
.home-resource-links a:focus-visible {
    border-color: #aeb1cd;
    box-shadow: 0 14px 30px rgba(27, 29, 88, 0.1);
    transform: translateY(-2px);
}

.home-resource-links strong {
    margin-bottom: 0.4rem;
    font-size: 1.05rem;
}

.home-resource-links span {
    color: var(--muted);
    font-size: 0.86rem;
}

.home-admissions-cta {
    padding: clamp(4rem, 8vw, 7rem) 0;
    color: var(--text);
    background:
        radial-gradient(circle at 85% 20%, rgba(141, 199, 63, 0.22), transparent 24rem),
        #faf8ee;
}

.home-admissions-cta .shell {
    max-width: 980px;
    text-align: center;
}

.home-admissions-cta .eyebrow {
    color: var(--accent);
}

.home-admissions-cta h2 {
    margin-inline: auto;
    font-size: clamp(2.3rem, 5vw, 4rem);
}

.home-admissions-cta .lead {
    color: var(--muted);
}

.home-admissions-cta .actions {
    justify-content: center;
}

.home-admissions-cta .text-link {
    align-self: center;
    color: var(--accent-dark);
}

.home-admissions-cta .button-hero-secondary {
    color: var(--accent-dark);
    border-color: var(--accent-dark);
    background: transparent;
}

.home-admissions-cta .button-hero-secondary:hover,
.home-admissions-cta .button-hero-secondary:focus-visible {
    color: #fff;
    background: var(--accent-dark);
}

.event-preview {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 1rem;
}

.event-preview time {
    display: grid;
    align-content: center;
    color: var(--accent-dark);
    text-align: center;
}

.event-preview time strong {
    font-size: 1.7rem;
    line-height: 1;
}

.event-preview time span {
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.home-empty-note {
    color: var(--muted);
}

/* UI/UX Phase 2: people directory and profiles */
.people-heading {
    background:
        linear-gradient(90deg, rgba(47, 107, 53, 0.08), transparent 65%),
        var(--surface-soft);
}

.staff-directory-section {
    padding-top: clamp(2.5rem, 6vw, 4.5rem);
}

.staff-filter-panel {
    margin-bottom: 1.25rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-top: 5px solid var(--brand-gold);
    border-radius: 12px;
    background: var(--surface-soft);
}

.staff-filter-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
}

.staff-filter-heading h2 {
    margin-bottom: 0;
    font-size: clamp(1.5rem, 3vw, 2.1rem);
}

.filter-clear {
    color: var(--accent-dark);
    font-weight: 800;
}

.staff-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(160px, 1fr)) auto;
    align-items: end;
    gap: 0.75rem;
}

.filter-field {
    min-width: 0;
}

.filter-field label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.78rem;
    font-weight: 800;
}

.filter-field input,
.filter-field select {
    width: 100%;
    min-height: 48px;
    padding: 0.7rem 0.8rem;
    border: 1px solid #b8c5cb;
    border-radius: 7px;
    color: var(--ink);
    background: #fff;
    font: inherit;
}

.filter-field input:focus,
.filter-field select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(47, 107, 53, 0.14);
    outline: 0;
}

.active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    color: var(--muted);
    font-size: 0.83rem;
}

.filter-chip {
    padding: 0.35rem 0.65rem;
    border: 1px solid #c7d6c4;
    border-radius: 999px;
    color: var(--accent-dark);
    background: #f2f2fa;
    font-weight: 750;
}

.directory-summary {
    display: flex;
    justify-content: space-between;
    margin: 1.5rem 0 1rem;
    color: var(--muted);
}

.directory-summary p {
    margin: 0;
}

.directory-summary strong {
    color: var(--ink);
}

.staff-card {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.staff-card:hover,
.staff-card:focus-within {
    border-color: #aaacd0;
    box-shadow: 0 18px 42px rgba(47, 107, 53, 0.14);
    transform: translateY(-4px);
}

.staff-card > img,
.staff-card-placeholder {
    width: 100%;
    aspect-ratio: 4 / 5;
}

.staff-card > img {
    object-fit: cover;
    object-position: center top;
}

.staff-card-placeholder,
.staff-profile-placeholder {
    display: grid;
    place-items: center;
    color: #fff;
    background:
        radial-gradient(circle at 70% 25%, rgba(255, 213, 67, 0.24), transparent 35%),
        linear-gradient(145deg, var(--accent), var(--accent-dark));
}

.staff-card-placeholder span,
.staff-profile-placeholder span {
    display: grid;
    width: 34%;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-bottom: 6px solid var(--brand-gold);
    border-radius: 12px;
    font-size: clamp(1.4rem, 4vw, 2.4rem);
    font-weight: 850;
}

.staff-card-body {
    display: flex !important;
    min-height: 280px;
    flex-direction: column;
    gap: 0.35rem !important;
}

.staff-category {
    margin-bottom: 0.35rem;
    color: var(--accent);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.staff-card h2 {
    font-size: 1.4rem;
    line-height: 1.2;
}

.staff-card-link {
    text-decoration: none;
}

.staff-card-link::after {
    position: absolute;
    inset: 0;
    content: "";
}

.staff-position {
    margin-bottom: 0;
    color: var(--ink);
    font-weight: 750;
}

.staff-department {
    color: var(--muted);
    font-size: 0.9rem;
}

.supervision-available,
.profile-availability {
    color: #416016;
    font-size: 0.82rem;
    font-weight: 800;
}

.supervision-available::before,
.profile-availability::before {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    margin-right: 0.4rem;
    border-radius: 50%;
    background: var(--brand-green);
    content: "";
}

.staff-card-action {
    margin-top: auto;
    padding-top: 1rem;
    color: var(--accent-dark);
    font-weight: 800;
}

.staff-profile-heading img,
.staff-profile-placeholder {
    aspect-ratio: 4 / 5;
    border-radius: 12px;
}

.staff-profile-placeholder {
    width: 100%;
}

.staff-profile-intro .eyebrow {
    color: var(--brand-gold);
}

.staff-profile-intro h1 {
    margin-bottom: 1rem;
}

.staff-profile-expertise li {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.1);
}

.profile-availability {
    color: #dff5c4;
}

.qualification-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.qualification-list li {
    display: grid;
    gap: 0.2rem;
    padding-left: 1rem;
    border-left: 4px solid var(--brand-green);
}

.qualification-list span {
    color: var(--muted);
}

.profile-related-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.profile-related-grid article {
    padding: 1.25rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.profile-related-grid h3 {
    line-height: 1.3;
}

.profile-related-grid h3 a {
    text-decoration: none;
}

.profile-related-grid p:last-child {
    margin-bottom: 0;
    color: var(--muted);
}

.section-heading-row {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
}

.section-heading-row > a {
    flex: 0 0 auto;
    color: var(--accent-dark);
    font-weight: 750;
}

.profile-links {
    display: grid;
    gap: 0.55rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.profile-links a {
    color: var(--accent-dark);
    font-weight: 750;
}

.back-to-directory {
    display: inline-block;
    margin-top: 1.5rem;
    color: var(--accent-dark);
    font-weight: 800;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Editorial typography: justify substantial public-facing copy while leaving
   interface labels, navigation, headings and compact metadata untouched. */
main .prose p,
main article > p:not(.eyebrow):not(.newsroom-meta):not(.event-list-venue),
main .editorial-deck,
main .department-prose,
main .public-content-section p:not(.eyebrow),
main .feature-page-content p:not(.eyebrow),
main .feature-page-prose p,
main .programme-directory-intro .lead,
main .programme-detail-copy .lead,
main .department-directory-intro .lead,
main .department-profile-copy .lead,
main .about-masthead-copy .lead,
main .engagement-landing-hero-content .lead,
main .feature-page-hero-copy .lead,
main .newsroom-intro-copy,
main .events-intro-copy,
main .programme-directory-heading > p,
main .programme-card-copy > p:not(.eyebrow),
main .department-directory-heading > p,
main .department-directory-copy > p:not(.eyebrow),
main .staff-directory-heading > p,
main .engagement-section-heading > p,
main .engagement-pathway-card > div > p:not(.eyebrow),
main .about-direction-card > p:last-child,
main .home-feature-card p:not(.eyebrow),
main .home-quick-actions-heading > p:last-child,
main .home-hero-departments > header > p:last-child,
main .home-why-history-card > p:not(.eyebrow),
main .home-study-pathway-grid p:not(.eyebrow),
main .newsroom-feature-copy > p:not(.newsroom-kicker):not(.newsroom-meta),
main .event-feature-copy > p:not(.newsroom-kicker):not(.newsroom-meta),
main .newsroom-card-copy > p:not(.newsroom-meta),
main .editorial-prose p,
main .event-archive-grid article > p:last-child,
main .home-research-feature p:not(.eyebrow) {
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

/* Card copy must use its container without clipping or awkward word splits. */
.programme-card-copy,
.programme-editorial-section,
.department-directory-copy,
.department-editorial-section,
.department-programme-grid article,
.about-editorial-card,
.engagement-pathway-card > div,
.newsroom-feature-copy,
.newsroom-card-copy,
.event-feature-copy,
.event-list-copy {
    min-width: 0;
}

main article h2,
main article h3,
main .programme-editorial-section h2,
main .department-editorial-section h2 {
    max-width: 100%;
    text-wrap: balance;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

@media (min-width: 1500px) {
    .department-editorial-section .department-prose,
    .about-editorial-card:not(.has-image) .prose {
        max-width: none;
        column-width: 31rem;
        column-gap: clamp(2.5rem, 4vw, 4.5rem);
        column-rule: 1px solid #e2e4de;
    }

    .department-editorial-section .department-prose > *,
    .about-editorial-card:not(.has-image) .prose > * {
        break-inside: avoid;
    }
}

@media (max-width: 960px) {
    .home-why-heading,
    .home-why-story-grid {
        grid-template-columns: 1fr;
    }

    .home-why-brand-message {
        max-width: 30ch;
    }

    .home-why-visuals {
        min-height: 480px;
    }

    .home-why-history-card {
        min-height: 0;
    }

    .home-why-bento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 330px 220px 270px auto;
    }

    .home-why-brand-card {
        grid-column: 1;
        grid-row: 1;
    }

    .home-why-bento .home-why-visuals figure[data-slot="1"] {
        grid-column: 2;
        grid-row: 1;
    }

    .home-why-bento .home-why-visuals figure[data-slot="2"] {
        grid-column: 1;
        grid-row: 2;
    }

    .home-why-bento .home-why-visuals figure[data-slot="3"] {
        grid-column: 2;
        grid-row: 2;
    }

    .home-why-bento .home-why-history-card {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .home-why-bento .home-proof-grid {
        grid-column: 1 / -1;
        grid-row: 4;
    }

    .home-quick-actions-layout {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .home-quick-visual-grid {
        min-height: 480px;
    }

    .home-quick-actions-content {
        max-width: 760px;
    }

    .home-quick-actions-content h2 {
        max-width: 13ch;
    }

    .home-hero-layout {
        grid-template-columns: 1fr;
    }

    .home-hero-updates {
        min-height: 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 1.5rem;
    }

    .home-hero-updates header {
        grid-column: 1 / -1;
    }

    .home-hero-update-group + .home-hero-update-group {
        margin-top: 0;
        border-top: 0;
    }

    .home-quick-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 250px;
    }

    .home-quick-action-grid a:first-child {
        min-height: 330px;
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .home-why-grid,
    .home-research-story-grid,
    .home-resources-grid {
        grid-template-columns: 1fr;
    }

    .home-proof-grid {
        max-width: 720px;
    }

    .home-department-showcase-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-department-showcase-grid > a,
    .home-department-showcase-grid > a:nth-child(4),
    .home-department-showcase-grid > a:nth-child(5) {
        grid-column: auto;
    }

    .home-department-showcase-grid > a:last-child {
        grid-column: 1 / -1;
    }

    .department-masthead-grid {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .department-masthead-copy {
        max-width: 760px;
    }

    .department-masthead-visual {
        width: min(720px, 100%);
    }

    .department-masthead-visual img,
    .department-masthead-placeholder {
        aspect-ratio: 16 / 9;
    }

    .department-overview-grid,
    .department-leadership-grid {
        grid-template-columns: 1fr;
    }

    .department-contact-panel {
        width: min(540px, 100%);
    }

    .department-head-card {
        display: grid;
        max-width: 720px;
        grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1fr);
    }

    .department-head-card img {
        height: 100%;
        aspect-ratio: auto;
    }

    .department-direction-grid {
        grid-template-columns: 1fr;
    }

    .header-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 0.8rem 0;
    }

    .navigation-toggle {
        display: inline-flex;
    }

    .primary-navigation {
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: 1fr;
        gap: 0.25rem;
        padding: 0.6rem 0 0.9rem;
        border-top: 1px solid var(--line);
    }

    .js .primary-navigation {
        display: none;
    }

    .js .primary-navigation.is-open {
        display: grid;
    }

    .nav-link,
    .nav-group > summary {
        min-height: 46px;
        justify-content: space-between;
        padding-inline: 0.8rem;
        white-space: normal;
    }

    .nav-submenu,
    .nav-submenu-wide,
    .nav-submenu-end {
        position: static;
        width: auto;
        margin: 0 0.8rem 0.6rem;
        border-top-width: 2px;
        border-radius: 5px;
        box-shadow: none;
    }

    .nav-submenu a {
        min-height: 44px;
    }

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

    .footer-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1.5rem;
    }

    .hero-slide-copy {
        width: min(800px, 85%);
    }

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

    .home-research-grid {
        grid-template-columns: 1fr;
    }

    .home-updates-grid {
        grid-template-columns: 1fr 1fr;
    }

    .home-update-column:last-child {
        grid-column: 1 / -1;
    }

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

    .filter-field-search {
        grid-column: 1 / -1;
    }

    .staff-filter-submit {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .home-why-visuals {
        min-height: 360px;
        gap: 0.45rem;
    }

    .home-why-visuals figure:nth-child(1) {
        grid-column: 1 / 13;
        grid-row: 1 / 7;
    }

    .home-why-visuals figure:nth-child(2) {
        grid-column: 1 / 7;
        grid-row: 7 / 11;
    }

    .home-why-visuals figure:nth-child(3) {
        grid-column: 7 / 13;
        grid-row: 7 / 11;
    }

    .home-why-history-card h3 {
        font-size: clamp(2rem, 11vw, 3rem);
    }

    .home-why-bento {
        grid-template-rows: auto 320px 170px auto auto;
    }

    .home-why-brand-card {
        min-height: 360px;
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .home-why-bento .home-why-visuals figure[data-slot="1"] {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .home-why-bento .home-why-visuals figure[data-slot="2"] {
        grid-column: 1;
        grid-row: 3;
    }

    .home-why-bento .home-why-visuals figure[data-slot="3"] {
        grid-column: 2;
        grid-row: 3;
    }

    .home-why-bento .home-why-history-card {
        grid-column: 1 / -1;
        grid-row: 4;
    }

    .home-why-bento .home-proof-grid {
        grid-column: 1 / -1;
        grid-row: 5;
    }

    .home-quick-visual-grid {
        min-height: 360px;
    }

    .home-quick-visual-grid figure:nth-child(1) {
        grid-column: 1 / 9;
    }

    .home-quick-visual-grid figure:nth-child(2) {
        grid-column: 4 / 12;
    }

    .home-quick-visual-grid figure:nth-child(3) {
        grid-column: 9 / 13;
    }

    .home-quick-actions-content h2 {
        font-size: clamp(2.65rem, 15vw, 4.3rem);
    }

    .home-quick-link-grid {
        grid-template-columns: 1fr;
    }

    .home-quick-link-grid a:nth-child(odd),
    .home-quick-link-grid a:nth-child(even) {
        padding-inline: 0;
    }

    .announcement-inner,
    .announcement-inner p {
        align-items: flex-start;
    }

    .announcement-inner p {
        flex-direction: column;
        gap: 0.2rem;
    }

    .home-editorial-hero .hero-slide,
    .home-editorial-hero .hero-slide-inner {
        min-height: 540px;
    }

    .home-editorial-hero .hero-slide-inner {
        padding-block: 3.5rem 6rem;
    }

    .home-editorial-hero .hero-slide-copy {
        width: min(420px, 90%);
    }

    .home-editorial-hero .hero-slide-copy .hero-slide-title {
        -webkit-line-clamp: 4;
    }

    .home-editorial-hero .hero-slide-copy .hero-slide-title {
        font-size: clamp(1.5rem, 7vw, 2.3rem);
    }

    .home-quick-actions-heading {
        grid-template-columns: 1fr;
    }

    .home-quick-actions-heading .eyebrow {
        grid-column: auto;
    }

    .home-quick-action-grid,
    .home-study-pathway-grid,
    .home-department-showcase-grid,
    .home-resource-links {
        grid-template-columns: 1fr;
    }

    .home-quick-action-grid {
        grid-auto-rows: auto;
    }

    .home-quick-action-grid a {
        min-height: 240px;
    }

    .home-quick-action-grid a:first-child {
        min-height: 300px;
        grid-column: auto;
    }

    .home-proof-grid {
        grid-template-columns: 1fr;
    }

    .home-proof-grid article:first-child {
        grid-column: auto;
    }

    .home-study-pathway-grid > a {
        min-height: 320px;
    }

    .home-department-showcase-grid > a,
    .home-department-showcase-grid > a:last-child {
        min-height: 320px;
        grid-column: auto;
    }

    .home-news-panel article {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .home-news-panel img {
        width: 72px;
    }

    .department-masthead-grid {
        padding-block: 2.5rem 3rem;
    }

    .department-back-link {
        margin-bottom: 1.4rem;
    }

    .department-masthead-copy h1 {
        font-size: clamp(2.35rem, 12vw, 3.5rem);
    }

    .department-masthead-visual::before {
        top: -10px;
        right: -10px;
    }

    .department-section-nav .shell {
        gap: 1.25rem;
    }

    .department-programme-list {
        grid-template-columns: 1fr;
    }

    .department-head-card {
        display: block;
        max-width: 420px;
    }

    .department-head-card img {
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .department-head-message {
        border-top: 5px solid var(--brand-gold);
        border-left: 0;
        border-radius: 0 0 14px 14px;
    }

    .utility-navigation {
        justify-content: flex-start;
    }

    .utility-navigation a {
        flex: 0 0 auto;
    }

    .identity small {
        max-width: 220px;
    }

    .breadcrumbs ol {
        overflow: hidden;
    }

    .hero-slide {
        min-height: 620px;
    }

    .hero-slide::after {
        background: linear-gradient(0deg, rgba(14, 57, 24, 0.94) 0%, rgba(14, 57, 24, 0.6) 72%, rgba(14, 57, 24, 0.38) 100%);
    }

    .hero-slide-inner {
        display: flex;
        min-height: 620px;
        align-items: flex-end;
        padding-block: 5rem 7.5rem;
    }

    .hero-slide-copy,
    .hero-align-centre .hero-slide-copy,
    .hero-align-right .hero-slide-copy {
        width: 100%;
        margin: 0;
        text-align: left;
    }

    .hero-align-centre .actions,
    .hero-align-right .actions {
        justify-content: flex-start;
    }

    .hero-slide-copy h1 {
        font-size: clamp(2.6rem, 13vw, 4.6rem);
    }

    .hero-carousel-controls {
        bottom: 1rem;
        justify-content: space-between;
    }

    .carousel-pause [data-carousel-pause-label] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

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

    .statistics-grid > div {
        min-height: 110px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    }

    .home-section-heading,
    .section-heading-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-card-grid,
    .home-pathway-grid,
    .home-updates-grid,
    .staff-filter-grid,
    .profile-related-grid {
        grid-template-columns: 1fr;
    }

    .home-update-column:last-child,
    .filter-field-search {
        grid-column: auto;
    }

    .home-department-list a {
        min-height: 112px;
        grid-template-columns: 32px minmax(0, 1fr) 24px;
    }

    .home-department-list small {
        display: none;
    }

    .home-research-links a {
        grid-template-columns: minmax(0, 1fr) 24px;
    }

    .home-research-links span {
        display: none;
    }

    .staff-filter-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .hero-grid,
    .feature-grid,
    .department-card-grid,
    .staff-card-grid,
    .public-record-grid,
    .hod-profile,
    .staff-profile-heading {
        grid-template-columns: 1fr;
    }

    .hod-profile-image {
        max-width: 280px;
    }

    .hero {
        padding-top: 3.5rem;
    }

    .health-list div {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.15rem;
    }

    .account-card {
        align-items: stretch;
        flex-direction: column;
    }

    .public-search > div {
        align-items: stretch;
        flex-direction: column;
    }

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

    .public-contact-card {
        position: static;
    }

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

    .footer-legal {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 440px) {
    .identity-logo {
        width: 48px;
        height: 48px;
    }

    .identity small {
        display: none;
    }

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

@media (max-width: 1100px) {
    .header-identity-row {
        min-height: 86px;
        gap: 1rem;
    }

    .identity-logo {
        width: 72px;
        height: 72px;
    }

    .identity-name {
        font-size: clamp(1rem, 2.7vw, 1.45rem);
    }

    .navigation-toggle {
        display: inline-flex;
        margin-left: auto;
    }

    .header-navigation-row {
        min-height: 0;
    }

    .primary-navigation {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.2rem;
        padding: 0.55rem 0 0.8rem;
    }

    .js .primary-navigation {
        display: none;
    }

    .js .primary-navigation.is-open {
        display: grid;
    }

    .nav-link,
    .nav-group > summary {
        min-height: 46px;
        justify-content: space-between;
        padding: 0.7rem 0.8rem;
        color: #fff;
        white-space: normal;
    }

    .nav-link:hover,
    .nav-link:focus-visible,
    .nav-link[aria-current="page"],
    .nav-group > summary:hover,
    .nav-group > summary:focus-visible,
    .nav-group[data-current="true"] > summary,
    .nav-group[open] > summary {
        color: #fff;
        background: rgba(255, 255, 255, 0.12);
    }

    .nav-submenu,
    .nav-submenu-wide,
    .nav-submenu-programmes,
    .nav-submenu-departments,
    .nav-submenu-end {
        position: static;
        width: auto;
        margin: 0 0.8rem 0.6rem;
        border-top-width: 3px;
        border-radius: 0 0 6px 6px;
        box-shadow: none;
    }

    .nav-submenu a {
        min-height: 44px;
        color: var(--ink);
    }

}

@media (max-width: 620px) {
    :root {
        --page-gutters: 2rem;
    }

    .identity-logo {
        width: 58px;
        height: 58px;
    }

    .identity {
        gap: 0.7rem;
    }

    .identity-name {
        max-width: 230px;
        font-size: 0.88rem;
    }

    .identity-acronym {
        margin-top: 0.25rem;
        font-size: 0.68rem;
    }

    .header-utility-row {
        justify-content: center;
    }

    .header-utility-row a {
        padding-inline: 0.5rem;
        font-size: 0.7rem;
    }

    .header-motto-band,
    .header-motto-band .shell {
        min-height: 30px;
    }

    .header-motto-band strong {
        font-size: 0.68rem;
    }

    .navigation-toggle > span:first-child {
        font-size: 0.8rem;
    }

    .home-hero-stage {
        padding-top: 0;
    }

    .home-hero-layout {
        width: 100%;
    }

    .home-hero-layout .hero-carousel {
        border-radius: 0;
    }

    .home-hero-layout .hero-slide-copy {
        width: 100%;
    }

    .home-hero-updates {
        grid-template-columns: 1fr;
        margin-inline: 0;
    }

    .home-hero-update-group + .home-hero-update-group {
        margin-top: 1rem;
        border-top: 1px solid var(--line);
    }
}

/* About FAST editorial system */
.about-masthead {
    position: relative;
    overflow: hidden;
    color: var(--ink);
    background: #f3f1eb;
}

.about-masthead::before {
    position: absolute;
    width: 32rem;
    height: 32rem;
    border: 1px solid rgba(47, 51, 145, 0.12);
    border-radius: 50%;
    content: "";
    top: -18rem;
    left: -12rem;
}

.about-masthead-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(400px, 1.1fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 4rem);
    padding-block: clamp(1.75rem, 3.5vw, 3rem);
}

.about-masthead-copy {
    max-width: 720px;
}

.about-masthead-copy h1 {
    max-width: 14ch;
    margin: 0.35rem 0 1rem;
    font-size: clamp(2.1rem, 4vw, 3.2rem);
}

.about-masthead-copy .lead {
    max-width: 56ch;
    color: #55586f;
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    line-height: 1.55;
}

.about-masthead-image {
    position: relative;
    height: min(420px, 44vw);
    min-height: 280px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(47, 51, 145, 0.18);
    border-radius: 12px;
    background: #deded8;
}

.about-masthead-image::after {
    position: absolute;
    background: linear-gradient(180deg, transparent 58%, rgba(22, 72, 32, 0.24));
    content: "";
    inset: 0;
    pointer-events: none;
}

.about-masthead-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.02);
    animation: about-image-breathe 14s ease-in-out infinite;
}

.about-history-gallery-section {
    background: #fff;
}

.about-history-gallery-section .eyebrow {
    display: block;
    margin-bottom: 1.5rem;
}

.about-history-gallery {
    display: grid;
    min-height: 430px;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(6, 1fr);
    gap: 0.7rem;
}

.about-history-gallery figure {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #d9d9d3;
}

.about-history-gallery figure:first-child {
    grid-column: 1 / 5;
    grid-row: 1 / 7;
}

.about-history-gallery figure:nth-child(2) {
    grid-column: 5 / 7;
    grid-row: 1 / 4;
}

.about-history-gallery figure:nth-child(3) {
    grid-column: 5 / 7;
    grid-row: 4 / 7;
}

.about-history-gallery figure:nth-child(4) {
    z-index: 2;
    width: 42%;
    height: 34%;
    grid-column: 3 / 6;
    grid-row: 4 / 7;
    align-self: end;
    justify-self: end;
    border: 8px solid #f3f1eb;
}

.about-history-gallery img,
.about-dean-profile img,
.about-editorial-photos img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about-history-gallery figure img {
    transform: scale(1.02);
    animation: about-image-breathe 14s ease-in-out infinite;
}

.about-history-gallery figure:nth-child(even) img {
    animation-name: about-image-breathe-reverse;
}

@keyframes about-image-breathe {
    0%, 100% { transform: scale(1.02); }
    50% { transform: scale(1.085); }
}

@keyframes about-image-breathe-reverse {
    0%, 100% { transform: scale(1.085); }
    50% { transform: scale(1.02); }
}

.about-page-navigation {
    border-block: 1px solid var(--line);
    background: #fff;
}

.about-page-navigation .shell {
    display: flex;
    overflow-x: auto;
    gap: 0;
    scrollbar-width: none;
}

.about-page-navigation a {
    position: relative;
    flex: 0 0 auto;
    padding: 1.1rem clamp(0.8rem, 2vw, 1.6rem);
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.about-page-navigation a::after {
    position: absolute;
    right: 0.8rem;
    bottom: -1px;
    left: 0.8rem;
    height: 4px;
    background: var(--brand-gold);
    content: "";
    transform: scaleX(0);
    transition: transform 300ms ease;
}

.about-page-navigation a:hover,
.about-page-navigation a:focus-visible,
.about-page-navigation a[aria-current="page"] {
    color: var(--accent-dark);
}

.about-page-navigation a:hover::after,
.about-page-navigation a:focus-visible::after,
.about-page-navigation a[aria-current="page"]::after {
    transform: scaleX(1);
}

.about-dean-section {
    background: #fff;
}

.about-dean-grid {
    display: grid;
    grid-template-columns: minmax(290px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: start;
}

.about-dean-profile {
    position: sticky;
    top: 2rem;
}

.about-dean-profile > img,
.about-dean-placeholder {
    width: 100%;
    aspect-ratio: 4 / 5;
}

.about-dean-placeholder {
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, var(--brand-blue), var(--brand-blue-deep));
}

.about-dean-placeholder span {
    font-size: clamp(4rem, 10vw, 8rem);
    font-weight: 900;
}

.about-dean-profile > div:last-child {
    position: relative;
    z-index: 2;
    width: calc(100% - 2rem);
    margin: -3.5rem auto 0;
    padding: 1.4rem;
    background: #fff;
    box-shadow: 0 18px 45px rgba(22, 72, 32, 0.12);
}

.about-dean-profile h2 {
    margin: 0.25rem 0 0.6rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.about-dean-profile a,
.about-dean-message a {
    color: var(--accent);
    font-weight: 800;
}

.about-dean-message {
    padding-top: clamp(1rem, 4vw, 4rem);
}

.about-dean-message > h2,
.about-dean-message .prose + h2 {
    font-size: clamp(2.2rem, 4.5vw, 4.4rem);
    line-height: 1.02;
}

.about-dean-message .prose {
    max-width: 70ch;
    color: #41445a;
    font-size: clamp(1.02rem, 1.3vw, 1.15rem);
    line-height: 1.85;
}

.about-direction-section {
    background: #f5f5f1;
}

.about-direction-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 2rem);
}

.about-direction-card {
    position: relative;
    overflow: hidden;
    min-height: clamp(390px, 40vw, 570px);
    padding: clamp(2rem, 5vw, 4.5rem);
    color: #fff;
    background: var(--brand-blue);
    transition: transform 650ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 500ms ease, background 500ms ease;
}

.about-direction-card:nth-child(2) {
    color: var(--ink);
    background: var(--brand-gold);
}

.about-direction-card::after {
    position: absolute;
    width: 18rem;
    height: 18rem;
    border: 1px solid currentColor;
    border-radius: 50%;
    content: "";
    right: -8rem;
    bottom: -9rem;
    opacity: 0.18;
    transition: transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
}

.about-direction-card:hover {
    z-index: 2;
    box-shadow: 0 28px 60px rgba(22, 72, 32, 0.2);
    transform: translateY(-10px);
}

.about-direction-card:hover::after {
    transform: scale(1.4) translate(-1rem, -1rem);
}

.about-direction-number {
    display: block;
    margin-bottom: clamp(5rem, 14vw, 11rem);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.about-direction-card h2 {
    margin: 0.5rem 0 1.25rem;
    font-size: clamp(3rem, 6vw, 6rem);
    line-height: 0.95;
    letter-spacing: -0.05em;
}

.about-direction-card .prose,
.about-direction-card > p:last-child {
    position: relative;
    z-index: 1;
    max-width: 50ch;
    color: inherit;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.75;
}

.about-content-section {
    background: #fff;
}

.about-content-stack {
    display: grid;
    gap: 1.5rem;
}

.about-editorial-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    padding: clamp(2rem, 5vw, 5rem);
    border: 1px solid var(--line);
    background: #fafaf7;
}

.about-editorial-card.has-image {
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
}

.about-editorial-photos figure {
    margin: 0;
}

/* A single photo keeps the original capped, vertically centered look. */
.about-editorial-card:not(.has-photo-stack) .about-editorial-photos img {
    min-height: 330px;
    max-height: 540px;
    display: block;
}

/*
 * Multiple photos (the section's own image plus Gallery-image sections)
 * stretch to fill the row instead, so the photo column grows with the text
 * column next to it rather than one image floating in leftover white space.
 */
.about-editorial-card.has-photo-stack {
    align-items: stretch;
}

.about-editorial-card.has-photo-stack .about-editorial-photos {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.about-editorial-card.has-photo-stack .about-editorial-photos figure {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.about-editorial-card h2 {
    margin: 0.35rem 0 1rem;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1;
}

.about-editorial-card .prose {
    max-width: 72ch;
    color: #44475a;
    line-height: 1.8;
}

.js [data-about-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 750ms ease var(--about-delay, 0ms), transform 1000ms cubic-bezier(0.16, 1, 0.3, 1) var(--about-delay, 0ms);
}

.js [data-about-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 900px) {
    .about-masthead-grid,
    .about-dean-grid,
    .about-editorial-card.has-image {
        grid-template-columns: 1fr;
    }

    .about-masthead-grid {
        padding-bottom: 2rem;
    }

    .about-editorial-card.has-photo-stack .about-editorial-photos {
        flex-direction: row;
    }

    .about-editorial-card.has-photo-stack .about-editorial-photos figure {
        min-height: 220px;
    }

    .about-history-gallery {
        min-height: 360px;
    }

    .about-dean-profile {
        position: static;
        max-width: 520px;
    }
}

@media (max-width: 680px) {
    .about-masthead-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.5rem;
        padding-block: 2rem 1rem;
    }

    .about-masthead-copy h1 {
        font-size: clamp(2.2rem, 9vw, 3rem);
    }

    .about-direction-grid {
        grid-template-columns: 1fr;
    }

    .about-direction-card {
        min-height: 380px;
    }

    .about-history-gallery {
        min-height: 340px;
    }

    .about-history-gallery figure:first-child {
        grid-column: 1 / 7;
        grid-row: 1 / 5;
    }

    .about-history-gallery figure:nth-child(2) {
        grid-column: 1 / 4;
        grid-row: 5 / 7;
    }

    .about-history-gallery figure:nth-child(3) {
        grid-column: 4 / 7;
        grid-row: 5 / 7;
    }

    .about-history-gallery figure:nth-child(4) {
        display: none;
    }
}

/* Department directory and profiles */
.department-directory-hero,
.department-profile-hero {
    overflow: hidden;
    color: #fff;
    background: var(--brand-blue);
}

.department-directory-hero-grid,
.department-profile-hero-grid {
    display: grid;
    min-height: clamp(560px, 70vh, 760px);
    grid-template-columns: minmax(0, .82fr) minmax(460px, 1.18fr);
    align-items: stretch;
}

.department-directory-intro,
.department-profile-copy {
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: clamp(4rem, 7vw, 7rem) clamp(2rem, 5vw, 5.5rem) clamp(4rem, 7vw, 7rem) 0;
}

.department-directory-hero .eyebrow,
.department-profile-hero .eyebrow,
.department-profile-hero .department-back-link {
    color: var(--brand-gold);
}

.department-directory-hero h1,
.department-profile-hero h1 {
    max-width: 850px;
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.2vw, 4.5rem);
}

.department-profile-hero h1 {
    font-size: clamp(2.4rem, 4.8vw, 4rem);
}

.department-profile-hero h1.is-long-title {
    font-size: clamp(2.2rem, 4.2vw, 3.4rem);
}

.department-profile-copy .eyebrow,
.department-profile-copy h1 {
    max-width: 100%;
    overflow-wrap: break-word;
}

.department-directory-hero .lead,
.department-profile-hero .lead {
    max-width: 650px;
    color: rgba(255,255,255,.78);
    font-size: clamp(1.05rem, 1.65vw, 1.35rem);
}

.department-hero-link,
.programme-hero-link {
    display: flex;
    width: fit-content;
    margin-top: 1.8rem;
    color: #fff;
    align-items: center;
    gap: 1rem;
    font-weight: 850;
    text-decoration: none;
}

.department-hero-link span,
.programme-hero-link span {
    display: grid;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 50%;
    place-items: center;
}

.department-directory-visual,
.department-profile-image {
    position: relative;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
}

.department-directory-visual::after,
.department-profile-image::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(29,83,39,.3), transparent 35%), linear-gradient(0deg, rgba(12,45,20,.25), transparent 45%);
    pointer-events: none;
}

.department-directory-visual img,
.department-profile-image img {
    width: 100%;
    height: 100%;
    min-height: clamp(560px, 70vh, 760px);
    object-fit: cover;
    transition: transform 8s ease;
}

.department-directory-visual:hover img,
.department-profile-image:hover img {
    transform: scale(1.045);
}

.department-directory-visual figcaption {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    display: flex;
    min-width: 220px;
    padding: 1.5rem 1.75rem;
    color: #173f22;
    background: var(--brand-gold);
    align-items: center;
    gap: 1rem;
}

.department-directory-visual figcaption strong { font-size: 2.7rem; line-height: 1; }
.department-directory-visual figcaption span { max-width: 110px; font-size: .75rem; font-weight: 850; line-height: 1.2; text-transform: uppercase; }

.department-directory-section,
.department-profile-body {
    padding: clamp(4rem, 8vw, 8rem) 0;
    background: #f6f4ef;
}

.department-directory-heading,
.department-section-heading-row {
    display: flex;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.department-directory-heading h2,
.department-section-heading-row h2 {
    max-width: 820px;
    margin-bottom: 0;
    font-size: clamp(2.4rem, 4.5vw, 4.7rem);
    line-height: .95;
    letter-spacing: -.06em;
}

.department-directory-heading > p,
.department-section-heading-row > p {
    max-width: 410px;
    color: var(--muted);
}

.department-section-heading-row > a {
    color: var(--accent-dark);
    font-weight: 850;
    text-decoration: none;
}

.department-filter-bar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--line);
    background: #fff;
    align-items: end;
    gap: .8rem;
}

.department-filter-bar label { display: grid; gap: .45rem; }
.department-filter-bar label span { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.department-filter-bar input { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #bac3c9; border-radius: 0; font: inherit; }
.department-filter-bar .button { min-height: 48px; }
.department-filter-bar > a { padding: .8rem .35rem; color: var(--accent-dark); font-weight: 800; }

.department-directory-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.2rem, 2.6vw, 2.5rem);
}
.department-directory-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    max-width: 640px;
    margin-inline: auto;
    width: 100%;
}

/* Departments and Programmes share one "directory card" component - see the
   matching .programme-directory-card rules for the (few) properties that
   still differ between the two (image-row height, heading scale). */
.department-directory-card,
.programme-directory-card {
    display: grid;
    min-height: 560px;
    overflow: hidden;
    border: 1px solid var(--line);
    background: #fff;
    transition: transform .35s ease, box-shadow .35s ease;
}
.department-directory-card { grid-template-rows: 300px 1fr; }

.department-directory-card:hover,
.programme-directory-card:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(20,28,55,.12); }

.department-card-visual,
.programme-card-media { display: block; overflow: hidden; color: #fff; background: #326b3b; text-decoration: none; }

.department-card-visual img,
.programme-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.2,1); }

.department-directory-card:hover .department-card-visual img,
.programme-directory-card:hover .programme-card-media img { transform: scale(1.06); }

.department-card-visual span { display: grid; width: 100%; height: 100%; place-items: center; color: rgba(255,255,255,.16); background: radial-gradient(circle at 75% 25%, rgba(255,211,45,.24), transparent 32%), #285b32; font-size: clamp(3rem, 7vw, 6rem); font-weight: 900; letter-spacing: -.05em; }

.department-directory-copy,
.programme-card-copy { display: flex; padding: clamp(1.5rem, 3vw, 2.35rem); flex-direction: column; }

.department-directory-copy h3 { margin-bottom: .9rem; font-size: clamp(1.65rem, 2.6vw, 2.45rem); line-height: 1.02; letter-spacing: -.05em; }

.department-directory-copy h3 a,
.programme-card-copy h3 a { color: #18212a; text-decoration: none; }

.department-directory-copy > p:not(.eyebrow),
.programme-card-copy > p:not(.eyebrow) { color: var(--muted); }

.department-directory-link,
.programme-card-link,
.department-programme-link { display: flex; margin-top: auto; color: var(--accent-dark); align-items: center; justify-content: space-between; font-weight: 850; text-decoration: none; }

.department-directory-link span,
.programme-card-link span,
.department-programme-link span { color: var(--accent); font-size: 1.4rem; }

.department-back-link { width: fit-content; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); font-weight: 850; text-decoration: none; }
.department-hero-actions { display: flex; margin-top: 1.5rem; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.department-people-link { color: #fff; font-weight: 850; text-decoration: none; }

.department-section-nav {
    position: sticky;
    z-index: 20;
    top: var(--public-header-offset, 0);
    overflow-x: auto;
    border-bottom: 1px solid var(--line);
    background: rgba(255,255,255,.96);
    box-shadow: none;
    backdrop-filter: blur(12px);
}

.department-section-nav .shell { min-width: max-content; min-height: 0; padding-block: 0; gap: 0; }
.department-section-nav span,
.department-section-nav a { padding: 1rem 1.1rem; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.department-section-nav span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.department-section-nav a:hover { color: var(--accent-dark); background: #f5f3ed; }

.department-fact-strip { color: #fff; background: var(--brand-blue); }
.department-fact-strip .shell { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 0; }
.department-fact-strip .shell > div { min-height: 145px; padding: 2rem clamp(1rem, 2.5vw, 2.2rem); border-right: 1px solid rgba(255,255,255,.14); }
.department-fact-strip .shell > div:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.department-fact-strip span { display: block; margin-bottom: .65rem; color: var(--brand-gold); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.department-fact-strip strong { display: block; overflow-wrap: anywhere; font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.25; }
.department-fact-strip a { color: #fff; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.department-profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 370px); align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.department-profile-content { display: grid; gap: 1.5rem; }
.department-editorial-section { padding: clamp(2rem, 5vw, 5rem); border: 1px solid var(--line); background: #fff; }
.department-editorial-section h2 { max-width: 780px; margin-bottom: 1.5rem; font-size: clamp(2.2rem, 4.2vw, 4.2rem); line-height: .98; letter-spacing: -.055em; }
.department-history-panel { border-top: 6px solid var(--brand-gold); background: #fffdf4; }
.department-contact-panel { position: sticky; top: calc(var(--public-header-offset, 0px) + 84px); padding: 2rem; color: #fff; border: 0; border-radius: 0; background: var(--brand-blue); box-shadow: none; }
.department-contact-panel .eyebrow { color: var(--brand-gold); }
.department-contact-panel h2 { color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.5rem); }
.department-contact-panel dl div { border-color: rgba(255,255,255,.16); }
.department-contact-panel dt { color: var(--brand-gold); }
.department-contact-panel dd,
.department-contact-panel a { color: #fff; }
.department-panel-link { display: block; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.16); font-weight: 850; text-decoration: none; }

.department-programmes-showcase,
.department-direction-showcase { padding: clamp(4rem, 8vw, 8rem) 0; }
.department-programmes-showcase { color: #17212a; background: #f3f2ed; }
.department-programmes-showcase .eyebrow { color: var(--accent); }
.department-programmes-showcase h2 { color: #17212a; }
.department-programmes-showcase .department-section-heading-row > a { color: var(--accent-dark); }
.department-programme-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.8rem, 1.5vw, 1.4rem); }
.department-programme-grid article { display: flex; min-height: 350px; padding: clamp(1.6rem, 3.5vw, 3.2rem); border: 1px solid #d9ddd4; border-top: 5px solid var(--brand-gold); background: #fff; box-shadow: 0 18px 45px rgba(36,49,38,.07); flex-direction: column; }
.department-programme-grid h3 { font-size: clamp(1.6rem, 3vw, 2.8rem); line-height: 1.02; letter-spacing: -.05em; }
.department-programme-grid h3 a { color: #17212a; text-decoration: none; }
.department-programme-grid h3 a:hover { color: var(--accent); }
.department-programme-grid > article > p:not(.eyebrow) { color: #59635c; }
.department-programme-grid ul { display: flex; margin: .5rem 0 1rem; padding: 0; list-style: none; gap: .5rem; }
.department-programme-grid li { padding: .35rem .55rem; color: var(--accent-dark); background: var(--brand-green-soft); font-size: .72rem; font-weight: 850; }
/* Base flex/color/weight rules live with .department-directory-link above -
   this variant just adds the divider line above the CTA. */
.department-programme-link { padding-top: 1.2rem; border-top: 1px solid #e0e3dc; }

.department-direction-showcase { background: #f6f4ef; }
.department-direction-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.department-direction-grid article { min-height: 360px; padding: clamp(1.7rem, 3.5vw, 3.2rem); border: 1px solid var(--line); border-top: 6px solid var(--brand-gold); background: #fff; }
.department-direction-grid h3 { color: #17212a; font-size: clamp(2rem, 3vw, 3.2rem); letter-spacing: -.05em; }

[data-department-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .75s ease var(--department-delay, 0ms), transform .85s cubic-bezier(.2,.75,.25,1) var(--department-delay, 0ms); }
[data-department-reveal].is-revealed { opacity: 1; transform: none; }
[data-department-reveal].is-resetting { transition: none; }

@media (max-width: 1100px) {
    .department-directory-hero-grid,
    .department-profile-hero-grid { grid-template-columns: 1fr 1fr; }
    .department-directory-intro,
    .department-profile-copy { padding-right: 2rem; }
    .department-profile-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 2rem; }
}

@media (max-width: 760px) {
    .department-directory-hero-grid,
    .department-profile-hero-grid { grid-template-columns: 1fr; min-height: 0; }
    .department-directory-intro,
    .department-profile-copy { padding: 4rem 0 3rem; }
    .department-directory-hero h1,
    .department-profile-hero h1 { font-size: clamp(2.4rem, 9vw, 3.4rem); }
    .department-profile-hero h1.is-long-title { font-size: clamp(2.2rem, 8vw, 3rem); }
    .department-profile-copy .eyebrow { white-space: normal; line-height: 1.35; }
    .department-directory-visual,
    .department-profile-image { min-height: 360px; }
    .department-directory-visual img,
    .department-profile-image img { min-height: 360px; }
    .department-directory-heading,
    .department-section-heading-row { display: block; }
    .department-directory-heading > p,
    .department-section-heading-row > p { margin-top: 1rem; }
    .department-filter-bar { grid-template-columns: 1fr; }
    .department-directory-grid { grid-template-columns: 1fr; }
    .department-directory-card { min-height: 0; grid-template-rows: 240px auto; }
    .department-fact-strip .shell { width: 100%; grid-template-columns: 1fr 1fr; }
    .department-fact-strip .shell > div { min-height: 115px; border-bottom: 1px solid rgba(255,255,255,.14); }
    .department-profile-layout { grid-template-columns: 1fr; }
    .department-contact-panel { position: static; }
    .department-editorial-section { padding: 1.5rem; }
    .department-programme-grid,
    .department-direction-grid { grid-template-columns: 1fr; }
    .department-programme-grid article { min-height: 300px; }
    .department-section-nav { top: 0; }
}

@media (prefers-reduced-motion: reduce) {
    [data-department-reveal] { opacity: 1; transform: none; transition: none; }
    .department-directory-visual img,
    .department-profile-image img,
    .department-card-visual img,
    .department-directory-card { transition: none; }
}

.staff-directory-section {
    padding: clamp(4rem, 8vw, 8rem) 0;
    background: #f6f4ef;
}

.staff-directory-heading {
    display: flex;
    margin-bottom: clamp(2rem,4vw,3.5rem);
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.staff-directory-heading h2 {
    max-width: 830px;
    margin-bottom: 0;
    font-size: clamp(2.4rem,4.5vw,4.7rem);
    line-height: .95;
    letter-spacing: -.06em;
}

.staff-directory-heading > p { max-width: 420px; color: var(--muted); }
.staff-filter-panel { border-radius: 0; border-top-width: 1px; background: #fff; }
.staff-filter-grid input,
.staff-filter-grid select { border-radius: 0; }

.staff-directory-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(270px,340px);
    align-items: start;
    gap: clamp(2rem,5vw,5rem);
}

.staff-profile-list { min-width: 0; }
.staff-directory-row {
    display: grid;
    grid-template-columns: 150px minmax(220px,.85fr) minmax(230px,1fr);
    min-height: 190px;
    padding: 1.5rem 0;
    border-bottom: 1px solid #cfd1d4;
    align-items: center;
    gap: clamp(1.2rem,3vw,2.5rem);
}

.staff-directory-row:first-of-type { border-top: 1px solid #cfd1d4; }
.staff-row-portrait { width: 138px; aspect-ratio: 1; overflow: hidden; border: 5px solid #fff; border-radius: 50%; color: #fff; background: #326b3b; box-shadow: 0 10px 28px rgba(33,75,41,.12); text-decoration: none; }
.staff-row-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .8s ease; }
.staff-row-portrait span { display: grid; width: 100%; height: 100%; place-items: center; font-size: 2rem; font-weight: 900; }
.staff-directory-row:hover .staff-row-portrait img { transform: scale(1.06); }
.staff-row-identity h3 { margin: .25rem 0 .4rem; font-size: clamp(1.45rem,2.4vw,2rem); line-height: 1.05; }
.staff-row-identity h3 a { color: var(--accent-dark); text-decoration: none; }
.staff-row-identity p { margin-bottom: .25rem; }
.staff-row-contact { display: grid; align-self: stretch; padding: .6rem 0 .2rem; align-content: center; gap: .6rem; }
.staff-row-contact > a:not(.staff-row-profile-link) { color: #394750; overflow-wrap: anywhere; text-decoration: none; }
.staff-row-contact > a span { display: block; color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.staff-row-contact ul { display: flex; margin: .15rem 0; padding: 0; flex-wrap: wrap; list-style: none; gap: .35rem; }
.staff-row-contact li { padding: .28rem .5rem; color: #344918; background: #e8efdd; font-size: .68rem; font-weight: 750; }
.staff-row-profile-link { margin-top: auto; color: var(--accent-dark); font-weight: 850; text-decoration: none; }

.staff-department-directory {
    position: sticky;
    top: calc(var(--public-header-offset,0px) + 30px);
    padding: clamp(1.8rem,3vw,2.5rem);
    color: #fff;
    background: var(--brand-blue);
}

.staff-department-directory .eyebrow { color: var(--brand-gold); }
.staff-department-directory h2 { color: #fff; font-size: clamp(2rem,3vw,3rem); }
.staff-department-directory nav { display: grid; }
.staff-department-directory a { display: flex; padding: .9rem 0; color: #fff; border-bottom: 1px solid rgba(255,255,255,.17); justify-content: space-between; gap: 1rem; text-decoration: none; }
.staff-department-directory a strong { display: grid; width: 30px; height: 30px; flex: 0 0 auto; color: #1d2266; border-radius: 50%; background: var(--brand-gold); place-items: center; font-size: .75rem; }

[data-staff-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .75s ease var(--staff-delay,0ms), transform .85s cubic-bezier(.2,.75,.25,1) var(--staff-delay,0ms); }
[data-staff-reveal].is-revealed { opacity: 1; transform: none; }
[data-staff-reveal].is-resetting { transition: none; }

@media (max-width: 1100px) {
    .staff-directory-layout { grid-template-columns: minmax(0,1fr) 280px; gap: 2rem; }
    .staff-directory-row { grid-template-columns: 120px minmax(0,1fr); }
    .staff-row-portrait { width: 112px; }
    .staff-row-contact { grid-column: 2; }
}

@media (max-width: 760px) {
    .staff-directory-heading { display: block; }
    .staff-directory-heading > p { margin-top: 1rem; }
    .staff-filter-grid { grid-template-columns: 1fr; }
    .staff-directory-layout { grid-template-columns: 1fr; }
    .staff-department-directory { position: static; grid-row: 1; }
    .staff-directory-row { grid-template-columns: 92px minmax(0,1fr); align-items: start; padding: 1.4rem 0; }
    .staff-row-portrait { width: 86px; }
    .staff-row-contact { grid-column: 1 / -1; padding-left: 108px; }
}

@media (max-width: 470px) {
    .staff-directory-row { grid-template-columns: 76px minmax(0,1fr); gap: .9rem; }
    .staff-row-portrait { width: 72px; }
    .staff-row-contact { padding-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
    [data-staff-reveal] { opacity: 1; transform: none; transition: none; }
    .staff-row-portrait img { transition: none; }
}

/* MUST-inspired compact staff profile: portrait/contact rail with accessible tabs. */
.staff-profile-directory {
    padding: clamp(2.25rem, 5vw, 5rem) 0 clamp(3.5rem, 7vw, 7rem);
    color: #243129;
    background: #fff;
}

.staff-profile-directory-grid {
    display: grid;
    grid-template-columns: minmax(220px, 285px) minmax(0, 1fr);
    align-items: start;
    gap: clamp(2rem, 5vw, 5rem);
}

.staff-profile-sidebar {
    position: sticky;
    top: calc(var(--public-header-offset, 0px) + 24px);
    min-width: 0;
}

.staff-profile-directory .staff-profile-back {
    display: inline-block;
    margin-bottom: 1.35rem;
    color: var(--brand-green-deep);
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
}

.staff-profile-sidebar-portrait {
    display: grid;
    width: min(100%, 205px);
    aspect-ratio: 1;
    margin: 0 auto;
    overflow: hidden;
    color: #fff;
    border: 5px solid #fff;
    border-radius: 50%;
    background: var(--brand-blue);
    box-shadow: 0 0 0 1px #cfd6ce, 0 14px 32px rgba(27, 57, 34, .12);
    place-items: center;
}

.staff-profile-sidebar-portrait img { width: 100%; height: 100%; object-fit: cover; }
.staff-profile-sidebar-portrait span { font-size: 3.5rem; font-weight: 900; }
.staff-profile-sidebar-heading { margin: 1.2rem 0 1.35rem; text-align: center; }
.staff-profile-sidebar-heading h1 { margin: 0; color: var(--brand-green-deep); font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.12; letter-spacing: -.025em; overflow-wrap: anywhere; }
.staff-profile-sidebar-heading p { margin: .35rem 0 0; color: #555f58; }
.staff-profile-sidebar-heading > span { display: inline-block; margin-top: .7rem; padding: .38rem .65rem; color: #235c31; border-radius: 999px; background: #edf5e8; font-size: .72rem; font-weight: 800; }

.staff-profile-contact-card { padding: 1.25rem; border: 1px solid #d5dbd4; background: #fff; }
.staff-profile-contact-card dl { display: grid; margin: 0; gap: 1rem; }
.staff-profile-contact-card dl > div { min-width: 0; padding-bottom: 1rem; border-bottom: 1px solid #e4e8e3; }
.staff-profile-contact-card dt { margin-bottom: .28rem; color: #263d2b; font-size: .74rem; font-weight: 900; }
.staff-profile-contact-card dd { margin: 0; color: #505b53; font-size: .86rem; line-height: 1.55; overflow-wrap: anywhere; }
.staff-profile-contact-card a { color: #245f31; }
.staff-profile-platforms { display: grid; margin-top: 1rem; gap: .45rem; }
.staff-profile-platforms strong { color: #263d2b; font-size: .74rem; }
.staff-profile-platforms a { display: flex; font-size: .85rem; justify-content: space-between; text-decoration: none; }

.staff-profile-tabbed { min-width: 0; padding-top: 3.15rem; }
.staff-profile-tab-list { display: flex; overflow-x: auto; border-bottom: 1px solid #cfd6ce; scrollbar-width: thin; }
.staff-profile-tab-list button { flex: 0 0 auto; padding: .95rem 1.1rem; color: #242879; border: 0; border-bottom: 3px solid transparent; background: transparent; font: inherit; font-size: .88rem; font-weight: 800; cursor: pointer; }
.staff-profile-tab-list button:hover { color: var(--brand-green-deep); background: #f5f6f2; }
.staff-profile-tab-list button[aria-selected="true"] { color: var(--brand-green-deep); border-bottom-color: var(--brand-gold); background: #fff; }
.staff-profile-tab-list button:focus-visible { outline: 3px solid rgba(37, 102, 51, .25); outline-offset: -3px; }

.staff-profile-tab-panels { min-height: 430px; border: 1px solid #cfd6ce; border-top: 0; background: #fff; }
.staff-profile-tab-panels > section { padding: clamp(1.5rem, 3.5vw, 3rem); }
.staff-profile-tab-panels > section[hidden] { display: none; }
.staff-profile-tab-panels h2 { margin: .45rem 0 1.2rem; font-size: clamp(1.65rem, 3vw, 2.4rem); line-height: 1.05; }
.staff-profile-tab-panels h3 { margin: 0 0 .75rem; font-size: 1.15rem; }
.staff-profile-prose { max-width: 850px; color: #4a554e; font-size: .98rem; line-height: 1.75; }
.staff-profile-prose p { text-align: justify; text-justify: inter-word; hyphens: auto; }
.staff-profile-panel-section { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #e1e5e0; }
.staff-profile-expertise-list { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: .55rem; list-style: none; }
.staff-profile-expertise-list li { padding: .5rem .7rem; color: #245830; border: 1px solid #cfdbcf; background: #f5f8f2; font-size: .82rem; font-weight: 750; }
.staff-profile-qualification-list { display: grid; margin: 0; padding: 0; gap: 0; list-style: none; }
.staff-profile-qualification-list li { display: grid; padding: 1.1rem 0; border-bottom: 1px solid #e0e5df; gap: .3rem; }
.staff-profile-qualification-list strong { color: #26342a; }
.staff-profile-qualification-list span { color: #616b64; font-size: .9rem; }
.staff-profile-output-list { display: grid; gap: 0; }
.staff-profile-output-list article { padding: 1.25rem 0; border-bottom: 1px solid #e0e5df; }
.staff-profile-output-list article > p { margin: 0 0 .35rem; color: #397047; font-size: .7rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.staff-profile-output-list h3 { margin: 0 0 .35rem; font-size: 1.08rem; line-height: 1.35; }
.staff-profile-output-list h3 a { color: #26342a; text-decoration: none; }
.staff-profile-output-list h3 a:hover { color: var(--brand-green-deep); text-decoration: underline; }
.staff-profile-output-list span { color: #68716b; font-size: .88rem; }
.staff-profile-availability { display: inline-block; padding: .6rem .75rem; color: #5b625d; background: #f1f2ef; font-size: .85rem; font-weight: 800; }
.staff-profile-availability.is-available { color: #1f5d2d; background: #eaf4e6; }
.staff-profile-related-links { display: grid; margin: 0; padding: 0; gap: .75rem; list-style: none; }
.staff-profile-related-links li { display: grid; padding-bottom: .75rem; border-bottom: 1px solid #e2e6e1; gap: .2rem; }
.staff-profile-related-links a { color: #245f31; font-weight: 800; }
.staff-profile-related-links span { color: #69716c; font-size: .84rem; }

@media (max-width: 820px) {
    .staff-profile-directory-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .staff-profile-sidebar { position: static; }
    .staff-profile-directory .staff-profile-back { margin-bottom: 1rem; }
    .staff-profile-sidebar-portrait { width: 175px; }
    .staff-profile-contact-card { max-width: 560px; margin-inline: auto; }
    .staff-profile-tabbed { padding-top: 0; }
}

@media (max-width: 520px) {
    .staff-profile-directory { padding-top: 1.5rem; }
    .staff-profile-tab-list button { padding: .8rem .85rem; font-size: .8rem; }
    .staff-profile-tab-panels { min-height: 0; }
    .staff-profile-tab-panels > section { padding: 1.25rem; }
}

/* Dean's Office feature pages: a shared, media-led system for engagement and student life. */
.engagement-landing-hero {
    position: relative;
    min-height: clamp(600px, 76vh, 820px);
    overflow: hidden;
    color: #fff;
    background: var(--brand-blue);
}

.engagement-landing-hero > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: feature-image-breathe 17s ease-in-out infinite alternate;
}

.engagement-landing-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(29,34,102,.94) 0%, rgba(37,43,115,.82) 38%, rgba(29,34,90,.25) 72%, rgba(15,17,50,.12) 100%), linear-gradient(0deg, rgba(15,17,45,.5), transparent 52%);
}

.engagement-landing-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: inherit;
    padding-block: clamp(5rem, 9vw, 9rem);
    flex-direction: column;
    justify-content: center;
}

.engagement-landing-hero-content .eyebrow { color: var(--brand-gold); }
.engagement-landing-hero-content h1 { max-width: 920px; margin: .8rem 0 1.4rem; color: #fff; font-size: clamp(2.6rem, 5.2vw, 4.5rem); }
.engagement-landing-hero-content .lead { max-width: 690px; color: rgba(255,255,255,.82); font-size: clamp(1.08rem,1.7vw,1.4rem); }
.engagement-landing-hero-content > a { display: inline-flex; width: fit-content; margin-top: 2rem; color: #fff; align-items: center; gap: 1rem; font-weight: 850; text-decoration: none; }
.engagement-landing-hero-content > a span { display: grid; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; place-items: center; transition: color .3s ease, background .3s ease; }
.engagement-landing-hero-content > a:hover span { color: #18311d; background: var(--brand-gold); }
.engagement-hero-marker { position: absolute; z-index: 3; right: 0; bottom: 0; display: flex; min-width: 250px; padding: 1.5rem 2rem; color: #17222a; background: var(--brand-gold); align-items: center; gap: 1rem; }
.engagement-hero-marker strong { font-size: 3rem; line-height: 1; }
.engagement-hero-marker span { max-width: 90px; font-size: .72rem; font-weight: 900; line-height: 1.15; letter-spacing: .06em; text-transform: uppercase; }

.engagement-pathways,
.engagement-records,
.engagement-impact { padding: clamp(4.5rem,8vw,8rem) 0; }
.engagement-pathways { background: #f3f1eb; }
.engagement-records { background: #fff; }
.engagement-impact { background: var(--brand-blue-soft); }
.student-life-pathways { background: #f1f4eb; }
.student-life-experience { padding: clamp(4.5rem,8vw,8rem) 0; background: #f5f3ed; }
.engagement-section-heading { display: flex; margin-bottom: clamp(2.5rem,5vw,4.5rem); padding-bottom: 2rem; border-bottom: 1px solid #cdd1ca; align-items: end; justify-content: space-between; gap: 3rem; }
.engagement-section-heading > div { max-width: 900px; }
.engagement-section-heading h2 { margin: .5rem 0 0; font-size: clamp(2.8rem,5.3vw,5.8rem); line-height: .92; letter-spacing: -.06em; }
.engagement-section-heading > p { max-width: 460px; color: var(--muted); }

.engagement-pathway-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.25rem,3vw,2.5rem); }
.engagement-pathway-card { display: grid; min-height: 540px; overflow: hidden; border: 1px solid #d0d2cb; background: #fff; grid-template-rows: minmax(260px,1.05fr) minmax(0,.95fr); transition: box-shadow .4s ease, transform .4s ease; }
.engagement-pathway-card:hover { box-shadow: 0 26px 60px rgba(34,55,36,.14); transform: translateY(-7px); }
.engagement-pathway-image { display: block; overflow: hidden; color: rgba(255,255,255,.18); background: var(--brand-blue); text-decoration: none; }
.engagement-pathway-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.75,.25,1); }
.engagement-pathway-image > span { display: grid; height: 100%; place-items: center; font-size: clamp(5rem,11vw,10rem); font-weight: 950; }
.engagement-pathway-card:hover .engagement-pathway-image img { transform: scale(1.065); }
.engagement-pathway-card > div { display: flex; padding: clamp(1.5rem,3vw,2.5rem); flex-direction: column; }
.engagement-pathway-card h3 { margin: .3rem 0 .75rem; font-size: clamp(1.7rem,3vw,2.7rem); line-height: 1; letter-spacing: -.045em; }
.engagement-pathway-card h3 a { text-decoration: none; }
.engagement-pathway-card > div > p:not(.eyebrow) { color: var(--muted); }
.engagement-pathway-link { display: flex; margin-top: auto; padding-top: 1.2rem; color: var(--brand-green-deep); border-top: 1px solid #dcddd8; align-items: center; justify-content: space-between; font-weight: 850; text-decoration: none; }
.engagement-pathway-link span { color: var(--accent-dark); font-size: 1.35rem; }

.engagement-record-grid,
.engagement-impact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.engagement-record-grid article,
.engagement-impact-grid article { min-height: 280px; padding: 2rem; border: 1px solid var(--line); background: #fff; }
.engagement-record-grid h3,
.engagement-impact-grid h3 { font-size: clamp(1.4rem,2.4vw,2rem); line-height: 1.08; }
.engagement-impact-grid article { border-top: 5px solid var(--brand-green-deep); }
.engagement-impact-grid h3 a { text-decoration: none; }
.engagement-impact-grid article > a { color: var(--brand-green-deep); font-weight: 850; text-decoration: none; }
.engagement-empty { position: relative; display: grid; min-height: 280px; padding: clamp(2rem,5vw,4rem); overflow: hidden; color: #fff; background: var(--brand-blue); grid-template-columns: minmax(0,.35fr) minmax(0,.65fr); align-items: center; gap: 3rem; }
.engagement-empty > span { color: rgba(255,255,255,.1); font-size: clamp(8rem,18vw,15rem); font-weight: 950; line-height: .7; }
.engagement-empty h3 { margin-bottom: .7rem; color: #fff; font-size: clamp(1.8rem,3vw,3rem); }
.engagement-empty p { max-width: 650px; color: rgba(255,255,255,.75); }

@media (max-width: 900px) {
    .engagement-record-grid,
    .engagement-impact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
    .engagement-landing-hero { min-height: 620px; }
    .engagement-landing-hero-content h1 { font-size: clamp(2.4rem,9vw,3.4rem); }
    .engagement-landing-overlay { background: linear-gradient(90deg,rgba(29,34,102,.92),rgba(29,34,102,.58)),linear-gradient(0deg,rgba(15,17,45,.5),transparent); }
    .engagement-hero-marker { min-width: 190px; padding: 1rem 1.25rem; }
    .engagement-section-heading { display: block; }
    .engagement-section-heading > p { margin-top: 1rem; }
    .engagement-pathway-grid,
    .engagement-record-grid,
    .engagement-impact-grid { grid-template-columns: 1fr; }
    .engagement-pathway-card { min-height: 500px; }
    .engagement-empty { grid-template-columns: 1fr; gap: 1rem; }
    .engagement-empty > span { font-size: 8rem; }
}

.programme-directory-hero,
.department-directory-hero {
    background: linear-gradient(145deg, #2a3184 0%, var(--brand-blue) 58%, #1a1f5c 100%);
}

.feature-page-hero {
    display: grid;
    min-height: clamp(570px, 72vh, 790px);
    overflow: hidden;
    color: #fff;
    background: var(--brand-blue);
    grid-template-columns: minmax(410px, .82fr) minmax(0, 1.18fr);
}

.feature-page-hero-copy {
    position: relative;
    z-index: 2;
    display: flex;
    padding: clamp(4rem, 7vw, 8rem) clamp(2rem, 5.5vw, 7rem);
    flex-direction: column;
    justify-content: center;
}

.feature-page-hero-copy::before {
    position: absolute;
    top: clamp(2rem, 5vw, 5rem);
    left: clamp(2rem, 5.5vw, 7rem);
    width: 72px;
    height: 7px;
    background: var(--brand-gold);
    content: "";
}

.feature-page-hero .eyebrow { color: var(--brand-gold); }
.feature-page-hero h1 {
    max-width: 760px;
    margin: 1rem 0 1.5rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.2vw, 4.5rem);
    overflow-wrap: break-word;
}
.feature-page-hero .lead { max-width: 600px; color: rgba(255,255,255,.78); font-size: clamp(1.05rem, 1.65vw, 1.35rem); }
.feature-page-scroll-link { display: inline-flex; width: fit-content; margin-top: 2rem; color: #fff; align-items: center; gap: 1rem; font-weight: 850; text-decoration: none; }
.feature-page-scroll-link span { display: grid; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; place-items: center; transition: color .3s ease, background .3s ease; }
.feature-page-scroll-link:hover span { color: #214d29; background: var(--brand-gold); }

.feature-page-hero-image { position: relative; min-height: inherit; margin: 0; overflow: hidden; background: var(--brand-blue); }
.feature-page-hero-image::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(41,47,125,.28), transparent 38%), linear-gradient(0deg, rgba(20,23,70,.48), transparent 45%); content: ""; }
.feature-page-hero-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.5s cubic-bezier(.2,.75,.25,1); animation: feature-image-breathe 16s ease-in-out infinite alternate; }
.feature-page-hero:hover .feature-page-hero-image img { transform: scale(1.035); }
.feature-page-hero-image figcaption { position: absolute; z-index: 2; right: clamp(1.5rem,4vw,4rem); bottom: clamp(1.5rem,4vw,4rem); display: grid; max-width: 360px; padding: 1.25rem 1.5rem; color: #214d29; background: var(--brand-gold); gap: .2rem; }
.feature-page-hero-image figcaption span { font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.feature-page-hero-image figcaption strong { font-size: 1.05rem; line-height: 1.15; }
@keyframes feature-image-breathe { from { transform: scale(1.01); } to { transform: scale(1.08); } }

.feature-page-nav { position: sticky; z-index: 20; top: var(--public-header-offset, 0); overflow-x: auto; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.feature-page-nav .shell { display: flex; min-width: max-content; padding-block: 0; align-items: center; }
.feature-page-nav span, .feature-page-nav a { padding: 1rem 1.2rem; font-size: .78rem; font-weight: 850; white-space: nowrap; }
.feature-page-nav span { color: var(--muted); letter-spacing: .1em; text-transform: uppercase; }
.feature-page-nav a { color: #26343e; text-decoration: none; }
.feature-page-nav a:hover { color: var(--brand-green-deep); background: var(--brand-green-soft); }

.feature-page-main { padding: clamp(4rem, 8vw, 8rem) 0; background: #f4f2ec; }
.feature-page-layout { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(330px, .84fr); align-items: start; gap: clamp(2.5rem, 7vw, 8rem); }
.feature-page-editorial { min-width: 0; }
.feature-page-heading { max-width: 900px; padding-bottom: clamp(2rem,4vw,4rem); border-bottom: 1px solid #cfd0ca; }
.feature-page-heading h2 { max-width: 820px; margin: .7rem 0 0; font-size: clamp(2.8rem, 5.2vw, 5.8rem); line-height: .92; letter-spacing: -.06em; }
.feature-page-section { padding: clamp(2.5rem,5vw,5rem) 0; border-bottom: 1px solid #cfd0ca; }
.feature-page-section > h2 { font-size: clamp(2.1rem, 4vw, 4rem); line-height: .96; letter-spacing: -.05em; }
.feature-page-section > img { width: 100%; max-height: 520px; margin-bottom: 2rem; object-fit: cover; }
.feature-page-prose { max-width: 860px; color: #33424b; font-size: clamp(1rem,1.25vw,1.12rem); line-height: 1.8; }
.feature-page-prose > p:first-child { color: #18242d; font-size: clamp(1.25rem,2vw,1.6rem); line-height: 1.55; }
.feature-page-prose h3 { margin: clamp(2.5rem,5vw,4.5rem) 0 1.4rem; font-size: clamp(1.8rem,3.2vw,3rem); letter-spacing: -.04em; }
.feature-page-prose ul { display: grid; margin: 0; padding: 0; counter-reset: feature-card; grid-template-columns: repeat(2, minmax(0,1fr)); list-style: none; }
.feature-page-prose li { position: relative; min-height: 135px; padding: 3.2rem 1.35rem 1.25rem; border-top: 1px solid #c8c9c4; border-right: 1px solid #c8c9c4; color: #18242d; counter-increment: feature-card; font-weight: 800; line-height: 1.3; transition: color .35s ease, background .35s ease, transform .35s ease; }
.feature-page-prose li:nth-child(odd) { border-left: 1px solid #c8c9c4; }
.feature-page-prose li::before { position: absolute; top: 1rem; left: 1.35rem; color: var(--brand-green-deep); content: counter(feature-card, decimal-leading-zero); font-size: .7rem; font-weight: 950; letter-spacing: .08em; }
.feature-page-prose li:hover { z-index: 1; color: #fff; background: var(--brand-green-deep); transform: translateY(-4px); }
.feature-page-prose li:hover::before { color: var(--brand-gold); }

.feature-page-visual-rail { position: sticky; top: calc(var(--public-header-offset, 0px) + 86px); display: grid; gap: 1rem; }
.feature-page-statement { position: relative; min-height: 230px; padding: 2rem; overflow: hidden; color: #fff; background: var(--brand-blue); }
.feature-page-statement > span { position: absolute; right: -1rem; bottom: -2rem; color: rgba(255,255,255,.08); font-size: clamp(6rem,12vw,12rem); font-weight: 950; letter-spacing: -.08em; }
.feature-page-statement p { position: relative; z-index: 1; max-width: 290px; margin: 0; color: #fff; font-size: clamp(1.5rem,2.7vw,2.5rem); font-weight: 850; line-height: 1.05; }
.feature-page-visual-rail figure { position: relative; min-height: 260px; margin: 0; overflow: hidden; background: #ddd; }
.feature-page-visual-rail figure:nth-of-type(2) { margin-left: 18%; }
.feature-page-visual-rail figure:nth-of-type(3) { margin-right: 12%; }
.feature-page-visual-rail img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.75,.25,1); }
.feature-page-visual-rail figure:hover img { transform: scale(1.07); }

.feature-page-footer-panel { padding: clamp(4rem,7vw,7rem) 0; color: #fff; background: #244c29; }
.feature-page-footer-panel .eyebrow { color: var(--brand-gold); }
.feature-page-footer-panel h2 { color: #fff; font-size: clamp(2.8rem,5vw,5.4rem); letter-spacing: -.06em; }
.feature-page-footer-panel > .shell > div { display: grid; margin-top: 2.5rem; border-top: 1px solid rgba(255,255,255,.22); grid-template-columns: repeat(3,1fr); }
.feature-page-footer-panel a { display: flex; min-height: 120px; padding: 1.5rem; color: #fff; border-right: 1px solid rgba(255,255,255,.22); align-items: center; justify-content: space-between; gap: 1rem; font-weight: 850; text-decoration: none; transition: color .3s ease, background .3s ease; }
.feature-page-footer-panel a:first-child { border-left: 1px solid rgba(255,255,255,.22); }
.feature-page-footer-panel a span { color: var(--brand-gold); font-size: 1.5rem; }
.feature-page-footer-panel a:hover { color: #214d29; background: var(--brand-gold); }
.feature-page-footer-panel a:hover span { color: #214d29; }

.js [data-feature-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease var(--feature-delay,0ms), transform 1s cubic-bezier(.16,1,.3,1) var(--feature-delay,0ms); }
.js [data-feature-reveal].is-revealed { opacity: 1; transform: none; }
.js [data-feature-reveal].is-resetting { transition: none; }

@media (max-width: 1000px) {
    .feature-page-hero { grid-template-columns: 1fr 1fr; }
    .feature-page-layout { grid-template-columns: minmax(0,1fr) 310px; gap: 2.5rem; }
}

@media (max-width: 760px) {
    .feature-page-hero { grid-template-columns: 1fr; min-height: 0; }
    .feature-page-hero-copy { min-height: 480px; padding: 5rem 1.25rem 3.5rem; }
    .feature-page-hero-copy::before { top: 3rem; left: 1.25rem; }
    .feature-page-hero h1 { font-size: clamp(2.4rem,9vw,3.4rem); }
    .feature-page-hero-image { min-height: 430px; }
    .feature-page-layout { grid-template-columns: 1fr; }
    .feature-page-visual-rail { position: static; grid-row: 1; grid-template-columns: 1fr 1fr; }
    .feature-page-statement { grid-column: 1 / -1; min-height: 190px; }
    .feature-page-visual-rail figure:nth-of-type(n) { min-height: 210px; margin: 0; }
    .feature-page-prose ul { grid-template-columns: 1fr; }
    .feature-page-prose li:nth-child(n) { border-right: 1px solid #c8c9c4; border-left: 1px solid #c8c9c4; }
    .feature-page-footer-panel > .shell > div { grid-template-columns: 1fr; }
    .feature-page-footer-panel a { min-height: 90px; border-left: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
}

@media (prefers-reduced-motion: reduce) {
    .feature-page-hero-image img { animation: none; }
    .js [data-feature-reveal] { opacity: 1; transform: none; transition: none; }
}

/* Newsroom and events */
.newsroom-page,
.events-page,
.editorial-article,
.event-detail-page { background: #f7f6f1; }

.newsroom-intro,
.events-intro { padding: clamp(2.25rem,4vw,3.25rem) 0; background: #f7f6f1; border-bottom: 1px solid #d9d8d1; }
.newsroom-intro-grid,
.events-intro-grid { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1.1rem clamp(2rem,4vw,3.5rem); }
.newsroom-intro-grid > div:first-child,
.events-intro-grid > div:first-child { flex: 0 1 auto; min-width: 240px; }
.newsroom-intro h1,
.events-intro h1 { max-width: 700px; margin: .35rem 0 0; color: #181d30; font-size: clamp(2.1rem,4vw,3.2rem); }
.newsroom-intro-copy,
.events-intro-copy { flex: 1 1 320px; margin: .4rem 0 0; color: #4d5260; font-size: clamp(.98rem,1.1vw,1.1rem); line-height: 1.6; }
.events-intro-copy p { margin: 0; }
.events-intro-copy .editorial-link { margin-top: 1.4rem; }

.newsroom-feature,
.event-feature { display: grid; min-height: 0; padding: 0; background: #fff; grid-template-columns: minmax(0,1.25fr) minmax(400px,.85fr); }
.newsroom-feature-media,
.event-feature-media { position: relative; display: block; min-height: 340px; overflow: hidden; background: #dde1d8; }
.newsroom-feature-media img,
.event-feature-media img,
.editorial-masthead-media img,
.event-detail-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.16,1,.3,1); }
.newsroom-feature:hover .newsroom-feature-media img,
.event-feature:hover .event-feature-media img { transform: scale(1.035); }
.newsroom-feature-copy,
.event-feature-copy { display: flex; padding: clamp(1.75rem,3.5vw,3rem); border-top: 7px solid var(--brand-gold); flex-direction: column; justify-content: center; gap: .2rem; }
.newsroom-kicker { margin: 0 0 .9rem; color: #285b2e; font-size: .74rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.newsroom-meta { display: flex; margin: 0 0 .85rem; color: #676c78; font-size: .78rem; font-weight: 750; letter-spacing: .01em; line-height: 1.45; text-transform: none; align-items: center; gap: .4rem; }
.newsroom-meta span:not(.newsroom-category-pill) { color: #b7b9b2; }
.newsroom-meta-icon { flex-shrink: 0; color: #9a9d95; }
.newsroom-category-pill { display: inline-block; padding: .3rem .7rem; color: #1d5326; background: #e5ecdd; border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.newsroom-category-ribbon { position: absolute; top: 1rem; left: 1rem; z-index: 2; padding: .45rem 1rem; color: #fff; background: #1d5326; border-radius: 4px; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 6px 16px -6px rgba(0,0,0,.35); }
.newsroom-feature-copy h2,
.event-feature-copy h2 { margin: 0 0 .9rem; color: #214d29; font-size: clamp(1.7rem,2.5vw,2.6rem); line-height: 1.06; letter-spacing: -.03em; }
.newsroom-feature-copy h2 a,
.event-feature-copy h2 a { color: inherit; text-decoration: none; }
.newsroom-feature-copy > p:not(.newsroom-kicker,.newsroom-meta),
.event-feature-copy > p:not(.newsroom-kicker,.newsroom-meta) { color: #4d5260; font-size: 1.08rem; line-height: 1.7; }
.editorial-link { display: inline-flex; width: fit-content; margin-top: 1.3rem; color: #214d29; gap: .7rem; align-items: center; font-weight: 900; text-decoration-thickness: 2px; text-underline-offset: .35rem; }
.editorial-link span { color: #285b2e; font-size: 1.3em; transition: transform .25s ease; }
.editorial-link:hover span { transform: translateX(.35rem); }
.newsroom-media-placeholder,
.events-media-placeholder { display: grid; width: 100%; height: 100%; min-height: inherit; color: rgba(29,83,39,.13); background: linear-gradient(145deg,#edf0e8,#dce2d5); place-items: center; font-size: clamp(3.5rem,9vw,9rem); font-weight: 950; letter-spacing: -.06em; }

.newsroom-content { padding-top: clamp(2.5rem,5vw,4rem); padding-bottom: clamp(2.5rem,5vw,4rem); background: #fff; }
.editorial-section-heading { display: flex; margin-bottom: 1.75rem; padding-bottom: 1rem; border-bottom: 1px solid #cfd0ca; align-items: end; justify-content: space-between; gap: 2rem; }
.editorial-section-heading .eyebrow { margin-bottom: .35rem; }
.editorial-section-heading h2 { margin: 0; color: #181d30; font-size: clamp(1.6rem,2.6vw,2.2rem); line-height: 1.05; letter-spacing: -.03em; }
.editorial-section-heading > span { color: #666b75; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.newsroom-story-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.25rem,2.5vw,2rem); }
.newsroom-story-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.newsroom-card { display: flex; min-width: 0; background: #fff; border: 1px solid #e6e6e0; border-radius: 10px; flex-direction: column; overflow: hidden; transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease; }
.newsroom-card:hover { border-color: #d5d8cc; box-shadow: 0 14px 30px -18px rgba(24,29,48,.35); transform: translateY(-3px); }
.newsroom-card-media { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: #e4e6df; }
.newsroom-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.newsroom-card:hover .newsroom-card-media img { transform: scale(1.045); }
.newsroom-card-copy { display: flex; padding: 1.15rem 1.25rem 1.4rem; flex: 1; flex-direction: column; }
.newsroom-card h3 { margin: 0 0 .6rem; font-size: clamp(1.1rem,1.6vw,1.35rem); line-height: 1.2; letter-spacing: -.02em; }
.newsroom-card h3 a { color: #181d30; text-decoration: none; }
.newsroom-card h3 a:hover { color: #285b2e; }
.newsroom-card-copy > p:not(.newsroom-meta) { margin: 0; color: #5b6070; font-size: .93rem; line-height: 1.55; }
.newsroom-single-note { display: flex; padding: 1.75rem; color: #4d5260; background: #f4f4ef; border: 1px dashed #ced0c6; border-radius: 10px; align-items: center; gap: 1rem; }
.newsroom-single-note p { margin: 0; line-height: 1.55; }

.editorial-masthead,
.event-detail-masthead { padding: clamp(1.75rem,3.5vw,3rem) 0; background: #eef0e9; border-bottom: 6px solid var(--brand-gold); }
.editorial-masthead-grid,
.event-detail-masthead-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(2rem,4vw,4rem); align-items: center; }
.editorial-masthead-copy h1,
.event-detail-copy h1 { max-width: 900px; margin: .75rem 0 1rem; color: #181d30; font-size: clamp(1.9rem,3.4vw,2.9rem); line-height: 1.08; }
.editorial-back-link { display: inline-flex; margin-bottom: 1.5rem; color: #285b2e; gap: .65rem; align-items: center; font-size: .84rem; font-weight: 900; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.editorial-deck { max-width: 760px; margin: 0; color: #515767; font-size: clamp(1rem,1.3vw,1.2rem); line-height: 1.55; }
.editorial-masthead-media { position: relative; height: min(460px,48vw); min-height: 320px; margin: 0; overflow: hidden; border-radius: 12px; background: #dfe3db; }
.editorial-body-section { background: #fff; }
.editorial-prose { max-width: 820px; color: #343947; font-size: 1.08rem; line-height: 1.82; }
.editorial-prose > :first-child:not(.eyebrow) { margin-top: 0; }
.editorial-prose img { width: 100%; margin: 2rem 0; }
.editorial-related { background: #f0f1eb; }
.editorial-inline-figure { max-width: 620px; margin: 2.25rem auto; }
.editorial-inline-figure img { display: block; width: 100%; aspect-ratio: 4/3; margin: 0; border-radius: 6px; object-fit: cover; }
.editorial-inline-figure figcaption { margin-top: .65rem; color: #676c78; font-size: .88rem; font-style: italic; line-height: 1.5; }
.editorial-author-section { background: #fff; text-align: center; }
.editorial-author-section .eyebrow { display: block; margin-bottom: 1.25rem; }
.editorial-author-card { display: flex; max-width: 460px; margin-inline: auto; padding: 1.5rem; gap: 1.25rem; background: #f7f6f1; border: 1px solid #e3e4dd; border-radius: 10px; text-align: left; align-items: center; }
.editorial-author-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.editorial-author-avatar--initials { display: grid; color: #fff; background: #285b2e; font-size: 1.15rem; font-weight: 900; letter-spacing: .02em; place-items: center; }
.editorial-author-copy { display: flex; flex-direction: column; gap: .35rem; }
.editorial-author-name { color: #181d30; font-size: 1.05rem; font-weight: 800; text-decoration: none; }
a.editorial-author-name:hover { color: #285b2e; text-decoration: underline; }
.editorial-author-meta { margin: 0; color: #676c78; font-size: .85rem; }
.editorial-author-meta span { padding: 0 .4rem; color: #b7b9b2; }
.editorial-author-link { color: #285b2e; font-size: .85rem; font-weight: 800; text-decoration: none; }
.editorial-author-link:hover { text-decoration: underline; }

.event-date-block { position: absolute; right: 0; bottom: 0; display: grid; width: 126px; height: 126px; color: #214d29; background: var(--brand-gold); place-content: center; text-align: center; }
.event-date-block strong { display: block; font-size: 3rem; line-height: .9; }
.event-date-block span { font-size: .78rem; font-weight: 950; letter-spacing: .15em; }
.event-feature-facts { margin: 1.4rem 0 0; }
.event-feature-facts div { display: grid; padding: .85rem 0; border-top: 1px solid #d9d9d3; grid-template-columns: 74px 1fr; gap: 1rem; }
.event-feature-facts dt { color: #285b2e; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.event-feature-facts dd { margin: 0; color: #303645; line-height: 1.45; }
.event-directory { background: #fff; }
.events-empty { padding: clamp(3rem,6vw,6rem); background: #eef2e9; border-left: 7px solid #285b2e; }
.events-empty h2 { margin-top: 0; color: #181d30; font-size: clamp(2rem,4vw,4rem); letter-spacing: -.045em; }
.event-list { border-top: 1px solid #cfd0cb; }
.event-list-item { display: grid; min-height: 170px; padding: 1.6rem 0; border-bottom: 1px solid #cfd0cb; grid-template-columns: 125px minmax(0,1fr) 58px; gap: clamp(1.5rem,4vw,4rem); align-items: center; transition: background .25s ease, padding .25s ease; }
.event-list-item:hover { padding-right: 1.2rem; padding-left: 1.2rem; background: #f4f5ef; }
.event-list-date { display: grid; color: #214d29; line-height: 1; text-align: center; }
.event-list-date strong { font-size: 3.4rem; letter-spacing: -.05em; }
.event-list-date span { color: #285b2e; font-size: .75rem; font-weight: 950; letter-spacing: .15em; }
.event-list-date small { margin-top: .35rem; color: #737780; }
.event-list-copy h3 { margin: 0; font-size: clamp(1.45rem,2.6vw,2.4rem); letter-spacing: -.035em; line-height: 1.12; }
.event-list-copy h3 a { color: #181d30; text-decoration: none; }
.event-list-venue { margin: .65rem 0 0; color: #626773; }
.event-list-arrow { display: grid; width: 50px; height: 50px; color: #214d29; border: 1px solid #aeb2aa; border-radius: 50%; place-items: center; text-decoration: none; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.event-list-item:hover .event-list-arrow { color: #fff; background: #285b2e; border-color: #285b2e; }
.event-archive { background: #eef0e9; }
.event-archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: #cdd0c8; border: 1px solid #cdd0c8; }
.event-archive-grid article { min-height: 210px; padding: 2rem; background: #fff; }
.event-archive-grid h3 { margin: 0 0 1rem; font-size: 1.45rem; line-height: 1.2; }
.event-archive-grid h3 a { color: #181d30; text-decoration: none; }
.event-archive-grid article > p:last-child { color: #626773; }

.event-detail-visual { position: relative; height: min(660px,62vw); min-height: 430px; overflow: hidden; background: #dfe3db; }
.event-detail-content { background: #fff; }
.event-detail-grid { display: grid; grid-template-columns: minmax(0,820px) minmax(320px,430px); gap: clamp(3rem,7vw,8rem); justify-content: center; align-items: start; }
.event-information-card { padding: 2.2rem; background: #eef2e9; border-top: 7px solid #285b2e; }
.event-information-card h2 { margin: .35rem 0 1.5rem; color: #214d29; font-size: 2rem; letter-spacing: -.04em; }
.event-information-card dl { margin: 0; }
.event-information-card dl div { padding: 1rem 0; border-top: 1px solid #cbd2c6; }
.event-information-card dt { margin-bottom: .35rem; color: #285b2e; font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.event-information-card dd { margin: 0; color: #313746; line-height: 1.55; }
.event-information-card .button { margin-top: 1.2rem; }

@media (max-width: 1050px) {
    .newsroom-feature,
    .event-feature { grid-template-columns: 1.15fr .85fr; }
    .editorial-masthead-grid,
    .event-detail-masthead-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

@media (max-width: 780px) {
    .newsroom-intro-grid,
    .events-intro-grid,
    .newsroom-feature,
    .event-feature,
    .editorial-masthead-grid,
    .event-detail-masthead-grid,
    .event-detail-grid { grid-template-columns: 1fr; }
    .newsroom-intro h1,
    .events-intro h1 { font-size: clamp(2.4rem,9vw,3.4rem); }
    .newsroom-feature-media,
    .event-feature-media { min-height: 410px; }
    .newsroom-feature-copy,
    .event-feature-copy { padding: 2.3rem 1.25rem 3rem; }
    .newsroom-story-grid,
    .newsroom-story-grid--three,
    .event-archive-grid { grid-template-columns: 1fr; }
    .editorial-masthead-media,
    .event-detail-visual { height: 460px; min-height: 0; }
    .editorial-masthead-copy h1,
    .event-detail-copy h1 { font-size: clamp(2.2rem,9vw,3rem); }
    .editorial-back-link { margin-bottom: 2rem; }
    .event-list-item { min-height: 140px; grid-template-columns: 80px minmax(0,1fr); gap: 1.2rem; }
    .event-list-arrow { display: none; }
    .event-list-date strong { font-size: 2.7rem; }
    .editorial-section-heading { align-items: start; flex-direction: column; }
}

@media (max-width: 480px) {
    .newsroom-feature-media,
    .event-feature-media { min-height: 330px; }
    .editorial-masthead-media,
    .event-detail-visual { height: 360px; }
    .event-date-block { width: 100px; height: 100px; }
    .event-date-block strong { font-size: 2.4rem; }
    .event-list-item { grid-template-columns: 66px minmax(0,1fr); }
    .event-list-copy h3 { font-size: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
    .newsroom-feature-media img,
    .event-feature-media img,
    .newsroom-card-media img { transition: none; }
}

/* Homepage green balance and department discovery panel */
.home-hero-stage { border-bottom: 6px solid #2f6b35; }

.home-hero-departments {
    display: flex;
    min-height: 590px;
    background: #eef4eb;
    border-top: 7px solid #2f6b35;
    flex-direction: column;
}

.home-hero-departments > header { padding: 1.5rem 1.6rem 1.25rem; }
.home-hero-departments > header .eyebrow { margin: 0 0 .45rem; color: #2f6b35; }
.home-hero-departments > header h2 {
    margin: 0;
    color: #214d29;
    font-size: clamp(1.75rem,2.5vw,2.45rem);
    line-height: 1;
    letter-spacing: -.045em;
}
.home-hero-departments > header > p:last-child {
    max-width: 48ch;
    margin: .75rem 0 0;
    color: #536052;
    font-size: .86rem;
    line-height: 1.5;
}

.home-hero-department-grid {
    display: grid;
    height: 365px;
    min-height: 365px;
    padding: 0 1rem;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: minmax(165px,1.45fr) repeat(2,minmax(88px,1fr));
    gap: .45rem;
}

.home-hero-department-grid > a {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    color: #fff;
    background: #315f37;
    text-decoration: none;
}
.home-hero-department-grid > a.is-featured { grid-column: 1 / -1; }
.home-hero-department-grid > a::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(8,31,14,.02) 22%,rgba(8,31,14,.9) 100%);
    content: "";
}
.home-hero-department-grid img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.16,1,.3,1), filter .5s ease;
}
.home-hero-department-grid > a:hover img { filter: saturate(1.08); transform: scale(1.055); }
.home-hero-department-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 88px;
    color: rgba(255,255,255,.24);
    background: linear-gradient(135deg,#214d29,#4e7b43);
    place-items: center;
    font-size: clamp(1.7rem,3vw,3.5rem);
    font-weight: 950;
}
.home-hero-department-copy {
    position: absolute;
    z-index: 1;
    right: .85rem;
    bottom: .7rem;
    left: .85rem;
    display: block;
}
.home-hero-department-copy small {
    display: block;
    margin-bottom: .2rem;
    color: #f3cf36;
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .13em;
}
.home-hero-department-copy strong {
    display: block;
    overflow: hidden;
    font-size: .78rem;
    line-height: 1.18;
    text-overflow: ellipsis;
}
.home-hero-department-grid > a.is-featured .home-hero-department-copy strong {
    max-width: 20ch;
    font-size: 1.08rem;
}
.home-hero-all-departments {
    display: flex;
    min-height: 54px;
    margin-top: auto;
    padding: .9rem 1.6rem;
    color: #fff;
    background: #2f6b35;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    font-size: .84rem;
    font-weight: 900;
    text-decoration: none;
}
.home-hero-all-departments:hover { color: #214d29; background: var(--brand-gold); }

.home-quick-actions { background: #f0f4ed; }
.home-quick-actions-content .eyebrow,
.home-study-title-accent { color: #2f6b35; }
.home-quick-visual-grid figure:nth-child(3) { border-color: #dce8d8; }
.home-why-history-card { background: #285d32; }
.home-why-history-card > p:not(.eyebrow) { color: #e3eee1; }
.home-proof-grid strong { color: #2f6b35; }

@media (max-width: 1100px) {
    .home-hero-departments { height: auto; min-height: 0; }
    .home-hero-department-grid {
        height: 420px;
        min-height: 420px;
        grid-template-columns: repeat(4,minmax(0,1fr));
        grid-template-rows: repeat(2,minmax(180px,1fr));
    }
    .home-hero-department-grid > a.is-featured { grid-column: span 2; grid-row: span 2; }
    .home-hero-department-grid > a:not(.is-featured) { min-height: 180px; }
}

@media (max-width: 680px) {
    .home-hero-departments > header { padding: 1.5rem 1.25rem; }
    .home-hero-department-grid {
        height: 560px;
        min-height: 560px;
        padding: 0 .75rem;
        grid-template-columns: repeat(2,minmax(0,1fr));
        grid-template-rows: minmax(220px,1.35fr) repeat(2,minmax(145px,1fr));
    }
    .home-hero-department-grid > a.is-featured { grid-column: 1 / -1; grid-row: auto; }
    .home-hero-department-grid > a:not(.is-featured) { min-height: 145px; }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-department-grid img { transition: none; }
}

/* Reusable full-image green overlay banners */
.programme-directory-hero,
.department-directory-hero,
.feature-page-hero {
    position: relative;
    min-height: clamp(570px,72vh,790px);
    overflow: hidden;
    color: #fff;
    background: var(--brand-blue);
}

.programme-directory-hero-grid,
.department-directory-hero-grid {
    position: relative;
    display: flex;
    width: 100%;
    max-width: none;
    min-height: inherit;
    align-items: center;
}

.programme-directory-intro,
.department-directory-intro {
    position: relative;
    z-index: 2;
    width: min(62%,900px);
    min-height: inherit;
    padding: clamp(4rem,7vw,8rem) var(--page-gutters);
}

.programme-directory-visual,
.department-directory-visual {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    min-height: 100%;
}

.programme-directory-visual::after,
.department-directory-visual::after,
.feature-page-hero-image::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(90deg,rgba(31,36,105,.96) 0%,rgba(41,47,125,.84) 38%,rgba(48,54,135,.38) 70%,rgba(20,23,70,.12) 100%),
        linear-gradient(0deg,rgba(18,20,60,.52),transparent 54%);
    content: "";
    pointer-events: none;
}

.programme-directory-visual img,
.department-directory-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.programme-directory-visual figcaption,
.department-directory-visual figcaption { z-index: 3; }

.feature-page-hero { display: block; }
.feature-page-hero-copy {
    position: relative;
    z-index: 2;
    width: min(66%,1050px);
    min-height: inherit;
    padding: clamp(4rem,7vw,8rem) var(--page-gutters);
}
.feature-page-hero-copy::before { left: var(--page-gutters); }
.feature-page-hero-image {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    min-height: 100%;
}
.feature-page-hero-image figcaption { z-index: 3; }

@media (max-width: 760px) {
    .programme-directory-hero,
    .department-directory-hero,
    .feature-page-hero { min-height: 620px; }
    .programme-directory-intro,
    .department-directory-intro,
    .feature-page-hero-copy {
        width: 100%;
        min-height: 620px;
        padding: 5.5rem 1.25rem 7rem;
    }
    .feature-page-hero-copy::before { top: 3rem; left: 1.25rem; }
    .programme-directory-visual,
    .department-directory-visual,
    .feature-page-hero-image { min-height: 100%; }
    .programme-directory-visual::after,
    .department-directory-visual::after,
    .feature-page-hero-image::after {
        background:
            linear-gradient(90deg,rgba(31,36,105,.94),rgba(41,47,125,.64)),
            linear-gradient(0deg,rgba(18,20,60,.58),transparent 55%);
    }
}

/* Academic banners: full-width photography with a restrained navy veil.
   Green remains the primary site theme; blue is reserved for programme and
   department hero imagery to give these academic pages a quieter contrast. */
.programme-directory-hero,
.programme-detail-hero,
.department-directory-hero,
.department-profile-hero {
    position: relative;
    min-height: clamp(570px,72vh,790px);
    overflow: hidden;
    color: #fff;
    background: #17265f;
}

.programme-directory-hero-grid,
.programme-detail-hero-grid,
.department-directory-hero-grid,
.department-profile-hero-grid {
    position: relative;
    display: flex;
    width: 100%;
    max-width: none;
    min-height: inherit;
    margin: 0;
    align-items: center;
}

.programme-directory-intro,
.programme-detail-copy,
.department-directory-intro,
.department-profile-copy {
    position: relative;
    z-index: 2;
    width: min(64%,960px);
    min-height: inherit;
    padding: clamp(4rem,7vw,8rem) var(--page-gutters);
}

.programme-directory-visual,
.programme-detail-image,
.department-directory-visual,
.department-profile-image {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    min-height: 100%;
    margin: 0;
}

.programme-directory-visual img,
.programme-detail-image img,
.department-directory-visual img,
.department-profile-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.programme-directory-visual::after,
.programme-detail-image::after,
.department-directory-visual::after,
.department-profile-image::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(90deg,rgba(20,31,86,.92) 0%,rgba(28,43,105,.78) 38%,rgba(31,53,103,.34) 72%,rgba(17,28,70,.08) 100%),
        linear-gradient(0deg,rgba(12,20,61,.44),transparent 54%);
    content: "";
    pointer-events: none;
}

.programme-directory-visual figcaption,
.programme-detail-image figcaption,
.department-directory-visual figcaption,
.department-profile-image figcaption { z-index: 3; }

@media (max-width: 760px) {
    .programme-directory-hero,
    .programme-detail-hero,
    .department-directory-hero,
    .department-profile-hero { min-height: 620px; }

    .programme-directory-intro,
    .programme-detail-copy,
    .department-directory-intro,
    .department-profile-copy {
        width: 100%;
        min-height: 620px;
        padding: 5.5rem 1.25rem 7rem;
    }

    .programme-directory-visual::after,
    .programme-detail-image::after,
    .department-directory-visual::after,
    .department-profile-image::after {
        background:
            linear-gradient(90deg,rgba(20,31,86,.9),rgba(28,43,105,.58)),
            linear-gradient(0deg,rgba(12,20,61,.56),transparent 55%);
    }
}

/* Shared public-card typography and alignment. */
main :where([class*="-card"],
    .department-programme-grid > article,
    .department-direction-grid > article,
    .engagement-record-grid > article,
    .engagement-impact-grid > article,
    .event-archive-grid > article) {
    min-width: 0;
}

main :where([class*="-card"],
    .department-programme-grid > article,
    .department-direction-grid > article,
    .engagement-record-grid > article,
    .engagement-impact-grid > article,
    .event-archive-grid > article) :where(h2, h3, h4) {
    max-width: 100%;
    text-wrap: balance;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

/* Database rich text may contain paragraph tags or plain text separated by
   line breaks. Align the container so both authoring formats render alike. */
main .prose,
main .editorial-prose,
main .feature-page-prose {
    max-width: 100%;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

main :where(.prose, .editorial-prose, .feature-page-prose) :where(h2, h3, h4, ul, ol) {
    text-align: left;
    text-align-last: left;
}

main .programme-action-panel {
    min-width: 0;
}

main .programme-action-panel p:not(.eyebrow) {
    max-width: 100%;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

/* Content-driven card bodies: media keeps a consistent frame while copy is
   allowed to determine the card's final height. */
.programme-card-copy,
.department-directory-copy,
.engagement-pathway-card > div,
.newsroom-card-copy,
.staff-card-body {
    width: 100%;
    height: auto;
    min-width: 0;
    min-height: min-content;
    overflow: visible;
}

@media (min-width: 761px) {
    .programme-directory-card {
        height: auto;
        grid-template-rows: 285px minmax(min-content, 1fr);
    }

    .department-directory-card {
        height: auto;
        grid-template-rows: 300px minmax(min-content, 1fr);
    }

    .engagement-pathway-card {
        height: auto;
        grid-template-rows: minmax(260px, 1.05fr) minmax(min-content, .95fr);
    }
}

/* Compact, editorial staff directory */
.staff-directory-section {
    padding: clamp(3rem, 5vw, 5rem) 0;
}

.staff-directory-heading {
    margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
    align-items: center;
}

.staff-directory-heading h2 {
    max-width: 760px;
    font-size: clamp(2.25rem, 3.8vw, 3.9rem);
    line-height: 1;
}

.staff-filter-panel {
    margin-bottom: 1.5rem;
    padding: 1.15rem clamp(1rem, 2vw, 1.5rem) 1.35rem;
}

.staff-filter-heading {
    margin-bottom: 1rem;
    align-items: center;
}

.staff-filter-heading h2 {
    font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.staff-filter-grid {
    gap: .65rem;
}

.filter-field input,
.filter-field select,
.staff-filter-submit {
    min-height: 44px;
}

.staff-directory-layout {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 290px);
    gap: clamp(1.5rem, 3vw, 2.5rem);
}

.staff-profile-list {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 1rem;
}

.staff-profile-list > .directory-summary,
.staff-profile-list > .public-empty,
.staff-profile-list > .public-pagination {
    grid-column: 1 / -1;
}

.directory-summary {
    margin: .25rem 0 0;
    padding-bottom: .75rem;
    border-bottom: 1px solid #d4d6d0;
}

.staff-directory-row {
    display: grid;
    min-height: 0;
    padding: 1.15rem;
    border: 1px solid #d4d8d1;
    background: #fff;
    grid-template-columns: 84px minmax(0, 1fr);
    align-items: start;
    align-content: start;
    gap: .9rem 1rem;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.staff-directory-row:first-of-type {
    border-top: 1px solid #d4d8d1;
}

.staff-directory-row:hover,
.staff-directory-row:focus-within {
    border-color: #aebcac;
    box-shadow: 0 14px 34px rgba(28, 57, 34, .09);
    transform: translateY(-3px);
}

.staff-row-portrait {
    width: 82px;
    border-width: 3px;
    box-shadow: 0 7px 18px rgba(33, 75, 41, .12);
}

.staff-row-portrait span {
    font-size: 1.35rem;
}

.staff-row-identity {
    min-width: 0;
}

.staff-row-identity .eyebrow {
    margin-bottom: .25rem;
    font-size: .63rem;
}

.staff-row-identity h3 {
    margin: 0 0 .4rem;
    font-size: clamp(1.25rem, 1.7vw, 1.55rem);
    line-height: 1.08;
}

.staff-row-identity p {
    margin: 0 0 .2rem;
    font-size: .84rem;
    line-height: 1.4;
}

.staff-row-identity .staff-department {
    color: var(--muted);
    font-size: .78rem;
}

.staff-row-contact {
    display: flex;
    min-width: 0;
    padding: .85rem 0 0;
    border-top: 1px solid #e0e2dd;
    grid-column: 1 / -1;
    align-self: end;
    align-items: center;
    align-content: initial;
    flex-wrap: wrap;
    gap: .55rem .9rem;
}

.staff-row-contact > a:not(.staff-row-profile-link) {
    max-width: 100%;
    font-size: .78rem;
}

.staff-row-contact > a span {
    display: inline;
    margin-right: .35rem;
    font-size: .6rem;
}

.staff-row-contact ul {
    margin: 0;
}

.staff-row-contact li {
    padding: .24rem .42rem;
    font-size: .62rem;
}

.staff-row-profile-link {
    margin: 0 0 0 auto;
    font-size: .78rem;
    white-space: nowrap;
}

.staff-department-directory {
    padding: 1.45rem;
    color: var(--ink);
    border: 1px solid #d4d8d1;
    border-top: 5px solid var(--brand-gold);
    background: #fff;
}

.staff-department-directory .eyebrow {
    color: var(--accent);
}

.staff-department-directory h2 {
    margin-bottom: .75rem;
    color: var(--ink);
    font-size: clamp(1.65rem, 2.4vw, 2.15rem);
}

.staff-department-directory a {
    padding: .7rem 0;
    color: #344039;
    border-bottom-color: #e0e2dd;
    font-size: .82rem;
    line-height: 1.35;
}

.staff-department-directory a strong {
    width: 26px;
    height: 26px;
    color: var(--brand-blue-deep);
    background: var(--brand-gold);
    font-size: .68rem;
}

@media (max-width: 1100px) {
    .staff-profile-list {
        grid-template-columns: 1fr;
    }

    .staff-directory-layout {
        grid-template-columns: minmax(0, 1fr) 250px;
    }
}

@media (max-width: 760px) {
    .staff-directory-section {
        padding: 2.5rem 0;
    }

    .staff-directory-heading {
        margin-bottom: 1.5rem;
    }

    .staff-filter-panel {
        padding: 1rem;
    }

    .staff-directory-layout {
        grid-template-columns: 1fr;
    }

    .staff-directory-row {
        padding: 1rem;
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .staff-row-portrait {
        width: 70px;
    }

    .staff-row-contact {
        padding-left: 0;
    }

    .staff-department-directory {
        grid-row: auto;
    }
}

@media (max-width: 470px) {
    .staff-directory-row {
        grid-template-columns: 62px minmax(0, 1fr);
        gap: .75rem;
    }

    .staff-row-portrait {
        width: 60px;
    }

    .staff-row-profile-link {
        width: 100%;
        margin-left: 0;
    }
}

main :where([class*="-card"],
    .department-programme-grid > article,
    .department-direction-grid > article,
    .engagement-record-grid > article,
    .engagement-impact-grid > article,
    .event-archive-grid > article) p:not(.eyebrow):not(.programme-card-meta):not(.newsroom-meta):not(.department-code) {
    max-width: 100%;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}
