@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');

:root {
    --ink: #14233b;
    --ink-soft: #42526b;
    --navy: #12395f;
    --navy-deep: #071f39;
    --teal: #0b8378;
    --teal-soft: #e5f6f3;
    --amber: #ed9b21;
    --paper: #ffffff;
    --mist: #f4f7fb;
    --line: #dce5ee;
    --public-shadow: 0 18px 45px rgba(13, 40, 71, .12);
    --public-shadow-sm: 0 8px 22px rgba(13, 40, 71, .08);
    --round: 1.25rem;
    --public-font: 'Inter', sans-serif;
    --display-font: 'Poppins', sans-serif;
}

body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--public-font);
}

body.menu-open {
    overflow: hidden;
}

.public-main {
    overflow: hidden;
}

.public-container {
    width: min(100% - 2rem, 76rem);
    margin-inline: auto;
}

.skip-link {
    position: fixed;
    z-index: 3000;
    left: 1rem;
    top: -4rem;
    background: var(--amber);
    color: var(--navy-deep);
    border-radius: .5rem;
    font-weight: 800;
    padding: .7rem 1rem;
}

.skip-link:focus {
    top: 1rem;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--teal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

.eyebrow::before {
    width: 1.7rem;
    height: 2px;
    background: currentColor;
    content: '';
}

.section-heading {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.375rem, 3vw + 1rem, 2rem);
    letter-spacing: -.03em;
    line-height: 1.25;
    margin: .7rem 0 0;
}

.section-copy {
    color: var(--ink-soft);
    margin: 1rem 0 0;
    max-width: 42rem;
}

.public-btn {
    align-items: center;
    border: 1px solid transparent;
    border-radius: .75rem;
    display: inline-flex;
    font-size: .9rem;
    font-weight: 800;
    gap: .55rem;
    justify-content: center;
    min-height: 3rem;
    padding: .75rem 1.15rem;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.public-btn:hover {
    transform: translateY(-2px);
}

.public-btn-primary {
    background: var(--amber);
    box-shadow: 0 10px 25px rgba(237, 155, 33, .3);
    color: var(--navy-deep);
}

.public-btn-dark {
    background: var(--navy);
    color: var(--paper);
}

.public-btn-light {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .5);
    color: var(--paper);
}

.public-btn-ghost {
    border-color: var(--line);
    color: var(--navy);
}

.site-header {
    background: rgba(255, 255, 255, .96);
    border: 0;
    box-shadow: 0 1px 0 rgba(20, 35, 59, .07);
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-topbar {
    background: var(--navy-deep);
    color: rgba(255, 255, 255, .78);
    font-size: .72rem;
}

.header-topbar-inner {
    align-items: center;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    min-height: 2.15rem;
}

.header-topbar a {
    color: rgba(255, 255, 255, .85);
}

.header-topbar a:hover {
    color: var(--amber);
}

.header-topbar-links {
    display: flex;
    gap: 1rem;
}

.header-main {
    align-items: center;
    display: flex;
    justify-content: space-between;
    min-height: 4.8rem;
}

.brand {
    align-items: center;
    color: var(--navy);
    display: flex;
    gap: .75rem;
    min-width: 0;
}

.brand-mark {
    align-items: center;
    background: linear-gradient(145deg, var(--teal), var(--navy));
    border-radius: .75rem;
    color: var(--paper);
    display: flex;
    flex: 0 0 auto;
    font-family: var(--display-font);
    font-size: 1.2rem;
    font-weight: 800;
    height: 2.75rem;
    justify-content: center;
    letter-spacing: -.08em;
    width: 2.75rem;
}

.brand-logo {
    flex: 0 0 auto;
    height: 3.15rem;
    object-fit: contain;
    width: 3.15rem;
}

.brand-name {
    display: block;
    font-family: var(--display-font);
    font-size: .94rem;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.1;
}

.brand-name em {
    font-style: normal;
}

.brand-tagline {
    color: var(--ink-soft);
    display: block;
    font-size: .54rem;
    letter-spacing: .025em;
    line-height: 1.35;
    margin-top: .25rem;
    max-width: 29rem;
}

.brand-tagline b {
    color: var(--teal);
    font-weight: 800;
    padding-inline: .08rem;
}

.desktop-nav {
    align-items: center;
    display: none;
    gap: .15rem;
}

.desktop-nav a {
    border-radius: .5rem;
    color: var(--ink);
    font-size: .81rem;
    font-weight: 700;
    padding: .55rem .58rem;
}

.desktop-nav a:hover,
.desktop-nav a[aria-current='page'] {
    background: var(--mist);
    color: var(--teal);
}

.header-actions {
    align-items: center;
    display: flex;
    flex-shrink: 0;
    gap: .85rem;
}

.header-search {
    align-items: center;
    background: var(--teal);
    border-radius: 50%;
    color: var(--paper);
    display: inline-flex;
    font-size: 1.15rem;
    height: 2.8rem;
    justify-content: center;
    transition: background .2s ease, transform .2s ease;
    width: 2.8rem;
}

.header-search:hover,
.header-search:focus-visible {
    background: var(--navy);
    transform: scale(1.05);
}

.header-search svg {
    height: 1.25rem;
    width: 1.25rem;
}

.menu-toggle {
    align-items: center;
    background: var(--mist);
    border: 0;
    border-radius: .6rem;
    color: var(--navy);
    display: inline-flex;
    gap: .55rem;
    height: 2.8rem;
    padding: 0 .95rem;
}

.menu-toggle-label {
    font-size: .92rem;
    font-weight: 600;
    letter-spacing: .04em;
}

.menu-toggle-bars {
    display: flex;
    flex-direction: column;
    gap: .28rem;
    width: 1.35rem;
}

.menu-toggle-bars span {
    background: currentColor;
    border-radius: 2px;
    display: block;
    height: 2.5px;
    width: 100%;
}

.mobile-menu {
    background: var(--paper);
    border-top: 1px solid var(--line);
    box-shadow: 0 18px 28px rgba(13, 40, 71, .14);
    left: 0;
    max-height: calc(100vh - 6.95rem);
    overflow-y: auto;
    padding: 1rem;
    position: absolute;
    right: 0;
    top: 100%;
}

.mobile-menu a {
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    display: block;
    font-size: 1rem;
    font-weight: 700;
    padding: .9rem .25rem;
}

.mobile-menu .public-btn {
    border: 0;
    margin-top: 1rem;
    width: 100%;
}

.home-hero {
    background: var(--navy-deep);
    color: var(--paper);
    min-height: 36rem;
    overflow: hidden;
    position: relative;
}

.hero-slides,
.hero-slide {
    height: 100%;
    min-height: inherit;
}

.hero-slide {
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transition: opacity .8s ease;
    visibility: hidden;
}

.hero-slide.is-active {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

.hero-slide::after {
    background: linear-gradient(90deg, rgba(5, 24, 45, .86) 0%, rgba(5, 24, 45, .58) 52%, rgba(5, 24, 45, .16) 100%);
    content: '';
    inset: 0;
    position: absolute;
    z-index: 1;
}

.home-hero-media {
    height: 100%;
    inset: 0;
    position: absolute;
    width: 100%;
}

.home-hero-media img,
.home-hero-media video,
.home-hero-media iframe {
    border: 0;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.home-hero-media iframe {
    left: 50%;
    min-height: 56.25vw;
    min-width: 177.78vh;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

.home-hero-content {
    align-items: center;
    display: flex;
    min-height: 36rem;
    position: relative;
    z-index: 2;
}

.home-hero-copy {
    max-width: 39rem;
    padding: 4.5rem 0 6.5rem;
}

.hero-kicker {
    border-left: 2px solid #ffd184;
    color: #ffe0a8;
    display: inline-flex;
    font-size: .69rem;
    font-weight: 600;
    letter-spacing: .16em;
    padding-left: .7rem;
    text-transform: uppercase;
}

.home-hero h1 {
    color: var(--paper);
    font-family: var(--display-font);
    font-size: clamp(1.75rem, 5vw + 1rem, 3rem);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.15;
    margin: 1rem 0;
}

.home-hero p {
    color: rgba(255, 255, 255, .82);
    font-size: clamp(.98rem, 1.7vw, 1.1rem);
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
    max-width: 34rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.75rem;
}

.hero-note {
    color: rgba(255, 255, 255, .65);
    font-size: .74rem;
    margin-top: 1.25rem;
}

.hero-slider-controls {
    align-items: center;
    bottom: 1.5rem;
    display: flex;
    gap: .75rem;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    z-index: 4;
}

.hero-slider-arrow {
    align-items: center;
    background: rgba(255, 255, 255, .13);
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 50%;
    color: var(--paper);
    display: flex;
    font-size: 1rem;
    height: 2.35rem;
    justify-content: center;
    transition: background .2s ease;
    width: 2.35rem;
}

.hero-slider-arrow:hover {
    background: rgba(255, 255, 255, .28);
}

.hero-slider-dots {
    display: flex;
    gap: .4rem;
}

.hero-slider-dot {
    background: rgba(255, 255, 255, .5);
    border: 0;
    border-radius: 999px;
    height: .42rem;
    padding: 0;
    transition: width .2s ease, background .2s ease;
    width: .42rem;
}

.hero-slider-dot.is-active {
    background: #ffd184;
    width: 1.6rem;
}

.stats-wrap {
    margin-top: -2.5rem;
    position: relative;
    z-index: 2;
}

.stats-grid {
    background: var(--paper);
    border-radius: var(--round);
    box-shadow: var(--public-shadow);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
}

.stat-item {
    border-bottom: 1px solid var(--line);
    border-right: 1px solid var(--line);
    padding: 1.25rem 1rem;
    text-align: center;
}

.stat-item:nth-child(2n) {
    border-right: 0;
}

.stat-item:nth-last-child(-n+2) {
    border-bottom: 0;
}

.stat-value {
    color: var(--navy);
    font-family: var(--display-font);
    font-size: clamp(1.75rem, 3vw + 1rem, 2.75rem);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.1;
}

.stat-label {
    color: var(--ink-soft);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    margin-top: .45rem;
    text-transform: uppercase;
}

.home-section {
    padding: 4.5rem 0;
}

.home-section-muted {
    background: var(--mist);
}

.section-intro {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.text-link {
    color: var(--teal);
    font-size: .87rem;
    font-weight: 800;
}

.department-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

.departments-directory {
    background: linear-gradient(180deg, #f4f8f8 0, #fff 22rem);
    padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(4rem, 8vw, 7rem);
}

.departments-directory-intro {
    align-items: end;
    display: grid;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.departments-directory-intro h1 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(2.5rem, 6vw, 5.25rem);
    letter-spacing: -.065em;
    line-height: .95;
    margin: .6rem 0 0;
    /* No cap: the heading should fill the width of its container column. */
    max-width: none;
}

.departments-directory-intro h1 em {
    color: var(--teal);
    font-style: normal;
}

.departments-directory-intro>p {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.8;
    margin: 0;
    max-width: 32rem;
}

.departments-directory-summary {
    border-block: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    margin-bottom: 2.25rem;
    padding: 1rem 0;
}

.departments-directory-summary span {
    color: var(--ink-soft);
    font-size: .78rem;
    font-weight: 700;
}

.departments-directory-summary strong {
    color: var(--teal);
    font-family: var(--display-font);
    font-size: 1.25rem;
    letter-spacing: -.04em;
    margin-right: .25rem;
}

.departments-directory-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

.departments-directory-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1.1rem;
    display: flex;
    flex-direction: column;
    min-height: 22rem;
    overflow: hidden;
    padding: 1.35rem;
    position: relative;
    transition: box-shadow .25s ease, transform .25s ease;
}

.departments-directory-card::before {
    background: linear-gradient(135deg, var(--teal-soft), transparent 70%);
    border-radius: 50%;
    content: '';
    height: 12rem;
    position: absolute;
    right: -5rem;
    top: -6rem;
    width: 12rem;
}

.departments-directory-card:hover {
    box-shadow: var(--public-shadow);
    transform: translateY(-5px);
}

.departments-directory-card-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
    position: relative;
    z-index: 1;
}

.departments-directory-mark {
    align-items: center;
    background: var(--navy-deep);
    border-radius: .7rem;
    color: #fff;
    display: inline-flex;
    font-family: var(--display-font);
    font-size: 1.25rem;
    height: 2.9rem;
    justify-content: center;
    width: 2.9rem;
}

.departments-directory-number {
    color: #94aba8;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.departments-directory-card-copy {
    margin-top: auto;
    padding-top: 2rem;
    position: relative;
    z-index: 1;
}

.departments-directory-card-copy p {
    color: var(--teal);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .11em;
    margin: 0 0 .65rem;
    text-transform: uppercase;
}

.departments-directory-card-copy h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.45rem;
    letter-spacing: -.045em;
    line-height: 1.12;
    margin: 0;
}

.departments-directory-card-copy div {
    color: var(--ink-soft);
    font-size: .82rem;
    line-height: 1.65;
    margin-top: .8rem;
}

.departments-directory-meta {
    border-top: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    margin-top: 1rem;
    padding-top: .85rem;
}

.departments-directory-meta span {
    color: var(--ink-soft);
    font-size: .7rem;
    font-weight: 700;
}

.departments-directory-meta span::before {
    background: var(--teal);
    border-radius: 50%;
    content: '';
    display: inline-block;
    height: .35rem;
    margin: 0 .35rem .05rem 0;
    width: .35rem;
}

.departments-directory-link {
    align-items: center;
    color: var(--teal);
    display: flex;
    font-size: .8rem;
    font-weight: 800;
    justify-content: space-between;
    margin-top: 1rem;
}

.departments-directory-link span {
    font-size: 1.1rem;
    transition: transform .2s ease;
}

.departments-directory-card:hover .departments-directory-link span {
    transform: translateX(.25rem);
}

.departments-directory-empty {
    background: var(--paper);
    border: 1px dashed var(--line);
    border-radius: 1rem;
    color: var(--ink-soft);
    padding: 2rem;
    text-align: center;
}

.departments-directory-empty strong {
    color: var(--navy-deep);
}

.departments-directory-empty p {
    margin: .5rem 0 0;
}

.department-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    box-shadow: var(--public-shadow-sm);
    display: flex;
    flex-direction: column;
    min-height: 12rem;
    overflow: hidden;
    padding: 1.4rem;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
}

.department-card::after {
    background: linear-gradient(135deg, var(--teal-soft), transparent);
    content: '';
    height: 9rem;
    position: absolute;
    right: -4rem;
    top: -4rem;
    width: 9rem;
}

.department-card:hover {
    box-shadow: var(--public-shadow);
    transform: translateY(-5px);
}

.department-index {
    color: var(--teal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.department-icon {
    align-items: center;
    background: var(--teal-soft);
    border-radius: .65rem;
    color: var(--teal);
    display: flex;
    font-size: 1.25rem !important;
    height: 2.7rem;
    justify-content: center;
    margin-top: .8rem;
    position: relative;
    width: 2.7rem;
    z-index: 1;
}

.department-card:nth-child(2) .department-icon {
    background: #fff0db;
    color: #d97d00;
}

.department-card:nth-child(3) .department-icon {
    background: #eaeaff;
    color: #5560c5;
}

.department-card:nth-child(4) .department-icon {
    background: #ffe9ed;
    color: #d34d65;
}

.department-card:nth-child(5) .department-icon {
    background: #e7f5ff;
    color: #287bb8;
}

.department-card:nth-child(6) .department-icon {
    background: #fff5d8;
    color: #b17d00;
}

.department-card:nth-child(7) .department-icon {
    background: #f3e9ff;
    color: #8655ad;
}

.department-card:nth-child(8) .department-icon {
    background: #e8f7f1;
    color: #1b8b71;
}

.department-card h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1rem, 1.5vw + 0.7rem, 1.25rem);
    line-height: 1.35;
    margin: auto 0 1rem;
    max-width: 15rem;
    position: relative;
    z-index: 1;
}

.department-card span:not(.department-icon) {
    color: var(--teal);
    font-size: .82rem;
    font-weight: 800;
}

.feature-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
}

.feature-panel {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    padding: 1.25rem;
}

.feature-panel-header {
    align-items: center;
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    margin-bottom: .5rem;
    padding-bottom: .95rem;
}

.feature-panel h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.35rem;
    letter-spacing: -.04em;
    margin: 0;
}

.news-list {
    display: grid;
}

.news-row {
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: .65rem;
    grid-template-columns: 3.4rem 1fr;
    padding: 1rem 0;
}

.news-row:last-child {
    border-bottom: 0;
}

.news-date {
    color: var(--teal);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.news-row h3 {
    color: var(--ink);
    font-size: .94rem;
    line-height: 1.38;
    margin: 0;
}

.news-row:hover h3 {
    color: var(--teal);
}

.notice-list {
    display: grid;
    gap: .65rem;
}

.notice-row {
    align-items: center;
    background: var(--mist);
    border: 1px solid transparent;
    border-radius: .85rem;
    display: grid;
    gap: .75rem;
    grid-template-columns: 3.2rem 1fr;
    padding: .75rem;
    transition: background .2s, border-color .2s;
}

.notice-row:hover {
    background: var(--paper);
    border-color: var(--line);
}

.notice-day {
    align-items: center;
    background: var(--paper);
    border-radius: .65rem;
    color: var(--navy);
    display: flex;
    flex-direction: column;
    font-family: var(--display-font);
    font-size: 1.25rem;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    min-height: 3.25rem;
}

.notice-day small {
    color: var(--teal);
    font-family: var(--public-font);
    font-size: .58rem;
    letter-spacing: .08em;
    margin-top: .25rem;
    text-transform: uppercase;
}

.notice-row h3 {
    color: var(--ink);
    font-size: .86rem;
    line-height: 1.35;
    margin: 0;
}

.event-section {
    background: var(--navy-deep);
    color: var(--paper);
}

.event-section .section-heading {
    color: var(--paper);
}

.event-section .section-copy {
    color: rgba(255, 255, 255, .7);
}

.event-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

.event-card {
    background: var(--paper);
    border-radius: 1rem;
    color: var(--ink);
    min-height: 15rem;
    overflow: hidden;
    padding: 1.25rem;
    position: relative;
}

.event-card::before {
    background: linear-gradient(145deg, rgba(11, 131, 120, .16), transparent);
    content: '';
    inset: 0;
    position: absolute;
}

.event-card>* {
    position: relative;
}

.event-date {
    color: var(--teal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.event-card h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.2rem;
    line-height: 1.25;
    margin: 1.5rem 0 .85rem;
}

.event-meta {
    color: var(--ink-soft);
    font-size: .82rem;
}

.event-link {
    bottom: 1.1rem;
    color: var(--teal);
    font-size: .82rem;
    font-weight: 800;
    left: 1.25rem;
    position: absolute;
}

.admissions-band {
    background: linear-gradient(115deg, var(--teal), var(--navy));
    color: var(--paper);
}

.admissions-grid {
    align-items: center;
    display: grid;
    gap: 1.5rem;
    padding: 3.5rem 0;
}

.admissions-band h2 {
    font-family: var(--display-font);
    font-size: clamp(1.75rem, 4vw, 2.8rem);
    letter-spacing: -.05em;
    line-height: 1.1;
    margin: .65rem 0 0;
}

.admissions-band p {
    color: rgba(255, 255, 255, .78);
    margin: 1rem 0 0;
    max-width: 34rem;
}

.site-footer {
    background: #06182c;
    color: rgba(255, 255, 255, .68);
    padding: 3.5rem 0 1.25rem;
}

.footer-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

.footer-brand .brand {
    color: var(--paper);
}

.footer-brand .brand-tagline {
    color: rgba(255, 255, 255, .55);
}

.footer-copy {
    font-size: .88rem;
    line-height: 1.7;
    margin: 1rem 0 0;
    max-width: 18rem;
}

.footer-heading {
    color: var(--paper);
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .08em;
    margin: 0 0 1rem;
    text-transform: uppercase;
}

.footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-links li+li {
    margin-top: .6rem;
}

.footer-links a {
    color: rgba(255, 255, 255, .66);
    font-size: .88rem;
}

.footer-links a:hover {
    color: #ffd184;
}

.footer-contact {
    font-size: .87rem;
    line-height: 1.65;
    margin: 0;
}

.footer-bottom {
    align-items: center;
    border-color: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .47);
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: space-between;
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    text-align: left;
}

.footer-bottom a {
    color: inherit;
    font-size: .8rem;
}

.back-to-top {
    background: var(--amber);
    border: 0;
    border-radius: 50%;
    bottom: 1rem;
    box-shadow: var(--public-shadow);
    color: var(--navy-deep);
    font-size: 1.1rem;
    height: 3rem;
    position: fixed;
    right: 1rem;
    width: 3rem;
    z-index: 80;
}

@media (min-width: 640px) {
    .public-container {
        width: min(100% - 3rem, 76rem);
    }

    .brand-logo {
        height: 4rem;
        width: 4rem;
    }

    .brand-name {
        font-size: 1.15rem;
    }

    .brand-tagline {
        font-size: .61rem;
    }

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

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

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

@media (min-width: 900px) {
    .public-container {
        width: min(100% - 4rem, 76rem);
    }

    .desktop-nav {
        display: flex;
    }

    .menu-toggle {
        display: none;
    }

    .mobile-menu {
        display: none;
    }

    .home-hero,
    .home-hero-content {
        min-height: 41rem;
    }

    .home-hero-copy {
        padding: 7rem 0 8rem;
    }

    .stats-wrap {
        margin-top: -3.5rem;
    }

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

    .stat-item,
    .stat-item:nth-last-child(-n+2) {
        border-bottom: 0;
    }

    .stat-item:nth-child(2n) {
        border-right: 1px solid var(--line);
    }

    .stat-item:last-child {
        border-right: 0;
    }

    .home-section {
        padding: 6rem 0;
    }

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

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

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

    .admissions-grid {
        grid-template-columns: 1.3fr auto;
        padding: 4.5rem 0;
    }

    .footer-grid {
        grid-template-columns: 1.5fr .8fr .8fr 1.2fr;
    }
}

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

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

.mobile-menu {
    background: rgba(6, 24, 44, .98);
    color: var(--paper);
    inset: 0;
    max-height: none;
    overflow-y: auto;
    padding: 1.5rem 0 2rem;
    position: fixed;
    top: 0;
    z-index: 150;
}

.fullscreen-menu-inner {
    min-height: 100%;
    padding-top: 5.5rem;
}

.fullscreen-menu-heading {
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
}

.fullscreen-menu-heading .eyebrow {
    color: #ffd184;
}

.fullscreen-menu-heading p {
    color: rgba(255, 255, 255, .65);
    margin: .75rem 0 0;
    max-width: 30rem;
}

.fullscreen-menu-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}

.fullscreen-menu-grid section {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    padding-bottom: 1.25rem;
}

.fullscreen-menu-grid h2 {
    color: #ffd184;
    font-family: var(--display-font);
    font-size: 1.05rem;
    letter-spacing: -.03em;
    margin: 0 0 .65rem;
}

.mobile-menu .fullscreen-menu-grid a,
.mobile-menu .fullscreen-menu-grid button {
    background: transparent;
    border: 0;
    border-bottom: 0;
    color: rgba(255, 255, 255, .85);
    cursor: pointer;
    display: block;
    font-family: var(--public-font);
    font-size: .9rem;
    font-weight: 600;
    padding: .38rem 0;
    text-align: left;
    width: 100%;
}

.mobile-menu .fullscreen-menu-grid a:hover,
.mobile-menu .fullscreen-menu-grid button:hover {
    color: #ffd184;
}

.fullscreen-menu-bottom {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.4rem;
    padding: 1.5rem 0 0;
}

.mobile-menu .fullscreen-menu-bottom>a:not(.public-btn) {
    border: 0;
    color: rgba(255, 255, 255, .75);
    font-size: .85rem;
    font-weight: 700;
    padding: 0;
}

.quick-links-section {
    background: var(--paper);
    padding: 3rem 0;
}

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

.quick-link {
    align-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: .95rem;
    color: var(--navy);
    display: flex;
    flex-direction: column;
    font-size: .78rem;
    font-weight: 800;
    gap: .6rem;
    justify-content: center;
    min-height: 6.2rem;
    padding: .8rem;
    text-align: center;
    transition: transform .2s ease, background .2s ease;
}

.quick-link:hover {
    background: var(--teal-soft);
    transform: translateY(-3px);
}

.quick-link-icon {
    align-items: center;
    background: var(--paper);
    border-radius: .65rem;
    color: var(--teal);
    display: flex;
    font-size: 1.3rem;
    height: 2.4rem;
    justify-content: center;
    width: 2.4rem;
}

.accreditation-section {
    background: linear-gradient(130deg, #061b34, #0d5576 58%, #087d79);
    overflow: hidden;
    position: relative;
}

.accreditation-section::before {
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: '';
    height: 38rem;
    position: absolute;
    right: -17rem;
    top: -24rem;
    width: 38rem;
}

.accreditation-section::after {
    color: rgba(255, 255, 255, .035);
    content: 'QUALITY';
    font-family: var(--display-font);
    font-size: clamp(7rem, 18vw, 16rem);
    font-weight: 800;
    letter-spacing: -.1em;
    position: absolute;
    right: -1rem;
    top: 4rem;
}

.accreditation-showcase {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
    position: relative;
    z-index: 1;
}

.accreditation-intro {
    color: var(--paper);
    padding: .5rem 0;
}

.accreditation-intro .eyebrow {
    color: #ffd184;
}

.accreditation-intro h2 {
    font-family: var(--display-font);
    font-size: clamp(2.4rem, 5vw, 4.2rem);
    letter-spacing: -.065em;
    line-height: .95;
    margin: .8rem 0;
}

.accreditation-intro h2 span {
    color: #ffd184;
}

.accreditation-intro p {
    color: rgba(255, 255, 255, .72);
    font-size: .95rem;
    line-height: 1.65;
    margin: 0 0 1.35rem;
    max-width: 31rem;
}

.naac-grade-card {
    align-items: center;
    background: linear-gradient(145deg, #f4ab28, #e77721);
    border: 1px solid rgba(255, 255, 255, .4);
    border-radius: 1.15rem;
    box-shadow: 0 18px 35px rgba(0, 0, 0, .18);
    color: var(--navy-deep);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 15rem;
    padding: 1.4rem;
    position: relative;
    text-align: center;
}

.naac-grade-card::before {
    border: 1px solid rgba(8, 31, 58, .22);
    border-radius: 50%;
    content: '';
    height: 11rem;
    position: absolute;
    width: 11rem;
}

.naac-grade-card>* {
    position: relative;
}

.naac-grade-card>span {
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.naac-grade-card>strong {
    font-family: var(--display-font);
    font-size: 1.35rem;
    letter-spacing: -.05em;
    margin-top: .3rem;
}

.naac-grade {
    align-items: center;
    display: flex;
    gap: .35rem;
    line-height: 1;
    margin: .2rem 0;
}

.naac-grade b {
    font-family: var(--display-font);
    font-size: 5.5rem;
    letter-spacing: -.12em;
}

.naac-grade span {
    font-size: 1rem;
    font-weight: 800;
    transform: translateY(1rem);
}

.naac-grade-card small {
    font-size: .7rem;
    font-weight: 700;
}

.accreditation-grid {
    display: grid;
    gap: .8rem;
    grid-template-columns: 1fr;
}

.accreditation-card {
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(255, 255, 255, .4);
    border-radius: .9rem;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .15);
    min-height: 11.5rem;
    padding: 1.1rem;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
}

.accreditation-card:hover {
    box-shadow: 0 20px 32px rgba(0, 0, 0, .22);
    transform: translateY(-5px);
}

.accreditation-card strong {
    color: var(--navy-deep);
    display: block;
    font-family: var(--display-font);
    font-size: 1.1rem;
    letter-spacing: -.04em;
    margin: 1rem 0 .45rem;
}

.accreditation-card span {
    color: var(--ink-soft);
    font-size: .78rem;
    line-height: 1.45;
}

.accreditation-card .quality-number {
    color: #db7d00;
    font-family: var(--display-font);
    font-size: 1.45rem;
    font-weight: 800;
}

.accreditation-card em {
    bottom: 1rem;
    color: var(--teal);
    font-size: .72rem;
    font-style: normal;
    font-weight: 800;
    position: absolute;
}

@media (min-width: 640px) {
    .accreditation-showcase {
        grid-template-columns: 1fr .6fr;
    }

    .accreditation-grid {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .accreditation-showcase {
        align-items: center;
        column-gap: 4rem;
        grid-template-columns: 1fr .55fr;
    }

    .accreditation-grid {
        margin-top: 1.25rem;
    }
}


.leadership-grid {
    align-items: center;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

.leadership-image {
    background: linear-gradient(145deg, var(--navy), var(--teal));
    border-radius: var(--round);
    min-height: 19rem;
    overflow: hidden;
    position: relative;
}

.leadership-image img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    opacity: .78;
    position: absolute;
    width: 100%;
}

.leadership-image span {
    background: rgba(6, 24, 44, .65);
    bottom: 0;
    color: var(--paper);
    font-family: var(--display-font);
    font-size: 1.05rem;
    left: 0;
    padding: 1rem 1.25rem;
    position: absolute;
    right: 0;
}

.principal-quote {
    border-left: 3px solid var(--amber);
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.8;
    margin: 1.25rem 0 1.75rem;
    padding-left: 1.1rem;
}

.testimonial-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
    margin-top: 2rem;
}

.testimonial-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1.25rem;
}

.testimonial-card blockquote {
    color: var(--ink-soft);
    font-size: .95rem;
    line-height: 1.7;
    margin: 0;
}

.testimonial-card blockquote::before {
    color: var(--amber);
    content: '“';
    font-family: Georgia, serif;
    font-size: 2.3rem;
    line-height: .3;
    margin-right: .25rem;
    vertical-align: -.35em;
}

.testimonial-person {
    align-items: center;
    display: flex;
    gap: .75rem;
    margin-top: 1.25rem;
}

.testimonial-avatar {
    align-items: center;
    background: var(--teal-soft);
    border-radius: 50%;
    color: var(--teal);
    display: flex;
    font-family: var(--display-font);
    font-size: .75rem;
    font-weight: 800;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.testimonial-person strong,
.testimonial-person span {
    display: block;
}

.testimonial-person strong {
    color: var(--navy);
    font-size: .85rem;
}

.testimonial-person span {
    color: var(--ink-soft);
    font-size: .73rem;
    margin-top: .12rem;
}

.ai-discovery {
    background: var(--navy-deep);
    color: var(--paper);
}

.ai-discovery .section-heading {
    color: var(--paper);
}

.ai-discovery .section-copy {
    color: rgba(255, 255, 255, .7);
}

.ai-tools {
    display: grid;
    gap: .8rem;
    grid-template-columns: 1fr;
    margin-top: 2rem;
}

.ai-tool {
    align-items: center;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 1rem;
    color: var(--paper);
    cursor: pointer;
    display: flex;
    font-family: var(--public-font);
    font-weight: 800;
    gap: .75rem;
    min-height: 4.5rem;
    padding: 1rem;
    text-align: left;
}

.ai-tool:hover {
    background: rgba(255, 255, 255, .14);
}

.ai-tool-icon {
    align-items: center;
    background: rgba(237, 155, 33, .2);
    border-radius: .65rem;
    color: #ffd184;
    display: flex;
    font-size: 1.2rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.chat-launcher {
    align-items: center;
    background: var(--teal);
    border: 0;
    border-radius: 999px;
    bottom: 1rem;
    box-shadow: var(--public-shadow);
    color: var(--paper);
    cursor: pointer;
    display: flex;
    font-family: var(--public-font);
    font-size: .82rem;
    font-weight: 800;
    gap: .45rem;
    min-height: 3rem;
    padding: 0 1rem;
    position: fixed;
    right: 4.7rem;
    z-index: 80;
}

.chat-panel {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    bottom: 1rem;
    box-shadow: var(--public-shadow);
    overflow: hidden;
    position: fixed;
    right: 1rem;
    width: min(calc(100vw - 2rem), 23rem);
    z-index: 220;
}

.chat-panel-header {
    align-items: center;
    background: var(--navy);
    color: var(--paper);
    display: flex;
    justify-content: space-between;
    padding: 1rem;
}

.chat-panel-header strong {
    font-family: var(--display-font);
    font-size: .95rem;
}

.chat-panel-header button {
    background: transparent;
    border: 0;
    color: var(--paper);
    cursor: pointer;
    font-size: 1.2rem;
}

.chat-messages {
    background: var(--mist);
    display: grid;
    gap: .7rem;
    max-height: 17rem;
    min-height: 11rem;
    overflow-y: auto;
    padding: 1rem;
}

.chat-message {
    border-radius: .8rem;
    font-size: .85rem;
    line-height: 1.5;
    margin: 0;
    padding: .7rem .8rem;
}

.chat-message-assistant {
    background: var(--paper);
    color: var(--ink);
    justify-self: start;
}

.chat-message-assistant p {
    margin: 0;
}

.chat-message-sources {
    border-top: 1px solid var(--line);
    display: grid;
    gap: .3rem;
    list-style: none;
    margin: .6rem 0 0;
    padding: .5rem 0 0;
}

.chat-message-sources a {
    color: var(--teal);
    font-size: .78rem;
    text-decoration: underline;
    word-break: break-word;
}

.chat-message-user {
    background: var(--teal);
    color: var(--paper);
    justify-self: end;
}

.chat-form {
    display: flex;
    gap: .5rem;
    padding: .75rem;
}

.chat-form input {
    border: 1px solid var(--line);
    border-radius: .65rem;
    flex: 1;
    min-width: 0;
    padding: .65rem .7rem;
}

.chat-form button {
    background: var(--amber);
    border: 0;
    border-radius: .65rem;
    color: var(--navy-deep);
    cursor: pointer;
    font-weight: 800;
    padding: .65rem .8rem;
}

@media (min-width: 640px) {
    .fullscreen-menu-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

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

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

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

@media (min-width: 900px) {
    .mobile-menu {
        padding-top: 2rem;
    }

    .fullscreen-menu-inner {
        padding-top: 5rem;
    }

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

    .quick-links-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .leadership-grid {
        grid-template-columns: .8fr 1.2fr;
    }

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

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

.mobile-menu:not([hidden]) {
    display: block;
}

.directory-hero {
    background: linear-gradient(115deg, rgba(7, 31, 57, .97), rgba(11, 131, 120, .9)), url('https://images.unsplash.com/photo-1541339907198-e08756dedf3f?auto=format&fit=crop&w=1800&q=85') center/cover;
    color: var(--paper);
    padding: 5rem 0 4.5rem;
}

.directory-hero h1 {
    font-family: var(--display-font);
    font-size: clamp(2.25rem, 6vw, 4.5rem);
    letter-spacing: -.065em;
    line-height: 1;
    margin: .9rem 0;
    max-width: 42rem;
}

.directory-hero p {
    color: rgba(255, 255, 255, .76);
    font-size: 1.03rem;
    line-height: 1.7;
    margin: 0;
    max-width: 38rem;
}

.faculty-directory-section {
    background: var(--mist);
    padding: 2.5rem 0 5rem;
}

.faculty-filters {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    box-shadow: var(--public-shadow-sm);
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.faculty-filters label>span {
    color: var(--ink-soft);
    display: block;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    margin-bottom: .35rem;
    text-transform: uppercase;
}

.faculty-filters input[type='search'],
.faculty-filters select {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: .65rem;
    color: var(--ink);
    min-height: 2.8rem;
    padding: .65rem .75rem;
    width: 100%;
}

.faculty-leadership-filter {
    align-items: center;
    display: flex;
    gap: .5rem;
    padding-top: 1.15rem;
}

.faculty-leadership-filter input {
    accent-color: var(--teal);
    height: 1rem;
    width: 1rem;
}

.faculty-leadership-filter>span {
    margin: 0 !important;
    text-transform: none !important;
}

.faculty-filter-actions {
    display: flex;
    gap: .6rem;
}

.faculty-filter-actions .public-btn {
    flex: 1;
}

.faculty-directory-meta {
    align-items: center;
    display: flex;
    font-size: .88rem;
    justify-content: space-between;
    margin: 2rem 0 1rem;
}

.faculty-directory-meta p {
    color: var(--ink-soft);
    margin: 0;
}

.faculty-directory-meta a {
    color: var(--teal);
    font-weight: 800;
}

.faculty-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

.faculty-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    overflow: hidden;
    transition: box-shadow .25s ease, transform .25s ease;
}

.faculty-card:hover {
    box-shadow: var(--public-shadow);
    transform: translateY(-4px);
}

.faculty-card-image {
    background: var(--teal-soft);
    display: block;
    height: 17rem;
    overflow: hidden;
}

.faculty-card-image img {
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.faculty-card:hover .faculty-card-image img {
    transform: scale(1.04);
}

.faculty-card-body {
    min-height: 15rem;
    padding: 1.2rem;
}

.faculty-role-badge {
    background: var(--teal-soft);
    border-radius: 999px;
    color: var(--teal);
    display: inline-block;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .05em;
    margin-bottom: .7rem;
    padding: .35rem .6rem;
    text-transform: uppercase;
}

.faculty-department {
    color: var(--teal);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    margin: 0 0 .55rem;
    text-transform: uppercase;
}

.faculty-card h2 {
    font-family: var(--display-font);
    font-size: 1.25rem;
    letter-spacing: -.04em;
    line-height: 1.2;
    margin: 0;
}

.faculty-card h2 a {
    color: var(--navy-deep);
}

.faculty-designation {
    color: var(--ink);
    font-size: .86rem;
    font-weight: 700;
    margin: .5rem 0;
}

.faculty-specialisation {
    color: var(--ink-soft);
    font-size: .82rem;
    line-height: 1.5;
    margin: 0;
}

.faculty-profile-link {
    color: var(--teal);
    display: inline-block;
    font-size: .84rem;
    font-weight: 800;
    margin-top: 1.1rem;
}

.faculty-empty-state {
    background: var(--paper);
    border: 1px dashed var(--line);
    border-radius: var(--round);
    grid-column: 1 / -1;
    padding: 3rem 1rem;
    text-align: center;
}

.faculty-empty-state h2 {
    font-family: var(--display-font);
    margin: 0;
}

.faculty-empty-state p {
    color: var(--ink-soft);
    margin: .5rem 0 1rem;
}

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

.faculty-profile-hero {
    background: linear-gradient(120deg, var(--navy-deep), var(--navy));
    color: var(--paper);
    padding: 2.5rem 0;
}

.faculty-profile-hero-grid {
    align-items: center;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}

.faculty-profile-photo {
    border: 4px solid rgba(255, 255, 255, .16);
    border-radius: 1rem;
    height: 18rem;
    overflow: hidden;
    width: min(100%, 19rem);
}

.faculty-profile-photo img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.profile-back-link {
    color: #ffd184;
    display: inline-block;
    font-size: .85rem;
    font-weight: 800;
    margin-bottom: 1.25rem;
}

.faculty-profile-hero .faculty-department {
    color: #80d9d1;
}

.faculty-profile-hero h1 {
    font-family: var(--display-font);
    font-size: clamp(2.2rem, 5vw, 4rem);
    letter-spacing: -.06em;
    line-height: 1;
    margin: .55rem 0;
}

.profile-designation {
    color: var(--paper);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
}

.profile-specialisation {
    color: rgba(255, 255, 255, .7);
    line-height: 1.6;
    margin: .8rem 0 0;
    max-width: 38rem;
}

.profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.4rem;
}

.faculty-profile-content {
    padding: 4rem 0 5rem;
}

.faculty-profile-layout {
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr;
}

.faculty-profile-bio h2,
.profile-information-card h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.55rem;
    letter-spacing: -.045em;
    margin: .75rem 0 1rem;
}

.profile-prose,
.profile-focus {
    color: var(--ink-soft);
    line-height: 1.8;
}

.profile-prose p:first-child {
    margin-top: 0;
}

.profile-focus {
    background: var(--teal-soft);
    border-radius: .9rem;
    padding: 1rem;
}

.faculty-profile-aside {
    display: grid;
    gap: 1rem;
}

.profile-information-card {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1.2rem;
}

.profile-information-card h2 {
    font-size: 1.1rem;
    margin-top: 0;
}

.profile-information-card dl {
    margin: 0;
}

.profile-information-card dl div {
    border-top: 1px solid var(--line);
    padding: .75rem 0;
}

.profile-information-card dl div:first-child {
    border-top: 0;
    padding-top: 0;
}

.profile-information-card dt {
    color: var(--ink-soft);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.profile-information-card dd {
    color: var(--navy);
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.5;
    margin: .25rem 0 0;
}

.profile-information-card a {
    color: var(--teal);
    font-size: .88rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.profile-information-card p {
    color: var(--ink-soft);
    font-size: .88rem;
    margin: .6rem 0 0;
}

@media (min-width: 640px) {
    .faculty-filters {
        grid-template-columns: 1.5fr 1fr;
        padding: 1.25rem;
    }

    .faculty-filter-actions {
        grid-column: span 2;
        justify-content: flex-end;
    }

    .faculty-filter-actions .public-btn {
        flex: 0 0 auto;
    }

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

    .faculty-profile-hero-grid {
        grid-template-columns: 19rem 1fr;
    }
}

@media (min-width: 900px) {
    .faculty-directory-section {
        padding: 3rem 0 6rem;
    }

    .faculty-filters {
        align-items: end;
        grid-template-columns: 1.5fr 1fr 1fr auto;
    }

    .faculty-filter-actions {
        grid-column: auto;
    }

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

    .faculty-profile-hero {
        padding: 4rem 0;
    }

    .faculty-profile-layout {
        grid-template-columns: minmax(0, 1.5fr) minmax(17rem, .7fr);
    }
}

@media (min-width: 1440px) {
    .public-container {
        width: min(100% - 8rem, 94rem);
    }

    .header-main {
        min-height: 5.25rem;
    }

    .brand-logo {
        height: 4.5rem;
        width: 4.5rem;
    }

    .brand-name {
        font-size: 1.3rem;
    }

    .brand-tagline {
        font-size: .66rem;
        max-width: 35rem;
    }

    .desktop-nav {
        gap: .35rem;
    }

    .desktop-nav a {
        font-size: .88rem;
        padding-inline: .72rem;
    }

    .home-hero,
    .home-hero-content {
        min-height: 45rem;
    }

    .home-hero-copy {
        max-width: 48rem;
    }

    .home-section {
        padding-block: 7rem;
    }

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

    .feature-grid {
        gap: 1.75rem;
    }

    .event-grid {
        gap: 1.25rem;
    }

    .faculty-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .faculty-card-image {
        height: 18.5rem;
    }

    .faculty-profile-layout {
        grid-template-columns: minmax(0, 1.65fr) minmax(20rem, .65fr);
        gap: 3rem;
    }
}

.faculty-placeholder {
    align-items: center;
    background: linear-gradient(145deg, #f4f7fa, #dce5ed);
    display: flex;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

.faculty-placeholder::after {
    background: radial-gradient(circle, rgba(20, 35, 59, .13), transparent 68%);
    bottom: -4rem;
    content: '';
    height: 11rem;
    position: absolute;
    width: 13rem;
}

.faculty-placeholder-halo {
    background: rgba(255, 255, 255, .68);
    border: 1px solid rgba(255, 255, 255, .85);
    border-radius: 50%;
    box-shadow: 0 14px 28px rgba(18, 57, 95, .08);
    height: 9rem;
    position: absolute;
    top: 15%;
    width: 9rem;
}

.faculty-placeholder-head {
    background: linear-gradient(145deg, #94a5b8, #6b7e92);
    border-radius: 50%;
    box-shadow: 0 8px 13px rgba(20, 35, 59, .17);
    height: 4rem;
    position: absolute;
    top: 22%;
    width: 4rem;
    z-index: 1;
}

.faculty-placeholder-body {
    background: linear-gradient(145deg, #6c8197, #40566e);
    border-radius: 50% 50% 0 0;
    bottom: -1rem;
    height: 9rem;
    position: absolute;
    width: 11rem;
    z-index: 1;
}

.faculty-placeholder-initials {
    align-items: center;
    background: var(--paper);
    border: 1px solid rgba(20, 35, 59, .08);
    border-radius: 999px;
    bottom: 1rem;
    box-shadow: 0 4px 12px rgba(20, 35, 59, .11);
    color: var(--navy);
    display: flex;
    font-family: var(--display-font);
    font-size: .74rem;
    font-weight: 800;
    height: 2.2rem;
    justify-content: center;
    letter-spacing: .04em;
    position: absolute;
    width: 2.2rem;
    z-index: 2;
}

.faculty-card-image.faculty-placeholder {
    height: 17rem;
}

.faculty-card:hover .faculty-card-image img {
    transform: none;
}

.faculty-profile-hero {
    background: var(--navy-deep);
    padding: 0;
}

.faculty-profile-hero-grid {
    gap: 0;
    grid-template-columns: 1fr;
    min-height: 0;
}

.faculty-profile-photo.faculty-placeholder {
    border: 0;
    border-radius: 0;
    height: 19rem;
    margin: 0;
    max-width: none;
    width: 100%;
}

.faculty-profile-photo .faculty-placeholder-halo {
    height: 12rem;
    top: 10%;
    width: 12rem;
}

.faculty-profile-photo .faculty-placeholder-head {
    height: 5.5rem;
    top: 18%;
    width: 5.5rem;
}

.faculty-profile-photo .faculty-placeholder-body {
    height: 12rem;
    width: 15rem;
}

.faculty-profile-photo .faculty-placeholder-initials {
    bottom: 1.25rem;
}

.faculty-profile-intro {
    padding: 2.3rem 0 3rem;
}

.faculty-profile-hero .faculty-role-badge {
    background: rgba(128, 217, 209, .16);
    color: #a5eee8;
}

.profile-qualification {
    color: rgba(255, 255, 255, .72);
    font-size: .92rem;
    font-style: italic;
    margin: .55rem 0 0;
}

.profile-email {
    color: #ffd184;
    display: inline-block;
    font-size: .88rem;
    font-weight: 700;
    margin-top: 1.2rem;
}

.faculty-profile-content {
    background: var(--paper);
    padding: 2rem 0 5rem;
}

.faculty-profile-layout {
    align-items: start;
    grid-template-columns: 1fr;
}

.profile-section-nav {
    border: 1px solid var(--navy);
    display: grid;
}

.profile-section-nav a {
    align-items: center;
    border-bottom: 1px solid var(--navy);
    color: var(--navy-deep);
    display: flex;
    font-size: .86rem;
    font-weight: 800;
    justify-content: space-between;
    padding: .9rem 1rem;
}

.profile-section-nav a:first-child {
    background: var(--navy-deep);
    color: var(--paper);
}

.profile-section-nav a:last-child {
    border-bottom: 0;
}

.profile-section-nav a span {
    font-size: 1.45rem;
    font-weight: 400;
    line-height: 1;
}

.faculty-profile-aside {
    gap: 1.2rem;
}

.faculty-profile-bio {
    max-width: 49rem;
}

.profile-content-section {
    border-bottom: 1px solid var(--line);
    padding: 1.6rem 0;
    scroll-margin-top: 7rem;
}

.profile-content-section:first-child {
    padding-top: .5rem;
}

.profile-content-section:last-child {
    border-bottom: 0;
}

.profile-content-section h2 {
    font-size: 1.25rem;
    margin: 0 0 .85rem;
}

.profile-focus {
    margin: 0;
}

@media (min-width: 640px) {
    .faculty-profile-hero-grid {
        grid-template-columns: 15rem 1fr;
    }

    .faculty-profile-photo.faculty-placeholder {
        height: 24rem;
    }

    .faculty-profile-intro {
        padding: 3rem 0 3rem 2.2rem;
    }
}

@media (min-width: 900px) {
    .faculty-profile-hero-grid {
        grid-template-columns: 18rem 1fr;
    }

    .faculty-profile-photo.faculty-placeholder {
        height: 27rem;
    }

    .faculty-profile-intro {
        padding: 4.2rem 0 4rem 3rem;
    }

    .faculty-profile-layout {
        grid-template-columns: 15rem minmax(0, 1fr);
        gap: 3.2rem;
    }

    .faculty-profile-aside {
        position: sticky;
        top: 7rem;
    }
}

.stats-wrap {
    background: linear-gradient(100deg, var(--navy-deep), #0c5376 58%, var(--teal));
    border-radius: var(--round);
    box-shadow: 0 20px 40px rgba(4, 29, 55, .3);
    overflow: hidden;
}

.stats-grid {
    background: linear-gradient(115deg, #092847, #0c5a7d 62%, #087f78);
    border: 1px solid rgba(255, 255, 255, .16);
}

.stat-item {
    background: linear-gradient(145deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .015));
    border-color: rgba(255, 255, 255, .18);
    padding-block: 1.55rem;
    position: relative;
}

.stat-item::before {
    background: #f5ac2c;
    border-radius: 999px;
    content: '';
    height: .35rem;
    left: 50%;
    opacity: .9;
    position: absolute;
    top: .65rem;
    transform: translateX(-50%);
    width: .35rem;
}

.stat-item:nth-child(2n)::before {
    background: #65dbce;
}

.stat-value {
    color: #ffe0a8;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .18);
}

.stat-label {
    color: rgba(255, 255, 255, .8);
}

.quick-links-section {
    background: linear-gradient(145deg, #fff9ed, #ecfbf7 58%, #f3f5ff);
    position: relative;
}

.quick-links-section::before {
    color: rgba(8, 89, 111, .05);
    content: 'SCCZ';
    font-family: var(--display-font);
    font-size: clamp(6rem, 17vw, 15rem);
    font-weight: 800;
    left: 50%;
    letter-spacing: -.1em;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

.quick-links-section .public-container {
    position: relative;
}

.quick-link {
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 10px 24px rgba(15, 60, 84, .07);
    min-height: 7rem;
}

.quick-link:nth-child(2) .quick-link-icon {
    background: #fff0db;
    color: #df7d00;
}

.quick-link:nth-child(3) .quick-link-icon {
    background: #e8edff;
    color: #4a5ac8;
}

.quick-link:nth-child(4) .quick-link-icon {
    background: #ffe9ed;
    color: #d44a64;
}

.quick-link:nth-child(5) .quick-link-icon {
    background: #e6f8f2;
    color: #168d75;
}

.quick-link:nth-child(6) .quick-link-icon {
    background: #f5eafe;
    color: #8350aa;
}

.campus-experience-section {
    background: #fffdf8;
    overflow: hidden;
    position: relative;
}

.campus-experience-section::before {
    background: linear-gradient(145deg, rgba(255, 198, 86, .19), transparent 60%);
    border-radius: 50%;
    content: '';
    height: 35rem;
    left: -19rem;
    position: absolute;
    top: -15rem;
    width: 35rem;
}

.campus-experience-grid {
    align-items: center;
    display: grid;
    gap: 2.2rem;
    grid-template-columns: 1fr;
    position: relative;
}

.campus-experience-copy .section-heading span {
    color: #df7d00;
}

.experience-points {
    display: grid;
    gap: .75rem;
    margin-top: 1.6rem;
}

.experience-points>div {
    align-items: center;
    background: var(--paper);
    border: 1px solid #f1e5d2;
    border-radius: .85rem;
    box-shadow: 0 9px 24px rgba(77, 55, 18, .06);
    display: flex;
    gap: .85rem;
    padding: .8rem;
}

.experience-points>div:nth-child(2) {
    margin-left: .8rem;
}

.experience-points>div:nth-child(3) {
    margin-left: 1.6rem;
}

.experience-icon {
    align-items: center;
    background: #fff0dc;
    border-radius: .7rem;
    color: #e58300;
    display: flex;
    flex: 0 0 auto;
    font-size: 1.15rem;
    height: 2.6rem;
    justify-content: center;
    width: 2.6rem;
}

.experience-points p {
    margin: 0;
}

.experience-points strong,
.experience-points small {
    display: block;
}

.experience-points strong {
    color: var(--navy);
    font-size: .84rem;
}

.experience-points small {
    color: var(--ink-soft);
    font-size: .72rem;
    line-height: 1.4;
    margin-top: .15rem;
}

.campus-visual-grid {
    display: grid;
    gap: .65rem;
    grid-template-columns: 1fr 1fr;
}

.campus-visual {
    border-radius: 1rem;
    min-height: 10rem;
    overflow: hidden;
    position: relative;
}

.campus-visual-large {
    grid-column: span 2;
    min-height: 14rem;
}

.campus-visual::after {
    background: linear-gradient(0deg, rgba(4, 24, 44, .85), transparent 63%);
    content: '';
    inset: 0;
    position: absolute;
}

.campus-visual img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transition: transform .4s ease;
    width: 100%;
}

.campus-visual:hover img {
    transform: scale(1.06);
}

.campus-visual span {
    bottom: .85rem;
    color: var(--paper);
    font-family: var(--display-font);
    font-size: 1rem;
    left: .9rem;
    position: absolute;
    z-index: 1;
}

.home-section-muted {
    background: linear-gradient(145deg, #f3f8ff, #f7fffc);
}

.feature-panel {
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 10px 32px rgba(14, 50, 84, .06);
}

.event-section {
    background: #081d34;
    background-image: radial-gradient(rgba(255, 209, 132, .12) 1px, transparent 1px), linear-gradient(135deg, #06182c, #0b526f);
    background-size: 16px 16px, auto;
}

.event-card {
    border: 1px solid rgba(255, 255, 255, .1);
    box-shadow: 0 12px 25px rgba(0, 0, 0, .18);
}

.event-card:nth-child(2) {
    transform: translateY(1.2rem);
}

.event-card:nth-child(3) {
    transform: translateY(.4rem);
}

.event-card:nth-child(4) {
    transform: translateY(1.6rem);
}

.event-card::before {
    background: linear-gradient(135deg, #f3a21c, #e6633f);
    content: '';
    height: .28rem;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.event-section .section-copy {
    color: rgba(255, 255, 255, .72);
}

.admissions-band {
    background: linear-gradient(125deg, #082a50, #075f82 62%, #0e9e8b);
    position: relative;
}

.admissions-band::before {
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 50%;
    content: '';
    height: 31rem;
    position: absolute;
    right: -12rem;
    top: -16rem;
    width: 31rem;
}

.admissions-band .admissions-grid {
    align-items: center;
    position: relative;
}

.admission-steps {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 1rem;
    display: grid;
    gap: .8rem;
    list-style: none;
    margin: 0;
    max-width: 29rem;
    padding: 1.15rem;
}

.admission-steps li {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    display: flex;
    gap: .75rem;
    padding-bottom: .75rem;
}

.admission-steps li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.admission-steps li>span {
    align-items: center;
    background: #ffd184;
    border-radius: 50%;
    color: var(--navy-deep);
    display: flex;
    flex: 0 0 auto;
    font-size: .69rem;
    font-weight: 900;
    height: 1.7rem;
    justify-content: center;
    width: 1.7rem;
}

.admission-steps strong,
.admission-steps small {
    display: block;
}

.admission-steps strong {
    font-size: .83rem;
}

.admission-steps small {
    color: rgba(255, 255, 255, .65);
    font-size: .7rem;
    margin-top: .15rem;
}

@media (min-width: 900px) {
    .campus-experience-grid {
        gap: 4rem;
        grid-template-columns: .9fr 1.1fr;
    }

    .campus-visual-large {
        min-height: 17rem;
    }

    .campus-visual {
        min-height: 12rem;
    }

    .admissions-grid {
        grid-template-columns: 1fr .9fr;
    }
}

@media (min-width: 1440px) {
    .campus-visual-large {
        min-height: 20rem;
    }

    .campus-visual {
        min-height: 14rem;
    }
}

.campus-life-section {
    background: linear-gradient(rgba(255, 253, 248, .95), rgba(255, 253, 248, .97)), url('https://images.unsplash.com/photo-1541339907198-e08756dedf3f?auto=format&fit=crop&w=2000&q=85') center/cover fixed;
    overflow: hidden;
    padding: 4rem 0;
    position: relative;
}

.campus-life-section::before {
    background: linear-gradient(120deg, rgba(255, 194, 78, .14), transparent 46%, rgba(0, 133, 122, .13));
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.campus-life-section::after {
    color: rgba(8, 31, 58, .055);
    content: 'CAMPUS LIFE';
    font-family: var(--display-font);
    font-size: clamp(4rem, 12vw, 11rem);
    font-weight: 800;
    left: 50%;
    letter-spacing: -.1em;
    pointer-events: none;
    position: absolute;
    top: 52%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.campus-life-section .public-container {
    position: relative;
    z-index: 1;
}

.campus-life-heading {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}

.campus-life-heading h2,
.event-section-heading h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(2.1rem, 4vw, 3.5rem);
    letter-spacing: -.06em;
    line-height: 1;
    margin: .35rem 0 0;
}

.campus-life-heading h2 span,
.event-section-heading h2 span {
    color: #e48700;
}

.campus-life-heading p {
    color: var(--ink-soft);
    font-size: .84rem;
    line-height: 1.55;
    margin: 0;
    max-width: 25rem;
}

.campus-life-rail {
    align-items: flex-start;
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2rem;
}

.campus-life-card {
    background: var(--paper);
    border: 1px solid #ecedf1;
    box-shadow: 0 13px 26px rgba(22, 42, 71, .08);
    color: var(--navy-deep);
    display: flex;
    flex-direction: column;
    min-height: 11rem;
    padding: 1rem;
    transition: transform .25s ease, background .25s ease;
}

.campus-life-card:nth-child(even) {
    margin-top: 1.4rem;
}

.campus-life-card:hover {
    background: #fff5e5;
    transform: translateY(-5px);
}

.campus-life-icon {
    align-items: center;
    background: var(--navy-deep);
    color: #ffd184;
    display: flex;
    font-size: 1.05rem;
    height: 2.15rem;
    justify-content: center;
    width: 2.15rem;
}

.campus-life-card strong {
    font-family: var(--display-font);
    font-size: 1.05rem;
    letter-spacing: -.04em;
    line-height: 1.05;
    margin-top: auto;
}

.campus-life-card small {
    color: var(--ink-soft);
    font-size: .68rem;
    line-height: 1.35;
    margin-top: .35rem;
}

.event-section {
    min-height: 32rem;
    overflow: hidden;
    padding-block: 3.5rem;
    position: relative;
}

.events-collage {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    inset: 0;
    position: absolute;
}

.events-collage::after {
    background: linear-gradient(90deg, rgba(5, 17, 31, .92), rgba(5, 17, 31, .72)), linear-gradient(0deg, rgba(3, 15, 27, .82), rgba(3, 15, 27, .17));
    content: '';
    inset: 0;
    position: absolute;
}

.events-collage img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.event-section-content {
    position: relative;
    z-index: 1;
}

.event-section-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 2.1rem;
}

.event-section-heading .eyebrow {
    color: #ffd184;
    width: 100%;
}

.event-section-heading h2 {
    color: var(--paper);
    margin: 0;
}

.event-section-heading h2 span {
    color: #f3a21c;
}

.event-section-heading .public-btn {
    font-size: .75rem;
    padding: .65rem .9rem;
}

.event-section .event-grid {
    align-items: start;
    gap: .85rem;
    grid-template-columns: 1fr;
}

.event-section .event-card {
    background: rgba(255, 255, 255, .97);
    border: 0;
    border-radius: .85rem;
    box-shadow: 0 12px 26px rgba(0, 0, 0, .24);
    color: var(--navy-deep);
    min-height: 13.5rem;
    overflow: hidden;
    padding: 0;
    position: relative;
    transform: none;
}

.event-section .event-card:nth-child(n) {
    transform: none;
}

.event-section .event-card::before {
    background: #0b5f9b;
    border-radius: 0 .45rem .45rem 0;
    height: .32rem;
    left: 0;
    right: auto;
    top: 0;
    width: 4rem;
    z-index: 2;
}

.event-card-image {
    background: #123a57;
    display: block;
    height: 7.6rem;
    overflow: hidden;
    position: relative;
}

.event-card-image::after {
    background: linear-gradient(0deg, rgba(4, 23, 42, .56), transparent);
    content: '';
    inset: 0;
    position: absolute;
}

.event-card-image img {
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.event-card:hover .event-card-image img {
    transform: scale(1.07);
}

.event-card-content {
    display: block;
    min-height: 10rem;
    padding: .9rem 1rem 1rem;
}

.event-section .event-date {
    background: #0b5f9b;
    border-radius: 0 .45rem .45rem 0;
    color: var(--paper);
    display: inline-block;
    font-size: .67rem;
    font-weight: 800;
    left: 0;
    margin: -1.55rem 0 .75rem -1rem;
    padding: .38rem .7rem;
    position: relative;
}

.event-section .event-card h3 {
    font-family: var(--display-font);
    font-size: 1rem;
    letter-spacing: -.035em;
    line-height: 1.25;
    margin: 0 0 .75rem;
}

.event-section .event-meta {
    color: var(--ink-soft);
    display: block;
    font-size: .7rem;
    margin-top: .35rem;
}

.event-section .event-link {
    color: #0b5f9b;
    display: inline-block;
    font-size: .73rem;
    font-weight: 800;
    margin-top: .75rem;
}

@media (max-width: 639px) {
    .campus-life-section {
        background-attachment: scroll;
    }
}

@media (min-width: 640px) {
    .campus-life-rail {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

@media (min-width: 900px) {
    .campus-life-section {
        padding: 5.5rem 0 6rem;
    }

    .campus-life-rail {
        gap: 1.25rem;
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .campus-life-card {
        min-height: 10.5rem;
        padding: 1.2rem;
    }

    .campus-life-card:nth-child(even) {
        margin-top: 2.5rem;
    }

    .event-section {
        min-height: 31rem;
        padding-block: 3.7rem 4.5rem;
    }

    .event-section-heading .eyebrow {
        width: auto;
    }

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

    .event-section .event-card {
        min-height: 15.5rem;
    }

    .event-section .event-card:nth-child(2) {
        transform: translateY(.7rem);
    }

    .event-section .event-card:nth-child(3) {
        transform: translateY(.2rem);
    }

    .event-section .event-card:nth-child(4) {
        transform: translateY(1rem);
    }
}

.inner-page-hero {
    background: linear-gradient(120deg, #061b34, #0b4666 62%, #087d79);
    color: var(--paper);
    overflow: hidden;
    padding: 3.1rem 0 3.35rem;
    position: relative;
}

.inner-page-hero::before {
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: '';
    height: 30rem;
    position: absolute;
    right: -12rem;
    top: -20rem;
    width: 30rem;
}

.inner-page-hero::after {
    background: radial-gradient(circle, rgba(255, 209, 132, .22) 0, transparent 67%);
    content: '';
    height: 18rem;
    position: absolute;
    right: 4%;
    top: -8rem;
    width: 18rem;
}

.inner-page-hero-content {
    left: 20px;
    position: relative;
    z-index: 1;
}

.inner-page-kicker {
    border-left: 2px solid #ffd184;
    color: #ffe0a8;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .14em;
    margin: 0;
    padding-left: .7rem;
    text-transform: uppercase;
}

.inner-page-hero h1 {
    font-family: var(--display-font);
    font-size: clamp(2.25rem, 5vw, 4.1rem);
    font-weight: 500;
    letter-spacing: -.06em;
    line-height: 1;
    margin: .8rem 0;
    max-width: 52rem;
}

.inner-page-hero p:last-child {
    color: rgba(255, 255, 255, .76);
    font-size: .98rem;
    line-height: 1.7;
    margin: 0;
    max-width: 42rem;
}

@media (min-width: 900px) {
    .inner-page-hero {
        padding: 4.35rem 0 4.6rem;
    }
}

.search-input-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.search-input-row .form-input {
    min-width: 12rem;
}

.search-voice-button {
    align-items: center;
    background: var(--teal-soft);
    border: 1px solid rgba(8, 126, 116, .2);
    border-radius: .65rem;
    color: var(--teal);
    display: inline-flex;
    font-size: .88rem;
    font-weight: 800;
    gap: .4rem;
    justify-content: center;
    min-height: 2.65rem;
    padding: .55rem .75rem;
}

.search-voice-button:hover {
    background: var(--teal);
    color: var(--paper);
}

.search-voice-button.is-listening {
    background: #d86048;
    border-color: #d86048;
    color: var(--paper);
}

.search-voice-button.is-listening::before {
    animation: voice-pulse 1s ease-in-out infinite;
    background: rgba(216, 96, 72, .2);
    border-radius: 50%;
    content: '';
    inset: -.3rem;
    position: absolute;
}

.search-voice-button.is-listening {
    position: relative;
}

.search-voice-button.is-listening>* {
    position: relative;
}

@keyframes voice-pulse {
    50% {
        transform: scale(1.18);
        opacity: 0;
    }
}

.search-voice-note {
    color: var(--ink-soft);
    font-size: .77rem;
    margin: .7rem 0 0;
}

@media (max-width: 520px) {
    .search-input-row .form-input {
        flex-basis: 100%;
    }

    .search-input-row>button {
        flex: 1;
    }
}

.programme-page {
    background: linear-gradient(180deg, var(--mist) 0, var(--mist) 20rem, var(--paper) 20rem);
    padding: 2rem 0 5rem;
}

.programme-quick-facts {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    box-shadow: var(--public-shadow-sm);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 2.5rem;
    overflow: hidden;
}

.programme-quick-facts article {
    border-bottom: 1px solid var(--line);
    border-right: 1px solid var(--line);
    display: grid;
    gap: .35rem;
    min-height: 6.75rem;
    padding: 1.15rem;
}

.programme-quick-facts article:nth-child(2n) {
    border-right: 0;
}

.programme-quick-facts article:nth-last-child(-n+2) {
    border-bottom: 0;
}

.programme-quick-facts span {
    color: var(--ink-soft);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.programme-quick-facts strong {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1rem;
    letter-spacing: -.025em;
    line-height: 1.25;
}

.programme-layout {
    display: grid;
    gap: 2rem;
}

.programme-main-content {
    min-width: 0;
}

.programme-intro {
    border-bottom: 1px solid var(--line);
    padding: .35rem 0 2.75rem;
}

.programme-intro h2,
.programme-section h2,
.programme-apply-card h2,
.programme-detail-card h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    letter-spacing: -.05em;
    line-height: 1.12;
}

.programme-intro h2 {
    font-size: clamp(2rem, 4vw, 3.45rem);
    margin: .75rem 0 1.15rem;
    max-width: 47rem;
}

.programme-intro>p:not(.eyebrow),
.programme-experience p {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.8;
    margin: 0;
    max-width: 45rem;
}

.programme-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.6rem;
}

.programme-section {
    padding: 3rem 0;
}

.programme-section+.programme-section {
    border-top: 1px solid var(--line);
}

.programme-section-heading {
    margin-bottom: 1.35rem;
}

.programme-section-heading h2 {
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    margin: .7rem 0 0;
}

.programme-subject-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: 1fr;
}

.programme-subject-grid article {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    min-height: 11.5rem;
    padding: 1.25rem;
    position: relative;
    transition: box-shadow .2s ease, transform .2s ease;
}

.programme-subject-grid article:hover {
    box-shadow: var(--public-shadow-sm);
    transform: translateY(-3px);
}

.programme-subject-grid article>span {
    color: var(--amber);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.programme-subject-grid h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.1rem;
    letter-spacing: -.03em;
    margin: 1.2rem 0 .5rem;
}

.programme-subject-grid p {
    color: var(--ink-soft);
    font-size: .85rem;
    line-height: 1.6;
    margin: 0;
}

.programme-experience {
    align-items: center;
    background: linear-gradient(135deg, #e8f7f4, #f7fbfc);
    border: 0 !important;
    border-radius: var(--round);
    display: grid;
    gap: 1.5rem;
    margin: .5rem 0;
    padding: 1.5rem;
}

.programme-experience h2 {
    font-size: clamp(1.65rem, 3vw, 2.2rem);
    margin: .75rem 0 1rem;
}

.programme-experience-stat {
    background: var(--navy-deep);
    border-radius: 1rem;
    color: var(--paper);
    display: grid;
    gap: .55rem;
    min-height: 10rem;
    padding: 1.35rem;
}

.programme-experience-stat strong {
    color: #ffd184;
    font-family: var(--display-font);
    font-size: 3.5rem;
    letter-spacing: -.09em;
    line-height: .9;
}

.programme-experience-stat span {
    font-size: .82rem;
    line-height: 1.55;
    max-width: 14rem;
}

.programme-career-list {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.programme-career-list span {
    background: var(--teal-soft);
    border-radius: 999px;
    color: var(--teal);
    font-size: .82rem;
    font-weight: 700;
    padding: .65rem .85rem;
}

.programme-sidebar {
    align-self: start;
    display: grid;
    gap: 1rem;
}

.programme-apply-card {
    background: var(--navy-deep);
    border-radius: var(--round);
    color: var(--paper);
    padding: 1.45rem;
}

.programme-apply-card .eyebrow {
    color: #ffd184;
}

.programme-apply-card h2 {
    color: var(--paper);
    font-size: 1.65rem;
    margin: .75rem 0;
}

.programme-apply-card>p:not(.eyebrow) {
    color: rgba(255, 255, 255, .72);
    font-size: .9rem;
    line-height: 1.6;
    margin: 0;
}

.programme-apply-card .public-btn {
    margin-top: 1.2rem;
    width: 100%;
}

.programme-apply-card small {
    color: rgba(255, 255, 255, .48);
    display: block;
    font-size: .68rem;
    line-height: 1.5;
    margin-top: 1rem;
}

.programme-detail-card {
    border: 1px solid var(--line);
    border-radius: var(--round);
    padding: 1.4rem;
}

.programme-detail-card h2 {
    font-size: 1.25rem;
    margin: 0 0 1rem;
}

.programme-detail-card dl {
    margin: 0;
}

.programme-detail-card dl div {
    border-top: 1px solid var(--line);
    display: grid;
    gap: .3rem;
    padding: .8rem 0;
}

.programme-detail-card dt {
    color: var(--ink-soft);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.programme-detail-card dd {
    color: var(--ink);
    font-size: .9rem;
    font-weight: 600;
    margin: 0;
}

.programme-download-link {
    border: 1px solid var(--line);
    border-radius: .8rem;
    color: var(--teal);
    font-size: .86rem;
    font-weight: 800;
    padding: .95rem 1rem;
}

.programme-download-link span {
    float: right;
}

@media (min-width: 680px) {
    .programme-subject-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .programme-experience {
        grid-template-columns: 1fr 12.5rem;
        padding: 2rem;
    }
}

@media (min-width: 1000px) {
    .programme-page {
        padding: 3rem 0 6rem;
    }

    .programme-quick-facts {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .programme-quick-facts article {
        border-bottom: 0;
        min-height: 7rem;
    }

    .programme-quick-facts article:nth-child(2n) {
        border-right: 1px solid var(--line);
    }

    .programme-quick-facts article:last-child {
        border-right: 0;
    }

    .programme-layout {
        gap: 4.5rem;
        grid-template-columns: minmax(0, 1fr) 19rem;
    }

    .programme-sidebar {
        position: sticky;
        top: 8rem;
    }
}

.department-page {
    background: var(--paper);
    padding: 3rem 0 5.5rem;
}

.department-intro-grid {
    display: grid;
    gap: 1.25rem;
}

.department-intro-copy {
    padding: .5rem 0 1.75rem;
}

.department-intro-copy h2,
.department-section h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    letter-spacing: -.055em;
    line-height: 1.1;
}

.department-intro-copy h2 {
    font-size: clamp(2rem, 4.3vw, 3.65rem);
    margin: .8rem 0 1.15rem;
    max-width: 48rem;
}

.department-intro-copy>p:not(.eyebrow),
.department-projects-copy>p:not(.eyebrow) {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.8;
    margin: 0;
    max-width: 45rem;
}

.department-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.55rem;
}

.department-signal-card {
    background: linear-gradient(145deg, var(--navy-deep), #0b536d);
    border-radius: var(--round);
    color: var(--paper);
    display: grid;
    gap: .7rem;
    min-height: 15rem;
    overflow: hidden;
    padding: 1.5rem;
    position: relative;
}

.department-signal-card::after {
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    content: '';
    height: 16rem;
    position: absolute;
    right: -7rem;
    top: -8rem;
    width: 16rem;
}

.department-signal-icon {
    color: #ffd184;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    position: relative;
    z-index: 1;
}

.department-signal-card p {
    color: rgba(255, 255, 255, .62);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .1em;
    margin: .4rem 0 0;
    text-transform: uppercase;
}

.department-signal-card strong {
    font-family: var(--display-font);
    font-size: 1.25rem;
    letter-spacing: -.04em;
    line-height: 1.2;
    max-width: 17rem;
    position: relative;
    z-index: 1;
}

.department-signal-card>div {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    position: relative;
    z-index: 1;
}

.department-signal-card>div span {
    background: rgba(255, 255, 255, .12);
    border-radius: 999px;
    color: rgba(255, 255, 255, .82);
    font-size: .68rem;
    font-weight: 700;
    padding: .4rem .6rem;
}

.department-stat-strip {
    background: var(--mist);
    border-radius: var(--round);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 1rem 0 0;
    overflow: hidden;
}

.department-stat-strip article {
    border-bottom: 1px solid var(--line);
    border-right: 1px solid var(--line);
    display: grid;
    gap: .35rem;
    min-height: 7rem;
    padding: 1.15rem;
}

.department-stat-strip article:nth-child(2n) {
    border-right: 0;
}

.department-stat-strip article:nth-last-child(-n+2) {
    border-bottom: 0;
}

.department-stat-strip strong {
    color: var(--teal);
    font-family: var(--display-font);
    font-size: 1.8rem;
    letter-spacing: -.06em;
    line-height: 1;
}

.department-stat-strip span {
    color: var(--ink-soft);
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}

.department-section {
    padding: 4rem 0;
}

.department-section-heading {
    margin-bottom: 1.4rem;
}

.department-section-heading h2 {
    font-size: clamp(1.7rem, 3vw, 2.45rem);
    margin: .7rem 0 0;
}

.department-section-heading>p:not(.eyebrow) {
    color: var(--ink-soft);
    line-height: 1.7;
    margin: .8rem 0 0;
    max-width: 37rem;
}

.department-learning-section {
    border-top: 1px solid var(--line);
    margin-top: 4rem;
}

.department-learning-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: 1fr;
}

.department-learning-grid article {
    border: 1px solid var(--line);
    border-radius: 1rem;
    min-height: 12rem;
    padding: 1.25rem;
}

.department-learning-grid article>span {
    color: var(--amber);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.department-learning-grid h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.13rem;
    letter-spacing: -.035em;
    margin: 1.35rem 0 .55rem;
}

.department-learning-grid p {
    color: var(--ink-soft);
    font-size: .86rem;
    line-height: 1.65;
    margin: 0;
}

.department-pathway {
    background: var(--mist);
    margin-inline: calc((100vw - min(100vw - 2rem, 76rem)) / -2);
    padding-inline: max(1rem, calc((100vw - min(100vw - 2rem, 76rem)) / 2));
}

.department-programme-list {
    border-top: 1px solid var(--line);
}

.department-programme-row {
    align-items: center;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    display: grid;
    gap: .8rem;
    grid-template-columns: 2rem 1fr auto;
    padding: 1.1rem 0;
    transition: color .2s ease;
}

.department-programme-row:hover {
    color: var(--teal);
}

.department-programme-row.is-placeholder {
    cursor: default;
}

.department-programme-index {
    color: var(--teal);
    font-size: .7rem;
    font-weight: 800;
}

.department-programme-row h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1rem;
    letter-spacing: -.035em;
    margin: 0;
}

.department-programme-row p {
    color: var(--ink-soft);
    font-size: .78rem;
    margin: .25rem 0 0;
}

.department-programme-arrow {
    font-size: 1.25rem;
}

.department-projects-section {
    align-items: center;
    display: grid;
    gap: 2rem;
}

.department-projects-copy h2 {
    font-size: clamp(1.7rem, 3vw, 2.55rem);
    margin: .75rem 0 1rem;
    max-width: 29rem;
}

.department-projects-copy .text-link {
    display: inline-block;
    margin-top: 1.25rem;
}

.department-project-stack {
    display: grid;
    gap: .75rem;
}

.department-project-stack article {
    background: linear-gradient(110deg, #e9f8f4, #f7fbfd);
    border-radius: 1rem;
    display: grid;
    gap: .35rem;
    min-height: 5.7rem;
    padding: 1.1rem;
}

.department-project-stack article:nth-child(2) {
    background: linear-gradient(110deg, #fff3df, #fffaf2);
}

.department-project-stack article:nth-child(3) {
    background: linear-gradient(110deg, #ecf1ff, #f8faff);
}

.department-project-stack span {
    color: var(--teal);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.department-project-stack strong {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.04rem;
    letter-spacing: -.03em;
}

.department-faculty-heading {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}

.department-faculty-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: 1fr;
}

.department-faculty-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    color: var(--ink);
    min-height: 14rem;
    padding: 1.2rem;
    transition: box-shadow .2s ease, transform .2s ease;
}

.department-faculty-card:hover {
    box-shadow: var(--public-shadow-sm);
    transform: translateY(-3px);
}

.department-faculty-avatar {
    background: linear-gradient(145deg, #dce5ee, #f3f6fa);
    border-radius: 50%;
    display: block;
    height: 3rem;
    width: 3rem;
}

.department-faculty-card h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1rem;
    letter-spacing: -.035em;
    margin: 1.1rem 0 .3rem;
}

.department-faculty-card p {
    color: var(--ink-soft);
    font-size: .8rem;
    margin: 0;
}

.department-faculty-card>span:last-child {
    color: var(--teal);
    display: block;
    font-size: .76rem;
    font-weight: 800;
    margin-top: 1.5rem;
}

@media (min-width: 680px) {

    .department-learning-grid,
    .department-faculty-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .department-projects-section {
        grid-template-columns: minmax(0, 1fr) minmax(16rem, .8fr);
    }
}

@media (min-width: 900px) {
    .department-page {
        padding: 4rem 0 6.5rem;
    }

    .department-intro-grid {
        align-items: center;
        gap: 4rem;
        grid-template-columns: minmax(0, 1fr) 20rem;
    }

    .department-intro-copy {
        padding-bottom: 0;
    }

    .department-stat-strip {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin-top: 3.5rem;
    }

    .department-stat-strip article {
        border-bottom: 0;
    }

    .department-stat-strip article:nth-child(2n) {
        border-right: 1px solid var(--line);
    }

    .department-stat-strip article:last-child {
        border-right: 0;
    }
}

.auth-page {
    background: var(--mist);
    min-height: 100vh;
}

.auth-shell {
    display: grid;
    min-height: 100vh;
}

.auth-intro {
    background: linear-gradient(145deg, var(--navy-deep), #0a5870);
    color: var(--paper);
    display: flex;
    flex-direction: column;
    min-height: 22rem;
    overflow: hidden;
    padding: 2rem;
    position: relative;
}

.auth-intro::before {
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: '';
    height: 30rem;
    position: absolute;
    right: -13rem;
    top: -12rem;
    width: 30rem;
}

.auth-intro::after {
    background: radial-gradient(circle, rgba(237, 155, 33, .28) 0, transparent 68%);
    content: '';
    height: 20rem;
    position: absolute;
    right: -5rem;
    top: 5rem;
    width: 20rem;
}

.auth-brand {
    align-items: center;
    color: var(--paper);
    display: inline-flex;
    font-family: var(--display-font);
    font-size: 1rem;
    font-weight: 800;
    gap: .7rem;
    line-height: 1.1;
    position: relative;
    width: fit-content;
    z-index: 1;
}

.auth-brand img {
    background: var(--paper);
    border-radius: .65rem;
    height: 3rem;
    object-fit: contain;
    padding: .2rem;
    width: 3rem;
}

.auth-brand small {
    color: rgba(255, 255, 255, .66);
    display: block;
    font-family: var(--public-font);
    font-size: .65rem;
    font-weight: 500;
    margin-top: .2rem;
}

.auth-intro>div {
    margin: auto 0;
    max-width: 32rem;
    position: relative;
    z-index: 1;
}

.auth-kicker {
    border-left: 2px solid #ffd184;
    color: #ffe0a8;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .14em;
    margin: 0;
    padding-left: .65rem;
    text-transform: uppercase;
}

.auth-intro h1 {
    font-family: var(--display-font);
    font-size: clamp(2rem, 5vw, 3.8rem);
    font-weight: 600;
    letter-spacing: -.065em;
    line-height: 1.04;
    margin: 1rem 0;
}

.auth-intro>div>p:last-child {
    color: rgba(255, 255, 255, .72);
    line-height: 1.7;
    margin: 0;
}

.auth-footer-note {
    color: rgba(255, 255, 255, .52);
    font-size: .75rem;
    margin: 0;
    position: relative;
    z-index: 1;
}

.auth-card-wrap {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: 2rem 1rem;
}

.auth-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    box-shadow: var(--public-shadow);
    max-width: 29rem;
    padding: 1.5rem;
    width: 100%;
}

.auth-card h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    letter-spacing: -.055em;
    margin: .75rem 0 .55rem;
}

.auth-card-copy {
    color: var(--ink-soft);
    font-size: .92rem;
    line-height: 1.65;
    margin: 0;
}

.auth-alert {
    background: #fff1f0;
    border: 1px solid #ffd3cf;
    border-radius: .7rem;
    color: #a83d32;
    font-size: .84rem;
    margin-top: 1.25rem;
    padding: .8rem .9rem;
}

.auth-form {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.auth-form>div {
    display: grid;
    gap: .45rem;
}

.auth-form label {
    color: var(--ink);
    font-size: .8rem;
    font-weight: 800;
}

.auth-form input[type='email'],
.auth-form input[type='password'] {
    background: #fbfcfe;
    border: 1px solid var(--line);
    border-radius: .65rem;
    color: var(--ink);
    font: inherit;
    min-height: 3rem;
    outline: 0;
    padding: .7rem .8rem;
    transition: border-color .2s ease, box-shadow .2s ease;
    width: 100%;
}

.auth-form input:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(11, 131, 120, .13);
}

.auth-check {
    align-items: center;
    color: var(--ink-soft) !important;
    display: inline-flex;
    font-size: .77rem !important;
    font-weight: 500 !important;
    gap: .55rem;
}

.auth-check input {
    accent-color: var(--teal);
    height: 1rem;
    margin: 0;
    width: 1rem;
}

.auth-submit {
    border: 0;
    margin-top: .35rem;
    width: 100%;
}

.auth-return {
    color: var(--teal);
    display: inline-block;
    font-size: .8rem;
    font-weight: 800;
    margin-top: 1.2rem;
}

@media (min-width: 800px) {
    .auth-shell {
        grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .95fr);
    }

    .auth-intro {
        min-height: 100vh;
        padding: clamp(2rem, 5vw, 5rem);
    }

    .auth-card-wrap {
        padding: 3rem;
    }

    .auth-card {
        padding: 2.25rem;
    }
}

@media (min-width: 640px) {
    .departments-directory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .departments-directory-intro {
        grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
    }

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

    .departments-directory-card {
        min-height: 24rem;
        padding: 1.55rem;
    }
}

@media (min-width: 1280px) {
    .departments-directory-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.principal-image-shadow {
    box-shadow: 1.35rem 1.35rem 0 rgba(11, 131, 120, .14), 0 1.4rem 2.8rem rgba(9, 36, 62, .2);
}

.leadership-image.principal-image-shadow {
    overflow: visible;
}

.leadership-image.principal-image-shadow img {
    border-radius: var(--round);
    overflow: hidden;
}

.leadership-image.principal-image-shadow span {
    border-radius: 0 0 var(--round) var(--round);
}

.principal-message-page {
    background: linear-gradient(180deg, #f4f8f8 0, #fff 33rem);
    padding: clamp(3.5rem, 7vw, 6.5rem) 0 clamp(4rem, 8vw, 7rem);
}

.principal-message-layout {
    display: grid;
    gap: 2.5rem;
}

.principal-message-profile {
    align-self: start;
}

.principal-message-portrait {
    background: var(--navy-deep);
    border-radius: 1rem;
    overflow: hidden;
    position: relative;
}

.principal-message-portrait img {
    display: block;
    height: 25rem;
    object-fit: cover;
    object-position: center;
    width: 100%;
}

.principal-message-profile-card {
    background: var(--navy-deep);
    border-radius: 1rem;
    color: var(--paper);
    margin: 1.6rem .8rem 0;
    padding: 1.25rem;
    position: relative;
}

.principal-message-profile-card span {
    color: #8ce0d5;
    display: block;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.principal-message-profile-card strong {
    display: block;
    font-family: var(--display-font);
    font-size: 1.1rem;
    letter-spacing: -.03em;
    margin-top: .65rem;
}

.principal-message-profile-card p {
    color: rgba(255, 255, 255, .68);
    font-size: .78rem;
    line-height: 1.55;
    margin: .45rem 0 0;
}

.principal-message-content {
    max-width: 48rem;
}

.principal-message-content h1 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(2.5rem, 5.3vw, 4.8rem);
    letter-spacing: -.065em;
    line-height: .98;
    margin: .75rem 0 1.2rem;
}

.principal-message-rule {
    align-items: center;
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.principal-message-rule::after {
    background: var(--line);
    content: '';
    height: 1px;
    width: 8rem;
}

.principal-message-rule span {
    color: var(--amber);
    font-family: Georgia, serif;
    font-size: 3.5rem;
    height: 2.3rem;
    line-height: 1;
}

.principal-message-body {
    color: var(--ink-soft);
    font-size: clamp(0.9375rem, 0.5vw + 0.85rem, 1rem);
    line-height: 1.6;
}

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

.principal-message-body h2,
.principal-message-body h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    letter-spacing: -.035em;
    margin: 2rem 0 .75rem;
}

.principal-message-body a {
    color: var(--teal);
    font-weight: 800;
}

.principal-message-signature {
    border-top: 1px solid var(--line);
    display: grid;
    gap: .2rem;
    margin-top: 2rem;
    padding-top: 1.15rem;
}

.principal-message-signature strong {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.05rem;
    letter-spacing: -.03em;
}

.principal-message-signature span {
    color: var(--teal);
    font-size: .75rem;
    font-weight: 800;
}

@media (min-width: 768px) {
    .principal-message-layout {
        grid-template-columns: minmax(15rem, .62fr) minmax(0, 1.38fr);
        gap: clamp(2.5rem, 6vw, 6rem);
    }
}

.principal-shadow-avatar {
    background: linear-gradient(145deg, #e6f1f2, #9ab8c1);
    height: 100%;
    inset: 0;
    overflow: hidden;
    position: absolute;
    width: 100%;
}

.principal-shadow-avatar::before {
    background: linear-gradient(145deg, #1a5168, #0d304e);
    border-radius: 50% 50% 42% 42%;
    bottom: -13%;
    content: '';
    height: 62%;
    left: 19%;
    position: absolute;
    width: 62%;
}

.principal-shadow-avatar::after {
    background: #f1c7a7;
    border-radius: 48% 48% 44% 44%;
    box-shadow: 0 -2rem 0 -1.35rem #183f58;
    content: '';
    height: 32%;
    left: 34%;
    position: absolute;
    top: 18%;
    width: 32%;
}

.leadership-image .principal-shadow-avatar {
    border-radius: var(--round);
}

.principal-message-portrait .principal-shadow-avatar {
    height: 25rem;
    position: relative;
}

.principal-message-container {
    max-width: var(--max-width);
}

.principal-welcome-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: .4rem;
    box-shadow: var(--public-shadow-sm);
    padding: clamp(1.4rem, 4vw, 2.2rem);
}

.principal-welcome-card h1,
.principal-initiatives h2,
.principal-looking-ahead h2,
.principal-contact-card h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    letter-spacing: -.045em;
}

.principal-welcome-card h1 {
    font-size: clamp(1.625rem, 4vw + 1rem, 2.5rem);
    line-height: 1.2;
    margin: .55rem 0 1rem;
}

.principal-welcome-card .principal-message-body {
    font-size: clamp(0.9375rem, 0.5vw + 0.85rem, 1rem);
    line-height: 1.6;
}

.principal-highlights {
    display: grid;
    gap: 1rem;
    margin: 1.3rem 0 3.5rem;
}

.principal-highlights article {
    display: grid;
    gap: .8rem;
    grid-template-columns: 2rem 1fr;
}

.principal-highlights article>span,
.principal-initiative-grid article>span {
    align-items: center;
    background: #fce8ed;
    border-radius: 50%;
    color: #df4a62;
    display: inline-flex;
    font-size: .9rem;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.principal-highlights h2 {
    color: var(--navy-deep);
    font-size: clamp(1.125rem, 2vw + .8rem, 1.5rem);
    line-height: 1.3;
    margin: .05rem 0 .45rem;
}

.principal-highlights p,
.principal-initiative-grid p,
.principal-looking-ahead>div>p {
    color: var(--ink-soft);
    font-size: clamp(.9375rem, .5vw + .85rem, 1rem);
    line-height: 1.6;
    margin: 0;
}

.principal-initiatives {
    background: #f5f8fa;
    margin-inline: calc(50% - 50vw);
    padding: clamp(2.75rem, 6vw, 4.5rem) max(1rem, calc((100vw - var(--max-width)) / 2));
}

.principal-initiatives header {
    text-align: center;
}

.principal-initiatives h2 {
    font-size: clamp(1.375rem, 3vw + 1rem, 2rem);
    line-height: 1.25;
    margin: .45rem 0 1.75rem;
}

.principal-initiative-grid {
    display: grid;
    gap: 1rem;
}

.principal-initiative-grid article {
    background: #fff;
    border: 1px solid #e5ebf0;
    border-radius: .35rem;
    min-height: 10rem;
    padding: 1.05rem;
}

.principal-initiative-grid article>span {
    font-size: .8rem;
    height: 1.65rem;
    width: 1.65rem;
}

.principal-initiative-grid h3 {
    color: var(--navy-deep);
    font-size: clamp(1rem, 1.5vw + .7rem, 1.25rem);
    line-height: 1.35;
    margin: .85rem 0 .5rem;
}

.principal-looking-ahead {
    display: grid;
    gap: 2rem;
    padding: clamp(3rem, 7vw, 5rem) 0;
}

.principal-looking-ahead h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    line-height: 1.15;
    margin: .5rem 0 1rem;
}

.principal-looking-ahead ul {
    color: var(--ink-soft);
    display: grid;
    font-size: clamp(.9375rem, .5vw + .85rem, 1rem);
    gap: .85rem;
    line-height: 1.6;
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
}

.principal-looking-ahead li {
    border-bottom: 1px solid var(--line);
    padding: 0 0 .7rem 1.2rem;
    position: relative;
}

.principal-looking-ahead li::before {
    color: #df4a62;
    content: '●';
    font-size: .5rem;
    left: 0;
    position: absolute;
    top: .25rem;
}

.principal-looking-visual {
    border-radius: .4rem;
    min-height: 16rem;
    overflow: hidden;
    position: relative;
}

.principal-looking-visual .principal-shadow-avatar {
    border-radius: .4rem;
}

.principal-looking-visual>span {
    background: rgba(7, 31, 57, .72);
    bottom: 0;
    color: #fff;
    font-size: clamp(1rem, 1.5vw + .7rem, 1.25rem);
    font-weight: 700;
    left: 0;
    padding: .75rem 1rem;
    position: absolute;
    right: 0;
}

.principal-contact-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: .4rem;
    margin: 0 auto;
    max-width: 36rem;
    padding: 1.15rem;
    text-align: center;
}

.principal-contact-card h2 {
    font-size: clamp(1.125rem, 2vw + .8rem, 1.5rem);
    line-height: 1.3;
    margin: 0 0 1rem;
}

.principal-contact-card div {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    justify-content: center;
}

.principal-contact-card a {
    color: var(--teal);
    font-size: clamp(.9375rem, .5vw + .85rem, 1rem);
    font-weight: 700;
}

@media (min-width: 640px) {
    .principal-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .principal-looking-ahead {
        align-items: center;
        grid-template-columns: minmax(0, 1fr) minmax(15rem, .82fr);
    }
}

.content-placeholder-page {
    background: var(--mist);
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.content-placeholder-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    box-shadow: var(--public-shadow-sm);
    max-width: 52rem;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.content-placeholder-card h1 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(2rem, 4vw, 3.5rem);
    letter-spacing: -.055em;
    line-height: 1;
    margin: .7rem 0 1rem;
}

.content-placeholder-card>p {
    color: var(--ink-soft);
    line-height: 1.7;
    margin: 0 0 1.5rem;
}

.mobile-menu {
    background: rgba(6, 24, 44, .97);
    overflow: hidden;
    padding: 1.5rem 0 1rem;
}

.fullscreen-menu-inner {
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100dvh;
    justify-content: flex-start;
    min-height: 0;
    padding: 1.75rem 0 1.25rem;
    position: relative;
}

.fullscreen-menu-close {
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    font-size: 2.25rem;
    line-height: 1;
    padding: .25rem;
    position: absolute;
    right: 0;
    top: -.15rem;
}

.fullscreen-menu-heading {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .28);
    display: grid;
    gap: clamp(1rem, 2.2vw, 2.25rem);
    grid-template-columns: auto minmax(18rem, 1fr) auto;
    padding: 0 3rem 1.2rem 0;
}

.fullscreen-menu-brand {
    align-items: center;
    background: transparent;
    display: flex;
    height: 3.35rem;
}

.fullscreen-menu-brand:hover,
.fullscreen-menu-brand:focus-visible {
    background: transparent;
    outline: 1px solid rgba(255, 255, 255, .55);
    outline-offset: .25rem;
}

.fullscreen-menu-brand img {
    display: block;
    height: 3.35rem;
    max-width: 12.5rem;
    object-fit: contain;
    object-position: left center;
}

.fullscreen-menu-search {
    align-items: stretch;
    display: flex;
    justify-self: center;
    max-width: 34rem;
    width: 100%;
}

.fullscreen-menu-search input {
    background: rgba(255, 255, 255, .96);
    border: 0;
    border-radius: .25rem 0 0 .25rem;
    color: #142d45;
    font: inherit;
    font-size: .7rem;
    min-width: 0;
    outline: 0;
    padding: .52rem .7rem;
    width: 100%;
}

.fullscreen-menu-search button {
    background: #1d5c9c;
    border: 0;
    border-radius: 0 .25rem .25rem 0;
    color: #fff;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 700;
    padding: .5rem .8rem;
    white-space: nowrap;
}

.fullscreen-menu-search .fullscreen-menu-voice-search {
    background: rgba(255, 255, 255, .96);
    border-left: 1px solid rgba(20, 45, 69, .18);
    border-radius: 0;
    color: #781b31;
    font-size: 1rem;
    line-height: 1;
    padding: .35rem .6rem;
}

.fullscreen-menu-search .fullscreen-menu-voice-search:hover,
.fullscreen-menu-search .fullscreen-menu-voice-search:focus-visible {
    background: #f5e9ed;
    outline: 0;
}

.fullscreen-menu-search .fullscreen-menu-voice-search.is-listening {
    animation: voice-search-pulse .9s ease-in-out infinite alternate;
    background: #781b31;
    color: #fff;
}

@keyframes voice-search-pulse {
    from {
        box-shadow: inset 0 0 0 0 rgba(120, 27, 49, .15);
    }

    to {
        box-shadow: inset 0 0 0 .35rem rgba(120, 27, 49, .25);
    }
}

.fullscreen-menu-actions {
    display: flex;
    gap: .45rem;
}

.fullscreen-menu-actions a {
    background: #781b31;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: .22rem;
    color: #fff !important;
    font-size: .66rem;
    font-weight: 800;
    padding: .64rem .9rem;
    text-transform: uppercase;
    transition: background-color .15s ease, transform .15s ease;
}

.fullscreen-menu-actions a:last-child {
    background: #781b31;
}

.fullscreen-menu-actions a:hover,
.fullscreen-menu-actions a:focus-visible {
    background: #9c2944;
    outline: 0;
    transform: translateY(-1px);
}

.fullscreen-menu-grid {
    flex: 0 1 auto;
    gap: 0;
    grid-template-columns: minmax(15rem, .8fr) minmax(11rem, .58fr) minmax(0, .82fr);
    margin-top: clamp(.5rem, 2vh, 1rem);
    min-height: 0;
    overflow-y: auto;
}

.fullscreen-menu-groups {
    align-content: start;
    border-right: 1px solid rgba(255, 255, 255, .5);
    column-gap: 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    row-gap: .35rem;
    padding: .1rem 1.25rem .1rem 0;
}

.fullscreen-menu-groups button {
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, .55);
    cursor: pointer;
    font-family: var(--display-font);
    font-size: clamp(.85rem, .95vw, 1.02rem);
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.2;
    padding: .2rem 0;
    text-align: left;
}

.fullscreen-menu-groups button:hover,
.fullscreen-menu-groups button:focus-visible,
.fullscreen-menu-groups button.is-active {
    color: #f0511a;
    outline: 0;
}

.fullscreen-menu-panels {
    border-right: 1px solid rgba(255, 255, 255, .5);
    padding: .1rem clamp(1.5rem, 3.5vw, 3.5rem) .5rem;
}

.fullscreen-menu-panels section {
    border: 0;
    display: none;
    padding: 0;
}

.fullscreen-menu-panels section.is-active {
    display: block;
}

.fullscreen-menu-panels h2 {
    border-bottom: 1px solid rgba(255, 255, 255, .5);
    color: rgba(255, 255, 255, .55);
    display: inline-block;
    font-family: var(--public-font);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin: 0 0 1.1rem;
    padding-bottom: .3rem;
    text-transform: uppercase;
}

.fullscreen-menu-links {
    column-count: 1;
    column-gap: 0;
}

.mobile-menu .fullscreen-menu-links a {
    break-inside: avoid;
    border-radius: .3rem;
    color: rgba(255, 255, 255, .95);
    display: block;
    font-size: clamp(.85rem, .95vw, .98rem);
    font-weight: 500;
    line-height: 1.25;
    margin-left: -.6rem;
    padding: .32rem .6rem;
    transition: background-color .15s ease, color .15s ease;
}

.mobile-menu .fullscreen-menu-links a:hover,
.mobile-menu .fullscreen-menu-links a:focus-visible {
    background: rgba(255, 255, 255, .92);
    color: #183f58;
    outline: 0;
}

.fullscreen-menu-departments {
    padding: .1rem 0 .5rem clamp(1.5rem, 3.5vw, 3.5rem);
}

.fullscreen-menu-departments h2 {
    border-bottom: 1px solid rgba(255, 255, 255, .5);
    color: rgba(255, 255, 255, .55);
    display: inline-block;
    font-family: var(--public-font);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin: 0 0 1.1rem;
    padding-bottom: .3rem;
    text-transform: uppercase;
}

.fullscreen-menu-departments>div {
    column-count: 1;
}

.mobile-menu .fullscreen-menu-departments a {
    break-inside: avoid;
    color: rgba(255, 255, 255, .95);
    display: block;
    font-size: clamp(.85rem, .95vw, .98rem);
    font-weight: 500;
    line-height: 1.25;
    padding: .32rem 0 .32rem 1.1rem;
    position: relative;
}

.mobile-menu .fullscreen-menu-departments a::before {
    background: #f0511a;
    border-radius: 50%;
    content: '';
    height: .32rem;
    left: 0;
    position: absolute;
    top: .5rem;
    width: .32rem;
}

.mobile-menu .fullscreen-menu-departments a:hover,
.mobile-menu .fullscreen-menu-departments a:focus-visible {
    color: #f0511a;
    outline: 0;
}

.fullscreen-menu-bottom {
    border-top: 1px solid rgba(255, 255, 255, .25);
    flex: 0 0 auto;
    gap: .55rem;
    justify-content: center;
    margin-top: clamp(.4rem, 1.5vh, .75rem);
    padding-top: .5rem;
}

.mobile-menu .fullscreen-menu-bottom>a:not(.public-btn) {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: rgba(255, 255, 255, .92);
    font-size: .68rem;
    font-weight: 600;
    margin: 0;
    padding: .48rem .8rem;
    transition: background-color .15s ease, color .15s ease;
}

.mobile-menu .fullscreen-menu-bottom>a:not(.public-btn)::after {
    color: #f0511a;
    content: ' ↗';
    font-size: .7rem;
}

.mobile-menu .fullscreen-menu-bottom>a:not(.public-btn):hover,
.mobile-menu .fullscreen-menu-bottom>a:not(.public-btn):focus-visible {
    background: #fff;
    color: #173750;
    outline: 0;
}

.fullscreen-menu-bottom .public-btn {
    display: none;
}

@media (max-width: 639px) {
    .mobile-menu {
        overflow-y: auto;
    }

    .fullscreen-menu-inner {
        height: auto;
        min-height: 100%;
        padding-top: 3.5rem;
    }

    .fullscreen-menu-heading {
        align-items: stretch;
        grid-template-columns: 1fr;
        padding-right: 0;
    }

    .fullscreen-menu-actions {
        justify-content: flex-start;
    }

    .fullscreen-menu-grid {
        grid-template-columns: 1fr;
    }

    .fullscreen-menu-groups {
        border-bottom: 1px solid rgba(255, 255, 255, .35);
        border-right: 0;
        padding: 0 0 .8rem;
    }

    .fullscreen-menu-panels {
        border-right: 0;
        padding: 1.5rem 0;
    }

    .fullscreen-menu-departments {
        border-top: 1px solid rgba(255, 255, 255, .35);
        padding: 1.5rem 0;
    }

    .fullscreen-menu-links,
    .fullscreen-menu-departments>div {
        column-count: 1;
    }

    .fullscreen-menu-bottom {
        justify-content: flex-start;
    }
}

.content-rich-page .content-hero-figure {
    margin: 0 0 1.75rem;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .35);
}

.content-rich-page .content-hero-figure img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.content-rich-page .eyebrow {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .8rem;
    font-weight: 600;
    color: #7a2331;
    margin-bottom: .5rem;
}

.content-rich-page h3 {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    margin: 0 0 .75rem;
}

.content-rich-page .content-two-col {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 2rem;
    align-items: start;
    margin: 1.75rem 0;
}

.content-rich-page .content-two-col ul {
    margin: 0;
    padding-left: 1.1rem;
}

.content-rich-page .content-two-col li {
    margin-bottom: .5rem;
    line-height: 1.5;
}

.content-rich-page .content-side-image img {
    width: 100%;
    height: auto;
    border-radius: .85rem;
    box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .35);
}

.content-rich-page blockquote {
    border-left: 4px solid #7a2331;
    margin: 1.75rem 0;
    padding: .25rem 0 .25rem 1.25rem;
    font-style: italic;
    color: #444;
}

.content-rich-page table {
    border-collapse: separate;
    border-spacing: 0;
    margin: 1.5rem 0;
    width: 100%;
    font-size: .95rem;
    border-radius: .85rem;
    overflow: hidden;
    box-shadow: 0 1px 0 var(--line);
}

.content-rich-page th,
.content-rich-page td {
    border-bottom: 1px solid var(--line, #e2e8f0);
    padding: .85rem 1rem;
    text-align: left;
    vertical-align: top;
}

.content-rich-page th {
    background: #f8f6f3;
    font-weight: 600;
    color: #7a2331;
    text-transform: uppercase;
    font-size: .78rem;
    letter-spacing: .04em;
}

.content-rich-page tr:last-child td {
    border-bottom: none;
}

.content-rich-page tr:nth-child(even) {
    background: #fafafa;
}

/* Tabular policies list inside Page bodies — aligns columns like a table */
.content-rich-page .policies-list {
    margin: 1.5rem 0;
}

.content-rich-page .policies-list.tabular .policy-row {
    display: grid;
    gap: 1rem;
    padding: 1rem 1.25rem;
}

.content-rich-page .policies-list.tabular.three-col .policy-row {
    grid-template-columns: 1.5fr 1.25fr 1fr;
}

.content-rich-page .policies-list.tabular.two-col .policy-row {
    grid-template-columns: 1fr 1fr;
}

.content-rich-page .policies-list.tabular .policy-row h3 {
    margin: 0;
    font-size: .98rem;
}

.content-rich-page .policies-list.tabular .policy-effective {
    color: var(--ink-soft);
    font-size: .9rem;
    line-height: 1.5;
}

.content-rich-page .policies-list.tabular .policy-row .policy-meta {
    color: var(--ink-soft);
    font-size: .9rem;
}

/* Compact fact-grid for smaller card groups */
.content-rich-page .fact-grid.mini {
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: .85rem;
}

.content-rich-page .fact-grid.mini .fact-card {
    padding: .9rem 1.1rem;
}

.content-rich-page .fact-grid.mini .fact-label {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.content-rich-page .fact-grid.mini .fact-value {
    font-size: .95rem;
}

@media (max-width: 767px) {
    .content-rich-page .content-two-col {
        grid-template-columns: 1fr;
    }
}

.font-heading {
    font-family: 'Poppins', sans-serif !important;
}

.font-body {
    font-family: 'Inter', sans-serif !important;
}

.text-hero {
    font-size: clamp(1.75rem, 5vw + 1rem, 3rem) !important;
    line-height: 1.15 !important;
}

.text-h1 {
    font-size: clamp(1.625rem, 4vw + 1rem, 2.5rem) !important;
    line-height: 1.2 !important;
}

.text-h2 {
    font-size: clamp(1.375rem, 3vw + 1rem, 2rem) !important;
    line-height: 1.25 !important;
}

.text-h3 {
    font-size: clamp(1.125rem, 2vw + .8rem, 1.5rem) !important;
    line-height: 1.3 !important;
}

.text-h4 {
    font-size: clamp(1rem, 1.5vw + .7rem, 1.25rem) !important;
    line-height: 1.35 !important;
}

.text-body-lg {
    font-size: clamp(1rem, .5vw + .9rem, 1.125rem) !important;
    line-height: 1.6 !important;
}

.text-body {
    font-size: clamp(.9375rem, .5vw + .85rem, 1rem) !important;
    line-height: 1.6 !important;
}

.text-small {
    font-size: .875rem !important;
    line-height: 1.5 !important;
}

.text-stat-number {
    font-size: clamp(1.75rem, 3vw + 1rem, 2.75rem) !important;
    line-height: 1.1 !important;
}

.identity-hero {
    background: linear-gradient(125deg, var(--navy-deep), var(--navy) 55%, var(--teal));
    color: var(--paper);
    padding: 4.5rem 0 4rem;
}

.identity-hero-inner {
    max-width: 46rem;
}

.identity-hero .eyebrow {
    color: #ffd184;
    margin-bottom: 1rem;
}

.identity-hero h1 {
    font-family: var(--display-font);
    font-size: clamp(2rem, 3vw + 1rem, 3rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.1;
    margin: 0 0 1rem;
}

.identity-hero-lead {
    color: rgba(255, 255, 255, .82);
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0;
}

.identity-section {
    padding: 4rem 0;
}

.identity-section:nth-of-type(even) {
    background: var(--mist);
}

.identity-section-header {
    margin-bottom: 2.25rem;
    max-width: 40rem;
}

.identity-section-header h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
    font-weight: 700;
    letter-spacing: -.02em;
    margin: .6rem 0 0;
}

.identity-vm-grid {
    display: grid;
    gap: 1.75rem;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    margin-bottom: 2.5rem;
}

.identity-vm-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    box-shadow: 0 18px 32px rgba(13, 40, 71, .08);
    padding: 2.25rem;
    position: relative;
}

.identity-vm-tag {
    background: var(--teal-soft);
    border-radius: 999px;
    color: var(--teal);
    display: inline-block;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    margin-bottom: 1rem;
    padding: .35rem .9rem;
    text-transform: uppercase;
}

.identity-vm-mission .identity-vm-tag {
    background: #fff1e0;
    color: #b5680d;
}

.identity-vm-card p {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

.identity-quality-banner {
    align-items: flex-start;
    background: var(--navy-deep);
    border-radius: 1rem;
    color: var(--paper);
    display: flex;
    gap: 1.25rem;
    padding: 2rem 2.25rem;
}

.identity-quality-icon {
    background: rgba(255, 255, 255, .12);
    border-radius: 50%;
    flex-shrink: 0;
    font-size: 1.4rem;
    height: 3rem;
    line-height: 3rem;
    text-align: center;
    width: 3rem;
}

.identity-quality-banner h2 {
    font-family: var(--display-font);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 .55rem;
}

.identity-quality-banner p {
    color: rgba(255, 255, 255, .82);
    font-size: .92rem;
    line-height: 1.65;
    margin: 0;
}

.identity-values-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr));
}

.identity-value-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1.75rem;
    transition: transform .2s ease, box-shadow .2s ease;
}

.identity-value-card:hover {
    box-shadow: 0 18px 32px rgba(13, 40, 71, .1);
    transform: translateY(-3px);
}

.identity-value-icon {
    display: inline-block;
    font-size: 1.6rem;
    margin-bottom: .85rem;
}

.identity-value-card h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .6rem;
}

.identity-value-card div {
    color: var(--ink-soft);
    font-size: .88rem;
    line-height: 1.65;
}

.identity-value-card div p {
    margin: 0;
}

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

.identity-motto-text h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
    font-weight: 700;
    margin: .6rem 0 1.5rem;
}

.identity-sanskrit {
    border-left: 3px solid var(--teal);
    display: flex;
    flex-direction: column;
    font-family: var(--display-font);
    font-size: 1.1rem;
    font-style: italic;
    gap: .3rem;
    margin: 0 0 1rem;
    padding-left: 1.1rem;
}

.identity-sanskrit span {
    color: var(--navy);
}

.identity-motto-translation {
    color: var(--ink-soft);
    font-size: .92rem;
    font-style: italic;
    margin: 0 0 1.25rem;
}

.identity-motto-text>p:not(.identity-motto-translation):not(.eyebrow) {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.7;
}

.identity-crest-panel {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 2rem;
}

.identity-crest-intro {
    color: var(--ink-soft);
    font-size: .92rem;
    line-height: 1.65;
    margin: 0 0 1rem;
}

.identity-crest-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.identity-crest-chip {
    background: var(--teal-soft);
    border-radius: 999px;
    color: var(--teal);
    font-size: .78rem;
    font-weight: 600;
    padding: .4rem .8rem;
}

.identity-crest-chip em {
    color: var(--navy);
    font-style: normal;
    font-weight: 700;
    margin-left: .25rem;
}

@media (max-width: 900px) {
    .identity-motto-grid {
        grid-template-columns: 1fr;
    }
}

.objectives-section {
    padding: 4rem 0;
}

.objectives-section:nth-of-type(even) {
    background: var(--mist);
}

.objectives-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.objective-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1.75rem;
    position: relative;
}

.objective-number {
    color: var(--teal-soft);
    display: block;
    font-family: var(--display-font);
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: .75rem;
}

.objective-card p {
    color: var(--ink-soft);
    font-size: .94rem;
    line-height: 1.6;
    margin: 0;
}

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

.distinctiveness-text h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
    font-weight: 700;
    margin: .6rem 0 1.25rem;
}

.distinctiveness-body {
    color: var(--ink-soft);
    font-size: .96rem;
    line-height: 1.75;
}

.distinctiveness-body p {
    margin: 0 0 1.1rem;
}

.distinctiveness-highlights {
    align-content: start;
    display: grid;
    gap: 1rem;
}

.distinctiveness-chip {
    background: var(--paper);
    border: 1px solid var(--line);
    border-left: 4px solid var(--teal);
    border-radius: .75rem;
    padding: 1.1rem 1.35rem;
}

.distinctiveness-chip strong {
    color: var(--navy-deep);
    display: block;
    font-family: var(--display-font);
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.1;
}

.distinctiveness-chip span {
    color: var(--ink-soft);
    font-size: .8rem;
}

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

.hall-of-fame-scroller {
    display: flex;
    gap: 1.5rem;
    margin: 0 -1rem;
    overflow-x: auto;
    padding: .5rem 1rem 1.5rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
}

.hall-of-fame-scroller::-webkit-scrollbar {
    height: .4rem;
}

.hall-of-fame-scroller::-webkit-scrollbar-thumb {
    background: var(--line);
    border-radius: 999px;
}

.hall-of-fame-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1rem;
    flex: 0 0 auto;
    overflow: hidden;
    scroll-snap-align: start;
    transition: box-shadow .2s ease, transform .2s ease;
    width: 16rem;
}

.hall-of-fame-card:hover {
    box-shadow: 0 18px 32px rgba(13, 40, 71, .12);
    transform: translateY(-3px);
}

.hall-of-fame-thumb {
    aspect-ratio: 4 / 3;
    display: block;
    overflow: hidden;
}

.hall-of-fame-thumb img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
    width: 100%;
}

.hall-of-fame-card:hover .hall-of-fame-thumb img {
    transform: scale(1.06);
}

.hall-of-fame-body {
    padding: 1.1rem 1.25rem 1.35rem;
}

.hall-of-fame-body h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .85rem;
}

.hall-of-fame-actions {
    display: flex;
    gap: .6rem;
}

.hall-of-fame-actions a {
    background: var(--teal-soft);
    border-radius: .5rem;
    color: var(--teal);
    flex: 1;
    font-size: .78rem;
    font-weight: 700;
    padding: .5rem .6rem;
    text-align: center;
    transition: background-color .15s ease, color .15s ease;
}

.hall-of-fame-actions a:hover {
    background: var(--teal);
    color: var(--paper);
}

.policies-intro {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.65;
    margin: 0 0 2rem;
    max-width: 46rem;
}

.policies-list {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.policy-row {
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: .85rem;
    display: flex;
    gap: 1.25rem;
    padding: 1.15rem 1.35rem;
    transition: box-shadow .2s ease, transform .2s ease;
}

.policy-row:hover {
    box-shadow: 0 14px 28px rgba(13, 40, 71, .08);
    transform: translateY(-2px);
}

.policy-number {
    color: var(--teal);
    flex-shrink: 0;
    font-family: var(--display-font);
    font-size: 1.4rem;
    font-weight: 800;
    width: 2.5rem;
}

.policy-details {
    flex: 1;
    min-width: 0;
}

.policy-details h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .3rem;
}

.policy-effective {
    color: var(--ink-soft);
    font-size: .82rem;
}

.policy-download {
    background: var(--teal-soft);
    border-radius: .55rem;
    color: var(--teal);
    flex-shrink: 0;
    font-size: .82rem;
    font-weight: 700;
    padding: .55rem 1rem;
    transition: background-color .15s ease, color .15s ease;
    white-space: nowrap;
}

.policy-download:hover {
    background: var(--teal);
    color: var(--paper);
}

@media (max-width: 640px) {
    .policy-row {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .policy-download {
        margin-left: calc(2.5rem + 1.25rem);
    }
}

.history-gallery {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
}

.history-gallery-item {
    aspect-ratio: 4 / 3;
    border-radius: 1rem;
    overflow: hidden;
}

.history-gallery-item img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.history-story-timeline-grid {
    align-items: start;
    display: grid;
    gap: 3rem;
    grid-template-columns: 1fr 1fr;
}

.history-story-text h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
    font-weight: 700;
    margin: .6rem 0 1.25rem;
}

.history-story-text p {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.75;
    margin: 0 0 1.1rem;
}

.history-timeline-col .identity-section-header {
    margin-bottom: 1.5rem;
}

.history-timeline {
    border-left: 3px solid var(--line);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-left: .5rem;
    max-height: 34rem;
    overflow-y: auto;
    padding: .1rem 1rem .1rem 2rem;
}

.history-timeline-item {
    position: relative;
}

.history-timeline-item::before {
    background: var(--teal);
    border-radius: 50%;
    content: '';
    height: .7rem;
    left: -2.39rem;
    position: absolute;
    top: .3rem;
    width: .7rem;
}

.history-timeline-year {
    color: var(--teal);
    display: block;
    font-family: var(--display-font);
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: .3rem;
}

.history-timeline-item p {
    color: var(--ink-soft);
    font-size: .94rem;
    line-height: 1.65;
    margin: 0;
    max-width: 40rem;
}

.history-society-grid {
    display: grid;
    gap: 3rem;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}

.history-society-text h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2rem);
    font-weight: 700;
    margin: .6rem 0 1.25rem;
}

.history-society-text p {
    color: var(--ink-soft);
    font-size: .96rem;
    line-height: 1.75;
    margin: 0 0 1.1rem;
}

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

    .history-story-timeline-grid {
        grid-template-columns: 1fr;
    }

    .history-timeline {
        max-height: none;
    }

    .history-society-grid {
        grid-template-columns: 1fr;
    }
}

.affiliations-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, 1fr);
}

.affiliation-card {
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 1.1rem;
    display: flex;
    gap: 1.35rem;
    padding: 2rem;
    transition: box-shadow .2s ease, transform .2s ease;
}

.affiliation-card:hover {
    box-shadow: 0 18px 32px rgba(13, 40, 71, .1);
    transform: translateY(-3px);
}

.affiliation-icon {
    align-items: center;
    background: var(--teal-soft);
    border-radius: 1rem;
    display: flex;
    flex-shrink: 0;
    height: 5.5rem;
    justify-content: center;
    width: 5.5rem;
}

.affiliation-icon img {
    height: 3.4rem;
    object-fit: contain;
    width: 3.4rem;
}

.affiliation-card p {
    color: var(--navy-deep);
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.55;
    margin: 0;
}

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

@media (max-width: 640px) {
    .affiliations-grid {
        grid-template-columns: 1fr;
    }
}

.disclosures-heading {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.4rem, 1.6vw + 1rem, 1.85rem);
    font-weight: 700;
    margin: 0 0 1.5rem;
    text-align: center;
}

.disclosures-glance {
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.syllabus-stats {
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.diploma-section+.diploma-section {
    margin-top: -.5rem;
}

.diploma-stats-grid {
    margin-bottom: 1.75rem;
}

.fact-value-lg {
    color: var(--navy-deep);
    display: block;
    font-family: var(--display-font);
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1.1;
}

.diploma-audience-list {
    margin-top: .5rem;
}

.diploma-course-card {
    text-align: left;
}

.admission-modes-grid {
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.process-steps {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.process-step {
    align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    display: flex;
    gap: 1.1rem;
    padding: 1.25rem 1.5rem;
}

.process-step-number {
    background: var(--navy);
    border-radius: 50%;
    color: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--display-font);
    font-size: 1rem;
    font-weight: 800;
    height: 2.4rem;
    width: 2.4rem;
}

.process-step-body h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .35rem;
}

.process-step-body p {
    color: var(--ink-soft);
    font-size: .92rem;
    margin: 0;
}

.checklist-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}

.checklist-item {
    background: var(--mist);
    border-left: 3px solid var(--teal);
    border-radius: .6rem;
    color: var(--ink);
    font-size: .9rem;
    padding: .8rem 1rem;
}

.admission-note {
    font-weight: 600;
}

.fact-grid {
    display: grid;
    gap: 1.1rem;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
}

.fact-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-left: 4px solid var(--teal);
    border-radius: .8rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding: 1.25rem 1.4rem;
}

.fact-label {
    color: var(--teal);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fact-value {
    color: var(--ink-soft);
    font-size: .92rem;
    line-height: 1.55;
}

.fact-value a {
    color: var(--navy);
    font-weight: 600;
}

.fact-pdf-link {
    background: var(--teal-soft);
    border-radius: .5rem;
    color: var(--teal);
    font-size: .78rem;
    font-weight: 700;
    margin-top: .3rem;
    padding: .45rem .7rem;
    text-align: center;
    transition: background-color .15s ease, color .15s ease;
    width: fit-content;
}

.fact-pdf-link:hover {
    background: var(--teal);
    color: var(--paper);
}

.campus-map-frame {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 1rem;
    margin: 0 0 1.5rem;
    overflow: hidden;
}

.campus-map-frame img {
    display: block;
    width: 100%;
}

.campus-map-download {
    display: inline-block;
    width: auto;
}

.spiritual-grid {
    align-items: center;
    display: grid;
    gap: 2.5rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
}

.spiritual-image {
    border-radius: 1rem;
    overflow: hidden;
}

.spiritual-image img {
    display: block;
    width: 100%;
}

.spiritual-intro h2 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: clamp(1.4rem, 1.6vw + 1rem, 1.9rem);
    font-weight: 700;
    margin: .6rem 0 1rem;
}

.spiritual-intro p {
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.7;
}

.council-section+.council-section {
    margin-top: 1rem;
}

.council-media-grid {
    align-items: center;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    margin-bottom: 1.25rem;
}

.council-photo {
    margin: 0;
}

.council-description {
    color: var(--ink-soft);
    font-size: .95rem;
    line-height: 1.7;
    margin: 0;
}

.council-note {
    margin: 0;
    text-align: center;
}

.council-subheading {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 2rem 0 1.1rem;
}

.council-rep-grid {
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

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

    .council-media-grid {
        grid-template-columns: 1fr;
    }
}

.programmes-stats {
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    margin-bottom: 1.75rem;
}

.programmes-filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.programmes-department-block {
    margin-bottom: 2.5rem;
}

.programmes-department-block:last-child {
    margin-bottom: 0;
}

.programmes-department-heading {
    margin: 0 0 1.1rem;
}

.programmes-grid {
    display: grid;
    gap: 1.1rem;
    /* Fixed tracks rather than auto-fit: a lone card must keep its column
       width instead of stretching across the whole row. */
    grid-template-columns: 1fr;
}

@media (min-width: 40rem) {
    .programmes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 60rem) {
    .programmes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.programme-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--round);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: 1.5rem;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.programme-card:hover {
    box-shadow: 0 14px 28px rgba(13, 40, 71, .08);
    transform: translateY(-2px);
}

.programme-card-type {
    background: var(--mist);
    border-radius: 999px;
    color: var(--navy);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    padding: .3rem .75rem;
    text-transform: uppercase;
    width: fit-content;
}

.programme-card h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

.programme-card-duration {
    color: var(--ink-soft);
    font-size: .88rem;
    margin: 0;
}

.programme-card-link {
    color: var(--teal);
    font-size: .85rem;
    font-weight: 700;
    margin-top: auto;
}

.support-services-container {
    max-width: 88.875rem;
}

.support-cell-grid {
    margin-bottom: 2rem;
}

.support-cell-card h3 {
    margin-top: .5rem;
}

.support-cell-card p {
    color: var(--ink-soft);
    font-size: .92rem;
    line-height: 1.6;
    margin: 0;
}

.support-grievance-panel {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: var(--round);
    padding: 2rem;
    margin-top: 1rem;
}

.support-grievance-panel h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.3rem;
    margin: .5rem 0 1rem;
}

.support-grievance-panel>p {
    color: var(--ink-soft);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.support-grievance-actions {
    margin-top: 1.25rem;
}

.syllabus-tab-input {
    position: absolute;
    left: -9999px;
}

.syllabus-tab-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-bottom: 2rem;
}

.syllabus-tab-nav label {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--navy);
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
    padding: .65rem 1.4rem;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}

.syllabus-tab-panel {
    display: none;
}

#tab-nep-2020:checked~.syllabus-tab-nav label[for="tab-nep-2020"],
#tab-2024-2025:checked~.syllabus-tab-nav label[for="tab-2024-2025"],
#tab-2025-26:checked~.syllabus-tab-nav label[for="tab-2025-26"] {
    background: var(--navy);
    box-shadow: 0 10px 22px rgba(13, 40, 71, .22);
    color: var(--paper);
}

#tab-nep-2020:checked~.syllabus-tab-panels [data-panel="nep-2020"],
#tab-2024-2025:checked~.syllabus-tab-panels [data-panel="2024-2025"],
#tab-2025-26:checked~.syllabus-tab-panels [data-panel="2025-26"] {
    display: block;
}

.listing-section {
    padding: 3rem 0 5rem;
}

.listing-header {
    margin-bottom: 2.25rem;
    text-align: center;
}

.listing-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
}

.listing-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--round);
    color: var(--ink);
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1.5rem;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.listing-card:hover,
.listing-card:focus-visible {
    box-shadow: 0 14px 28px rgba(13, 40, 71, .08);
    transform: translateY(-2px);
}

.listing-card-meta {
    align-items: center;
    color: var(--teal);
    display: flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .5rem;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.listing-card-title {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.listing-card-text {
    color: var(--ink-soft);
    font-size: .93rem;
    line-height: 1.55;
    margin: 0;
}

.listing-card-tag {
    background: var(--mist);
    border-radius: 999px;
    color: var(--navy);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .03em;
    margin-top: auto;
    padding: .25rem .7rem;
    text-transform: uppercase;
    width: fit-content;
}

.listing-pagination {
    display: flex;
    justify-content: center;
    margin-top: 2.5rem;
}

.news-attachment-image {
    border-radius: var(--round);
    display: block;
    margin: 1.5rem 0;
    max-height: 52rem;
    object-fit: contain;
    width: 100%;
}

.news-resource-link {
    margin: 1.5rem .5rem 0 0;
}

.notice-card {
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--round);
    display: flex;
    gap: 1rem;
    padding: 1.25rem;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.notice-card:hover,
.notice-card:focus-visible {
    box-shadow: 0 14px 28px rgba(13, 40, 71, .08);
    transform: translateY(-2px);
}

.notice-date {
    background: var(--mist);
    border-radius: .5rem;
    flex: 0 0 auto;
    padding: .5rem .75rem;
    text-align: center;
    width: 4rem;
}

.notice-date-day {
    color: var(--navy-deep);
    display: block;
    font-family: var(--display-font);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
}

.notice-date-month {
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.notice-body {
    flex: 1 1 auto;
}

.notice-body h3 {
    color: var(--navy-deep);
    font-family: var(--display-font);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .35rem;
}

.notice-body p {
    color: var(--ink-soft);
    font-size: .9rem;
    line-height: 1.5;
    margin: 0;
}

.notice-attachment {
    color: var(--teal);
    display: inline-block;
    font-size: .85rem;
    font-weight: 700;
    margin-top: .5rem;
    text-decoration: none;
}

@media (min-width: 640px) {
    .listing-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .listing-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 639px) {
    .listing-section {
        padding: 2rem 0 3.5rem;
    }

    .listing-header {
        margin-bottom: 1.75rem;
    }

    .notice-card {
        flex-direction: column;
        gap: .75rem;
    }

    .notice-date {
        display: flex;
        align-items: center;
        gap: .5rem;
        text-align: left;
        width: auto;
    }

    .notice-date-day {
        font-size: 1.1rem;
    }

    .notice-date-month {
        font-size: .8rem;
    }
}