.service-area-section{background:var(--pale)}
.service-map-layout{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.6fr);background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 14px 44px #122e4309}
.service-map-details{padding:36px;display:flex;flex-direction:column;align-items:start}
.map-region-label{font-size:.75rem;letter-spacing:.14em;font-weight:800;color:var(--blue);margin-bottom:18px}
.service-map-details h3{font-size:1.85rem;margin-bottom:18px}
.service-map-details>p{color:var(--muted)}
.map-view-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}
.map-view-controls button{min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:6px;font-weight:700;font-size:.9rem;background:#fff;color:var(--ink);cursor:pointer}
.map-view-controls button:hover{border-color:var(--blue);background:var(--pale)}
.map-view-controls button:disabled{opacity:.55;cursor:wait}
.map-area-toggle{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:.93rem;cursor:pointer;min-height:44px}
.map-area-toggle input{width:20px;height:20px;accent-color:var(--blue);flex-shrink:0;margin:0}
.map-area-toggle input:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.service-map-details .map-area-note{font-size:.875rem;line-height:1.65;margin-top:4px}
.map-legend-swatch{display:inline-block;width:18px;height:12px;background:#007dac14;border:2px dashed var(--blue);margin-right:6px;vertical-align:middle}
.map-booking{display:grid;gap:15px;margin-top:auto;padding-top:26px}
.map-booking .text-link{font-size:.93rem;gap:8px}
.service-map-panel{min-width:0;background:#fff;display:flex;flex-direction:column;border-left:1px solid var(--line)}
.service-map{height:540px;min-height:420px;flex:1;z-index:0;background:#e2edf0;font-family:'DM Sans',sans-serif;isolation:isolate}
.service-map:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.map-placeholder{padding:40px;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink)}
.map-placeholder p{margin-top:10px;margin-bottom:15px}
.map-placeholder a{font-weight:700;color:var(--blue)}
.map-caption{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:17px 20px;font-size:.875rem;line-height:1.6;color:var(--muted);border-top:1px solid var(--line)}
.map-caption a{flex-shrink:0;color:var(--blue);font-weight:700}
.map-status:empty{display:none}
.map-status,.map-noscript{padding:0 20px 18px;font-size:.875rem;color:var(--muted)}
.ogden-map-marker{display:flex;align-items:center;filter:drop-shadow(0 3px 5px #122e4333)}
.ogden-marker-dot{width:38px;height:38px;flex-shrink:0;border:7px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px var(--blue)}
.ogden-marker-label{padding:5px 12px 5px 14px;margin-left:-6px;color:var(--ink);background:#fff;border-radius:0 6px 6px 0;font-weight:800;font-size:14px;line-height:24px}
.service-map .leaflet-popup-content-wrapper{border-radius:10px;color:var(--ink);font-size:15px;line-height:1.6}
.service-map .leaflet-popup-content p{margin:12px 0}
.service-map .leaflet-popup-content a{font-weight:700;color:var(--blue)}
.service-map .leaflet-control-attribution{font-size:12px;background:#fffffff2;line-height:1.5;padding:3px 6px}
.service-map .leaflet-control-attribution a{color:#005e84}
.service-map .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;color:var(--ink)}
.service-map .leaflet-control-scale{font-family:inherit}
@media(max-width:1000px){.service-map-details{padding:28px}.service-map-layout{grid-template-columns:minmax(250px,1fr) minmax(0,1.4fr)}.map-caption{flex-direction:column;gap:8px}}
@media(max-width:760px){.service-map-layout{grid-template-columns:1fr}.service-map-details{padding:28px 24px}.service-map-panel{border-left:0;border-top:1px solid var(--line)}.service-map{height:400px;min-height:400px;flex:none}.map-placeholder{min-height:400px;padding:28px}.map-booking{width:100%;padding-top:22px}.map-caption{padding:16px 18px}.map-view-controls{margin-top:20px}}
