/* Locally rendered city map, styled for the clinic. */
#contacts .branch-card>.local-clinic-map{position:relative;isolation:isolate;overflow:hidden;background:#efede9;min-height:390px}
#contacts .local-map-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:pan-y pinch-zoom}
#contacts .local-map-viewport.is-dragging{cursor:grabbing}
#contacts .local-map-base,#contacts .local-map-markers{position:absolute;inset:0;width:100%;height:100%}
#contacts .local-map-base{display:block;pointer-events:none}
#contacts .local-map-road-label{font-family:inherit;font-weight:500;fill:#68645e;stroke:#fffdfa;paint-order:stroke;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#contacts .local-map-park-label{font-weight:400;fill:#6a8060;stroke:#e0ead8}
#contacts .local-map-markers{pointer-events:none}
#contacts .local-map-marker{position:absolute;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;z-index:2}
#contacts .local-map-dot{display:grid;place-items:center;width:30px;height:30px;border:2px solid #fff;border-radius:50%;background:#fff;color:#b50000;box-shadow:0 2px 12px #0002;font-size:12px;font-weight:700;transition:background-color 160ms ease,color 160ms ease,transform 160ms ease}
#contacts .local-map-marker.is-selected{z-index:3}
#contacts .local-map-marker.is-selected .local-map-label{border-color:#efd9d4;color:#a80000;font-weight:600;padding:5px 9px;box-shadow:0 3px 10px #00000009}
#contacts .local-map-marker.is-selected .local-map-dot{width:38px;height:38px;background:#d90000;color:#fff;box-shadow:0 0 0 5px #d9000015,0 4px 14px #0002}
#contacts .local-map-label{position:absolute;left:50%;top:44px;transform:translateX(-50%);padding:3px 7px;border:1px solid #e8e8e8;border-radius:6px;background:#fffffff0;color:#333;font-size:10px;font-weight:500;line-height:1.3;white-space:nowrap}
#contacts .local-map-heading{position:absolute;top:14px;left:14px;z-index:4;display:grid;gap:2px;padding:8px 11px;border:1px solid #e8e8e8;border-radius:12px;background:#ffffffed;pointer-events:none;box-shadow:0 2px 8px #00000005}
#contacts .local-map-heading strong{font-size:14px;font-weight:600;line-height:1.3}
#contacts .local-map-heading span{font-size:10px;line-height:1.3;color:#666}
#contacts .local-map-zoom{position:absolute;top:12px;right:12px;z-index:5;display:grid;border:1px solid #e8e8e8;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 3px 12px #00000008}
#contacts .local-map-zoom button{display:grid;place-items:center;width:44px;height:44px;border:0;background:#fff;color:#000;padding:0;font-size:24px;line-height:1;cursor:pointer}
#contacts .local-map-zoom button+button{border-top:1px solid #eee}
#contacts .local-map-zoom button:disabled{color:#bbb;cursor:default}
#contacts .local-map-reset{position:absolute;bottom:14px;left:14px;z-index:5;min-height:44px;padding:8px 13px;border:1px solid #e8e8e8;border-radius:999px;background:#fff;color:#000;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 2px 8px #00000006}
#contacts .local-map-attribution{position:absolute;bottom:6px;right:6px;z-index:5;padding:2px 4px;border-radius:4px;background:#ffffffed;color:#666;font-size:8px;line-height:1.4}
#contacts .local-map-attribution a{color:inherit;text-decoration:none}
#contacts .local-map-attribution a:hover{text-decoration:underline}
#contacts .local-map-marker[hidden]{display:none}
#contacts .local-map-viewport:focus-visible,#contacts .local-clinic-map button:focus-visible{outline:2px solid #d90000;outline-offset:-3px}
#contacts .local-map-marker:focus-visible .local-map-dot{outline:2px solid #000;outline-offset:3px}
#contacts .local-map-marker:hover .local-map-dot{transform:scale(1.08)}
@media(max-width:767px){
 #contacts .branch-card>.local-clinic-map{height:188px;min-height:0;background-size:auto}
 #contacts .local-map-heading{top:10px;left:10px;padding:6px 9px;border-radius:10px}
 #contacts .local-map-heading strong{font-size:12px}
 #contacts .local-map-heading span{font-size:9px}
 #contacts .local-map-zoom{top:8px;right:8px}
 #contacts .local-map-reset{left:10px;bottom:10px;font-size:11px;padding-inline:11px}
 #contacts .local-map-label{font-size:9px;padding:2px 5px}
}
@media(prefers-reduced-motion:reduce){#contacts .local-map-dot{transition:none}}
