.schools{align-items:start}
.school-map-panel{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.school-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid var(--line)}
.map-scope{display:flex;gap:4px;background:#edf1ed;border-radius:6px;padding:4px}
.map-scope button{padding:9px 14px;border:0;background:transparent;border-radius:4px;font-size:.875rem;font-weight:650;color:var(--ink);line-height:1.2}
.map-scope button[aria-pressed=true]{background:var(--ink);color:white}
.map-scope button:hover:not([aria-pressed=true]){background:#dfe7e1}
#school-map-location{font-size:.8rem;color:var(--muted);text-align:right;line-height:1.4}
.school-map-stage{position:relative;height:485px;background:#edf1ed}
#school-map{height:100%;width:100%;z-index:0;font-family:var(--font);background:#e5eeeb}
.school-map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#edf1ed;color:var(--muted);font-size:.9rem;z-index:1;text-align:center;padding:25px}
.school-map-loading[hidden]{display:none}
.school-map-loading.map-unavailable{inset:auto 14px 14px;padding:12px;background:rgba(255,253,248,.97);border:1px solid var(--line);border-radius:5px;font-size:.8rem;pointer-events:none}
.school-map-caption{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 22px;border-bottom:1px solid var(--line)}
.school-map-caption>p:first-child{font-size:1rem;font-weight:700;line-height:1.5}
.school-map-caption span{font-size:.85rem;color:var(--muted);font-weight:400}
#school-map-count{font-size:.8rem;color:var(--muted);text-align:right;max-width:155px;line-height:1.5}
.school-map-note{padding:0 22px 18px;font-size:.8rem;line-height:1.6;color:var(--muted)}
.school-map-directory{padding:0 22px;margin:0}
.school-map-directory>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:17px 0;list-style:none;font-size:.875rem;font-weight:650}
.school-map-directory>summary::-webkit-details-marker{display:none}
.school-map-directory>summary>span{font-size:1.2rem}
.school-map-directory[open]>summary>span{transform:rotate(45deg)}
#school-map-directory{max-height:310px;overflow:auto;margin-bottom:20px;border-top:1px solid var(--line)}
.map-directory-country{margin-top:22px}
.map-directory-country h3{font-family:var(--font);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;color:var(--muted)}
.map-directory-country ul{list-style:none;padding:0;margin:0}
.map-directory-country li{border-top:1px solid #e5e9e4;padding:11px 0}
.map-directory-country button{border:0;background:none;padding:0;text-align:left;font-size:.875rem;font-weight:650;color:var(--ink);line-height:1.4}
.map-directory-country button:hover{text-decoration:underline;text-underline-offset:3px}
.map-directory-country p{font-size:.75rem;line-height:1.5;color:var(--muted);margin-top:4px}
.map-directory-country a{font-size:.75rem;text-decoration:underline;text-underline-offset:3px}
.school-map-icon{background:none!important;border:0!important}
.school-map-pin{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--orange);border:3px solid var(--paper);border-radius:50%;box-shadow:0 2px 8px #082e3340;color:var(--ink)}
.school-map-pin svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.school-map-cluster{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--ink);border:3px solid var(--paper);border-radius:50%;box-shadow:0 2px 8px #082e3340;color:white;font-weight:750;font-size:.95rem;font-family:var(--font)}
#school-map .leaflet-marker-icon:focus-visible{outline:3px solid var(--orange);outline-offset:4px;border-radius:50%}
#school-map .leaflet-control-zoom{border:1px solid #cbd5d1;border-radius:5px;box-shadow:0 2px 10px #082e3320}
#school-map .leaflet-control-zoom a{width:35px;height:35px;line-height:35px;background:var(--paper);color:var(--ink)}
#school-map .leaflet-control-attribution{font:10px/1.5 var(--font);background:rgba(255,253,248,.93);color:#415659;padding:2px 5px}
#school-map .leaflet-control-attribution a{color:#244e51;text-decoration:underline}
#school-map .leaflet-popup-content-wrapper{border-radius:8px;box-shadow:0 8px 30px #082e3333;background:var(--paper);color:var(--ink)}
#school-map .leaflet-popup-content{margin:20px 23px;width:245px!important;max-width:calc(100vw - 110px);font-family:var(--font);line-height:1.5}
#school-map .leaflet-popup-close-button{color:var(--ink);padding:5px 5px 0 0}
.map-popup-eyebrow{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 7px!important}
.map-popup h3{font-size:1.12rem;line-height:1.3;letter-spacing:-.025em;margin:0 0 10px}
.map-popup p{font-size:.8rem;margin:0 0 14px!important;color:var(--muted)}
.map-popup a{color:var(--ink)!important;font-weight:700;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
.map-popup a+a{display:block;margin-top:8px}
.map-popup-group>div+div{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
@media(min-width:1300px){.school-map-stage{height:520px}}
@media(max-width:1000px){.schools{grid-template-columns:1fr!important;gap:35px!important}.schools-intro{max-width:560px}.school-map-stage{height:470px}}
@media(max-width:600px){.school-map-toolbar{padding:12px;gap:8px}.map-scope button{padding:8px 11px;font-size:.8rem}#school-map-location{font-size:.75rem;max-width:95px}.school-map-stage{height:410px}.school-map-caption{padding:16px;gap:15px;align-items:flex-start}.school-map-caption>p:first-child{font-size:.9rem}.school-map-caption span{font-size:.8rem}#school-map-count{font-size:.75rem;max-width:95px}.school-map-directory{padding-inline:16px}.school-map-note{padding-inline:16px}.school-map-panel{border-radius:8px}}
