.location-explorer{background:var(--ivory)}
.location-map-heading{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:end;margin-bottom:84px}
.location-map-heading .eyebrow{margin-bottom:25px}
.location-map-heading>p{max-width:440px;justify-self:end}
.location-map-layout{display:grid;grid-template-columns:minmax(260px,.6fr) minmax(0,1.4fr);gap:64px;align-items:start}
.map-directory{min-width:0}
.map-filters{display:flex;flex-wrap:wrap;column-gap:22px;row-gap:7px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.map-filters button{position:relative;padding:8px 0;font-size:10px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.map-filters button[aria-pressed=true]{color:var(--ink)}
.map-filters button[aria-pressed=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)}
.map-location-list{list-style:none;padding:0;margin:0;overflow:visible}
.map-location-list li[hidden]{display:none}
.map-location{display:flex;align-items:center;gap:16px;text-align:left;width:100%;padding:10px 0;border-bottom:1px solid var(--line)}
.map-location-number{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border:1px solid var(--pin-color);border-radius:50%;background:var(--pin-color);color:var(--ivory);font-size:11px;line-height:1}
.map-location-number svg{display:block;width:100%;height:100%;fill:currentColor}.map-location-number text{font-size:11px;letter-spacing:0}
.map-location-copy{display:block;flex:1;min-width:0}
.map-location-name{display:block;font-size:17px;line-height:1.3}
.map-location-address{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:3px}
.map-frame{height:clamp(740px,66vh,760px);position:relative;border-radius:0;overflow:hidden;background:#f2f0eb;border:1px solid #b1a28a55}
#village-map{height:100%;width:100%}
.map-status{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:var(--cream);padding:40px;font-size:17px;z-index:1}
.map-status[hidden]{display:none}

.location-map-pin{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;border:2px solid var(--ivory);background:var(--pin-color);color:var(--ivory);font-size:10px;line-height:1;box-shadow:none;transition:none}
.location-map-pin[hidden]{display:none}
.location-map-pin.is-selected{box-shadow:0 0 0 3px var(--ivory),0 0 0 4px var(--pin-color);z-index:3}
.mapboxgl-popup-content{background:var(--ivory);border:1px solid var(--line);box-shadow:none;border-radius:4px;padding:16px 26px 16px 18px;color:var(--ink)}
.mapboxgl-popup-content p{font-size:17px;line-height:1.3}
.mapboxgl-popup-content span{display:block;font-size:12px;line-height:1.4;color:var(--muted);margin-top:6px}
.mapboxgl-popup-close-button{font-size:20px;width:25px;line-height:1.3}
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:var(--ivory)}
.mapboxgl-ctrl-group{box-shadow:none!important;border:1px solid #b1a28a66;background:var(--ivory);border-radius:2px}
.mapboxgl-ctrl-attrib,.mapboxgl-ctrl-scale{font-size:10px!important}
.mapboxgl-ctrl-scale{background:#f2f0ebc9;border-color:var(--taupe)}
.mapboxgl-canvas:focus-visible{outline:2px solid var(--taupe);outline-offset:-3px}
@media(max-width:1100px){.location-map-layout{grid-template-columns:minmax(260px,.6fr) minmax(0,1.4fr);gap:35px}.location-map-heading{gap:35px}.map-location{gap:13px}.map-location-name{font-size:17px}.map-filters{column-gap:16px}.map-frame{height:740px}}
@media(max-width:760px){.location-map-heading{grid-template-columns:1fr;gap:26px;margin-bottom:52px}.location-map-heading h2{font-size:53px}.location-map-heading>p{justify-self:start;max-width:none}.location-map-layout{display:flex;flex-direction:column;gap:30px}.map-directory,.map-panel{width:100%}.map-location-list{max-height:none;padding:0}.map-location{padding:10px 0}.map-location-name{font-size:17px}.map-filters{column-gap:19px;row-gap:3px}.map-frame{height:480px;border-radius:0}}
@media(prefers-reduced-motion:reduce){.map-location,.map-location-arrow,.location-map-pin{transition:none}}

/* Reserve the same eleven row slots in every filter, aligned to the map. */
@media(min-width:761px){.map-directory{align-self:stretch;display:flex;flex-direction:column}.map-filters{flex-shrink:0}.map-location-list{flex:1;display:grid;grid-template-rows:repeat(11,minmax(0,1fr))}.map-location-list>li{min-height:0}.map-location{height:100%}}
