/*
|--------------------------------------------------------------------------
| 01. Inner-page hero
|--------------------------------------------------------------------------
*/

.inner-hero {
    position: relative;
    min-height: clamp(470px, 62vh, 610px);
    overflow: hidden;
    background: var(--blue-grey);
}

.inner-hero__image,
.inner-hero__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.inner-hero__image {
    object-fit: cover;
    object-position: center;
}

.inner-hero__overlay {
    background:
        linear-gradient(
            90deg,
            rgba(42, 53, 57, 0.82) 0%,
            rgba(48, 62, 66, 0.58) 48%,
            rgba(48, 62, 66, 0.16) 100%
        );
}

.inner-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: clamp(470px, 62vh, 610px);
    padding-top: 115px;
    padding-bottom: 70px;
    align-items: flex-end;
}

.inner-hero__content {
    max-width: 780px;
    color: var(--white);
}

.inner-hero__breadcrumbs {
    position: absolute;
    top: 38px;
    left: var(--container-padding);
}

.inner-hero__breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0;
    padding: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    list-style: none;
}

.inner-hero__breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.inner-hero__breadcrumbs li:not(:last-child)::after {
    content: "/";
    opacity: 0.55;
}

.inner-hero__breadcrumbs a:hover {
    color: var(--white);
}

.inner-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 17px;
    color: #e9dfcd;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.inner-hero__eyebrow::before {
    width: 38px;
    height: 1px;
    content: "";
    background: #e9dfcd;
}

.inner-hero h1 {
    max-width: 760px;
    margin-bottom: 18px;
    color: var(--white);
    font-size: clamp(3rem, 5.5vw, 5.2rem);
    line-height: 1.02;
}

.inner-hero__content > p {
    max-width: 690px;
    margin-bottom: 30px;
    color: rgba(255, 255, 255, 0.86);
    font-size: 1.04rem;
}

.inner-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.inner-hero__fact {
    display: grid;
    min-width: 145px;
    padding: 12px 15px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--radius-sm);
    backdrop-filter: blur(7px);
}

.inner-hero__fact span {
    margin-bottom: 3px;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.inner-hero__fact strong {
    color: var(--white);
    font-size: 0.82rem;
}


/*
|--------------------------------------------------------------------------
| 02. Campus introduction
|--------------------------------------------------------------------------
*/

.campus-introduction {
    background: var(--white);
}

.campus-introduction__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(320px, 0.85fr);
    gap: 80px;
    align-items: start;
}

.campus-introduction__content {
    max-width: 720px;
}

.campus-introduction__content h2 {
    margin-bottom: 22px;
    font-size: clamp(2.5rem, 4.3vw, 4rem);
}

.campus-introduction__content h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-introduction__lead {
    color: var(--text);
    font-size: 1.08rem;
    line-height: 1.8;
}

.campus-introduction__content p:not(
    .campus-introduction__lead
) {
    color: var(--muted);
}

.campus-facts {
    padding: 31px;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.campus-facts__eyebrow {
    display: block;
    margin-bottom: 17px;
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.campus-facts dl {
    margin: 0;
}

.campus-facts dl > div {
    display: grid;
    grid-template-columns: 125px 1fr;
    gap: 17px;
    padding: 15px 0;
    border-top: 1px solid var(--border);
}

.campus-facts dl > div:last-child {
    border-bottom: 1px solid var(--border);
}

.campus-facts dt {
    color: var(--muted);
    font-size: 0.75rem;
}

.campus-facts dd {
    margin: 0;
    color: var(--text);
    font-size: 0.84rem;
    font-weight: 700;
}

.campus-facts__button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 23px;
    color: var(--blue-grey);
    font-size: 0.84rem;
    font-weight: 700;
}

.campus-facts__button span {
    transition: transform var(--transition);
}

.campus-facts__button:hover span {
    transform: translateX(4px);
}


/*
|--------------------------------------------------------------------------
| 03. Campus experience
|--------------------------------------------------------------------------
*/

.campus-experience {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-experience__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-experience__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 43px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-experience-card {
    min-height: 285px;
    padding: 31px 26px;
    background: var(--white);
    transition:
        background var(--transition),
        transform var(--transition);
}

.campus-experience-card
+ .campus-experience-card {
    border-left: 1px solid var(--border);
}

.campus-experience-card:hover {
    background: var(--blue-grey-soft);
    transform: translateY(-4px);
}

.campus-experience-card__number {
    display: block;
    margin-bottom: 55px;
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.campus-experience-card h3 {
    margin-bottom: 12px;
    color: var(--text);
    font-size: 1.28rem;
}

.campus-experience-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.88rem;
}


/*
|--------------------------------------------------------------------------
| 04. Campus contact panel
|--------------------------------------------------------------------------
*/



/*
|--------------------------------------------------------------------------
| 03A. Shared detailed-section heading
|--------------------------------------------------------------------------
*/

.campus-detail-heading {
    display: flex;
    justify-content: space-between;
    margin-bottom: 42px;
}

.campus-detail-heading .section-heading {
    margin-bottom: 0;
}

.campus-detail-heading h2 span {
    display: block;
    color: var(--blue-grey);
}


/*
|--------------------------------------------------------------------------
| 03B. Campus academic approach
|--------------------------------------------------------------------------
*/

.campus-academics {
    background: var(--white);
}

.campus-academics__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-academic-card {
    min-height: 275px;
    padding: 30px 25px;
    background: var(--white);
    transition:
        background var(--transition),
        transform var(--transition);
}

.campus-academic-card + .campus-academic-card {
    border-left: 1px solid var(--border);
}

.campus-academic-card:hover {
    background: var(--ivory);
    transform: translateY(-4px);
}

.campus-academic-card__number {
    display: block;
    margin-bottom: 51px;
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.campus-academic-card h3 {
    margin-bottom: 12px;
    color: var(--text);
    font-size: 1.28rem;
}

.campus-academic-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.88rem;
}


/*
|--------------------------------------------------------------------------
| 03C. Residential school experience
|--------------------------------------------------------------------------
*/

.campus-residential {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-residential__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(0, 0.95fr);
    gap: 75px;
    align-items: center;
}

.campus-residential__media {
    position: relative;
    min-height: 550px;
    overflow: hidden;
    background: var(--cream);
    border-radius: var(--radius-lg);
}

.campus-residential__media img {
    width: 100%;
    height: 100%;
    min-height: 550px;
    object-fit: cover;
}

.campus-residential__label {
    position: absolute;
    right: 22px;
    bottom: 22px;
    display: grid;
    min-width: 220px;
    padding: 17px 20px;
    color: var(--muted);
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: var(--radius-md);
    font-size: 0.68rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.campus-residential__label strong {
    margin-top: 4px;
    color: var(--text);
    font-family: var(--heading-font);
    font-size: 1.1rem;
    letter-spacing: 0;
    text-transform: none;
}

.campus-residential__content h2 {
    margin-bottom: 20px;
    font-size: clamp(2.45rem, 4.2vw, 3.8rem);
}

.campus-residential__content h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-residential__content > p {
    margin-bottom: 27px;
    color: var(--muted);
}

.campus-residential__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 22px;
    margin: 0 0 28px;
    padding: 0;
    list-style: none;
}

.campus-residential__features li {
    display: grid;
    grid-template-columns: 23px 1fr;
    gap: 9px;
    color: var(--text);
    font-size: 0.84rem;
}

.campus-residential__features li > span {
    display: grid;
    width: 20px;
    height: 20px;
    color: var(--blue-grey);
    background: var(--blue-grey-soft);
    border-radius: 50%;
    font-size: 0.65rem;
    place-items: center;
}

.campus-residential__link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--blue-grey);
    font-size: 0.86rem;
    font-weight: 700;
}

.campus-residential__link span {
    transition: transform var(--transition);
}

.campus-residential__link:hover span {
    transform: translateX(4px);
}


/*
|--------------------------------------------------------------------------
| 03D. Campus facilities
|--------------------------------------------------------------------------
*/

.campus-facilities {
    background: var(--white);
}

.campus-facilities__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.campus-facility-card {
    overflow: hidden;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition:
        transform var(--transition),
        box-shadow var(--transition);
}

.campus-facility-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-sm);
}

.campus-facility-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--cream);
}

.campus-facility-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 550ms ease;
}

.campus-facility-card:hover
.campus-facility-card__media img {
    transform: scale(1.04);
}

.campus-facility-card__body {
    position: relative;
    min-height: 210px;
    padding: 25px;
    overflow: hidden;
}

.campus-facility-card__body::after {
    position: absolute;
    right: -48px;
    bottom: -62px;
    width: 135px;
    height: 135px;
    content: "";
    background: var(--blue-grey-soft);
    border-radius: 50%;
}

.campus-facility-card__number,
.campus-facility-card h3,
.campus-facility-card p {
    position: relative;
    z-index: 2;
}

.campus-facility-card__number {
    display: block;
    margin-bottom: 25px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.campus-facility-card h3 {
    margin-bottom: 9px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 1rem;
    font-weight: 700;
}

.campus-facility-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.85rem;
}


/*
|--------------------------------------------------------------------------
| 03E. Campus gallery preview
|--------------------------------------------------------------------------
*/

.campus-gallery-preview {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-gallery-preview__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(300px, 0.85fr);
    grid-template-rows: repeat(3, 190px);
    gap: 17px;
}

.campus-gallery-item {
    position: relative;
    min-width: 0;
    height: 100%;
    margin: 0;
    overflow: hidden;
    background: var(--cream);
    border-radius: var(--radius-md);
}

.campus-gallery-item--large {
    grid-row: span 3;
}

.campus-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms ease;
}

.campus-gallery-item:hover img {
    transform: scale(1.035);
}

.campus-gallery-item::after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(
            0deg,
            rgba(40, 50, 53, 0.62),
            rgba(40, 50, 53, 0.02) 58%
        );
}

.campus-gallery-item figcaption {
    position: absolute;
    right: 22px;
    bottom: 19px;
    left: 22px;
    z-index: 2;
    color: var(--white);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}




/*
|--------------------------------------------------------------------------
| 03F. Campus activities and experiences
|--------------------------------------------------------------------------
*/

.campus-activities {
    background: var(--white);
}

.campus-activities__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.campus-activity-card {
    min-width: 0;
}

.campus-activity-card__media {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    background: var(--cream);
    border-radius: var(--radius-md);
}

.campus-activity-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 650ms ease;
}

.campus-activity-card:hover
.campus-activity-card__media img {
    transform: scale(1.04);
}

.campus-activity-card__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            0deg,
            rgba(39, 48, 51, 0.82) 0%,
            rgba(39, 48, 51, 0.38) 52%,
            rgba(39, 48, 51, 0.04) 100%
        );
}

.campus-activity-card__content {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    padding: 25px;
    color: var(--white);
}

.campus-activity-card__content > span {
    display: block;
    margin-bottom: 7px;
    color: #e9dfcd;
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.campus-activity-card h3 {
    margin-bottom: 8px;
    color: var(--white);
    font-size: 1.4rem;
}

.campus-activity-card p {
    display: -webkit-box;
    margin-bottom: 0;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.84rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}






.campus-contact {
    background: var(--white);
}

.campus-contact__panel {
    display: grid;
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(320px, 0.95fr);
    gap: 60px;
    padding: 52px;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #52676f,
            #728790
        );
    border-radius: var(--radius-lg);
}

.campus-contact__content {
    align-self: center;
}

.campus-contact__eyebrow {
    display: block;
    margin-bottom: 15px;
    color: #e9dfcd;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.campus-contact h2 {
    margin-bottom: 17px;
    color: var(--white);
    font-size: clamp(2.35rem, 4vw, 3.65rem);
}

.campus-contact h2 span {
    display: block;
    color: #e9dfcd;
}

.campus-contact__content p {
    max-width: 610px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.80);
}

.campus-contact__details {
    align-self: center;
    padding: 27px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--radius-md);
    backdrop-filter: blur(8px);
}

.campus-contact__details p {
    display: grid;
    margin-bottom: 15px;
    color: var(--white);
    font-size: 0.84rem;
}

.campus-contact__details p span {
    margin-bottom: 3px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.campus-contact__details a:hover {
    color: #e9dfcd;
}

.campus-contact__button {
    display: inline-flex;
    min-height: 47px;
    margin-top: 6px;
    padding: 11px 18px;
    color: #52676f;
    background: var(--white);
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: var(--radius-round);
}

.campus-contact__button:hover {
    color: var(--white);
    background: #3f535b;
}


/*
|--------------------------------------------------------------------------
| 05. Responsive — tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 950px) {
    .campus-introduction__grid,
    .campus-contact__panel {
        grid-template-columns: 1fr;
    }

    .campus-introduction__grid {
        gap: 45px;
    }

    .campus-facts {
        max-width: 720px;
    }

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

    .campus-experience-card:nth-child(3) {
        border-top: 1px solid var(--border);
        border-left: 0;
    }

    .campus-experience-card:nth-child(4) {
        border-top: 1px solid var(--border);
    }
}


/*
|--------------------------------------------------------------------------
| 06. Responsive — mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 620px) {
    .inner-hero,
    .inner-hero__inner {
        min-height: 620px;
    }

    .inner-hero__inner {
        padding-top: 120px;
        padding-bottom: 45px;
    }

    .inner-hero__overlay {
        background:
            linear-gradient(
                0deg,
                rgba(42, 53, 57, 0.91) 0%,
                rgba(48, 62, 66, 0.56) 68%,
                rgba(48, 62, 66, 0.24) 100%
            );
    }

    .inner-hero h1 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }

    .inner-hero__facts {
        display: grid;
        grid-template-columns: 1fr;
    }

    .inner-hero__fact {
        min-width: 0;
    }

    .campus-introduction__content h2 {
        font-size: clamp(2.3rem, 11vw, 3.3rem);
    }

    .campus-facts {
        padding: 24px 21px;
    }

    .campus-facts dl > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .campus-experience__grid {
        grid-template-columns: 1fr;
    }

    .campus-experience-card {
        min-height: auto;
        padding: 27px 22px;
    }

    .campus-experience-card
    + .campus-experience-card {
        border-top: 1px solid var(--border);
        border-left: 0;
    }

    .campus-experience-card__number {
        margin-bottom: 28px;
    }

    .campus-contact__panel {
        gap: 35px;
        padding: 34px 23px;
        border-radius: var(--radius-md);
    }

    .campus-contact__details {
        padding: 22px;
    }

    .campus-contact__button {
        width: 100%;
    }
}






/*
|--------------------------------------------------------------------------
| Responsive — detailed Peddapuram sections
|--------------------------------------------------------------------------
*/

@media (max-width: 950px) {
    .campus-academics__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .campus-academic-card:nth-child(3) {
        border-top: 1px solid var(--border);
        border-left: 0;
    }

    .campus-academic-card:nth-child(4) {
        border-top: 1px solid var(--border);
    }

    .campus-residential__grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .campus-residential__media {
        max-width: 760px;
        min-height: 470px;
    }

    .campus-residential__media img {
        min-height: 470px;
    }

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

@media (max-width: 620px) {
    .campus-academics__grid,
.campus-facilities__grid,
.campus-gallery-preview__grid,
.campus-activities__grid {
    grid-template-columns: 1fr;
}

    .campus-academic-card {
        min-height: auto;
        padding: 26px 22px;
    }

    .campus-academic-card
    + .campus-academic-card {
        border-top: 1px solid var(--border);
        border-left: 0;
    }

    .campus-academic-card__number {
        margin-bottom: 27px;
    }

    .campus-residential__media,
    .campus-residential__media img {
        min-height: 390px;
    }

    .campus-residential__label {
        right: 15px;
        bottom: 15px;
        left: 15px;
        min-width: 0;
    }

    .campus-residential__features {
        grid-template-columns: 1fr;
    }

    .campus-facility-card {
        min-height: auto;
        padding: 24px;
    }

    .campus-gallery-preview__grid {
        grid-template-rows: none;
    }

    .campus-gallery-item,
    .campus-gallery-item--large {
        grid-row: auto;
        height: 330px;
    }
}

.campus-facility-card__body {
    min-height: auto;
}

.campus-activity-card__media {
    min-height: 360px;
}






/*
|--------------------------------------------------------------------------
/*
|--------------------------------------------------------------------------
| Campus-page header behaviour
|--------------------------------------------------------------------------
|
| The normal website header remains at the top of the page instead of
| repeating during full-page screenshot stitching.
|
*/

.site-header {
    position: relative;
    top: auto;
}


/*
|--------------------------------------------------------------------------
| Compact campus-specific navigation
|--------------------------------------------------------------------------
*/

.campus-subnav {
    position: relative;
    z-index: 4;
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-subnav__inner {
    display: flex;
    min-height: 66px;
    align-items: center;
    gap: 30px;
}

.campus-subnav__identity {
    display: flex;
    min-width: 190px;
    flex: 0 0 auto;
    flex-direction: column;
    line-height: 1.2;
}

.campus-subnav__identity span {
    margin-bottom: 4px;
    color: var(--gold);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.campus-subnav__identity strong {
    color: var(--text);
    font-family: var(--heading-font);
    font-size: 1rem;
    font-weight: 600;
}

.campus-subnav__links {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.campus-subnav__link {
    display: inline-flex;
    min-height: 38px;
    padding: 8px 15px;
    align-items: center;
    flex: 0 0 auto;
    color: var(--muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 700;
    white-space: nowrap;
    transition:
        color var(--transition),
        background var(--transition),
        border-color var(--transition);
}

.campus-subnav__link:hover {
    color: var(--text);
    background: var(--white);
    border-color: var(--border);
}

.campus-subnav__link.is-active {
    color: var(--blue-grey);
    background: var(--white);
    border-color: var(--border);
    box-shadow: 0 4px 15px rgba(44, 55, 59, 0.05);
}


/*
|--------------------------------------------------------------------------
| Responsive — campus-specific navigation
|--------------------------------------------------------------------------
*/

@media (max-width: 950px) {
    .campus-subnav__inner {
        display: block;
        min-height: auto;
        padding-top: 15px;
        padding-bottom: 13px;
    }

    .campus-subnav__identity {
        min-width: 0;
        margin-bottom: 12px;
    }

    .campus-subnav__links {
        padding-bottom: 3px;
    }
}

@media (max-width: 620px) {
    .campus-subnav__inner {
        padding-right: 0;
    }

    .campus-subnav__links {
        padding-right: var(--container-padding);
    }

    .campus-subnav__link {
        min-height: 36px;
        padding-right: 13px;
        padding-left: 13px;
    }
}


/*
|--------------------------------------------------------------------------
| About page — school identity
|--------------------------------------------------------------------------
*/

.campus-about-intro {
    background: var(--white);
}

.campus-about-intro__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(330px, 0.85fr);
    gap: 75px;
    align-items: start;
}

.campus-about-intro__content {
    max-width: 760px;
}

.campus-about-intro__content h2 {
    margin-bottom: 24px;
    font-size: clamp(2.6rem, 4.6vw, 4.2rem);
}

.campus-about-intro__content h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-about-intro__content p {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.8;
}

.campus-about-intro__content p:first-of-type {
    color: var(--text);
    font-size: 1.08rem;
}

.campus-about-facts {
    padding: 31px;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.campus-about-facts__eyebrow {
    display: block;
    margin-bottom: 17px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.campus-about-facts dl {
    margin: 0;
}

.campus-about-facts dl > div {
    display: grid;
    grid-template-columns: 125px 1fr;
    gap: 18px;
    padding: 17px 0;
    border-top: 1px solid var(--border);
}

.campus-about-facts dl > div:last-child {
    border-bottom: 1px solid var(--border);
}

.campus-about-facts dt {
    color: var(--muted);
    font-size: 0.74rem;
}

.campus-about-facts dd {
    margin: 0;
    color: var(--text);
    font-size: 0.84rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| About page — values, mission and vision
|--------------------------------------------------------------------------
*/

.campus-values {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-values__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-values__list {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 39px 0 43px;
}

.campus-values__list span {
    display: inline-flex;
    min-height: 45px;
    padding: 10px 18px;
    align-items: center;
    color: var(--text);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-round);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.campus-purpose {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.campus-purpose__card {
    min-height: 260px;
    padding: 35px;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #52676f,
            #71868e
        );
    border-radius: var(--radius-md);
}

.campus-purpose__card--vision {
    color: var(--text);
    background: var(--white);
    border: 1px solid var(--border);
}

.campus-purpose__card > span {
    display: block;
    margin-bottom: 38px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.campus-purpose__card--vision > span {
    color: var(--gold);
}

.campus-purpose__card blockquote {
    margin: 0;
    color: inherit;
    font-family: var(--heading-font);
    font-size: clamp(1.65rem, 2.8vw, 2.35rem);
    line-height: 1.35;
}


/*
|--------------------------------------------------------------------------
| Synergy leadership
|--------------------------------------------------------------------------
*/

.campus-leadership {
    background: #ffffff;
}

.campus-leadership__heading {
    max-width: 780px;
    margin: 0 auto 44px;
    text-align: center;
}

.campus-leadership__heading h2 {
    margin: 12px 0 18px;
}

.campus-leadership__heading h2 span {
    display: block;
}

.campus-leadership__heading p {
    margin: 0;
    color: var(--muted);
    line-height: 1.75;
}

.campus-leadership__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.campus-leadership__grid--single {
    grid-template-columns: minmax(0, 940px);
    justify-content: center;
}

.campus-leader-card {
    overflow: hidden;
    background: #fbfaf7;
    border: 1px solid rgba(44, 59, 70, 0.13);
    border-top: 4px solid var(--blue-grey);
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(32, 46, 58, 0.07);
}

.campus-leader-card__profile {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    padding: 32px 32px 28px;
}

.campus-leader-card__photo {
    width: 180px;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #ffffff;
    border: 6px solid #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(32, 46, 58, 0.13);
}

.campus-leader-card__photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.campus-leader-card__identity {
    min-width: 0;
}

.campus-leader-card__identity h3 {
    margin: 0 0 10px;
    color: var(--text);
    font-size: clamp(1.45rem, 2vw, 1.85rem);
    line-height: 1.2;
}

.campus-leader-card__identity span {
    display: block;
    color: var(--gold);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.campus-leader-card__content {
    margin: 0 32px;
    padding: 28px 0 34px;
    border-top: 1px solid rgba(44, 59, 70, 0.13);
}

.campus-leader-card__content blockquote {
    margin: 0 0 22px;
    color: var(--text);
    font-family: var(--heading-font);
    font-size: clamp(1.08rem, 1.6vw, 1.28rem);
    font-style: italic;
    line-height: 1.55;
}

.campus-leader-card__content p {
    margin: 0 0 16px;
    color: var(--muted);
    font-size: 0.94rem;
    line-height: 1.75;
}

.campus-leader-card__content p:last-child {
    margin-bottom: 0;
}

/*
|--------------------------------------------------------------------------
| Single-leader enhancement
|--------------------------------------------------------------------------
*/

.campus-leadership__grid--single .campus-leader-card {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
}

.campus-leadership__grid--single
.campus-leader-card__profile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 24px;
    padding: 38px;
    background: rgba(105, 128, 142, 0.055);
}

.campus-leadership__grid--single
.campus-leader-card__photo {
    width: 220px;
}

.campus-leadership__grid--single
.campus-leader-card__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0;
    padding: 46px;
    border-top: 0;
}

/*
|--------------------------------------------------------------------------
| Responsive
|--------------------------------------------------------------------------
*/

@media (max-width: 1050px) {
    .campus-leadership__grid {
        grid-template-columns: 1fr;
    }

    .campus-leader-card {
        max-width: 820px;
        width: 100%;
        margin-inline: auto;
    }
}

@media (max-width: 760px) {
    .campus-leadership__grid--single
    .campus-leader-card {
        display: block;
    }

    .campus-leadership__grid--single
    .campus-leader-card__profile {
        align-items: center;
        text-align: center;
    }

    .campus-leadership__grid--single
    .campus-leader-card__content {
        padding: 30px;
        border-top: 1px solid rgba(44, 59, 70, 0.13);
    }
}

@media (max-width: 580px) {
    .campus-leader-card__profile {
        grid-template-columns: 125px minmax(0, 1fr);
        gap: 20px;
        padding: 24px;
    }

    .campus-leader-card__photo {
        width: 125px;
        border-radius: 13px;
    }

    .campus-leader-card__content {
        margin: 0 24px;
        padding: 24px 0 28px;
    }

    .campus-leader-card__identity h3 {
        font-size: 1.3rem;
    }

    .campus-leadership__grid--single
    .campus-leader-card__photo {
        width: 180px;
    }
}


/*
|--------------------------------------------------------------------------
| About page — next destination
|--------------------------------------------------------------------------
*/

.campus-about-next {
    background: var(--ivory);
    border-top: 1px solid var(--border);
}

.campus-about-next__panel {
    display: flex;
    gap: 35px;
    padding: 38px 42px;
    align-items: center;
    justify-content: space-between;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #52676f,
            #728790
        );
    border-radius: var(--radius-lg);
}

.campus-about-next__panel > div > span {
    display: block;
    margin-bottom: 8px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.campus-about-next__panel h2 {
    max-width: 720px;
    margin: 0;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.campus-about-next__panel > a {
    display: inline-flex;
    min-height: 48px;
    padding: 11px 19px;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    color: #52676f;
    background: var(--white);
    border-radius: var(--radius-round);
    font-size: 0.78rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Responsive — campus subnav and About page
|--------------------------------------------------------------------------
*/

@media (max-width: 950px) {
    .campus-subnav__inner {
        display: block;
        padding-top: 13px;
    }

    .campus-subnav__campus {
        display: block;
        margin-bottom: 4px;
    }

    .campus-subnav__links {
        min-height: 52px;
    }

    .campus-subnav__link {
        min-height: 52px;
    }

    .campus-about-intro__grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .campus-about-facts {
        max-width: 720px;
    }

    .campus-leadership__grid {
        grid-template-columns: 1fr;
    }

    .campus-about-next__panel {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .campus-subnav__inner {
        padding-right: 0;
    }

    .campus-subnav__links {
        padding-right: var(--container-padding);
    }

    .campus-subnav__link {
        padding-right: 12px;
        padding-left: 12px;
    }

    .campus-about-intro__content h2 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .campus-about-facts {
        padding: 24px 21px;
    }

    .campus-about-facts dl > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .campus-purpose {
        grid-template-columns: 1fr;
    }

    .campus-purpose__card {
        min-height: 230px;
        padding: 28px 23px;
    }

    .campus-leader {
        padding: 25px 21px;
    }

    .campus-leader__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .campus-leader__photo {
        width: 135px;
        height: 135px;
        flex-basis: 135px;
    }

    .campus-about-next__panel {
        padding: 31px 23px;
        border-radius: var(--radius-md);
    }

    .campus-about-next__panel > a {
        width: 100%;
        justify-content: center;
    }
}




/*
|--------------------------------------------------------------------------
| Academics page — introduction
|--------------------------------------------------------------------------
*/

.academics-intro {
    background: var(--white);
}

.academics-intro__heading {
    max-width: 850px;
}

.academics-intro__heading h2 {
    margin-bottom: 24px;
    font-size: clamp(2.7rem, 5vw, 4.6rem);
}

.academics-intro__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.academics-intro__heading p {
    max-width: 760px;
    color: var(--muted);
    font-size: 1.04rem;
    line-height: 1.8;
}


/*
|--------------------------------------------------------------------------
| Academics page — pathways
|--------------------------------------------------------------------------
*/

.academic-pathways-page {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.academic-pathways-page__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 19px;
}

.academic-pathway-page-card {
    overflow: hidden;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.academic-pathway-page-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--cream);
}

.academic-pathway-page-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 550ms ease;
}

.academic-pathway-page-card:hover
.academic-pathway-page-card__media img {
    transform: scale(1.04);
}

.academic-pathway-page-card__body {
    padding: 27px;
}

.academic-pathway-page-card__body > span {
    display: block;
    margin-bottom: 5px;
    color: var(--gold);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.academic-pathway-page-card__body > strong {
    display: block;
    margin-bottom: 20px;
    color: var(--muted);
    font-size: 0.76rem;
}

.academic-pathway-page-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-size: 1.35rem;
}

.academic-pathway-page-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.87rem;
}


/*
|--------------------------------------------------------------------------
| Academics page — senior secondary streams
|--------------------------------------------------------------------------
*/

.academic-streams {
    background: var(--white);
}

.academic-streams__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.academic-stream-card {
    min-height: 230px;
    padding: 27px;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-top: 4px solid var(--blue-grey);
    border-radius: var(--radius-md);
}

.academic-stream-card__code {
    display: block;
    margin-bottom: 34px;
    color: var(--gold);
    font-family: var(--heading-font);
    font-size: 2.25rem;
    line-height: 1;
}

.academic-stream-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.94rem;
}

.academic-stream-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.82rem;
}


/*
|--------------------------------------------------------------------------
| Academics page — competitive programmes
|--------------------------------------------------------------------------
*/

.competitive-programmes {
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
}

.competitive-programmes__grid {
    display: grid;
    grid-template-columns:
        minmax(280px, 0.75fr)
        minmax(0, 1.25fr);
    gap: 75px;
}

.competitive-programmes__heading .eyebrow {
    color: #e9dfcd;
}

.competitive-programmes__heading h2 {
    color: var(--white);
    font-size: clamp(2.4rem, 4vw, 3.8rem);
}

.competitive-programmes__heading h2 span {
    display: block;
    color: #e9dfcd;
}

.competitive-programmes__heading p {
    color: rgba(255, 255, 255, 0.78);
}

.competitive-programmes__list {
    display: grid;
    gap: 12px;
}

.competitive-programme-card {
    display: grid;
    grid-template-columns: 55px 1fr;
    gap: 20px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: var(--radius-md);
}

.competitive-programme-card__number {
    color: #e9dfcd;
    font-size: 0.69rem;
    font-weight: 700;
}

.competitive-programme-card__duration {
    display: block;
    margin-bottom: 4px;
    color: #e9dfcd;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.competitive-programme-card h3 {
    margin-bottom: 4px;
    color: var(--white);
    font-size: 1.28rem;
}

.competitive-programme-card strong {
    display: block;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.76rem;
}

.competitive-programme-card p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Academics page — methodology
|--------------------------------------------------------------------------
*/

.academic-methodology {
    background: var(--ivory);
    border-bottom: 1px solid var(--border);
}

.academic-methodology__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.academic-method-card {
    padding: 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.academic-method-card > span {
    display: block;
    margin-bottom: 38px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.academic-method-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.98rem;
}

.academic-method-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Academics page — language development
|--------------------------------------------------------------------------
*/

.academic-language {
    background: var(--white);
}

.academic-language__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);
    gap: 70px;
    align-items: center;
}

.academic-language__media {
    min-height: 610px;
    overflow: hidden;
    background: var(--cream);
    border-radius: var(--radius-lg);
}

.academic-language__media img {
    width: 100%;
    height: 100%;
    min-height: 610px;
    object-fit: cover;
}

.academic-language__content h2 {
    margin-bottom: 20px;
    font-size: clamp(2.4rem, 4vw, 3.8rem);
}

.academic-language__content h2 span {
    display: block;
    color: var(--blue-grey);
}

.academic-language__content > p {
    color: var(--muted);
}

.academic-language__items {
    display: grid;
    gap: 0;
    margin-top: 28px;
}

.academic-language__items article {
    padding: 20px 0;
    border-top: 1px solid var(--border);
}

.academic-language__items article:last-child {
    border-bottom: 1px solid var(--border);
}

.academic-language__items h3 {
    margin-bottom: 7px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.96rem;
}

.academic-language__items p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Academics page — enquiry
|--------------------------------------------------------------------------
*/

.academic-enquiry {
    background: var(--ivory);
    border-top: 1px solid var(--border);
}

.academic-enquiry__panel {
    display: flex;
    gap: 35px;
    padding: 40px 43px;
    align-items: center;
    justify-content: space-between;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
    border-radius: var(--radius-lg);
}

.academic-enquiry__panel > div > span {
    display: block;
    margin-bottom: 8px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.academic-enquiry__panel h2 {
    max-width: 720px;
    margin: 0;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.academic-enquiry__panel > a {
    display: inline-flex;
    min-height: 48px;
    padding: 11px 19px;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    color: #50656e;
    background: var(--white);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Responsive — Academics page
|--------------------------------------------------------------------------
*/

@media (max-width: 1050px) {
    .academic-streams__grid,
    .academic-methodology__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 950px) {
    .academic-pathways-page__grid {
        grid-template-columns: 1fr;
    }

    .competitive-programmes__grid,
    .academic-language__grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .academic-language__media,
    .academic-language__media img {
        min-height: 480px;
    }

    .academic-enquiry__panel {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .academics-intro__heading h2 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .academic-streams__grid,
    .academic-methodology__grid {
        grid-template-columns: 1fr;
    }

    .competitive-programme-card {
        grid-template-columns: 1fr;
    }

    .academic-language__media,
    .academic-language__media img {
        min-height: 360px;
    }

    .academic-enquiry__panel {
        padding: 31px 23px;
        border-radius: var(--radius-md);
    }

    .academic-enquiry__panel > a {
        width: 100%;
        justify-content: center;
    }
}




/*
|--------------------------------------------------------------------------
| Campus Life page — introduction
|--------------------------------------------------------------------------
*/

.campus-life-intro {
    background: var(--white);
}

.campus-life-intro__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(320px, 0.8fr);
    gap: 80px;
    align-items: start;
}

.campus-life-intro__heading h2 {
    margin-bottom: 0;
    font-size: clamp(2.7rem, 5vw, 4.5rem);
}

.campus-life-intro__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-life-intro__text {
    padding-top: 31px;
}

.campus-life-intro__text p {
    color: var(--muted);
    line-height: 1.8;
}

.campus-life-intro__lead {
    color: var(--text) !important;
    font-size: 1.08rem;
}


/*
|--------------------------------------------------------------------------
| Campus Life page — learning spaces
|--------------------------------------------------------------------------
*/

.campus-life-spaces {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-life-spaces__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px;
}

.campus-life-space-card {
    display: grid;
    grid-template-columns:
        minmax(190px, 0.85fr)
        minmax(0, 1.15fr);
    min-height: 310px;
    overflow: hidden;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.campus-life-space-card__media {
    min-height: 310px;
    overflow: hidden;
    background: var(--cream);
}

.campus-life-space-card__media img {
    width: 100%;
    height: 100%;
    min-height: 310px;
    object-fit: cover;
    transition: transform 550ms ease;
}

.campus-life-space-card:hover
.campus-life-space-card__media img {
    transform: scale(1.04);
}

.campus-life-space-card__body {
    display: flex;
    padding: 29px;
    flex-direction: column;
    justify-content: center;
}

.campus-life-space-card__body > span {
    display: block;
    margin-bottom: 32px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.campus-life-space-card h3 {
    margin-bottom: 11px;
    color: var(--text);
    font-size: 1.35rem;
}

.campus-life-space-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.85rem;
}


/*
|--------------------------------------------------------------------------
| Campus Life page — sports and wellbeing
|--------------------------------------------------------------------------
*/

.campus-sports-life {
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
}

.campus-sports-life__heading {
    max-width: 760px;
    margin-bottom: 42px;
}

.campus-sports-life__heading .eyebrow {
    color: #e9dfcd;
}

.campus-sports-life__heading h2 {
    color: var(--white);
    font-size: clamp(2.5rem, 4.5vw, 4rem);
}

.campus-sports-life__heading h2 span {
    display: block;
    color: #e9dfcd;
}

.campus-sports-life__heading p {
    max-width: 690px;
    color: rgba(255, 255, 255, 0.76);
}

.campus-sports-life__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.campus-sport-card {
    display: grid;
    grid-template-columns:
        minmax(190px, 0.9fr)
        minmax(0, 1.1fr);
    min-height: 290px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: var(--radius-md);
}

.campus-sport-card__media {
    min-height: 290px;
    overflow: hidden;
}

.campus-sport-card__media img {
    width: 100%;
    height: 100%;
    min-height: 290px;
    object-fit: cover;
    transition: transform 550ms ease;
}

.campus-sport-card:hover
.campus-sport-card__media img {
    transform: scale(1.04);
}

.campus-sport-card__body {
    display: flex;
    padding: 28px;
    flex-direction: column;
    justify-content: center;
}

.campus-sport-card__body > span {
    display: block;
    margin-bottom: 30px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
}

.campus-sport-card h3 {
    margin-bottom: 10px;
    color: var(--white);
    font-size: 1.32rem;
}

.campus-sport-card p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Campus Life page — residential life
|--------------------------------------------------------------------------
*/

.campus-residential-life-page {
    background: var(--white);
}

.campus-residential-life-page__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 0.92fr)
        minmax(0, 1.08fr);
    gap: 75px;
    align-items: center;
}

.campus-residential-life-page__media {
    position: relative;
    min-height: 650px;
}

.campus-residential-life-page__primary {
    width: calc(100% - 75px);
    height: 565px;
    margin: 0;
    overflow: hidden;
    background: var(--cream);
    border-radius: var(--radius-lg);
}

.campus-residential-life-page__primary img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.campus-residential-life-page__secondary {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 48%;
    height: 255px;
    margin: 0;
    overflow: hidden;
    background: var(--cream);
    border: 8px solid var(--white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.campus-residential-life-page__secondary img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.campus-residential-life-page__content h2 {
    margin-bottom: 21px;
    font-size: clamp(2.5rem, 4.3vw, 3.9rem);
}

.campus-residential-life-page__content h2 span {
    display: block;
    color: var(--blue-grey);
}

.campus-residential-life-page__lead {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.8;
}

.campus-residential-life-page__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 30px;
    border-top: 1px solid var(--border);
    border-left: 1px solid var(--border);
}

.campus-residential-life-page__features article {
    padding: 22px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-residential-life-page__features h3 {
    margin-bottom: 7px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.91rem;
}

.campus-residential-life-page__features p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.81rem;
}


/*
|--------------------------------------------------------------------------
| Campus Life page — campus care
|--------------------------------------------------------------------------
*/

.campus-care {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.campus-care__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.campus-care-card {
    min-height: 245px;
    padding: 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-top: 4px solid var(--blue-grey);
    border-radius: var(--radius-md);
}

.campus-care-card > span {
    display: block;
    margin-bottom: 40px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.campus-care-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.96rem;
}

.campus-care-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.83rem;
}


/*
|--------------------------------------------------------------------------
| Campus Life page — enquiry
|--------------------------------------------------------------------------
*/

.campus-life-enquiry {
    background: var(--white);
}

.campus-life-enquiry__panel {
    display: flex;
    gap: 35px;
    padding: 40px 43px;
    align-items: center;
    justify-content: space-between;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
    border-radius: var(--radius-lg);
}

.campus-life-enquiry__panel > div > span {
    display: block;
    margin-bottom: 8px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.campus-life-enquiry__panel h2 {
    max-width: 720px;
    margin: 0;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.campus-life-enquiry__panel > a {
    display: inline-flex;
    min-height: 48px;
    padding: 11px 19px;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    color: #50656e;
    background: var(--white);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Responsive — Campus Life page
|--------------------------------------------------------------------------
*/

@media (max-width: 1100px) {
    .campus-life-space-card,
    .campus-sport-card {
        grid-template-columns: 1fr;
    }

    .campus-life-space-card__media,
    .campus-life-space-card__media img,
    .campus-sport-card__media,
    .campus-sport-card__media img {
        min-height: 245px;
    }

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

@media (max-width: 950px) {
    .campus-life-intro__grid,
    .campus-residential-life-page__grid {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .campus-life-intro__text {
        max-width: 760px;
        padding-top: 0;
    }

    .campus-residential-life-page__media {
        max-width: 760px;
    }

    .campus-life-enquiry__panel {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 760px) {
    .campus-life-spaces__grid,
    .campus-sports-life__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .campus-life-intro__heading h2 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .campus-life-space-card__body,
    .campus-sport-card__body {
        padding: 25px 22px;
    }

    .campus-residential-life-page__media {
        min-height: 470px;
    }

    .campus-residential-life-page__primary {
        width: calc(100% - 35px);
        height: 410px;
    }

    .campus-residential-life-page__secondary {
        width: 55%;
        height: 190px;
        border-width: 6px;
    }

    .campus-residential-life-page__features,
    .campus-care__grid {
        grid-template-columns: 1fr;
    }

    .campus-life-enquiry__panel {
        padding: 31px 23px;
        border-radius: var(--radius-md);
    }

    .campus-life-enquiry__panel > a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}




/*
|--------------------------------------------------------------------------
| Student Life page — introduction
|--------------------------------------------------------------------------
*/

.student-life-intro {
    background: var(--white);
}

.student-life-intro__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(320px, 0.82fr);
    gap: 80px;
    align-items: start;
}

.student-life-intro__heading h2 {
    margin-bottom: 0;
    font-size: clamp(2.7rem, 5vw, 4.5rem);
}

.student-life-intro__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.student-life-intro__content {
    padding-top: 31px;
}

.student-life-intro__content p {
    color: var(--muted);
    line-height: 1.8;
}

.student-life-intro__lead {
    color: var(--text) !important;
    font-size: 1.08rem;
}


/*
|--------------------------------------------------------------------------
| Student Life page — dimensions
|--------------------------------------------------------------------------
*/

.student-life-dimensions {
    padding-top: 0;
    background: var(--white);
}

.student-life-dimensions__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--border);
    border-left: 1px solid var(--border);
}

.student-life-dimension-card {
    min-height: 245px;
    padding: 27px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.student-life-dimension-card > span {
    display: block;
    margin-bottom: 41px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.student-life-dimension-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.96rem;
}

.student-life-dimension-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.83rem;
}


/*
|--------------------------------------------------------------------------
| Student Life page — featured experience
|--------------------------------------------------------------------------
*/

.student-life-feature {
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
}

.student-life-feature__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(0, 0.92fr);
    gap: 70px;
    align-items: center;
}

.student-life-feature__media {
    min-height: 610px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-lg);
}

.student-life-feature__media img {
    width: 100%;
    height: 100%;
    min-height: 610px;
    object-fit: cover;
}

.student-life-feature__content .eyebrow {
    color: #e9dfcd;
}

.student-life-feature__content h2 {
    margin-bottom: 8px;
    color: var(--white);
    font-size: clamp(3rem, 5vw, 4.7rem);
}

.student-life-feature__content h3 {
    margin-bottom: 21px;
    color: #e9dfcd;
    font-family: var(--heading-font);
    font-size: clamp(1.45rem, 2.3vw, 2rem);
    font-weight: 500;
    line-height: 1.4;
}

.student-life-feature__content > p {
    color: rgba(255, 255, 255, 0.77);
    line-height: 1.8;
}

.student-life-feature__content ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin: 30px 0 0;
    padding: 0;
    list-style: none;
}

.student-life-feature__content li {
    position: relative;
    padding: 14px 14px 14px 36px;
    color: rgba(255, 255, 255, 0.88);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-sm);
    font-size: 0.78rem;
}

.student-life-feature__content li::before {
    position: absolute;
    top: 17px;
    left: 15px;
    width: 7px;
    height: 7px;
    content: "";
    background: #e9dfcd;
    border-radius: 50%;
}


/*
|--------------------------------------------------------------------------
| Student Life page — signature programmes
|--------------------------------------------------------------------------
*/

.student-life-programmes {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.student-life-programmes__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.student-life-programme-card {
    overflow: hidden;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.student-life-programme-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--cream);
}

.student-life-programme-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 550ms ease;
}

.student-life-programme-card:hover
.student-life-programme-card__media img {
    transform: scale(1.04);
}

.student-life-programme-card__body {
    padding: 27px;
}

.student-life-programme-card__body > span {
    display: block;
    margin-bottom: 9px;
    color: var(--gold);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.student-life-programme-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-size: 1.42rem;
}

.student-life-programme-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.85rem;
}


/*
|--------------------------------------------------------------------------
| Student Life page — everyday growth
|--------------------------------------------------------------------------
*/

.student-life-growth {
    background: var(--white);
}

.student-life-growth__heading {
    max-width: 780px;
    margin-bottom: 42px;
}

.student-life-growth__heading h2 {
    font-size: clamp(2.5rem, 4.5vw, 4rem);
}

.student-life-growth__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.student-life-growth__heading p {
    max-width: 700px;
    color: var(--muted);
}

.student-life-growth__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.student-life-growth-card {
    display: grid;
    grid-template-columns:
        minmax(190px, 0.88fr)
        minmax(0, 1.12fr);
    min-height: 300px;
    overflow: hidden;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.student-life-growth-card__media {
    min-height: 300px;
    overflow: hidden;
    background: var(--cream);
}

.student-life-growth-card__media img {
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
    transition: transform 550ms ease;
}

.student-life-growth-card:hover
.student-life-growth-card__media img {
    transform: scale(1.04);
}

.student-life-growth-card__body {
    display: flex;
    padding: 28px;
    flex-direction: column;
    justify-content: center;
}

.student-life-growth-card__body > span {
    display: block;
    margin-bottom: 31px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.student-life-growth-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-size: 1.3rem;
}

.student-life-growth-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Student Life page — enquiry
|--------------------------------------------------------------------------
*/

.student-life-enquiry {
    background: var(--ivory);
    border-top: 1px solid var(--border);
}

.student-life-enquiry__panel {
    display: flex;
    gap: 35px;
    padding: 40px 43px;
    align-items: center;
    justify-content: space-between;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            #50656e,
            #728790
        );
    border-radius: var(--radius-lg);
}

.student-life-enquiry__panel > div > span {
    display: block;
    margin-bottom: 8px;
    color: #e9dfcd;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.student-life-enquiry__panel h2 {
    max-width: 720px;
    margin: 0;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.student-life-enquiry__panel > a {
    display: inline-flex;
    min-height: 48px;
    padding: 11px 19px;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    color: #50656e;
    background: var(--white);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Responsive — Student Life page
|--------------------------------------------------------------------------
*/

@media (max-width: 1050px) {
    .student-life-dimensions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .student-life-growth-card {
        grid-template-columns: 1fr;
    }

    .student-life-growth-card__media,
    .student-life-growth-card__media img {
        min-height: 260px;
    }
}

@media (max-width: 950px) {
    .student-life-intro__grid,
    .student-life-feature__grid {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .student-life-intro__content {
        max-width: 760px;
        padding-top: 0;
    }

    .student-life-feature__media,
    .student-life-feature__media img {
        min-height: 500px;
    }

    .student-life-enquiry__panel {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .student-life-programmes__grid,
    .student-life-growth__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .student-life-intro__heading h2 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .student-life-dimensions__grid {
        grid-template-columns: 1fr;
    }

    .student-life-feature__media,
    .student-life-feature__media img {
        min-height: 360px;
    }

    .student-life-feature__content ul {
        grid-template-columns: 1fr;
    }

    .student-life-programme-card__body,
    .student-life-growth-card__body {
        padding: 24px 22px;
    }

    .student-life-enquiry__panel {
        padding: 31px 23px;
        border-radius: var(--radius-md);
    }

    .student-life-enquiry__panel > a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}





/*
|--------------------------------------------------------------------------
| Admissions page — introduction
|--------------------------------------------------------------------------
*/

.admissions-intro {
    background: var(--white);
}

.admissions-intro__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(340px, 0.82fr);
    gap: 80px;
    align-items: start;
}

.admissions-intro__heading h2 {
    margin-bottom: 0;
    font-size: clamp(2.7rem, 5vw, 4.5rem);
}

.admissions-intro__heading h2 span {
    display: block;
    color: var(--blue-grey);
}

.admissions-intro__content {
    padding-top: 31px;
}

.admissions-intro__content > p {
    color: var(--muted);
    line-height: 1.8;
}

.admissions-intro__lead {
    color: var(--text) !important;
    font-size: 1.08rem;
}

.admissions-intro__facts {
    display: grid;
    gap: 0;
    margin: 30px 0 0;
    border-top: 1px solid var(--border);
}

.admissions-intro__facts > div {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 20px;
    padding: 16px 0;
    border-bottom: 1px solid var(--border);
}

.admissions-intro__facts dt {
    color: var(--muted);
    font-size: 0.75rem;
}

.admissions-intro__facts dd {
    margin: 0;
    color: var(--text);
    font-size: 0.84rem;
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Admissions page — admission process
|--------------------------------------------------------------------------
*/

.admissions-process {
    background: var(--ivory);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.admissions-process__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.admission-step-card {
    min-height: 245px;
    padding: 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-top: 4px solid var(--blue-grey);
    border-radius: var(--radius-md);
}

.admission-step-card > span {
    display: block;
    margin-bottom: 40px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
}

.admission-step-card h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-family: var(--body-font);
    font-size: 0.98rem;
}

.admission-step-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.84rem;
}


/*
|--------------------------------------------------------------------------
| Admissions page — enquiry section
|--------------------------------------------------------------------------
*/

.admission-enquiry {
    background: var(--white);
}

.admission-enquiry__grid {
    display: grid;
    grid-template-columns:
        minmax(300px, 0.72fr)
        minmax(0, 1.28fr);
    gap: 60px;
    align-items: start;
}

.admission-contact {
    position: sticky;
    top: 30px;
    padding: 35px;
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

.admission-contact h2 {
    margin-bottom: 18px;
    font-size: clamp(2.1rem, 3.5vw, 3.15rem);
}

.admission-contact h2 span {
    display: block;
    color: var(--blue-grey);
}

.admission-contact > p {
    color: var(--muted);
}

.admission-contact__items {
    display: grid;
    margin-top: 28px;
    border-top: 1px solid var(--border);
}

.admission-contact__items > a,
.admission-contact__items > div {
    display: grid;
    gap: 5px;
    padding: 18px 0;
    border-bottom: 1px solid var(--border);
}

.admission-contact__items > a {
    transition: padding-left var(--transition);
}

.admission-contact__items > a:hover {
    padding-left: 5px;
}

.admission-contact__items span {
    color: var(--gold);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.admission-contact__items strong {
    color: var(--text);
    font-size: 0.88rem;
    line-height: 1.6;
}

.admission-contact__notice {
    margin: 25px 0 0;
    padding: 17px;
    color: var(--muted);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 0.76rem;
}


/*
|--------------------------------------------------------------------------
| Admissions page — form
|--------------------------------------------------------------------------
*/

.admission-form-card {
    padding: 40px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.admission-form-card__heading {
    margin-bottom: 30px;
}

.admission-form-card__heading > span {
    display: block;
    margin-bottom: 8px;
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.admission-form-card__heading h2 {
    margin-bottom: 7px;
    font-size: clamp(2rem, 3.5vw, 3rem);
}

.admission-form-card__heading p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.82rem;
}

.admission-form {
    position: relative;
}

.admission-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px;
}

.admission-form__full {
    grid-column: 1 / -1;
}

.form-field {
    display: grid;
    gap: 8px;
}

.form-field label {
    color: var(--text);
    font-size: 0.76rem;
    font-weight: 700;
}

.form-field label span {
    color: var(--maroon);
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 49px;
    padding: 11px 13px;
    color: var(--text);
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font: inherit;
    font-size: 0.85rem;
    transition:
        border-color var(--transition),
        box-shadow var(--transition),
        background var(--transition);
}

.form-field textarea {
    min-height: 135px;
    resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline: none;
    background: var(--white);
    border-color: var(--blue-grey);
    box-shadow: 0 0 0 3px rgba(125, 146, 158, 0.12);
}

.admission-form__consent {
    display: flex;
    gap: 11px;
    margin: 23px 0;
    align-items: flex-start;
    color: var(--muted);
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.6;
}

.admission-form__consent input {
    width: 17px;
    height: 17px;
    margin-top: 3px;
    flex: 0 0 17px;
    accent-color: var(--blue-grey);
}

.admission-form__submit {
    display: inline-flex;
    min-height: 50px;
    padding: 12px 21px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--white);
    background: var(--blue-grey);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    transition:
        transform var(--transition),
        background var(--transition);
}

.admission-form__submit:hover {
    background: #677e89;
    transform: translateY(-1px);
}

.admission-form__honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}


/*
|--------------------------------------------------------------------------
| Admissions page — alerts
|--------------------------------------------------------------------------
*/

.form-alert {
    margin-bottom: 24px;
    padding: 16px 18px;
    border-radius: var(--radius-sm);
    font-size: 0.82rem;
    line-height: 1.6;
}

.form-alert--success {
    color: #365447;
    background: var(--green-soft);
    border: 1px solid #cadbd2;
}

.form-alert--error {
    color: #76515b;
    background: var(--maroon-soft);
    border: 1px solid #dfcbd1;
}

.form-alert ul {
    margin: 8px 0 0;
    padding-left: 19px;
}


/*
|--------------------------------------------------------------------------
| Admissions page — map
|--------------------------------------------------------------------------
*/

.admission-map {
    background: var(--ivory);
    border-top: 1px solid var(--border);
}

.admission-map__heading {
    display: flex;
    gap: 40px;
    margin-bottom: 30px;
    align-items: flex-end;
    justify-content: space-between;
}

.admission-map__heading h2 {
    margin-bottom: 0;
    font-size: clamp(2.3rem, 4vw, 3.7rem);
}

.admission-map__heading h2 span {
    color: var(--blue-grey);
}

.admission-map__heading > p {
    max-width: 430px;
    margin: 0;
    color: var(--muted);
    text-align: right;
}

.admission-map__frame {
    height: 510px;
    overflow: hidden;
    background: var(--cream);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

.admission-map__frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
}


/*
|--------------------------------------------------------------------------
| Responsive — Admissions page
|--------------------------------------------------------------------------
*/

@media (max-width: 1050px) {
    .admissions-process__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admission-enquiry__grid {
        grid-template-columns:
            minmax(270px, 0.8fr)
            minmax(0, 1.2fr);
        gap: 35px;
    }
}

@media (max-width: 900px) {
    .admissions-intro__grid,
    .admission-enquiry__grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .admissions-intro__content {
        max-width: 760px;
        padding-top: 0;
    }

    .admission-contact {
        position: relative;
        top: auto;
    }

    .admission-map__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .admission-map__heading > p {
        max-width: 650px;
        text-align: left;
    }
}

@media (max-width: 620px) {
    .admissions-intro__heading h2 {
        font-size: clamp(2.35rem, 11vw, 3.4rem);
    }

    .admissions-process__grid,
    .admission-form__grid {
        grid-template-columns: 1fr;
    }

    .admission-form__full {
        grid-column: auto;
    }

    .admission-contact,
    .admission-form-card {
        padding: 27px 21px;
        border-radius: var(--radius-md);
    }

    .admission-form__submit {
        width: 100%;
    }

    .admission-map__frame {
        height: 390px;
        border-radius: var(--radius-md);
    }
}











/*
|--------------------------------------------------------------------------
| 07. Reduced-motion accessibility
|--------------------------------------------------------------------------
*/

@media (prefers-reduced-motion: reduce) {
    .campus-experience-card,
    .campus-facts__button span {
        transition: none;
    }
}







/*
|--------------------------------------------------------------------------
| Fixed inner hero height
|--------------------------------------------------------------------------
|
| Keeps every campus inner hero at a uniform height regardless of the
| number of lines in the title, description or fact values.
|
*/

.inner-hero {
    position: relative;
    height: 560px;
    min-height: 560px;
    overflow: hidden;
}

/*
|--------------------------------------------------------------------------
| Hero image must fill the fixed area
|--------------------------------------------------------------------------
*/

.inner-hero__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.inner-hero__media img,
.inner-hero__image,
.inner-hero > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/*
|--------------------------------------------------------------------------
| Keep hero content within the fixed area
|--------------------------------------------------------------------------
*/

.inner-hero__inner {
    position: relative;
    z-index: 2;
    height: 100%;
    min-height: 0;
}

/*
|--------------------------------------------------------------------------
| Tablet hero height
|--------------------------------------------------------------------------
*/

@media (max-width: 950px) {
    .inner-hero {
        height: 600px;
        min-height: 600px;
    }
}

/*
|--------------------------------------------------------------------------
| Mobile hero height
|--------------------------------------------------------------------------
*/

@media (max-width: 620px) {
    .inner-hero {
        height: 680px;
        min-height: 680px;
    }

    .inner-hero__inner {
        padding-top: 75px;
        padding-bottom: 45px;
    }

    .inner-hero h1 {
        font-size: clamp(2.25rem, 10vw, 3.25rem);
    }
}

/*
|--------------------------------------------------------------------------
| Very small mobile screens
|--------------------------------------------------------------------------
*/

@media (max-width: 420px) {
    .inner-hero {
        height: 720px;
        min-height: 720px;
    }
}






/*
|--------------------------------------------------------------------------
| Founder & Sri Prakash Legacy
|--------------------------------------------------------------------------
*/

.founder-legacy {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            rgba(118, 25, 42, 0.06),
            rgba(25, 48, 78, 0.04)
        );
}

.founder-legacy__panel {
    display: grid;
    grid-template-columns:
        minmax(280px, 0.78fr)
        minmax(0, 1.22fr);
    align-items: stretch;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(20, 35, 55, 0.1);
    border-radius: 28px;
    box-shadow: 0 24px 65px rgba(20, 35, 55, 0.1);
}

.founder-legacy__media {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #e9e8e4;
}

.founder-legacy__media::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            to top,
            rgba(13, 28, 48, 0.82) 0%,
            rgba(13, 28, 48, 0.08) 48%,
            transparent 72%
        );
}

.founder-legacy__media img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    display: block;
    object-fit: cover;
}

.founder-legacy__identity {
    position: absolute;
    z-index: 2;
    right: 32px;
    bottom: 30px;
    left: 32px;
    color: #ffffff;
}

.founder-legacy__identity strong {
    display: block;
    margin-bottom: 5px;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.25;
}

.founder-legacy__identity span {
    display: block;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.92rem;
    line-height: 1.5;
}

.founder-legacy__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(38px, 6vw, 78px);
}

.founder-legacy__content h2 {
    max-width: 720px;
    margin: 12px 0 24px;
}

.founder-legacy__content h2 span {
    display: block;
}

.founder-legacy__content p {
    max-width: 760px;
    margin: 0 0 18px;
    color: var(--color-text-muted, #5c6470);
    font-size: 1.02rem;
    line-height: 1.8;
}

.founder-legacy__motto {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    width: fit-content;
    margin-top: 12px;
    padding: 16px 20px;
    border-left: 4px solid var(--color-accent, #7a1f35);
    background: rgba(118, 25, 42, 0.055);
}

.founder-legacy__motto strong {
    color: var(--color-heading, #182c47);
    font-size: 1.05rem;
}

.founder-legacy__motto span {
    margin-top: 3px;
    color: var(--color-text-muted, #5c6470);
    font-size: 0.9rem;
}

.founder-legacy__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-top: 28px;
    font-weight: 700;
    text-decoration: none;
}

.founder-legacy__link span {
    transition: transform 180ms ease;
}

.founder-legacy__link:hover span,
.founder-legacy__link:focus-visible span {
    transform: translateX(4px);
}

@media (max-width: 860px) {
    .founder-legacy__panel {
        grid-template-columns: 1fr;
    }

    .founder-legacy__media,
    .founder-legacy__media img {
        min-height: 480px;
    }
}

@media (max-width: 560px) {
    .founder-legacy__panel {
        border-radius: 20px;
    }

    .founder-legacy__media,
    .founder-legacy__media img {
        min-height: 410px;
    }

    .founder-legacy__identity {
        right: 22px;
        bottom: 22px;
        left: 22px;
    }

    .founder-legacy__content {
        padding: 32px 24px;
    }
}






/*
|--------------------------------------------------------------------------
| Balanced academics methodology grid
|--------------------------------------------------------------------------
*/

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

@media (max-width: 900px) {
    .academics-methodology-grid--balanced {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .academics-methodology-grid--balanced {
        grid-template-columns: 1fr;
    }
}




/*
|--------------------------------------------------------------------------
| Readable senior-secondary stream cards
|--------------------------------------------------------------------------
*/

.academics-stream-grid--readable {
    gap: 20px;
}

.academics-stream-card--readable {
    display: flex;
    flex-direction: column;
    min-height: 230px;
    padding: 32px 28px;
}

.academics-stream-card--readable > span:first-child {
    display: block;
    margin-bottom: 24px;
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1;
}

.academics-stream-card--readable h3 {
    margin: 0 0 14px;
    font-size: 1.18rem;
    line-height: 1.4;
}

.academics-stream-card--readable p {
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.7;
}

@media (max-width: 1000px) {
    .academics-stream-grid--readable {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .academics-stream-grid--readable {
        grid-template-columns: 1fr;
    }

    .academics-stream-card--readable {
        min-height: 0;
        padding: 28px 24px;
    }
}





/* ==========================================================================
   Kakinada Academic Pathway Card Alignment
   ========================================================================== */

.academic-pathway-page-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.academic-pathway-page-card__media {
    flex-shrink: 0;
    overflow: hidden;
}

.academic-pathway-page-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 900 / 620;
    object-fit: cover;
}

.academic-pathway-page-card__body {
    flex: 1;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 20px 32px auto 1fr;

    column-gap: 16px;
    row-gap: 4px;

    align-content: start;
}

/* Stage name */
.academic-pathway-page-card__body > span {
    grid-column: 1;
    grid-row: 1;

    align-self: center;
    margin: 0;
}

/* Grade range */
.academic-pathway-page-card__body > strong {
    grid-column: 1;
    grid-row: 2;

    align-self: start;
    margin: 0;
}

/* Synergy International Academy logo */
.academic-pathway-page-card__brand {
    grid-column: 2;
    grid-row: 1 / span 2;

    display: flex;
    align-items: center;
    justify-content: flex-end;

    width: 180px;
    max-width: 100%;
    height: 52px;

    margin: 0;
    padding: 0;
}

.academic-pathway-page-card__brand img {
    display: block;
    width: 100%;
    max-width: 180px;
    height: 52px;
    object-fit: contain;
    object-position: center;
}

/* Programme title */
.academic-pathway-page-card__body > h3 {
    grid-column: 1 / -1;
    grid-row: 3;

    margin-top: 14px;
    margin-bottom: 8px;
}

/* Programme description */
.academic-pathway-page-card__body > p {
    grid-column: 1 / -1;
    grid-row: 4;

    margin-top: 0;
    margin-bottom: 0;
}

/* Tablet and smaller screens */
@media (max-width: 1100px) {
    .academic-pathway-page-card__brand {
        width: 150px;
    }

    .academic-pathway-page-card__brand img {
        max-width: 150px;
    }
}

/* Mobile screens */
@media (max-width: 640px) {
    .academic-pathway-page-card__body {
        grid-template-columns: minmax(0, 1fr) auto;
        column-gap: 12px;
    }

    .academic-pathway-page-card__brand {
        width: 140px;
        height: 48px;
    }

    .academic-pathway-page-card__brand img {
        max-width: 140px;
        height: 48px;
    }
}




/* ==========================================================================
   Synergy International Academy Programme
   ========================================================================== */

.sia-programme {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(
            180deg,
            rgba(248, 246, 241, 0.72) 0%,
            #ffffff 38%,
            rgba(248, 246, 241, 0.62) 100%
        );
}

/* --------------------------------------------------------------------------
   Introduction
   -------------------------------------------------------------------------- */

.sia-programme__intro {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(40px, 6vw, 90px);

    margin-bottom: clamp(48px, 7vw, 90px);
}

.sia-programme__intro-content {
    min-width: 0;
}

.sia-programme__intro-content > .eyebrow {
    display: inline-block;
    margin-bottom: 18px;
}

.sia-programme__logo {
    display: flex;
    align-items: center;

    width: 100%;
    max-width: 360px;

    margin-bottom: 28px;
    padding: 14px 18px;

    background: #ffffff;
    border: 1px solid var(--border, #e8e3da);
    border-radius: 16px;

    box-shadow: 0 14px 35px rgba(21, 31, 43, 0.07);
}

.sia-programme__logo img {
    display: block;
    width: 100%;
    max-width: 320px;
    height: auto;
    max-height: 82px;

    object-fit: contain;
    object-position: left center;
}

.sia-programme__intro-content h2 {
    margin: 0 0 22px;

    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.sia-programme__intro-content h2 span {
    display: block;
    color: var(--primary, #8b1f2d);
}

.sia-programme__intro-content > p {
    max-width: 680px;
    margin: 0;

    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--text-muted, #5f6670);
}

.sia-programme__intro-media {
    position: relative;
    min-height: 360px;
    overflow: hidden;

    border-radius: clamp(20px, 3vw, 34px);
    box-shadow: 0 24px 60px rgba(21, 31, 43, 0.14);
}

.sia-programme__intro-media::after {
    content: "";
    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            transparent 55%,
            rgba(16, 25, 34, 0.12) 100%
        );
}

.sia-programme__intro-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    aspect-ratio: 1510 / 858;

    object-fit: cover;
    object-position: center;
}

/* --------------------------------------------------------------------------
   Feature grid
   -------------------------------------------------------------------------- */

.sia-programme__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(26px, 3vw, 40px);
}

/* --------------------------------------------------------------------------
   Feature card
   -------------------------------------------------------------------------- */

.sia-feature-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;

    background: #ffffff;
    border: 1px solid var(--border, #e8e3da);
    border-radius: 24px;

    box-shadow: 0 15px 40px rgba(21, 31, 43, 0.07);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.sia-feature-card:hover {
    transform: translateY(-6px);

    border-color: rgba(139, 31, 45, 0.18);
    box-shadow: 0 24px 55px rgba(21, 31, 43, 0.12);
}

.sia-feature-card__media {
    position: relative;
    flex-shrink: 0;
    overflow: hidden;

    background: #f2f0eb;
}

.sia-feature-card__media::after {
    content: "";
    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            transparent 68%,
            rgba(16, 25, 34, 0.14) 100%
        );
}

.sia-feature-card__media img {
    display: block;
    width: 100%;
    aspect-ratio: 900 / 540;

    object-fit: cover;
    object-position: center;

    transition: transform 0.5s ease;
}

.sia-feature-card:hover .sia-feature-card__media img {
    transform: scale(1.035);
}

.sia-feature-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: clamp(24px, 3vw, 36px);
}

.sia-feature-card__heading {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    gap: 16px;

    margin-bottom: 18px;
}

.sia-feature-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--primary, #8b1f2d);

    background: rgba(139, 31, 45, 0.08);
    border: 1px solid rgba(139, 31, 45, 0.12);
    border-radius: 50%;
}

.sia-feature-card__heading h3 {
    margin: 0;

    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.sia-feature-card__content > p {
    margin: 0 0 22px;

    font-size: 0.98rem;
    line-height: 1.75;
    color: var(--text-muted, #626a73);
}

.sia-feature-card__content ul {
    display: grid;
    gap: 11px;

    margin: auto 0 0;
    padding: 20px 0 0;

    list-style: none;
    border-top: 1px solid var(--border, #e8e3da);
}

.sia-feature-card__content li {
    position: relative;

    margin: 0;
    padding-left: 25px;

    font-size: 0.94rem;
    line-height: 1.55;
    color: var(--text, #323942);
}

.sia-feature-card__content li::before {
    content: "";
    position: absolute;
    top: 0.58em;
    left: 2px;

    width: 8px;
    height: 8px;

    background: var(--primary, #8b1f2d);
    border-radius: 50%;

    box-shadow: 0 0 0 4px rgba(139, 31, 45, 0.08);
}

/* --------------------------------------------------------------------------
   Tablet
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
    .sia-programme__intro {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .sia-programme__intro-content {
        max-width: 780px;
    }

    .sia-programme__intro-media {
        min-height: 320px;
    }

    .sia-programme__intro-media img {
        min-height: 320px;
    }

    .sia-programme__features {
        gap: 24px;
    }
}

/* --------------------------------------------------------------------------
   Small tablet and mobile
   -------------------------------------------------------------------------- */

@media (max-width: 760px) {
    .sia-programme__features {
        grid-template-columns: 1fr;
    }

    .sia-programme__logo {
        max-width: 320px;
        margin-bottom: 24px;
    }

    .sia-programme__intro-media,
    .sia-programme__intro-media img {
        min-height: 260px;
    }

    .sia-feature-card {
        border-radius: 20px;
    }
}

/* --------------------------------------------------------------------------
   Small mobile
   -------------------------------------------------------------------------- */

@media (max-width: 480px) {
    .sia-programme__intro {
        gap: 28px;
        margin-bottom: 42px;
    }

    .sia-programme__logo {
        max-width: 280px;
        padding: 12px 14px;
        border-radius: 13px;
    }

    .sia-programme__logo img {
        max-height: 68px;
    }

    .sia-programme__intro-media,
    .sia-programme__intro-media img {
        min-height: 220px;
    }

    .sia-feature-card__content {
        padding: 24px 20px 26px;
    }

    .sia-feature-card__heading {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 13px;
    }

    .sia-feature-card__number {
        width: 46px;
        height: 46px;
        font-size: 0.76rem;
    }

    .sia-feature-card__content ul {
        gap: 10px;
    }
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .sia-feature-card,
    .sia-feature-card__media img {
        transition: none;
    }

    .sia-feature-card:hover {
        transform: none;
    }

    .sia-feature-card:hover .sia-feature-card__media img {
        transform: none;
    }
}







/* ==========================================================================
   SIA Programme Accordion
   ========================================================================== */

.sia-programme__features-heading {
    max-width: 760px;
    margin: 0 0 clamp(30px, 5vw, 52px);
}

.sia-programme__features-heading .section-heading {
    margin: 0;
}

.sia-programme__features-heading h2 {
    margin: 12px 0 18px;

    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.sia-programme__features-heading h2 span {
    display: block;
    color: var(--primary, #8b1f2d);
}

.sia-programme__features-heading p {
    max-width: 680px;
    margin: 0;

    font-size: 1rem;
    line-height: 1.75;
    color: var(--text-muted, #626a73);
}

/* Accordion container */

.sia-accordion {
    display: grid;
    gap: 14px;
    max-width: 1050px;
    margin: 0 auto;
}

/* Individual accordion item */

.sia-accordion__item {
    overflow: hidden;

    background: #ffffff;
    border: 1px solid var(--border, #e5dfd5);
    border-radius: 18px;

    box-shadow: 0 10px 30px rgba(21, 31, 43, 0.055);

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

.sia-accordion__item[open] {
    border-color: rgba(139, 31, 45, 0.22);
    box-shadow: 0 18px 44px rgba(21, 31, 43, 0.09);
}

/* Accordion heading */

.sia-accordion__summary {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 18px;

    min-height: 88px;
    padding: 16px 22px;

    cursor: pointer;
    list-style: none;

    transition:
        background-color 0.25s ease,
        color 0.25s ease;
}

.sia-accordion__summary::-webkit-details-marker {
    display: none;
}

.sia-accordion__summary::marker {
    display: none;
    content: "";
}

.sia-accordion__summary:hover {
    background: rgba(139, 31, 45, 0.025);
}

.sia-accordion__item[open] .sia-accordion__summary {
    background: rgba(139, 31, 45, 0.045);
}

/* Number */

.sia-accordion__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--primary, #8b1f2d);

    background: rgba(139, 31, 45, 0.08);
    border: 1px solid rgba(139, 31, 45, 0.12);
    border-radius: 50%;
}

/* Title */

.sia-accordion__title {
    font-family: var(--font-heading, Georgia, serif);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 600;
    line-height: 1.25;
    color: var(--heading, #27323c);
}

/* Plus/minus icon */

.sia-accordion__icon {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    background: #ffffff;
    border: 1px solid var(--border, #e5dfd5);
    border-radius: 50%;
}

.sia-accordion__icon::before,
.sia-accordion__icon::after {
    content: "";
    position: absolute;

    width: 14px;
    height: 2px;

    background: var(--primary, #8b1f2d);
    border-radius: 2px;

    transition:
        transform 0.25s ease,
        opacity 0.25s ease;
}

.sia-accordion__icon::after {
    transform: rotate(90deg);
}

.sia-accordion__item[open] .sia-accordion__icon::after {
    opacity: 0;
    transform: rotate(0deg);
}

/* Open accordion content */

.sia-accordion__panel {
    display: grid;
    grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(26px, 4vw, 52px);

    padding: clamp(22px, 4vw, 42px);

    border-top: 1px solid var(--border, #e5dfd5);
}

/* Image */

.sia-accordion__media {
    min-width: 0;
    overflow: hidden;

    background: #f3f0ea;
    border-radius: 16px;
}

.sia-accordion__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 290px;
    aspect-ratio: 900 / 620;

    object-fit: cover;
    object-position: center;
}

/* Text content */

.sia-accordion__content {
    align-self: center;
    min-width: 0;
}

.sia-accordion__content > p {
    margin: 0 0 24px;

    font-size: 1rem;
    line-height: 1.75;
    color: var(--text-muted, #626a73);
}

.sia-accordion__content ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 24px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.sia-accordion__content li {
    position: relative;

    margin: 0;
    padding-left: 25px;

    font-size: 0.94rem;
    line-height: 1.55;
    color: var(--text, #323942);
}

.sia-accordion__content li::before {
    content: "";
    position: absolute;
    top: 0.55em;
    left: 2px;

    width: 8px;
    height: 8px;

    background: var(--primary, #8b1f2d);
    border-radius: 50%;

    box-shadow: 0 0 0 4px rgba(139, 31, 45, 0.08);
}

/* Keyboard accessibility */

.sia-accordion__summary:focus-visible {
    outline: 3px solid rgba(139, 31, 45, 0.28);
    outline-offset: -3px;
}

/* Tablet */

@media (max-width: 900px) {
    .sia-accordion__panel {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .sia-accordion__media img {
        min-height: 260px;
        max-height: 430px;
    }
}

/* Mobile */

@media (max-width: 640px) {
    .sia-accordion {
        gap: 11px;
    }

    .sia-accordion__summary {
        grid-template-columns: 42px minmax(0, 1fr) 36px;
        gap: 12px;

        min-height: 76px;
        padding: 14px 15px;
    }

    .sia-accordion__number {
        width: 42px;
        height: 42px;
        font-size: 0.7rem;
    }

    .sia-accordion__icon {
        width: 36px;
        height: 36px;
    }

    .sia-accordion__title {
        font-size: 1.08rem;
    }

    .sia-accordion__panel {
        padding: 20px 16px 24px;
    }

    .sia-accordion__media img {
        min-height: 210px;
    }

    .sia-accordion__content ul {
        grid-template-columns: 1fr;
        gap: 11px;
    }
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
    .sia-accordion__item,
    .sia-accordion__summary,
    .sia-accordion__icon::before,
    .sia-accordion__icon::after {
        transition: none;
    }
}



/* ==========================================================
   Campus Local Navigation
========================================================== */

.campus-local-nav{
    position:relative;
    z-index:20;
    background:#fff;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
}

.campus-local-nav__inner{
    display:flex;
    align-items:stretch;
    min-height:68px;
}


/* Campus identity */

.campus-local-nav__identity{
    display:flex;
    flex:0 0 auto;
    flex-direction:column;
    justify-content:center;
    min-width:150px;
    padding:10px 24px 10px 0;
    margin-right:20px;
    border-right:1px solid var(--border);
}

.campus-local-nav__identity span{
    color:var(--blue-grey);
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.08em;
    line-height:1.2;
    text-transform:uppercase;
}

.campus-local-nav__identity strong{
    margin-top:3px;
    color:var(--text);
    font-size:.92rem;
    line-height:1.25;
}


/* Scrollable local nav */

.campus-local-nav__navigation{
    min-width:0;
    flex:1;
    overflow-x:auto;
    scrollbar-width:thin;
}

.campus-local-nav__list{
    display:flex;
    align-items:stretch;
    min-width:max-content;
    height:100%;
    margin:0;
    padding:0;
    list-style:none;
}

.campus-local-nav__item{
    display:flex;
}

.campus-local-nav__link{
    position:relative;
    display:flex;
    align-items:center;
    padding:0 16px;
    color:#59676b;
    font-size:.78rem;
    font-weight:700;
    line-height:1.3;
    white-space:nowrap;
    transition:
        color var(--transition),
        background var(--transition);
}

.campus-local-nav__link:hover{
    color:var(--blue-grey);
    background:rgba(91,111,118,.05);
}


/* Active campus page */

.campus-local-nav__link--current{
    color:var(--blue-grey);
    background:rgba(91,111,118,.06);
}

.campus-local-nav__link--current::after{
    position:absolute;
    right:16px;
    bottom:0;
    left:16px;
    height:3px;
    content:"";
    background:var(--blue-grey);
    border-radius:3px 3px 0 0;
}


/* ==========================================================
   Responsive
========================================================== */

@media (max-width:900px){

    .campus-local-nav__inner{
        display:block;
        min-height:0;
        padding-top:12px;
    }

    .campus-local-nav__identity{
        display:block;
        min-width:0;
        padding:0 0 10px;
        margin:0;
        border-right:0;
    }

    .campus-local-nav__identity span,
    .campus-local-nav__identity strong{
        display:inline;
    }

    .campus-local-nav__identity strong{
        margin-left:4px;
    }

    .campus-local-nav__navigation{
        margin-right:calc(var(--container-padding) * -1);
        margin-left:calc(var(--container-padding) * -1);
        padding-right:var(--container-padding);
        padding-left:var(--container-padding);
    }

    .campus-local-nav__link{
        min-height:52px;
        padding:0 14px;
    }

    .campus-local-nav__link--current::after{
        right:14px;
        left:14px;
    }
}




/* ==========================================================================
   Campus Media Placeholder
   Used when a content photograph has not yet been uploaded
   ========================================================================== */

.campus-media-placeholder {
    width: 100%;
    height: 100%;
    min-height: inherit;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 28px;

    box-sizing: border-box;

    text-align: center;

    background:
        linear-gradient(
            145deg,
            #eef2f3 0%,
            #e4eaed 55%,
            #f5f2ec 100%
        );

    color: var(--text);

    position: relative;
    overflow: hidden;
}


/*
|--------------------------------------------------------------------------
| Decorative background
|--------------------------------------------------------------------------
*/

.campus-media-placeholder::before {
    content: "";

    position: absolute;

    width: 180px;
    height: 180px;

    top: -90px;
    right: -60px;

    border-radius: 50%;

    background:
        rgba(125, 146, 158, 0.10);
}


.campus-media-placeholder::after {
    content: "";

    position: absolute;

    width: 120px;
    height: 3px;

    bottom: 30px;
    left: 50%;

    transform:
        translateX(-50%);

    background:
        var(--heritage-maroon, #8b2635);

    border-radius: 99px;

    opacity: 0.65;
}


/*
|--------------------------------------------------------------------------
| Placeholder text
|--------------------------------------------------------------------------
*/

.campus-media-placeholder__kicker {
    position: relative;
    z-index: 1;

    color:
        var(--heritage-maroon, #8b2635);

    font-size: 0.66rem;
    font-weight: 800;

    letter-spacing: 0.12em;

    text-transform: uppercase;
}


.campus-media-placeholder strong {
    position: relative;
    z-index: 1;

    max-width: 260px;

    color: var(--text);

    font-family:
        var(--heading-font);

    font-size:
        clamp(
            1.15rem,
            2vw,
            1.55rem
        );

    font-weight: 700;

    line-height: 1.3;
}


/*
|--------------------------------------------------------------------------
| Dark-section placeholder
|--------------------------------------------------------------------------
*/

.campus-media-placeholder--dark {
    background:
        linear-gradient(
            145deg,
            #657982 0%,
            #52666f 100%
        );

    color: #ffffff;
}


.campus-media-placeholder--dark
.campus-media-placeholder__kicker {
    color: #e9dfcd;
}


.campus-media-placeholder--dark strong {
    color: #ffffff;
}


.campus-media-placeholder--dark::before {
    background:
        rgba(255, 255, 255, 0.07);
}


.campus-media-placeholder--dark::after {
    background: #e9dfcd;
}



