/* The prospectus is part of the school's public website. */
.school-prospectus-wrapper {
    --font-serif: var(--font);
    --font-sans: var(--font);
    --brand: var(--school-theme-link);
    --dept-color: var(--school-theme-link);
    --gold: var(--school-theme-link);
    --gold-light: var(--school-theme-link);
    --white: #fff;
    --ivory: #fff;
    --parchment: var(--school-theme-soft);
    --stone-50: #fafafa;
    --stone-100: #f4f4f4;
    --stone-200: #dedede;
    --stone-300: #b8b8b8;
    --stone-400: #595959;
    --stone-500: #595959;
    --stone-600: #494949;
    --stone-700: #333;
    --stone-800: #222;
    --ink: var(--navy);
    font: 18px/1.6 Hanken, Arial, Helvetica, sans-serif;
    text-align: left;
}
.school-prospectus-wrapper .container { max-width: none; width: 100%; padding-inline: 32px; }
.school-prospectus-wrapper .sp-site-header { display: contents; }
.school-prospectus-wrapper .sw-navigation-bar { z-index: 100; }
.school-prospectus-wrapper .sw-skip-link { z-index: 120; }
.school-prospectus-wrapper :is(h1,h2,h3,h4) { font-family: var(--font); font-style: normal; letter-spacing: -.025em; }
.school-prospectus-wrapper h2 { font-size: clamp(30px,3vw,44px); line-height: 1.15; font-weight: 750; }
.school-prospectus-wrapper h3 { line-height: 1.3; font-weight: 700; }
.school-prospectus-wrapper :is(button,input,select) { font-family: inherit; }
.school-prospectus-wrapper :is(a,button,input,select,summary):focus-visible { outline: 3px solid var(--school-theme-link); outline-offset: 4px; }
.school-prospectus-wrapper [x-cloak] { display: none !important; }
.school-prospectus-wrapper .sp-document-header { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 44px 32px; border-bottom: 1px solid var(--line); }
.school-prospectus-wrapper .sp-document-heading h1 { font-size: clamp(44px,5vw,72px); line-height: 1.08; font-weight: 800; letter-spacing: -.045em; margin: 0 0 18px; }
.school-prospectus-wrapper .sp-document-heading p { max-width: 58ch; color: var(--muted); font-size: 19px; margin: 0; }
.school-prospectus-wrapper .sp-document-heading > a { color: var(--school-theme-link); font-weight: 650; }
.school-prospectus-wrapper .sp-document-actions { display: flex; flex-wrap: wrap; gap: 12px; flex-shrink: 0; }
.school-prospectus-wrapper .sp-document-actions :is(a,button) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 22px; border: 1px solid var(--school-theme-link); border-radius: 28px; background: white; color: var(--school-theme-link); font: inherit; font-size: 16px; font-weight: 650; }
.school-prospectus-wrapper .sp-document-actions :is(a,button):hover { background: var(--school-theme-soft); text-decoration: none; }
.school-prospectus-wrapper .sp-document-actions i { font-size: 18px; }
.school-prospectus-wrapper :is(.about__header,.academic-structure__header,.facilities__header,.funding__header,.how-to-apply__header,.fee-schedule__header) { text-align: left; margin-bottom: 32px; }
.school-prospectus-wrapper :is(.about,.academic-structure,.facilities,.funding,.how-to-apply,.fee-schedule,.dept-section) { padding-block: 56px; }
.school-prospectus-wrapper :is(.about__subtitle,.facilities__subtitle,.funding__subtitle,.how-to-apply__subtitle) { max-width: 70ch; margin-left: 0; font-size: 18px; }
.school-prospectus-wrapper .academic-structure__stats { justify-content: flex-start; gap: 48px; }
.school-prospectus-wrapper .academic-structure__stat { text-align: left; }
.school-prospectus-wrapper .academic-structure__stat-number { font-size: 40px; font-weight: 800; }
.school-prospectus-wrapper .academic-structure__stat-label { font-size: 15px; text-transform: none; letter-spacing: 0; }
.school-prospectus-wrapper .academic-structure__faculty { border-color: var(--line); border-radius: 8px; box-shadow: none; }
.school-prospectus-wrapper .hero { background: var(--school-theme); color: var(--school-on-theme); }
.school-prospectus-wrapper .hero__content { text-align: left; padding-block: 64px; }
.school-prospectus-wrapper .hero__title { font-size: clamp(44px,5.5vw,80px); line-height: 1.08; font-weight: 800; letter-spacing: -.045em; }
.school-prospectus-wrapper :is(.hero__title,.hero__subtitle,.hero__badge,.hero__stat-number,.hero__stat-label,.deadline-banner) { color: var(--school-on-theme); }
.school-prospectus-wrapper .hero__subtitle { max-width: 65ch; font-size: 20px; opacity: 1; }
.school-prospectus-wrapper .hero__stats { justify-content: flex-start; }
.school-prospectus-wrapper .hero__stat-label { text-transform: none; letter-spacing: 0; }
.school-prospectus-wrapper .hero__badge { background: transparent; border: 1px solid currentColor; }
.school-prospectus-wrapper .hero__pattern { opacity: .12; }
.school-prospectus-wrapper .toc { background: var(--school-theme-soft); padding-block: 30px; }
.school-prospectus-wrapper .toc__title { font-size: 20px; font-weight: 700; }
.school-prospectus-wrapper .toc__item { color: var(--school-theme-link); border-color: var(--school-theme-border); min-height: 44px; font-size: 16px; }
.school-prospectus-wrapper .search { background: white; padding-block: 36px; }
.school-prospectus-wrapper .search__wrapper { max-width: 780px; margin-inline: 0; }
.school-prospectus-wrapper .search__input { border: 1px solid #767676; border-radius: 8px; background: white; color: var(--ink); min-height: 56px; }
.school-prospectus-wrapper .search__input::placeholder { color: #595959; }
.school-prospectus-wrapper .search__input:focus { border-color: var(--school-theme-link); box-shadow: 0 0 0 3px var(--school-theme-border); }
.school-prospectus-wrapper .filters { justify-content: flex-start; gap: 10px; }
.school-prospectus-wrapper .filter-chip { min-height: 44px; padding: 10px 17px; border: 1px solid #b8b8b8; font-size: 15px; color: #333; background: white; }
.school-prospectus-wrapper .results-count { text-align: left; color: var(--muted); font-size: 16px; }
.school-prospectus-wrapper .dept-header { border-bottom-color: var(--school-theme-border); padding-bottom: 26px; margin-bottom: 28px; }
.school-prospectus-wrapper .dept-icon { background: var(--school-theme); color: var(--school-on-theme); border: 1px solid var(--school-theme-link); border-radius: 8px; }
.school-prospectus-wrapper .dept-name { margin-bottom: 6px; }
.school-prospectus-wrapper .dept-count { font-size: 16px; }
.school-prospectus-wrapper .program-item { padding: 30px; background: white; border: 1px solid var(--line); border-radius: 8px; box-shadow: none; gap: 32px; }
.school-prospectus-wrapper .program-item:hover { border-color: var(--school-theme-link); box-shadow: none; transform: none; }
.school-prospectus-wrapper .program-item__title { font-size: clamp(23px,2.2vw,30px); line-height: 1.2; font-weight: 750; }
.school-prospectus-wrapper .program-item__title-link { color: var(--ink); }
.school-prospectus-wrapper .program-item__title-link:hover { color: var(--school-theme-link); }
.school-prospectus-wrapper :is(.program-item__code,.program-item__meta,.program-item__desc) { font-size: 16px; }
.school-prospectus-wrapper .program-item__badge { font-size: 13px; text-transform: none; letter-spacing: 0; }
.school-prospectus-wrapper :is(.program-item__badge--type,.prog-detail__badge--type,.sp-grade-points) { color: var(--school-theme-link); background: var(--school-theme-soft); }
.school-prospectus-wrapper .program-item__btn { min-height: 48px; border-radius: 26px; font-size: 16px; }
.school-prospectus-wrapper :is(.program-item__btn--secondary,.prog-detail__dept-link) { color: var(--school-theme-link); }
.school-prospectus-wrapper :is(.program-item__btn--primary,.filter-chip.active,.toc__item.active,.how-to-apply__btn--primary,.how-to-apply__step-number,.empty-state__btn,.back-to-top) { background: var(--school-theme); color: var(--school-on-theme); border: 1px solid var(--school-theme-link); }
.school-prospectus-wrapper :is(.program-item__btn--primary,.how-to-apply__btn--primary,.empty-state__btn,.back-to-top):hover { background: var(--school-theme-hover); color: var(--school-on-theme); }
.school-prospectus-wrapper .how-to-apply__actions { justify-content: flex-start; }
.school-prospectus-wrapper .how-to-apply__btn { min-height: 48px; font-size: 16px; }
.school-prospectus-wrapper .how-to-apply__btn--outline { color: var(--school-theme-link); }
.school-prospectus-wrapper :is(.contact,.prog-detail__cta-card) { background: var(--school-theme); color: var(--school-on-theme); }
.school-prospectus-wrapper :is(.contact__title,.contact__desc,.contact__info-item,.contact__info-item i,.contact__social-link,.prog-detail__cta-title,.prog-detail__cta-desc,.prog-detail__cta-back) { color: var(--school-on-theme); opacity: 1; }
.school-prospectus-wrapper .contact__btn--primary,.school-prospectus-wrapper .prog-detail__cta-btn { background: white; color: var(--school-theme-link); border: 1px solid var(--school-theme-link); }
.school-prospectus-wrapper .contact__btn--outline { border-color: var(--school-on-theme); color: var(--school-on-theme); }
.school-prospectus-wrapper .footer__text,.school-prospectus-wrapper .footer__text strong { color: var(--school-on-theme); }
.school-prospectus-wrapper :is(.hero,.contact,.footer,.prog-detail__cta-card) :focus-visible { outline-color: var(--school-on-theme); }
.school-prospectus-wrapper .prog-detail__title { font-size: clamp(38px,4vw,64px); font-weight: 800; line-height: 1.1; }
.school-prospectus-wrapper .prog-detail__section-title { font-size: 27px; }
.school-prospectus-wrapper .sp-grade-points { display: inline-block; font-weight: 600; padding: .15rem .5rem; border-radius: 4px; }
.school-prospectus-wrapper .prog-detail__sidebar { top: 100px; }
.school-prospectus-wrapper .section-indicator { top: var(--school-navigation-height,57px); }
.school-prospectus-wrapper .text-primary { color: var(--school-theme-link) !important; }
@media (max-width:900px) {
    .school-prospectus-wrapper .container { padding-inline: 25px; }
    .school-prospectus-wrapper .sp-document-header { align-items: flex-start; flex-direction: column; padding: 36px 25px; }
    .school-prospectus-wrapper .program-item { padding: 25px; }
}
@media (max-width:600px) {
    .school-prospectus-wrapper .container { padding-inline: 20px; }
    .school-prospectus-wrapper .sp-document-header { padding: 30px 20px; gap: 24px; }
    .school-prospectus-wrapper .sp-document-heading h1 { font-size: 42px; }
    .school-prospectus-wrapper .sp-document-heading p { font-size: 18px; }
    .school-prospectus-wrapper :is(.about,.academic-structure,.facilities,.funding,.how-to-apply,.fee-schedule,.dept-section) { padding-block: 40px; }
    .school-prospectus-wrapper .sp-document-actions { gap: 10px; }
    .school-prospectus-wrapper .sp-document-actions :is(a,button) { font-size: 15px; padding-inline: 18px; }
    .school-prospectus-wrapper .program-item { padding: 24px 20px; gap: 24px; }
    .school-prospectus-wrapper .program-item__actions { flex-direction: row; flex-wrap: wrap; }
    .school-prospectus-wrapper .program-item__btn { flex: 1; }
    .school-prospectus-wrapper .academic-structure__stats { gap: 24px; flex-wrap: wrap; }
    .school-prospectus-wrapper .hero__content { padding-block: 44px; }
}
@media print {
    .school-prospectus-wrapper .no-print { display: none !important; }
    .school-prospectus-wrapper .container { max-width: none; padding-inline: 0; }
    .school-prospectus-wrapper .sp-document-header { padding: 20px 0; }
}
