.map-intro{padding:48px 0 30px}.map-intro h1{font-size:58px}.map-intro .lede{max-width:650px;margin-bottom:0}.explorer{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.search-bar{padding:24px 28px 12px}.search-bar label{display:block;font-size:14px;font-weight:bold;margin-bottom:8px}.search-row{display:flex;gap:10px;align-items:start}.search-input{position:relative;flex:1;min-width:0}#city-search{width:100%;height:46px;padding:10px 14px;border:1px solid #98afc0;border-radius:5px;font:inherit;color:var(--navy)}button{font:inherit;cursor:pointer}.explorer button{min-height:44px;border:1px solid var(--navy);border-radius:5px;padding:9px 16px;background:var(--navy);color:white;font-size:13px;font-weight:700}.explorer button.secondary{background:white;color:var(--navy);border-color:#bccbd6}button:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}#search-status{font-size:13px;color:var(--muted);min-height:21px;margin:10px 0 0}#search-results{position:absolute;z-index:3;left:0;right:0;top:48px;max-height:270px;overflow:auto;margin:0;padding:5px;list-style:none;background:white;border:1px solid var(--line);box-shadow:0 8px 22px #10194b22;border-radius:5px}#search-results li{padding:10px 12px;cursor:pointer}#search-results li:hover,#search-results li[aria-selected=true]{background:var(--pale);outline:1px solid var(--blue)}.zoom-bar{display:flex;align-items:center;gap:16px;padding:14px 28px;border-top:1px solid var(--line);background:#fff}.zoom-bar label{font-size:13px;font-weight:700}.zoom-bar input{flex:1;max-width:350px;min-width:70px;accent-color:var(--blue);height:32px}.zoom-bar output{font-size:13px;min-width:38px}.pan-controls{display:flex;gap:5px;margin-left:auto}.explorer .pan-controls button{padding:5px;min-width:44px;background:white;color:var(--navy);border-color:var(--line);font-size:20px}.map-frame{position:relative;background:#f2f8fb;border-top:1px solid var(--line);overflow:hidden}#city-map{display:block;width:100%;height:auto;aspect-ratio:900/620;touch-action:none;cursor:grab}#city-map:active{cursor:grabbing}.north{position:absolute;right:20px;top:16px;font-size:12px;font-weight:bold;pointer-events:none}.gridline{stroke:#dce9ef;stroke-width:1}.inset{fill:#e9f3f8;stroke:#bacfdc;stroke-width:1.5}.region-text{font-size:11px;fill:#647f91;letter-spacing:2px;font-weight:700}.city-marker{cursor:pointer}.marker-hit{fill:transparent}.marker-dot{fill:var(--blue);stroke:white;stroke-width:2}.selection-ring{fill:none;stroke:var(--navy);stroke-width:2;stroke-dasharray:4 3;display:none}.city-marker.selected .selection-ring{display:block}.city-marker.selected .marker-dot{fill:var(--navy)}.city-marker:hover .marker-dot,.city-marker:focus .marker-dot{fill:var(--navy);stroke:var(--sky);stroke-width:3}.city-marker:focus{outline:none}.city-marker:focus .selection-ring{display:block}.place-label{font-size:13px;fill:var(--navy);font-weight:700;paint-order:stroke;stroke:#f2f8fb;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.map-note{padding:15px 28px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}.map-note p{margin:0}.city-links{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;margin:0;padding:0}.city-links a{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);min-height:52px;gap:8px;font-size:15px}.city-links a span{color:var(--blue)}.city-links a:hover{color:var(--blue)}
@media(max-width:700px){.map-intro{padding:32px 0 24px}.map-intro h1{font-size:43px;letter-spacing:-2px}.map-intro .lede{font-size:16px}.search-bar{padding:18px 16px 12px}.search-row{flex-wrap:wrap}.search-input{flex-basis:100%}.search-row>button{flex:1}.zoom-bar{gap:10px;padding:12px 16px;flex-wrap:wrap}.zoom-bar input{max-width:none}.pan-controls{width:100%;justify-content:flex-end}#city-map{height:400px;aspect-ratio:auto}.map-note{padding:12px 16px;display:block}.map-note span{display:block;margin-top:5px}.city-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.city-links a{font-size:13px}.section-head{gap:15px}.section-head h2{font-size:30px}.section-head>p{display:none}}

/* Bundled OSM geography remains available without a tile network. */
.geographic-background{pointer-events:none}.map-attribution{position:absolute;right:0;bottom:0;padding:3px 8px;background:#ffffffed;font-size:10px;color:#425d72;max-width:100%;z-index:1}.map-attribution a{text-decoration:underline}.map-frame,#city-map{background:#f5f8f9}.map-attribution a:focus-visible{outline-offset:0}#geography-status{padding:12px 20px;color:#8a2d1d}.place-label{stroke:#f5f8f9}.map-note{padding-top:18px}
.city-marker .place-label{pointer-events:auto}

/* Compact map page, with full-size accessible controls. */
.map-intro{padding:24px 0 20px}.map-intro .eyebrow{margin-bottom:8px}.map-intro h1{margin-bottom:12px}.map-intro .lede{max-width:none}
.search-bar{padding:16px 24px 10px}.search-bar label{margin-bottom:6px}#search-status{margin-top:6px}.zoom-bar{padding:8px 24px}.map-note{padding:10px 24px}
#city-list{padding-top:28px;padding-bottom:32px}#city-list .section-head{margin-bottom:16px}#city-list .eyebrow{margin-bottom:6px}.city-links a{min-height:44px}
@media(max-width:700px){.map-intro{padding:20px 0 16px}.search-bar{padding:12px 16px 8px}.zoom-bar{padding:8px 16px;gap:6px 10px}.map-note{padding:8px 16px}#city-list{padding-top:24px;padding-bottom:28px}}
