.map-heading{max-width:760px;margin-bottom:25px}.map-heading h1{font:700 clamp(var(--text-h1),5vw,62px)/1.06 var(--heading);margin:8px 0 15px}.map-heading>p:last-child{font:var(--text-body)/1.6 var(--serif);color:var(--muted)}
.map-filters{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(130px,1fr)) auto;gap:12px;align-items:end;padding:20px;background:var(--color-bg);border-top:3px solid var(--purple)}.map-filters>div{min-width:0}.map-filters label{display:block;font:600 var(--text-small)/1.4 var(--sans);margin-bottom:6px}.map-filters input,.map-filters select{width:100%;min-width:0;min-height:44px;background:var(--color-surface);color:var(--ink);border:1px solid var(--color-soft);border-radius:2px;padding:10px;font:var(--text-body)/1.3 var(--sans)}.map-filters .button{min-height:44px;padding:12px 17px}
.map-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:17px 0}.map-toolbar[hidden],.map-explorer[hidden],.map-fallback[hidden],.map-more[hidden]{display:none}.map-toolbar>p{margin:0 0 0 auto;font:600 var(--text-small)/1.4 var(--sans)}.map-view-switch{display:none}.map-action,.map-view-switch button{border:1px solid var(--color-soft);background:var(--color-surface);color:var(--purple);padding:11px 15px;min-height:44px;font:600 var(--text-small)/1.4 var(--sans);border-radius:3px;cursor:pointer}.map-action:hover,.map-view-switch button:hover{background:var(--color-bg)}.map-action:disabled{opacity:.65;cursor:wait}.map-view-switch button[aria-pressed=true]{background:var(--purple);color:var(--color-surface);border-color:var(--purple)}.map-status{font-size:var(--text-small);color:var(--purple);margin:0 0 12px}.map-status:empty{display:none}
.map-explorer{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start}.map-visual{min-width:0}.map-canvas{height:clamp(360px,65svh,700px);min-width:0;z-index:0;background:var(--color-border);border:1px solid var(--color-border);border-radius:3px}.map-area-tools{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:10px}.map-area-tools>a{font:var(--text-small)/1.4 var(--sans);color:var(--muted);max-width:170px}.map-results{max-height:calc(65svh + 54px);overflow:auto;overscroll-behavior:contain;min-width:0;padding:0 8px 0 0}.map-result{padding:18px 0 20px;border-bottom:1px solid var(--line);min-width:0}.map-result:first-child{padding-top:0}.map-result .eyebrow{color:var(--purple);font-size:var(--text-small);line-height:1.45;margin:0 0 8px;overflow-wrap:anywhere}.map-result h2{font:600 var(--text-h3)/1.15 var(--heading);margin:0 0 10px;overflow-wrap:anywhere}.map-result h2 a{text-decoration:none}.map-result>p:not(.eyebrow){font:var(--text-small)/1.55 var(--sans);color:var(--muted);margin:9px 0}.map-point-link{border:0;border-bottom:1px solid currentColor;background:none;color:var(--purple);font:600 var(--text-small)/1.4 var(--sans);min-height:44px;padding:8px 0;cursor:pointer}.map-more{width:100%;margin-top:18px}.map-empty{font:var(--text-body)/1.6 var(--sans);padding:20px 0}.map-footnote{font:var(--text-small)/1.6 var(--sans);color:var(--muted);max-width:860px;margin:25px 0 0}.map-fallback{margin-top:25px}
.map-pin{background:none;border:0}.map-pin>span{display:block;width:25px;height:25px;border:3px solid var(--color-surface);background:var(--color-primary);border-radius:50% 50% 50% 0;transform:translate(6px,5px) rotate(-45deg);box-shadow:0 2px 6px rgb(from var(--color-primary-dark) r g b / 0.314)}.map-cluster{border-radius:50%;display:grid;place-items:center;background:var(--color-primary);color:var(--color-surface);border:4px solid var(--color-soft);box-shadow:0 2px 6px rgb(from var(--color-primary-dark) r g b / 0.22);font:700 var(--text-secondary)/1 var(--font-body)}.map-popup .eyebrow{font:600 var(--text-small)/1.5 var(--sans);color:var(--purple);margin:0 0 7px}.map-popup h2{font:600 var(--text-h3)/1.15 var(--heading);margin:0 0 10px}.map-popup h2 a{color:var(--ink);text-decoration:none}.map-popup p{margin:10px 0;font:var(--text-small)/1.5 var(--sans)}.map-popup .map-precision{font-size:var(--text-small);color:var(--muted)}.map-popup-actions{display:flex;flex-direction:column;gap:8px;margin-top:13px}.map-popup-actions>a{min-height:44px;display:flex;align-items:center;justify-content:center;font:600 var(--text-small)/1.4 var(--sans)}.map-popup-actions .button{color:var(--color-surface);background:var(--purple)}.map-canvas .leaflet-popup-content{max-width:calc(100vw - 110px);margin:20px}.map-canvas .leaflet-popup-close-button{width:44px;height:44px;font-size:var(--text-h3)}.map-canvas .leaflet-control-zoom a{width:42px;height:42px;line-height:42px}.map-canvas .leaflet-control-attribution{font-size:var(--text-small);max-width:calc(100% - 12px);white-space:normal}.map-canvas a:focus-visible,.map-canvas button:focus-visible,.map-action:focus-visible,.map-view-switch button:focus-visible{outline:3px solid var(--color-soft);outline-offset:3px}
@media(max-width:1100px){.map-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.map-query{grid-column:span 2}.map-filters .button{width:100%}.map-explorer{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:760px){.map-heading h1{font-size:var(--text-h1)}.map-heading>p:last-child{font-size:var(--text-body)}.map-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:12px}.map-query{grid-column:1/-1}.map-filters .button{align-self:end}.map-explorer{display:block}.map-view-switch{display:flex;gap:4px}.map-toolbar{gap:7px}.map-toolbar>p{flex:1 0 100%;margin:5px 0 0}.map-toolbar .map-action{padding:11px 10px}.map-canvas{height:clamp(350px,60svh,560px)}.map-results{max-height:none;overflow:visible;padding:0}.map-explorer[data-view=map]>.map-results{display:none}.map-explorer[data-view=list]>.map-visual{display:none}.map-area-tools>a{max-width:135px}.map-result h2{font-size:var(--text-h3)}.map-heading{margin-bottom:20px}.map-page{padding-top:28px}}
@media(prefers-reduced-motion:reduce){.map-canvas *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.map-action,.map-view-switch button[aria-pressed=true],.map-popup-actions .button{background:var(--color-soft);color:var(--color-primary-dark);border-color:var(--color-primary)}.map-action:hover{background:var(--color-soft);box-shadow:inset 0 0 0 1px var(--color-primary)}
