#service-map{position:relative;isolation:isolate;width:100%;height:clamp(300px,32vw,400px);max-height:400px;background:#050505;overflow:hidden;border:1px solid #242424;border-radius:12px;color:#f5f5f3}
#service-map[data-map-state=loading]::before,#service-map[data-map-state=failed]::before{position:absolute;inset:0;display:grid;place-items:center;padding:28px;color:#bdbdb9;text-align:center;font:14px/1.7 Manrope,Arial,sans-serif;pointer-events:none}
#service-map[data-map-state=loading]::before{content:'Loading the map…'}
#service-map[data-map-state=failed]::before{content:'The map is unavailable. Explore the cities listed below.'}
#service-map .maplibregl-canvas:focus-visible{outline:2px solid #f0f0ed;outline-offset:-3px}
#service-map .maplibregl-ctrl-group{background:#202020;box-shadow:0 2px 8px #0003;border-radius:8px;overflow:hidden}
#service-map .maplibregl-ctrl-group button{width:44px;height:44px;min-height:44px;border-color:#414141}
#service-map .maplibregl-ctrl-group button:hover{background:#303030}
#service-map .maplibregl-ctrl-icon{filter:invert(1);opacity:.9}
#service-map .maplibregl-ctrl button:focus-visible{outline:2px solid #e9e9e2;outline-offset:-4px;box-shadow:none}
#service-map .maplibregl-ctrl-attrib{background:#050505ed;color:#d8d8d4;font:11px/1.5 Manrope,Arial,sans-serif}
#service-map .maplibregl-ctrl-attrib a{color:#f5f5f3;text-decoration:underline;text-underline-offset:2px}
#service-map .area-map-base{width:44px;min-width:44px;height:44px;display:block;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer;z-index:1}
#service-map .area-map-pin{position:absolute;bottom:0;left:10px;display:block;width:24px;height:30px;overflow:visible;fill:#f4f1e9;stroke:#161616;stroke-width:1.4;stroke-linejoin:round;filter:drop-shadow(0 2px 3px #0008)}
#service-map .area-map-building{fill:none;stroke:#161616;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#service-map .area-map-label{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);padding:4px 7px;border:1px solid #77766e;border-radius:4px;background:#111;color:#f4f1e9;font:650 11px/1.4 Manrope,Arial,sans-serif;white-space:nowrap}
#service-map .area-map-base:hover .area-map-label{background:#272722;border-color:#c2c0b7}
#service-map .area-map-base:focus-visible{outline:2px solid #f0f0ed;outline-offset:1px;background:#151515}
#service-map .area-map-base-card{position:absolute;z-index:3;top:10px;left:10px;width:min(270px,calc(100% - 76px));max-height:calc(100% - 44px);overflow:auto;padding:12px 12px 6px;border:1px solid #66685e;border-radius:8px;background:#171815;color:#f4f1e9;font:11px/1.45 Manrope,Arial,sans-serif;scrollbar-color:#77796e #171815}
#service-map .area-map-base-card[hidden]{display:none}
#service-map .area-map-card-close{position:absolute;top:0;right:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:#f4f1e9;cursor:pointer}
#service-map .area-map-card-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
#service-map .area-map-card-close:hover{background:#30322b}
#service-map .area-map-base-card strong{display:flex;align-items:center;min-height:32px;padding-right:30px;color:#f4f1e9;font-size:12px;font-weight:750;line-height:1.45}
#service-map .area-map-base-card address{margin-top:3px;color:#f4f1e9;font-style:normal}
#service-map .area-map-base-card p{margin:5px 0 0;color:#c1c3b8;font-size:10px;line-height:1.45}
#service-map .area-map-base-card a{display:flex;align-items:center;width:max-content;min-height:44px;color:#f4f1e9;font-size:12px;font-weight:750;text-decoration:underline;text-underline-offset:3px}
#service-map .area-map-base-card a:hover{color:#d3d6c7}
#service-map .area-map-base-card :is(a,button):focus-visible{outline:2px solid #f4f1e9;outline-offset:-3px}
.area-map-controls{display:flex;align-items:flex-end;gap:12px;margin:0 0 16px;flex-wrap:wrap}
.area-map-controls label{display:grid;gap:6px;flex:1;min-width:170px;font-size:12px;line-height:1.5;font-weight:600}
#map-city{width:100%;min-height:44px;padding:10px 36px 10px 12px;border:1px solid #424242;border-radius:8px;background:#161616;color:#e8e8e3;font:14px/1.5 Manrope,Arial,sans-serif}
#map-city:focus-visible,#map-reset:focus-visible,#map-retry:focus-visible{outline:2px solid #deded8;outline-offset:3px}
#map-reset,#map-retry{min-height:44px;padding:10px 15px;border:1px solid #424242;border-radius:8px;background:transparent;color:inherit;font:600 13px/1.5 Manrope,Arial,sans-serif;cursor:pointer}
#map-reset:hover,#map-retry:hover{background:#272727;color:#f0f0ed;border-color:#767676}
#map-retry:disabled{opacity:.6;cursor:wait}
#map-retry[hidden]{display:none}
#map-status{min-height:2.8em;margin:12px 0 0;font-size:12px;line-height:1.6;color:inherit;opacity:.85}
.area-map-caption{margin-top:12px;font-size:11px;line-height:1.8;color:inherit;opacity:.85}
.area-map-caption a{text-decoration:underline;text-underline-offset:3px}
.area-map-city-list{margin-top:20px;font-size:13px;line-height:1.9}
@media(max-width:760px){#service-map{height:300px}.area-map-controls{gap:10px}.area-map-city-list{font-size:12px}}
@media(prefers-reduced-motion:reduce){#service-map .maplibregl-cooperative-gesture-screen{transition:none}}
