:root{
  --psg-bg:#f4efe8;
  --psg-paper:#f6f0e8;
  --psg-paper-2:#efe7dc;
  --psg-ink:#292421;
  --psg-muted:#6c6359;
  --psg-accent:#b35b2e;
  --psg-accent-soft:#cf8a5a;
  --psg-line:rgba(41,36,33,.16);
  --psg-dark:#2a2520;
  --psg-dark-soft:#1f1a17;
  --psg-white:#faf7f2;
}

.mobile-homepage,
.mobile-school-profile{
  display:none;
}

@media (max-width: 900px){
  .mobile-homepage,
  .mobile-school-profile{
    display:block;
  }

  body.home-minimal{
    background:
      radial-gradient(circle at top, rgba(179,91,46,.06), transparent 34%),
      var(--psg-bg);
  }

  body.home-minimal .home-hero,
  body.home-minimal .home-school-filter-bar,
  body.home-minimal .home-finder,
  body.home-minimal .site-footer{
    display:none !important;
  }

  .mobile-homepage{
    min-height:100svh;
    padding:10px 0 14px;
  }

  .mobile-homepage__shell{
    max-width:29rem;
  }

  .mobile-homepage__panel{
    border:0;
    background:transparent;
    padding:0 14px 14px;
  }

  .mobile-homepage__header{
    margin:0 0 10px;
    text-align:center;
  }

  .mobile-homepage__title{
    margin:0;
    color:var(--psg-dark);
    font:500 clamp(1.9rem, 6.7vw, 2.2rem)/.94 "EB Garamond", ui-serif, Georgia, serif;
    letter-spacing:.02em;
  }

  .mobile-homepage__intro{
    max-width:22rem;
    margin:4px auto 0;
    color:var(--psg-muted);
    font:500 .8rem/1.32 "Inter",system-ui,sans-serif;
  }

  .mobile-homepage__form{
    display:grid;
    gap:7px;
  }

  .mobile-homepage__row{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
  }

  .mobile-homepage__field{
    min-width:0;
  }

  .mobile-homepage__input,
  .mobile-dropdown__summary,
  .mobile-homepage__submit,
  .mobile-chip,
  .mobile-segmented{
    border-radius:0;
  }

  .mobile-homepage__input,
  .mobile-dropdown__summary,
  .mobile-homepage__submit{
    min-height:40px;
    border:1px solid var(--psg-line);
    background:#fbf7f0;
    color:var(--psg-dark);
    box-shadow:none;
  }

  .mobile-homepage__input{
    width:100%;
    padding:0 13px;
    font:500 .93rem/1.2 "Inter",system-ui,sans-serif;
  }

  .mobile-homepage__input::placeholder{
    color:rgba(108,99,89,.82);
  }

  .mobile-homepage__input:focus,
  .mobile-dropdown[open] > .mobile-dropdown__summary,
  .mobile-dropdown__summary:focus-visible,
  .mobile-homepage__submit:focus-visible{
    outline:none;
    border-color:rgba(179,91,46,.52);
    box-shadow:0 0 0 3px rgba(179,91,46,.12);
  }

  .mobile-chip-row{
    display:grid;
    grid-template-columns:repeat(7, minmax(0, 1fr));
    gap:3px;
  }

  .mobile-chip{
    min-height:34px;
    padding:0;
    border:1px solid var(--psg-line);
    background:#fbf7f0;
    color:var(--psg-dark);
    font:600 .68rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.04em;
    cursor:pointer;
  }

  .mobile-chip.is-active,
  .mobile-segmented__button.is-active,
  .mobile-school-sections__button.is-active,
  .mobile-school-topbar__action.is-active{
    background:var(--psg-dark);
    border-color:var(--psg-dark);
    color:var(--psg-white);
  }

  .mobile-chip:focus-visible,
  .mobile-chip:hover,
  .mobile-dropdown__summary:hover,
  .mobile-segmented__button:hover,
  .mobile-segmented__button:focus-visible,
  .mobile-homepage__submit:hover,
  .mobile-check:hover,
  .mobile-check:focus-within,
  .mobile-school-topbar__link:hover,
  .mobile-school-topbar__link:focus-visible,
  .mobile-school-topbar__shortlist:hover,
  .mobile-school-topbar__shortlist:focus-visible,
  .mobile-school-topbar__action:hover,
  .mobile-school-topbar__action:focus-visible,
  .mobile-school-topbar__pager:hover,
  .mobile-school-topbar__pager:focus-visible,
  .mobile-school-sections__button:hover,
  .mobile-school-sections__button:focus-visible,
  .subject-toggle:hover,
  .subject-toggle:focus-visible{
    border-color:rgba(179,91,46,.48);
    color:var(--psg-accent);
    outline:none;
  }

  .mobile-homepage__field--panel-left,
  .mobile-homepage__field--panel-right{
    position:relative;
    z-index:4;
  }

  .mobile-dropdown{
    position:relative;
  }

  .mobile-dropdown__summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:0 12px;
    list-style:none;
    cursor:pointer;
    user-select:none;
  }

  .mobile-dropdown__summary::-webkit-details-marker{
    display:none;
  }

  .mobile-dropdown__summary::after{
    content:'▾';
    flex:0 0 auto;
    margin-left:10px;
    color:var(--psg-muted);
    font-size:.82rem;
  }

  .mobile-dropdown[open] .mobile-dropdown__summary::after{
    content:'▴';
  }

  .mobile-dropdown__value{
    display:block;
    min-width:0;
    overflow:hidden;
    color:var(--psg-dark);
    font:500 .9rem/1.15 "Inter",system-ui,sans-serif;
    letter-spacing:.01em;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .mobile-dropdown__panel{
    position:absolute;
    top:calc(100% + 4px);
    left:0;
    z-index:30;
    width:100%;
    max-height:min(18rem, 46svh);
    overflow:auto;
    border:1px solid var(--psg-line);
    background:#fbf8f2;
    box-shadow:0 18px 34px rgba(22,17,12,.14);
  }

  .mobile-dropdown__panel--religion{
    width:min(94vw, 26rem);
    max-width:min(94vw, 26rem);
    left:auto;
    right:0;
  }

  .mobile-dropdown__options{
    display:grid;
    gap:0;
  }

  .mobile-dropdown__option{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:10px 12px;
    border-top:1px solid rgba(41,36,33,.09);
    color:var(--psg-dark);
    font:500 .86rem/1.35 "Inter",system-ui,sans-serif;
  }

  .mobile-dropdown__option:first-child{
    border-top:0;
  }

  .mobile-dropdown__option input{
    flex:0 0 auto;
    margin:2px 0 0;
    accent-color:var(--psg-accent);
  }

  .mobile-segmented{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    border:1px solid var(--psg-line);
    background:#fbf7f0;
  }

  .mobile-segmented__button{
    min-height:40px;
    padding:0 8px;
    border:0;
    background:transparent;
    color:var(--psg-dark);
    font:600 .74rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
  }

  .mobile-segmented__button + .mobile-segmented__button{
    border-left:1px solid var(--psg-line);
  }

  .mobile-range{
    border:1px solid var(--psg-line);
    background:#fbf7f0;
    padding:9px 10px 8px;
  }

  .mobile-range__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:6px;
  }

  .mobile-range__title{
    color:var(--psg-dark);
    font:600 .69rem/1.2 "Inter",system-ui,sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .mobile-range__values{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-width:0;
    color:var(--psg-dark);
    font:600 .82rem/1.1 "Inter",system-ui,sans-serif;
    white-space:nowrap;
  }

  .mobile-range__slider-zone{
    padding-inline:18px;
  }

  .mobile-range__histogram{
    display:grid;
    grid-template-columns:repeat(16, minmax(0, 1fr));
    align-items:end;
    gap:2px;
    height:28px;
  }

  .mobile-range__histogram-bar{
    display:block;
    min-height:5px;
    background:rgba(41,36,33,.16);
  }

  .mobile-range__histogram-bar.is-selected{
    background:rgba(179,91,46,.52);
  }

  .mobile-range__histogram-bar.is-empty{
    opacity:.35;
  }

  .mobile-range__track{
    position:relative;
    height:32px;
    margin-top:2px;
    touch-action:pan-y pinch-zoom;
  }

  .mobile-range__fill{
    position:absolute;
    top:14px;
    left:0;
    right:0;
    height:4px;
    background:rgba(41,36,33,.14);
    pointer-events:none;
  }

  .mobile-range__input{
    -webkit-appearance:none;
    appearance:none;
    position:absolute;
    left:0;
    width:100%;
    height:32px;
    margin:0;
    background:transparent;
    pointer-events:none;
    touch-action:pan-y pinch-zoom;
  }

  .mobile-range__input::-webkit-slider-runnable-track{
    height:4px;
    background:transparent;
  }

  .mobile-range__input::-moz-range-track{
    height:4px;
    background:transparent;
    border:0;
  }

  .mobile-range__input::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    width:27px;
    height:27px;
    margin-top:-12px;
    border:3px solid var(--psg-accent);
    background:var(--psg-white);
    pointer-events:auto;
    cursor:pointer;
  }

  .mobile-range__input::-moz-range-thumb{
    width:27px;
    height:27px;
    border:3px solid var(--psg-accent);
    background:var(--psg-white);
    border-radius:0;
    pointer-events:auto;
    cursor:pointer;
  }

  .mobile-range__input:focus-visible{
    outline:none;
  }

  .mobile-range__input:focus-visible::-webkit-slider-thumb{
    box-shadow:0 0 0 3px rgba(179,91,46,.15);
  }

  .mobile-range__input:focus-visible::-moz-range-thumb{
    box-shadow:0 0 0 3px rgba(179,91,46,.15);
  }

  .mobile-range__count{
    min-height:.85rem;
    margin:2px 18px 0;
    color:var(--psg-muted);
    font:500 .64rem/1.25 "Inter",system-ui,sans-serif;
  }

  .mobile-must-have{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:12px;
    min-width:0;
  }

  .mobile-must-have__label{
    flex:0 0 auto;
    color:var(--psg-muted);
    font:600 .74rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-check{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:auto;
    padding:0;
    border:0;
    background:transparent;
    white-space:nowrap;
    color:var(--psg-dark);
    font:500 .84rem/1 "Inter",system-ui,sans-serif;
  }

  .mobile-check input{
    margin:0;
    accent-color:var(--psg-accent);
  }

  .mobile-homepage__error{
    min-height:1.1rem;
    margin:0;
    color:#9b3225;
    font-size:.78rem;
    line-height:1.35;
    text-align:center;
  }

  .mobile-homepage__actions{
    padding-top:2px;
  }

  .mobile-homepage__submit{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:0 12px;
    background:var(--psg-dark);
    border-color:var(--psg-dark);
    color:var(--psg-white);
    font:600 .82rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
  }

  .mobile-homepage__submit:disabled,
  .mobile-school-topbar__pager:disabled,
  .mobile-school-topbar__action:disabled{
    opacity:.45;
    cursor:default;
  }

  body.school-profile-page{
    background:var(--psg-bg);
  }

  body.school-profile-page .site-header,
  body.school-profile-page .school-profile-hero,
  body.school-profile-page .school-back-strip,
  body.school-profile-page .school-compare-floating-bar,
  body.school-profile-page .page-shell,
  body.school-profile-page .site-footer{
    display:none !important;
  }

  .mobile-school-profile{
    --mobile-school-sticky-offset:42px;
    padding-bottom:28px;
  }

  .mobile-school-profile .shell{
    max-width:none;
    padding-inline:16px;
  }

  .mobile-school-topbar{
    position:sticky;
    top:0;
    z-index:45;
    background:rgba(246,240,232,.98);
    border-top:1px solid var(--psg-line);
    border-bottom:1px solid var(--psg-line);
    backdrop-filter:blur(10px);
  }

  .mobile-school-topbar__row{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto auto;
    align-items:center;
    gap:6px;
    width:100%;
    margin:0 auto;
    padding:6px 16px;
  }

  .mobile-school-topbar__pager,
  .mobile-school-topbar__results-button{
    min-height:30px;
    border:1px solid var(--psg-line);
    background:#fbf7f0;
    color:var(--psg-dark);
    font:600 .58rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-school-topbar__pager,
  .mobile-school-topbar__results-button{
    padding:0 8px;
    cursor:pointer;
  }

  .mobile-school-topbar__results-button{
    white-space:nowrap;
  }

  .mobile-school-topbar__position{
    margin:0;
    text-align:center;
    color:var(--psg-dark);
    font:600 .66rem/1.15 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-school-topbar__pager:hover,
  .mobile-school-topbar__pager:focus-visible,
  .mobile-school-topbar__results-button:hover,
  .mobile-school-topbar__results-button:focus-visible,
  .mobile-results-sheet__close:hover,
  .mobile-results-sheet__close:focus-visible{
    border-color:rgba(179,91,46,.48);
    color:var(--psg-accent);
    outline:none;
  }

  .mobile-school-hero{
    position:relative;
    min-height:122px;
    background:#8e8a86;
    color:var(--psg-white);
  }

  .mobile-school-hero__media,
  .mobile-school-hero__fallback,
  .mobile-school-hero__overlay{
    position:absolute;
    inset:0;
  }

  .mobile-school-hero__fallback{
    background:linear-gradient(180deg, #8f8a85 0%, #77716c 100%);
  }

  .mobile-school-hero__media{
    overflow:hidden;
  }

  .mobile-school-hero__slide{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity .35s ease;
  }

  .mobile-school-hero__slide.is-active{
    opacity:1;
  }

  .mobile-school-hero__overlay{
    background:linear-gradient(180deg, rgba(31,26,23,.16) 0%, rgba(31,26,23,.28) 32%, rgba(31,26,23,.82) 100%),linear-gradient(90deg, rgba(179,91,46,.14), rgba(179,91,46,0) 46%, rgba(179,91,46,.08));
    pointer-events:none;
  }

  .mobile-school-hero__copy{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:122px;
    padding-top:10px;
    padding-bottom:10px;
  }

  .mobile-school-hero__utility-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
  }

  .mobile-school-hero__back{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:0 10px;
    border:1px solid rgba(250,247,242,.52);
    background:rgba(22,18,15,.36);
    color:var(--psg-white);
    font:600 .58rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-decoration:none;
  }

  .mobile-school-hero__utility-actions{
    display:flex;
    gap:6px;
  }

  .mobile-school-hero__utility-button{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:64px;
    min-height:64px;
    padding:7px 6px;
    border:1px solid rgba(250,247,242,.54);
    background:rgba(22,18,15,.4);
    color:var(--psg-white);
    font:600 .53rem/1.12 "Inter",system-ui,sans-serif;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
  }

  .mobile-school-hero__utility-button--primary{
    background:rgba(179,91,46,.86);
    border-color:rgba(250,247,242,.66);
  }

  .mobile-school-hero__utility-button.is-active{
    background:rgba(22,18,15,.74);
  }

  .mobile-school-hero__utility-label{
    display:block;
  }

  .mobile-school-hero__utility-count{
    position:absolute;
    top:4px;
    right:4px;
    display:inline-grid;
    place-items:center;
    min-width:1rem;
    min-height:1rem;
    padding:0 .12rem;
    background:rgba(22,18,15,.84);
    color:var(--psg-white);
    font:600 .46rem/1 "Inter",system-ui,sans-serif;
  }

  .mobile-school-hero__text{
    margin-top:auto;
    padding-right:2px;
  }

  .mobile-school-hero__title{
    margin:0;
    max-width:13ch;
    color:var(--psg-white);
    font-family:"EB Garamond",ui-serif,Georgia,serif;
    font-size:clamp(1.72rem, 7.2vw, 2.22rem);
    font-weight:500;
    line-height:.92;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-shadow:0 6px 20px rgba(0,0,0,.18);
  }

  .mobile-school-hero__address,
  .mobile-school-hero__subhead{
    margin:4px 0 0;
    max-width:34rem;
    color:rgba(250,247,242,.94);
    line-height:1.35;
  }

  .mobile-school-hero__address{
    font:600 .62rem/1.3 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-school-hero__subhead{
    max-width:28ch;
    font-size:.76rem;
    color:rgba(250,247,242,.9);
  }

  .mobile-school-hero__controls{
    position:absolute;
    right:12px;
    bottom:8px;
    z-index:3;
    display:flex;
    align-items:center;
    gap:6px;
  }

  .mobile-school-hero__control,
  .mobile-school-hero__dot{
    border:1px solid rgba(250,247,242,.52);
    background:rgba(22,18,15,.34);
    color:var(--psg-white);
  }

  .mobile-school-hero__control{
    width:26px;
    height:26px;
    cursor:pointer;
  }

  .mobile-school-hero__dots{
    display:flex;
    gap:4px;
  }

  .mobile-school-hero__dot{
    width:8px;
    height:8px;
    padding:0;
  }

  .mobile-school-hero__dot.is-active{
    background:var(--psg-white);
  }

  .mobile-school-hero__back:hover,
  .mobile-school-hero__back:focus-visible,
  .mobile-school-hero__utility-button:hover,
  .mobile-school-hero__utility-button:focus-visible{
    border-color:rgba(250,247,242,.8);
    color:var(--psg-white);
    outline:none;
  }

  .mobile-school-hero__utility-button--primary:hover,
  .mobile-school-hero__utility-button--primary:focus-visible{
    background:rgba(179,91,46,.96);
  }

  .mobile-school-section-control{
    position:absolute;
    opacity:0;
    pointer-events:none;
  }

  .mobile-school-sections{
    position:sticky;
    top:var(--mobile-school-sticky-offset);
    z-index:40;
    border-top:1px solid var(--psg-line);
    border-bottom:1px solid var(--psg-line);
    background:rgba(246,240,232,.98);
    backdrop-filter:blur(8px);
  }

  .mobile-school-sections__inner{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:0;
    padding-top:0;
    padding-bottom:0;
  }

  .mobile-school-sections__button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    border-right:1px solid var(--psg-line);
    color:var(--psg-dark);
    font:600 .7rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    background:transparent;
  }

  .mobile-school-sections__button:last-child{
    border-right:0;
  }

  .mobile-school-sections__button:hover,
  .mobile-school-sections__button:focus-visible{
    color:var(--psg-accent);
    outline:none;
  }

  #mobile-school-section-overview:checked ~ .mobile-school-sections label[for="mobile-school-section-overview"],
  #mobile-school-section-fees:checked ~ .mobile-school-sections label[for="mobile-school-section-fees"],
  #mobile-school-section-academics:checked ~ .mobile-school-sections label[for="mobile-school-section-academics"],
  #mobile-school-section-about:checked ~ .mobile-school-sections label[for="mobile-school-section-about"]{
    background:var(--psg-dark);
    color:var(--psg-white);
  }

  .mobile-school-content{
    padding-top:12px;
  }

  .mobile-school-panel{
    display:none;
  }

  #mobile-school-section-overview:checked ~ .mobile-school-content .mobile-school-panel--overview,
  #mobile-school-section-fees:checked ~ .mobile-school-content .mobile-school-panel--fees,
  #mobile-school-section-academics:checked ~ .mobile-school-content .mobile-school-panel--academics,
  #mobile-school-section-about:checked ~ .mobile-school-content .mobile-school-panel--about{
    display:block;
  }

  .mobile-school-stack{
    display:grid;
    gap:14px;
  }

  .mobile-school-card{
    border:1px solid var(--psg-line);
    background:var(--psg-paper);
    padding:12px 12px 13px;
  }

  .mobile-school-card--overview{
    padding-top:4px;
    padding-bottom:4px;
  }

  .mobile-school-card--stat{
    text-align:center;
  }

  .mobile-school-card__head{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .mobile-school-card h2{
    margin:0;
    color:var(--psg-dark);
    font-family:"EB Garamond",ui-serif,Georgia,serif;
    font-size:1.08rem;
    font-weight:500;
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-school-card p,
  .mobile-school-card li,
  .mobile-school-card div,
  .mobile-school-card dd,
  .mobile-school-card dt{
    color:var(--psg-ink);
  }

  .mobile-school-card p{
    margin:0 0 10px;
    font-size:.92rem;
    line-height:1.55;
  }

  .mobile-school-card p:last-child{
    margin-bottom:0;
  }

  .mobile-school-card ul{
    margin:0;
    padding-left:1.1rem;
  }

  .mobile-school-card li + li{
    margin-top:.42rem;
  }

  .mobile-overview-list{
    margin:0;
    display:grid;
    gap:0;
  }

  .mobile-overview-list__item{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:8px 0;
    border-top:1px solid rgba(41,36,33,.1);
  }

  .mobile-overview-list__item:last-child{
    border-bottom:1px solid rgba(41,36,33,.1);
  }

  .mobile-overview-list__label,
  .mobile-overview-list__value{
    margin:0;
    font:500 .83rem/1.35 "Inter",system-ui,sans-serif;
  }

  .mobile-overview-list__label{
    color:var(--psg-muted);
  }

  .mobile-overview-list__value{
    max-width:58%;
    color:var(--psg-dark);
    font-weight:600;
    text-align:right;
  }

  .mobile-school-map-wrap{
    width:100vw;
    margin:12px 0 0 calc(50% - 50vw);
  }

  .mobile-school-map{
    width:100%;
    height:250px;
    background:#ddd7ce;
  }

  .mobile-school-map-pin{
    width:16px;
    height:16px;
    background:var(--psg-dark);
    border:2px solid #fff;
    box-shadow:0 2px 8px rgba(22,18,15,.18);
  }

  .mobile-school-map-pin--current{
    width:22px;
    height:22px;
    background:var(--psg-accent);
    border:3px solid #fff;
  }

  .mobile-school-fee-switch{
    display:inline-flex;
    flex-wrap:wrap;
    border:1px solid var(--psg-line);
    width:max-content;
    max-width:100%;
  }

  .mobile-school-fee-switch__button{
    border:0;
    border-right:1px solid var(--psg-line);
    background:transparent;
    color:var(--psg-dark);
    padding:8px 10px;
    font:600 .65rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
  }

  .mobile-school-fee-switch__button:last-child{
    border-right:0;
  }

  .mobile-school-fee-switch__button.is-active{
    background:var(--psg-dark);
    color:var(--psg-white);
  }

  .mobile-fee-pane + .mobile-fee-pane{
    margin-top:8px;
  }

  .mobile-fee-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:0 10px;
    margin-top:10px;
  }

  .mobile-fee-grid__column{
    border-top:1px solid rgba(41,36,33,.1);
  }

  .mobile-fee-table__row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    padding:4px 0;
    border-bottom:1px solid rgba(41,36,33,.1);
  }

  .mobile-fee-table__year{
    color:var(--psg-muted);
    font-size:.72rem;
    letter-spacing:.02em;
    text-transform:uppercase;
  }

  .mobile-fee-table__amount{
    color:var(--psg-dark);
    font-size:.8rem;
    line-height:1.22;
    text-align:right;
  }

  .mobile-school-stat-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:10px;
    margin-top:10px;
  }

  .mobile-school-yes-no{
    margin:10px 0 0;
    color:var(--psg-dark);
    font:600 1.2rem/1 "EB Garamond",ui-serif,Georgia,serif;
    letter-spacing:.06em;
    text-transform:uppercase;
  }

  .tile-kpis{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:8px;
    margin-top:12px;
    margin-bottom:10px;
  }

  .tile-kpi{
    border:1px solid rgba(41,36,33,.1);
    padding:8px;
    background:rgba(179,91,46,.05);
  }

  .tile-kpi-label{
    display:block;
    color:var(--psg-muted);
    font:600 .66rem/1.2 "Inter",system-ui,sans-serif;
    letter-spacing:.1em;
    text-transform:uppercase;
  }

  .tile-kpi-value{
    display:block;
    margin-top:6px;
    color:var(--psg-dark);
    font:600 1.04rem/1 "Inter",system-ui,sans-serif;
  }

  .tile-note{
    color:var(--psg-muted);
    font-size:.82rem;
    line-height:1.4;
  }

  .metric-list{
    display:grid;
    gap:0;
    border-top:1px solid rgba(41,36,33,.1);
    margin-top:12px;
  }

  .metric-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    padding:7px 0;
    border-bottom:1px solid rgba(41,36,33,.1);
  }

  .metric-name{
    color:var(--psg-ink);
    font-size:.9rem;
  }

  .metric-value{
    color:var(--psg-dark);
    font-weight:600;
    font-size:.88rem;
  }

  .subject-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    margin-top:10px;
    padding:0 12px;
    border:1px solid var(--psg-line);
    background:#fff;
    color:var(--psg-dark);
    font:600 .7rem/1 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
  }

  .subject-extra[hidden]{
    display:none !important;
  }

  .school-card-copy p + p,
  .school-card-copy ul + p,
  .school-card-copy p + ul{
    margin-top:10px;
  }

  .mobile-results-sheet{
    position:fixed;
    inset:0;
    z-index:80;
  }

  .mobile-results-sheet__backdrop{
    position:absolute;
    inset:0;
    background:rgba(31,26,23,.42);
  }

  .mobile-results-sheet__panel{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    max-height:min(78svh, 46rem);
    background:var(--psg-paper);
    border-top:1px solid var(--psg-line);
    box-shadow:0 -16px 40px rgba(31,26,23,.18);
    display:flex;
    flex-direction:column;
  }

  .mobile-results-sheet__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:16px 16px 10px;
    border-bottom:1px solid rgba(41,36,33,.08);
  }

  .mobile-results-sheet__eyebrow{
    margin:0 0 6px;
    color:var(--psg-accent);
    font:600 .68rem/1.2 "Inter",system-ui,sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .mobile-results-sheet__head h2{
    margin:0;
    color:var(--psg-dark);
    font-family:"EB Garamond",ui-serif,Georgia,serif;
    font-size:1.4rem;
    font-weight:500;
    line-height:.95;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-results-sheet__close{
    width:36px;
    height:36px;
    border:1px solid var(--psg-line);
    background:#fff;
    color:var(--psg-dark);
    font-size:1.35rem;
    line-height:1;
    cursor:pointer;
  }

  .mobile-results-sheet__summary{
    margin:0;
    padding:12px 16px 0;
    color:var(--psg-muted);
    font-size:.82rem;
  }

  .mobile-results-sheet__list{
    overflow:auto;
    padding:12px 16px 18px;
    display:grid;
    gap:8px;
  }

  .mobile-results-sheet__item{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:12px;
    align-items:flex-start;
    padding:12px 12px 11px;
    border:1px solid var(--psg-line);
    background:#fbf7f0;
  }

  .mobile-results-sheet__item.is-current{
    border-color:rgba(179,91,46,.48);
    background:rgba(179,91,46,.06);
  }

  .mobile-results-sheet__item-index{
    min-width:1.6rem;
    color:var(--psg-muted);
    font:600 .72rem/1.2 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .mobile-results-sheet__item-copy{
    display:grid;
    gap:4px;
  }

  .mobile-results-sheet__item-copy strong{
    color:var(--psg-dark);
    font-family:"EB Garamond",ui-serif,Georgia,serif;
    font-size:1.06rem;
    font-weight:500;
    letter-spacing:.03em;
    line-height:1.05;
    text-transform:uppercase;
  }

  .mobile-results-sheet__item-copy small{
    color:var(--psg-muted);
    font-size:.78rem;
    line-height:1.35;
  }

  .is-mobile-results-sheet-open{
    overflow:hidden;
  }

  .mobile-school-map .leaflet-control-zoom a{
    border-radius:0 !important;
  }

  .mobile-school-map .leaflet-popup-content-wrapper,
  .mobile-school-map .leaflet-popup-tip{
    border-radius:0;
    box-shadow:0 12px 28px rgba(22,18,15,.16);
  }

  .mobile-school-map .leaflet-popup-content{
    margin:12px 14px;
    font:500 .86rem/1.45 "Inter",system-ui,sans-serif;
  }

  .mobile-school-map .leaflet-popup-content h3{
    margin:0 0 4px;
    color:var(--psg-dark);
    font-family:"EB Garamond",ui-serif,Georgia,serif;
    font-size:1.15rem;
    font-weight:500;
    line-height:1;
    letter-spacing:.03em;
    text-transform:uppercase;
  }

  .mobile-school-map .leaflet-popup-content p{
    margin:0 0 6px;
    color:var(--psg-ink);
    font-size:.82rem;
  }

  .mobile-school-map .leaflet-popup-content a{
    color:var(--psg-accent);
    font-weight:600;
  }

}

@media (max-width: 390px){
  .mobile-homepage__panel{
    padding:14px 12px 14px;
  }

  .mobile-homepage__title{
    font-size:1.82rem;
  }

  .mobile-homepage__intro{
    font-size:.79rem;
  }

  .mobile-chip{
    font-size:.68rem;
  }

  .mobile-dropdown__value,
  .mobile-homepage__input{
    font-size:.87rem;
  }

  .mobile-must-have{
    gap:10px;
  }

  .mobile-must-have__label,
  .mobile-check{
    font-size:.78rem;
  }

  .mobile-school-topbar__row{
    padding-inline:12px;
    gap:6px;
  }

  .mobile-school-topbar__link,
  .mobile-school-topbar__shortlist,
  .mobile-school-topbar__action,
  .mobile-school-topbar__pager,
  .mobile-school-topbar__results-button{
    font-size:.58rem;
  }

  .mobile-school-topbar__position{
    font-size:.66rem;
  }

  .mobile-school-hero__title{
    font-size:1.74rem;
  }

  .mobile-school-hero__address{
    font-size:.63rem;
  }

  .mobile-school-hero__subhead{
    font-size:.8rem;
  }

  .mobile-fee-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  .mobile-homepage{
    padding:0 0 14px;
  }

  .mobile-homepage__shell{
    max-width:29rem;
    padding-inline:0;
  }

  .mobile-homepage__panel{
    padding:0 14px 14px;
  }

  .mobile-homepage__brand{
    position:relative;
    height:92px;
    margin:0 -14px 8px;
    overflow:hidden;
    background:#0f0c0a;
    display:grid;
    place-items:center;
  }

  .mobile-homepage__brand-video,
  .mobile-homepage__brand-overlay{
    position:absolute;
    inset:0;
  }

  .mobile-homepage__brand-video{
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.82;
    transform:scale(1.04);
    transition:opacity .45s ease;
  }

  .mobile-homepage__brand.is-video-ended .mobile-homepage__brand-video{
    opacity:0;
  }

  .mobile-homepage__brand-overlay{
    background:
      linear-gradient(180deg, rgba(14,11,9,.26) 0%, rgba(14,11,9,.54) 68%, rgba(14,11,9,.92) 100%),
      linear-gradient(90deg, rgba(179,91,46,.12), rgba(179,91,46,0) 42%, rgba(179,91,46,.08));
    pointer-events:none;
  }

  .mobile-homepage__brand-title{
    position:relative;
    z-index:2;
    margin:0;
    padding:0 16px;
    color:var(--psg-white);
    font:500 clamp(1.11rem, 5.7vw, 1.54rem)/.95 "EB Garamond", ui-serif, Georgia, serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-align:center;
    text-shadow:0 8px 24px rgba(0,0,0,.28);
    white-space:nowrap;
  }

  .mobile-homepage__header{
    margin:0 0 8px;
    text-align:center;
  }

  .mobile-homepage__intro{
    max-width:25rem;
    margin:0 auto;
    color:var(--psg-muted);
    font:500 .78rem/1.4 "Inter",system-ui,sans-serif;
    text-wrap:balance;
  }

  .mobile-homepage__form,
  .mobile-homepage__row{
    gap:6px;
  }

  .mobile-homepage__input,
  .mobile-dropdown__summary,
  .mobile-homepage__submit{
    min-height:40px;
  }

  .mobile-homepage__input{
    font-size:16px;
    line-height:1.25;
    padding-inline:12px;
  }

  .mobile-dropdown__value{
    font-size:.89rem;
  }

  .mobile-range{
    padding:8px 10px 7px;
  }

  .mobile-range__header{
    margin-bottom:5px;
  }

  .mobile-range__count{
    margin-top:3px;
  }

  .mobile-homepage__field--must-have{
    padding-top:1px;
  }

  .mobile-must-have{
    gap:11px;
  }

  .mobile-school-topbar{
    top:0;
    z-index:50;
    border-top:0;
    border-bottom:1px solid var(--psg-line);
  }

  .mobile-school-topbar__row{
    padding:4px 16px;
    gap:8px;
  }

  .mobile-school-topbar__pager,
  .mobile-school-topbar__results-button{
    min-height:28px;
    padding:0 9px;
    font-size:.56rem;
  }

  .mobile-school-topbar__position{
    font-size:.63rem;
    letter-spacing:.09em;
  }

  .mobile-school-hero{
    min-height:150px;
  }

  .mobile-school-hero__copy{
    min-height:150px;
    padding-top:12px;
    padding-bottom:12px;
  }

  .mobile-school-hero__text{
    width:100%;
    padding-right:0;
  }

  .mobile-school-hero__title,
  .mobile-school-hero__address,
  .mobile-school-hero__subhead,
  .mobile-school-hero__text a,
  .mobile-school-hero__text a[x-apple-data-detectors],
  .mobile-school-hero__text a[x-apple-data-detectors="true"]{
    text-decoration:none !important;
    border-bottom:0 !important;
    background-image:none !important;
    color:inherit !important;
  }

  .mobile-school-hero__title{
    max-width:none;
  }

  .mobile-school-hero__address,
  .mobile-school-hero__subhead{
    max-width:none;
  }

  .mobile-school-hero__address{
    margin-top:5px;
    font-size:.66rem;
  }

  .mobile-school-hero__subhead{
    font-size:.82rem;
    line-height:1.38;
  }

  .mobile-school-actions{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:0;
    padding-top:0;
    padding-bottom:0;
    background:rgba(246,240,232,.98);
    border-top:1px solid var(--psg-line);
    border-bottom:1px solid var(--psg-line);
  }

  .mobile-school-actions__button{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 8px;
    border-right:1px solid var(--psg-line);
    background:#fbf7f0;
    color:var(--psg-dark);
    font:600 .6rem/1.14 "Inter",system-ui,sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
  }

  .mobile-school-actions__button:last-child{
    border-right:0;
  }

  .mobile-school-actions__button--primary{
    background:rgba(179,91,46,.1);
    color:var(--psg-accent);
  }

  .mobile-school-actions__button[data-shortlist-button].is-active{
    background:var(--psg-dark);
    color:var(--psg-white);
  }

  .mobile-school-actions__button:hover,
  .mobile-school-actions__button:focus-visible{
    color:var(--psg-accent);
    outline:none;
  }

  .mobile-school-actions__button--primary:hover,
  .mobile-school-actions__button--primary:focus-visible{
    color:var(--psg-accent);
  }

  .mobile-school-actions__label{
    display:block;
  }

  .mobile-school-actions__count{
    position:absolute;
    top:4px;
    right:4px;
    display:inline-grid;
    place-items:center;
    min-width:1rem;
    min-height:1rem;
    padding:0 .16rem;
    background:var(--psg-dark);
    color:var(--psg-white);
    font:600 .44rem/1 "Inter",system-ui,sans-serif;
  }

  .mobile-school-content{
    padding-top:10px;
  }

  .mobile-school-card{
    padding:11px 11px 12px;
  }

  .mobile-school-card--overview{
    padding:0;
    border:0;
    background:transparent;
  }

  .mobile-overview-list__item{
    align-items:baseline;
    gap:10px;
    padding:10px 0;
    border-top:0;
  }

  .mobile-overview-list__item + .mobile-overview-list__item{
    border-top:1px solid rgba(41,36,33,.1);
  }

  .mobile-overview-list__item:last-child{
    border-bottom:0;
  }

  .mobile-overview-list__label,
  .mobile-overview-list__value{
    font:500 .82rem/1.35 "Inter",system-ui,sans-serif;
  }

  .mobile-overview-list__label{
    color:var(--psg-ink);
  }

  .mobile-overview-list__value{
    max-width:52%;
  }

  .mobile-school-map-wrap{
    margin-top:10px;
  }

  .mobile-school-card__head{
    gap:8px;
  }

  .mobile-school-fee-switch__button{
    padding:7px 9px;
    font-size:.62rem;
  }

  .mobile-fee-grid{
    gap:0 8px;
    margin-top:8px;
  }

  .mobile-fee-table__row{
    padding:3px 0;
  }

  .mobile-fee-table__year{
    font-size:.69rem;
  }

  .mobile-fee-table__amount{
    font-size:.76rem;
  }

  .mobile-school-stat-grid{
    gap:8px;
    margin-top:8px;
  }

  .mobile-school-panel--fees,
  .mobile-school-panel--academics,
  .mobile-school-panel--about{
    min-height:calc(100svh - var(--mobile-school-sticky-offset) - 4rem);
    padding-bottom:clamp(9rem, 30svh, 16rem);
  }
}

@media (max-width: 390px){
  .mobile-homepage__panel{
    padding:0 12px 12px;
  }

  .mobile-homepage__brand{
    height:86px;
    margin:0 -12px 8px;
  }

  .mobile-homepage__brand-title{
    font-size:1.06rem;
  }

  .mobile-homepage__intro{
    font-size:.75rem;
  }

  .mobile-school-profile .mobile-school-actions.shell,
  .mobile-school-topbar__row{
    padding-inline:12px;
  }

  .mobile-school-actions__button{
    min-height:40px;
    font-size:.56rem;
  }

  .mobile-school-hero{
    min-height:146px;
  }

  .mobile-school-hero__copy{
    min-height:146px;
  }

  .mobile-school-hero__title{
    font-size:1.64rem;
  }

  .mobile-school-hero__address{
    font-size:.62rem;
  }

  .mobile-school-hero__subhead{
    font-size:.77rem;
  }

  .mobile-overview-list__label,
  .mobile-overview-list__value{
    font-size:.79rem;
  }
}

@media (max-width: 900px){
  .mobile-school-hero__text a[x-apple-data-detectors],
  .mobile-school-hero__text a[x-apple-data-detectors="true"]{
    font:inherit !important;
  }

  .mobile-school-actions__button[data-shortlist-button].is-active:hover,
  .mobile-school-actions__button[data-shortlist-button].is-active:focus-visible{
    color:var(--psg-white);
  }
}
