:root{
  --home-bg:#f4efe8;
  --home-paper:#efe7dc;
  --home-ink:#292421;
  --home-muted:#6c6359;
  --home-accent:#b35b2e;
  --home-border:rgba(41,36,33,.18);
  --home-dark:#1f1a17;
  --home-map-height:420px;
  --home-location-list-max-height:52rem;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

body.home-minimal{
  margin:0;
  background:var(--home-bg);
  color:var(--home-ink);
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

body.home-minimal a{color:inherit;text-decoration:none}

[hidden]{display:none !important;}

.visually-hidden{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0
}

.shell,
.container{
  width:min(100%, 1440px);
  margin-inline:auto;
}

.home-hero{
  position:relative;
  min-height:86svh;
  background:#181411;
  overflow:hidden;
}

.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}

.hero-video-mobile{display:none}

.hero-wash{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(25,21,18,.22) 0%, rgba(25,21,18,.36) 45%, rgba(25,21,18,.72) 100%),
    linear-gradient(90deg, rgba(179,91,46,.22) 0%, rgba(179,91,46,0) 35%, rgba(179,91,46,.12) 100%);
}

.hero-centre{
  position:relative;
  min-height:86svh;
  display:grid;
  place-items:center;
  padding:3rem 1.5rem;
  text-align:center;
}

.hero-title{
  margin:0 auto;
  width:100%;
  color:#f9f4ed;
  font-family:"EB Garamond", ui-serif, Georgia, "Times New Roman", serif;
  font-weight:500;
  font-size:clamp(1.95rem, 4.25vw, 3.55rem);
  letter-spacing:.16em;
  line-height:.98;
  text-transform:uppercase;
  text-shadow:0 4px 28px rgba(0,0,0,.35);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.hero-title span{display:block;width:100%}

.home-school-filter-bar{
  background:var(--home-paper);
  border-top:1px solid var(--home-border);
  border-bottom:1px solid var(--home-border);
}

.school-filter-form{padding:1rem 1.5rem 1.15rem}

.school-filter-mobile-actions{display:none;margin:0 0 .95rem}

.school-filter-mobile-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:.8rem 1rem;
  border:1px solid var(--home-border);
  background:#f8f4ee;
  color:var(--home-dark);
  font:700 .82rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.school-filter-mobile-button:hover,
.school-filter-mobile-button:focus-visible{
  color:var(--home-accent);
  border-color:rgba(179,91,46,.45);
}

.school-filter-collapsible{display:block}

.school-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px, 2fr) minmax(125px, .7fr) repeat(4, minmax(155px, 1fr));
  gap:.9rem 1rem;
  align-items:end;
}

.school-filter-field{margin:0;padding:0;border:0;min-width:0}

.school-filter-range-row{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
  align-items:end;
}

.school-filter-label{
  display:block;
  margin:0 0 .45rem;
  color:var(--home-muted);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.school-filter-input,
.school-filter-dropdown__summary{
  width:100%;
  min-height:46px;
  padding:.8rem .95rem;
  border:1px solid var(--home-border);
  background:#f8f4ee;
  color:var(--home-ink);
  font:500 .98rem/1.3 "Inter",system-ui,sans-serif;
}

.school-filter-input:focus,
.school-filter-dropdown[open] > .school-filter-dropdown__summary,
.school-filter-dropdown__summary:focus-visible{
  outline:none;
  border-color:rgba(179,91,46,.55);
  box-shadow:0 0 0 3px rgba(179,91,46,.12);
}

.school-filter-dropdown{position:relative}

.school-filter-dropdown__summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  list-style:none;
  cursor:pointer;
}

.school-filter-dropdown__summary::-webkit-details-marker{display:none}

.school-filter-dropdown__summary::after{
  content:'▾';
  flex:0 0 auto;
  color:var(--home-muted);
  font-size:.9rem;
}

.school-filter-dropdown__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.school-filter-dropdown__panel{
  position:absolute;
  top:calc(100% + .4rem);
  left:0;
  z-index:25;
  min-width:100%;
  padding:.55rem;
  border:1px solid var(--home-border);
  background:#fbf8f2;
  box-shadow:0 18px 38px rgba(41,36,33,.12);
}

.school-filter-dropdown--wide .school-filter-dropdown__panel{min-width:320px;right:0;left:auto}
.school-filter-dropdown__panel--religion{width:min(560px, calc(100vw - 3rem))}

.school-filter-options{display:flex;flex-wrap:wrap;gap:.6rem}
.school-filter-options--stacked{flex-direction:column;gap:.35rem}
.school-filter-options--grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:.35rem;max-height:240px;overflow:auto}

.school-filter-option{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:44px;
  padding:.55rem .75rem;
  border:1px solid var(--home-border);
  background:#f8f4ee;
  color:var(--home-ink);
  font-size:.94rem;
  line-height:1.35;
  cursor:pointer;
}

.school-filter-option--dropdown{width:100%;min-height:40px;padding:.55rem .7rem;background:#fff;font-size:.92rem}
.school-filter-option input{margin:0;accent-color:var(--home-accent)}

.school-filter-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem 1.25rem;
  margin-top:.9rem;
  padding-top:.9rem;
  border-top:1px solid var(--home-border);
}

.school-filter-error{margin:0;color:#8c2b14;font-size:.94rem;line-height:1.45;flex:1 1 auto}
.school-filter-button-row{display:flex;flex-wrap:wrap;gap:.75rem;flex:0 0 auto}

.school-filter-reset{
  min-height:44px;
  padding:.8rem 1.1rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-ink);
  font:600 .95rem/1 "Inter",system-ui,sans-serif;
  cursor:pointer;
}

.home-finder{padding:1.2rem 0 4rem}

.finder-grid{
  display:grid;
  grid-template-columns:minmax(360px, 430px) minmax(0, 1fr);
  gap:0;
  align-items:start;
}

.finder-left-column{position:relative;border-right:1px solid var(--home-border);background:#f6f0e8}
.finder-left-inner{position:static;display:flex;flex-direction:column;max-height:none}
.finder-panel{padding:1.35rem 1.5rem}
.finder-map-panel{background:#f2ece3;padding-top:1.5rem;padding-bottom:1rem}

.finder-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1rem}
.finder-results-head--map{margin-bottom:.8rem}

.finder-kicker{
  margin:0 0 .3rem;
  color:var(--home-accent);
  font-size:.77rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.finder-results-title{
  margin:0;
  color:var(--home-ink);
  font-family:"EB Garamond", ui-serif, Georgia, serif;
  font-weight:500;
  line-height:1.04;
  font-size:1.7rem;
}

.finder-results-summary{margin:0;max-width:34ch;color:var(--home-muted);font-size:.95rem;line-height:1.5;text-align:right}

.homepage-results-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1rem;flex-wrap:wrap}
.homepage-view-toggle{display:inline-flex;flex-wrap:wrap;border:1px solid var(--home-border);background:#f8f4ee}

.homepage-view-button{
  border:0;
  background:transparent;
  padding:.8rem 1rem;
  color:var(--home-ink);
  font:600 .82rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.homepage-view-button + .homepage-view-button{border-left:1px solid var(--home-border)}
.homepage-view-button.is-active{background:var(--home-dark);color:#fff}

.homepage-sort-controls{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.homepage-sort-label{
  margin:0;
  color:var(--home-muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.homepage-sort-select{
  min-height:42px;
  min-width:240px;
  padding:.75rem 2.5rem .75rem .9rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-ink);
  font:600 .88rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.03em;
  text-transform:none;
}

.homepage-table-controls{display:flex;align-items:center;gap:.8rem 1rem;flex-wrap:wrap;justify-content:flex-end}
.homepage-table-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.homepage-table-nav__button,
.homepage-table-show-all{
  min-height:40px;
  padding:.65rem .8rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-ink);
  font:600 .82rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.homepage-table-nav__button:disabled{opacity:.45;cursor:default}
.homepage-table-nav__label{margin:0;color:var(--home-muted);font-size:.92rem;line-height:1.35}

.homepage-map{width:100%;height:var(--home-map-height);background:#ddd4c8;border:1px solid var(--home-border)}
.finder-map-actions{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.75rem}
.finder-locations{flex:0 0 auto;min-height:0;max-height:var(--home-location-list-max-height);overflow:auto;padding-top:1rem;padding-bottom:1.25rem}
.finder-locations-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.35rem}
.finder-locations-body{min-height:0}
.finder-locations-toggle{
  display:none;
  min-height:40px;
  padding:.65rem .85rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-ink);
  font:600 .78rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}

.location-search{width:100%;padding:.85rem 0;border:none;border-bottom:1px solid var(--home-border);background:transparent;color:var(--home-ink);font:500 .98rem/1.4 "Inter",system-ui,sans-serif;outline:none}
.location-search::placeholder{color:#8a7f75}

.location-list{list-style:none;margin:.8rem 0 0;padding:0}
.location-link{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem;padding:.65rem 0;border-bottom:1px solid var(--home-border);transition:color .18s ease,padding-left .18s ease}
.location-link:hover,.location-link:focus-visible{color:var(--home-accent);padding-left:.4rem}
.location-name{font-family:"EB Garamond", ui-serif, Georgia, serif;font-size:1.5rem;letter-spacing:.04em;line-height:1.08}
.location-state{color:var(--home-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;line-height:1.3}
.location-link.is-live .location-state{color:var(--home-accent)}

.finder-cards-panel{padding:1.5rem;background:var(--home-bg);min-height:calc(var(--home-map-height) + 3rem)}
.homepage-visible-school-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:1rem;align-content:start}

.homepage-school-card{display:block;min-height:170px;border:1px solid var(--home-border);background:#f7f1e9;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.homepage-school-card:hover,.homepage-school-card:focus-visible{transform:translateY(-2px);border-color:rgba(179,91,46,.45);box-shadow:0 14px 30px rgba(41,36,33,.08)}
.homepage-school-card__body{display:flex;flex-direction:column;gap:.8rem;padding:1.15rem 1rem 1rem}
.homepage-school-card__eyebrow{margin:0;color:var(--home-accent);font-size:.78rem;font-weight:600;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}
.homepage-school-card__title{margin:0;color:var(--home-ink);font-family:"EB Garamond", ui-serif, Georgia, serif;font-weight:500;font-size:1.5rem;line-height:1.05;letter-spacing:.04em}
.homepage-school-card__meta{margin:0;color:var(--home-muted);font-size:.92rem;line-height:1.45}
.homepage-school-card__meta--secondary{color:var(--home-ink);opacity:.72}
.homepage-school-card__status{margin:0;color:var(--home-accent);font-size:.82rem;font-weight:700;letter-spacing:.08em;line-height:1.35;text-transform:uppercase}
.homepage-school-card__status--neutral{color:var(--home-muted)}
.homepage-school-card--static{cursor:default}
.homepage-school-card--static:hover,.homepage-school-card--static:focus-visible{transform:none;border-color:var(--home-border);box-shadow:none}
.homepage-school-card--allthrough{border-left:4px solid var(--home-accent)}
.homepage-school-card--junior{border-left:4px solid #9d7a44}
.homepage-school-card--senior{border-left:4px solid #2a2520}

.homepage-school-table-wrap{border:1px solid var(--home-border);background:#f7f1e9}
.homepage-school-table-scroll{overflow:auto}
.homepage-school-table{width:100%;min-width:720px;border-collapse:collapse}
.homepage-school-table thead th,
.homepage-school-table tbody th,
.homepage-school-table td{border-bottom:1px solid var(--home-border)}
.homepage-school-table thead th,
.homepage-school-table td,
.homepage-school-table tbody th{padding:1rem .85rem;text-align:center;vertical-align:middle}
.homepage-school-table thead th:first-child,
.homepage-school-table tbody th{text-align:left}
.homepage-school-table thead th{background:#efe7dc;color:var(--home-ink);font:600 .78rem/1.2 "Inter",system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.homepage-school-table tbody th{background:rgba(179,91,46,.07);color:var(--home-dark);font:600 .78rem/1.2 "Inter",system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;position:sticky;left:0;z-index:1}
.homepage-school-table td{color:var(--home-ink);font-size:.95rem;line-height:1.4}
.homepage-school-table__school{display:flex;flex-direction:column;align-items:center;gap:.55rem;min-width:120px}
.homepage-school-table__school-name{display:block;font-family:"EB Garamond", ui-serif, Georgia, serif;font-size:1.25rem;letter-spacing:.03em;line-height:1.1;text-transform:none;text-align:center}
.homepage-school-table__school-name a{color:var(--home-ink)}
.homepage-school-table__hide{border:1px solid var(--home-border);background:#fff;padding:.45rem .6rem;font:600 .75rem/1 "Inter",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}

.finder-note{margin:1rem 0 0;color:var(--home-muted);max-width:44ch}

.homepage-map .leaflet-control-attribution{font-size:.68rem}
.homepage-map .school-map-marker{display:block;width:14px;height:14px;background:var(--home-dark);border:2px solid #f2ece3;box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.homepage-map .school-map-marker.allthrough{background:var(--home-accent)}
.homepage-map .school-map-marker.junior{background:#9d7a44}
.homepage-map .school-map-marker.senior{background:#2a2520}

.map-popup{min-width:180px}
.map-popup-title{margin:0 0 .2rem;font:600 1rem/1.2 "Inter",system-ui,sans-serif}
.map-popup-meta{margin:0 0 .65rem;color:var(--home-muted);font-size:.9rem}
.map-popup-link{color:var(--home-accent);font-size:.92rem;font-weight:600}
.map-popup-link--muted{margin:0;color:var(--home-muted);font-size:.92rem;font-weight:600}

.site-footer{background:var(--home-dark);color:#ece3d7;border-top:1px solid rgba(255,255,255,.12);padding:2.4rem 4vw 1rem}
.site-footer h2,.site-footer h3{margin:0 0 .85rem;color:#fbf6ef;font-family:"EB Garamond", Georgia, serif;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.site-footer p{margin:0;color:#d9c9b6;line-height:1.5}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2rem}
.footer-links{list-style:none;padding:0;margin:0}.footer-links li+li{margin-top:.35rem}.footer-links a{color:#f3c6ab}.footer-links a:hover{color:#ffe0cc}.footer-bottom{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}

@media (max-width: 1220px){
  .school-filter-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}
  .school-filter-field--location{grid-column:1 / span 2}
  .homepage-visible-school-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}

@media (max-width: 900px){
  .home-hero,.hero-centre{min-height:74vh}
  .hero-video-desktop{display:none}
  .hero-video-mobile{display:block}
  .hero-centre{display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem 1rem}
  .hero-title{font-size:clamp(2.6rem, 10.8vw, 4.7rem);letter-spacing:.12em;width:100%;max-width:14ch;margin:0 auto;justify-self:center;align-self:center}
  .school-filter-form{padding:1rem 1.1rem 1.15rem}
  .school-filter-mobile-actions{display:flex}
  .school-filter-mobile-button{width:100%}
  .school-filter-form.is-collapsed .school-filter-collapsible{display:none}
  .school-filter-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .school-filter-field--location,.school-filter-field--religion{grid-column:1 / -1}
  .school-filter-actions,.finder-results-head,.homepage-results-toolbar{flex-direction:column;align-items:flex-start}
  .finder-results-summary{max-width:none;text-align:left}
  .school-filter-dropdown__panel,.school-filter-dropdown--wide .school-filter-dropdown__panel{left:0;right:auto;min-width:100%}
  .school-filter-dropdown__panel--religion{width:min(100%, calc(100vw - 2.2rem))}
  .finder-grid{grid-template-columns:1fr}
  .finder-left-column{border-right:none;border-bottom:1px solid var(--home-border)}
  .finder-left-inner{position:static;max-height:none}
  .finder-map-panel{order:1}
  .home-school-filter-bar.finder-filter-panel{order:2;border-top:1px solid var(--home-border);border-bottom:1px solid var(--home-border)}
  .finder-filter-panel > .shell{width:100%}
  .finder-locations{order:3;overflow:visible;max-height:none}
  .finder-cards-panel{order:4}
  .finder-panel,.finder-cards-panel{padding:2rem 1.1rem 1.8rem}
  .finder-locations-toggle{display:inline-flex}
  .finder-locations.is-collapsed .finder-locations-body{display:none}
  .homepage-map{height:340px}
  .homepage-visible-school-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:1.4rem}
}

@media (max-width: 560px){
  .home-hero,.hero-centre{min-height:72vh}
  .hero-title{font-size:2.45rem;letter-spacing:.11em}
  .school-filter-grid{grid-template-columns:1fr}
  .school-filter-options--grid{grid-template-columns:1fr}
  .school-filter-button-row{width:100%}
  .school-filter-reset{flex:1 1 auto}
  .location-name{font-size:1.35rem}
  .location-state{font-size:.72rem}
  .finder-note{font-size:.95rem}
}
.homepage-school-card__badge{
  margin:0;
  color:var(--home-accent);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.2;
  text-transform:uppercase;
}

.location-landing-page{
  background:var(--home-bg);
  color:var(--home-ink);
}

.location-landing-hero{
  position:relative;
  min-height:52svh;
  background:#181411;
  overflow:hidden;
}

.location-landing-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.location-landing-hero::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(25,21,18,.18) 0%, rgba(25,21,18,.34) 38%, rgba(25,21,18,.72) 100%);
}

.location-landing-hero__copy{
  position:relative;
  z-index:1;
  min-height:52svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.9rem;
  padding:4rem 1.5rem 3rem;
  text-align:center;
}

.location-landing-hero__title{
  margin:0;
  color:#f9f4ed;
  font-family:"EB Garamond", ui-serif, Georgia, serif;
  font-size:clamp(2.3rem, 5vw, 4rem);
  font-weight:500;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
  text-shadow:0 4px 28px rgba(0,0,0,.35);
}

.location-landing-hero__subtitle{
  margin:0;
  color:rgba(255,255,255,.95);
  font-size:clamp(1.1rem, 2vw, 1.45rem);
  line-height:1.4;
  font-style:italic;
}

.location-overview-band{
  border-top:1px solid var(--home-border);
  border-bottom:1px solid var(--home-border);
  background:var(--home-paper);
}

.location-overview-grid{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:1rem;
  padding:1rem 0;
}

.location-editorial-card{
  border:1px solid var(--home-border);
  background:#f7f1e9;
  padding:1.15rem 1.1rem;
}

.location-editorial-card--lower{
  margin-top:1rem;
}

.location-editorial-card__head{
  margin-bottom:.9rem;
}

.location-editorial-card__title{
  margin:0;
  color:var(--home-ink);
  font-family:"EB Garamond", ui-serif, Georgia, serif;
  font-size:1.9rem;
  font-weight:500;
  line-height:1.05;
}

.location-editorial-copy p,
.location-faq-answer p{
  margin:0 0 .9rem;
  color:var(--home-muted);
  line-height:1.7;
}

.location-editorial-copy p:last-child,
.location-faq-answer p:last-child{
  margin-bottom:0;
}

.location-editorial-actions{
  margin-top:1rem;
}

.location-change-search-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.85rem 1.1rem;
  border:1px solid var(--home-dark);
  background:var(--home-dark);
  color:#fff !important;
  font:600 .9rem/1 "Inter",system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.location-at-a-glance-list{
  margin:0;
}

.location-at-a-glance-list__row{
  display:grid;
  grid-template-columns:minmax(0, 180px) minmax(0, 1fr);
  gap:.8rem;
  padding:.75rem 0;
  border-top:1px solid var(--home-border);
}

.location-at-a-glance-list__row:first-child{
  border-top:0;
  padding-top:0;
}

.location-at-a-glance-list dt{
  color:var(--home-muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.location-at-a-glance-list dd{
  margin:0;
  color:var(--home-ink);
  line-height:1.5;
}

.location-faq-list{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.location-faq-item{
  border:1px solid var(--home-border);
  background:#fff;
}

.location-faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:.95rem 1rem;
  font-weight:600;
  line-height:1.45;
}

.location-faq-item summary::-webkit-details-marker{
  display:none;
}

.location-faq-answer{
  padding:0 1rem 1rem;
}

@media (max-width: 1100px){
  .location-overview-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  .location-landing-hero,
  .location-landing-hero__copy{
    min-height:46svh;
  }

  .location-landing-hero__copy{
    padding:3rem 1rem 2.5rem;
  }
}

@media (max-width: 560px){
  .location-landing-hero__title{
    font-size:2rem;
  }

  .location-at-a-glance-list__row{
    grid-template-columns:1fr;
    gap:.35rem;
  }
}

/* --- 2026-04-02 homepage/location tile-to-map hover highlight --- */
.homepage-map .school-map-icon,
.homepage-map .school-map-marker{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.homepage-map .school-map-icon.is-highlighted{
  z-index:1000 !important;
}
.homepage-map .school-map-icon.is-highlighted .school-map-marker{
  transform:scale(1.4);
  border-color:#fff;
  box-shadow:0 0 0 4px rgba(179,91,46,.2), 0 10px 22px rgba(41,36,33,.22);
}


@media (max-width: 720px){
  .homepage-sort-select{
    width:100%;
    min-width:0;
  }
}

/* --- 2026-04-13 shortlist, fee/a-level filters, hero collapse --- */
.home-hero,
.hero-centre,
.hero-video,
.hero-wash,
.hero-title{
  transition:min-height .45s ease, padding .45s ease, opacity .45s ease, background-color .45s ease, transform .45s ease, font-size .45s ease;
}

.home-hero.is-condensed{
  min-height:28svh;
  background:#000;
  border-top:1px solid rgba(250,247,242,.18);
  border-bottom:1px solid rgba(250,247,242,.18);
}

.home-hero.is-condensed .hero-centre{
  min-height:28svh;
  padding:1.15rem 1.5rem;
}

.home-hero.is-condensed .hero-video,
.home-hero.is-condensed .hero-wash{
  opacity:0;
  pointer-events:none;
}

.home-hero.is-condensed .hero-title{
  display:block;
  width:auto;
  max-width:none;
  margin:0 auto;
  font-size:clamp(1.45rem, 2.9vw, 2.2rem);
  letter-spacing:.12em;
  line-height:1.1;
}

.home-hero.is-condensed .hero-title span{
  display:inline;
  width:auto;
}

.home-hero.is-condensed .hero-title span + span::before{
  content:' ';
}

.home-hero--shortlist{
  min-height:34svh;
  background:#000;
  border-top:1px solid rgba(250,247,242,.18);
  border-bottom:1px solid rgba(250,247,242,.18);
}

.hero-centre--shortlist{
  min-height:34svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.9rem;
  padding:2.4rem 1.5rem;
}

.home-hero-kicker{
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.hero-title--shortlist{
  font-size:clamp(2rem, 4vw, 3rem);
  letter-spacing:.12em;
}

.hero-title--shortlist span{
  display:inline;
  width:auto;
}

.home-hero-shortlist-copy{
  margin:0;
  max-width:40rem;
  color:rgba(255,255,255,.9);
  font-size:1rem;
  line-height:1.6;
  text-align:center;
}

.school-filter-field--must-have{grid-column:1 / span 2}

.school-range-filter,
.school-filter-checklist{
  display:flex;
  flex-direction:column;
  gap:.8rem;
  min-height:100%;
  padding:.9rem .95rem;
  border:1px solid var(--home-border);
  background:#f8f4ee;
}

.school-range-filter__switch{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  border:1px solid var(--home-border);
  background:#fff;
}

.school-range-filter__switch button{
  min-height:40px;
  border:0;
  background:transparent;
  color:var(--home-ink);
  font:600 .78rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.school-range-filter__switch button + button{
  border-left:1px solid var(--home-border);
}

.school-range-filter__switch button.is-active{
  background:var(--home-dark);
  color:#fff;
}

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

.school-range-filter__display-box{
  display:grid;
  gap:.35rem;
  min-height:72px;
  padding:.8rem .9rem;
  border:1px solid var(--home-border);
  background:#fff;
}

.school-range-filter__display-label{
  color:var(--home-muted);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.school-range-filter__display-box strong{
  color:var(--home-dark);
  font-family:"EB Garamond",ui-serif,Georgia,serif;
  font-size:1.55rem;
  font-weight:600;
  letter-spacing:.04em;
}

.school-range-filter__slider-wrap{
  position:relative;
  height:22px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(41,36,33,.12), rgba(41,36,33,.12));
}

.school-range-filter__slider{
  -webkit-appearance:none;
  appearance:none;
  position:absolute;
  inset:0;
  width:100%;
  height:22px;
  margin:0;
  background:transparent;
  pointer-events:none;
}

.school-range-filter__slider::-webkit-slider-runnable-track{
  height:4px;
  background:transparent;
  border-radius:999px;
}

.school-range-filter__slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:20px;
  height:20px;
  margin-top:-8px;
  border-radius:50%;
  border:2px solid var(--home-accent);
  background:#fff;
  box-shadow:0 2px 8px rgba(41,36,33,.16);
  pointer-events:auto;
}

.school-range-filter__slider::-moz-range-track{
  height:4px;
  background:transparent;
  border:none;
  border-radius:999px;
}

.school-range-filter__slider::-moz-range-thumb{
  width:20px;
  height:20px;
  border-radius:50%;
  border:2px solid var(--home-accent);
  background:#fff;
  box-shadow:0 2px 8px rgba(41,36,33,.16);
  pointer-events:auto;
}

.school-filter-checklist{
  gap:.65rem;
  justify-content:center;
}

.school-filter-check{
  display:flex;
  align-items:center;
  gap:.55rem;
  color:var(--home-ink);
  font-size:.94rem;
  line-height:1.4;
}

.school-filter-check input{
  margin:0;
  accent-color:var(--home-accent);
}

.homepage-shortlist-link{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  min-height:42px;
  padding:.75rem 1rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-dark);
  font:600 .8rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.homepage-shortlist-link:hover,
.homepage-shortlist-link:focus-visible{
  color:var(--home-accent);
  border-color:rgba(179,91,46,.45);
}

.homepage-shortlist-link__count{
  display:inline-grid;
  place-items:center;
  min-width:1.85rem;
  min-height:1.85rem;
  padding:0 .35rem;
  border-radius:999px;
  background:var(--home-dark);
  color:#fff;
  font:700 .76rem/1 "Inter",system-ui,sans-serif;
  letter-spacing:.04em;
}

.homepage-shortlist-link--back{
  justify-content:center;
}

.homepage-school-card{
  display:flex;
  flex-direction:column;
  min-height:212px;
}

.homepage-school-card__main{
  display:block;
  color:inherit;
  text-decoration:none;
  flex:1 1 auto;
}

.homepage-school-card__main:hover,
.homepage-school-card__main:focus-visible{
  color:inherit;
  text-decoration:none;
}

.homepage-school-card__actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:0 1rem 1rem;
  margin-top:auto;
}

.homepage-school-card__action-link,
.homepage-school-card__shortlist{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:.7rem .85rem;
  border:1px solid var(--home-border);
  background:#fff;
  color:var(--home-dark);
  font:600 .76rem/1.2 "Inter",system-ui,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.homepage-school-card__action-link{
  flex:1 1 auto;
}

.homepage-school-card__shortlist{
  flex:0 0 auto;
  cursor:pointer;
}

.homepage-school-card__shortlist.is-active{
  background:var(--home-dark);
  border-color:var(--home-dark);
  color:#fff;
}

@media (max-width: 1220px){
  .school-filter-field--religion{grid-column:1 / -1}
  .school-filter-range-row{grid-template-columns:repeat(3, minmax(0, 1fr))}
  .school-filter-field--must-have{grid-column:1 / -1}
}

@media (max-width: 900px){
  .home-hero.is-condensed{min-height:24svh}
  .home-hero.is-condensed .hero-centre{min-height:24svh;padding:1rem}
  .home-hero--shortlist,
  .hero-centre--shortlist{min-height:28svh}
  .school-filter-field--must-have,
  .school-filter-field--religion,
  .school-filter-field--location{grid-column:1 / -1}
  .school-filter-range-row{grid-template-columns:1fr}
  .homepage-shortlist-link{width:100%;justify-content:space-between}
}

@media (max-width: 560px){
  .home-hero.is-condensed{min-height:22svh}
  .home-hero.is-condensed .hero-title{font-size:1.25rem;letter-spacing:.1em}
  .school-range-filter__display{grid-template-columns:1fr}
  .school-range-filter__switch{grid-template-columns:1fr}
  .school-range-filter__switch button + button{border-left:none;border-top:1px solid var(--home-border)}
  .homepage-school-card__actions{flex-direction:column;align-items:stretch}
  .homepage-school-card__action-link,
  .homepage-school-card__shortlist{width:100%}
}

/* --- 2026-04-13 fee histogram, shortlist page tidy-up, tile shortlist banner --- */
.home-hero.is-condensing-instant,
.home-hero.is-condensing-instant .hero-centre,
.home-hero.is-condensing-instant .hero-video,
.home-hero.is-condensing-instant .hero-wash,
.home-hero.is-condensing-instant .hero-title{
  transition:none !important;
}

.school-range-filter__count{
  margin:0;
  color:var(--home-muted);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
}

.school-range-filter__histogram{
  display:flex;
  align-items:flex-end;
  gap:3px;
  min-height:90px;
  height:90px;
  padding:.15rem 0 .45rem;
  border-bottom:1px solid rgba(41,36,33,.14);
}

.school-range-filter__histogram-bar{
  flex:1 1 0;
  min-width:0;
  border-radius:6px 6px 0 0;
  background:rgba(41,36,33,.12);
}

.school-range-filter__histogram-bar.is-selected{
  background:rgba(179,91,46,.92);
}

.school-range-filter__histogram-bar.is-empty{
  opacity:.45;
}

.homepage-school-card__main{
  padding-bottom:.55rem;
}

.homepage-school-card__actions{
  display:block;
  padding:0;
  margin-top:auto;
}

.homepage-school-card__action-link{
  display:none !important;
}

.homepage-school-card__shortlist--banner,
.homepage-school-card__shortlist.homepage-school-card__shortlist--banner{
  display:flex;
  width:100%;
  min-height:48px;
  padding:.95rem 1rem;
  border:0;
  border-top:1px solid var(--home-border);
  border-radius:0;
  background:#f8f4ee;
  color:var(--home-dark);
}

.homepage-school-card__shortlist--banner.is-active,
.homepage-school-card__shortlist.homepage-school-card__shortlist--banner.is-active{
  background:var(--home-dark);
  border-top-color:var(--home-dark);
  color:#fff;
}

.home-hero--shortlist{
  min-height:22svh;
}

.hero-centre--shortlist{
  min-height:22svh;
  padding:1.5rem 1rem;
}

.home-hero--shortlist .hero-title--shortlist{
  font-size:clamp(1.55rem, 3vw, 2.35rem);
  letter-spacing:.11em;
}

.finder-grid--shortlist .finder-left-column,
.finder-grid--shortlist .finder-left-inner,
.finder-grid--shortlist .finder-map-panel{
  min-height:0;
}

@media (max-width: 900px){
  .school-range-filter__histogram{
    min-height:82px;
    height:82px;
  }

  .home-hero--shortlist,
  .hero-centre--shortlist{
    min-height:18svh;
  }
}

@media (max-width: 560px){
  .school-range-filter__histogram{
    gap:2px;
    min-height:74px;
    height:74px;
  }

  .homepage-school-card__actions{
    display:block;
  }

  .homepage-school-card__shortlist--banner,
  .homepage-school-card__shortlist.homepage-school-card__shortlist--banner{
    width:100%;
  }
}
