/* Public service-area map. Its stacking context keeps Leaflet below the header
   and quote dialog. Tiles are muted; brand pins and geography remain full color. */
.cs-inner-hero.cs-areas-hero { background:#fff; padding-bottom:42px; }
.cs-inner-hero.cs-areas-hero::after { display:none; }
.cs-map-page-intro { display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:65px; }
.cs-map-page-intro .cs-title { font-size:clamp(39px,4.1vw,55px); }
.cs-map-page-intro .cs-kicker { margin-bottom:14px; }
.cs-map-page-intro .cs-lead { margin-top:0; font-size:16px; line-height:1.8; }
.cs-map-page-intro .cs-actions { margin-top:22px; }
.cs-map-section { margin-top:43px; }
.cs-map-section-head { display:flex; justify-content:space-between; align-items:end; gap:35px; margin-bottom:24px; }
.cs-map-section-head .cs-kicker { margin-bottom:7px; }
.cs-map-section-head h2 { font-size:26px; font-weight:600; color:#193e58; letter-spacing:-.03em; line-height:1.4; }
.cs-map-section-head>p { max-width:42ch; color:#5a7284; font-size:13px; line-height:1.75; }
.cs-service-map { display:grid; grid-template-columns:minmax(0,1fr) 265px; gap:38px; align-items:start; }
.cs-map-canvas { position:relative; min-width:0; isolation:isolate; z-index:0; }
.cs-map-viewport { width:100%; height:550px; background:#f0f3f2; border:1px solid #d9e1e5; border-radius:13px; font-family:Inter,Arial,sans-serif; overflow:hidden; }
.cs-map-viewport .leaflet-tile-pane { filter:saturate(.28) contrast(.94) brightness(1.04); }
.cs-map-viewport .leaflet-control-attribution { font-size:10px; color:#425767; background:rgba(255,255,255,.94); padding:3px 7px; }
.cs-map-viewport .leaflet-control-attribution a { color:#27546c; text-decoration:underline; }
.cs-map-viewport .leaflet-control-zoom { border:1px solid #d1dce2; box-shadow:0 2px 8px #183d5514; border-radius:7px; overflow:hidden; margin:15px; }
.cs-map-viewport .leaflet-control-zoom a { width:36px; height:36px; line-height:34px; background:#fff; color:#254d63; }
.cs-map-viewport .leaflet-control-zoom a:hover { background:#f1f6f9; }
.cs-map-viewport .leaflet-control-zoom a:focus-visible { outline:3px solid #086bc0; outline-offset:-3px; }
.cs-map-viewport .leaflet-pane>svg { max-width:none; }
.cs-map-viewport .leaflet-marker-icon { max-width:none; }
.cs-map-viewport .cs-map-pin { background:none; border:0; cursor:pointer; }
.cs-map-pin-symbol { display:block; width:24px; height:34px; filter:drop-shadow(0 2px 2px #59213b35); }
.cs-map-pin-symbol svg { display:block; width:24px; height:34px; overflow:visible; }
.cs-map-pin-symbol path { fill:#ed3786; stroke:#fff; stroke-width:1.6; stroke-linejoin:round; transition:fill .15s; }
.cs-map-pin-symbol circle { fill:#fff; }
.cs-map-pin:hover .cs-map-pin-symbol path,.cs-map-pin.is-selected .cs-map-pin-symbol path { fill:#bd1f63; }
.cs-map-pin.is-selected .cs-map-pin-symbol { filter:drop-shadow(0 0 3px #ed378680); }
.cs-map-pin:focus-visible { outline:2px solid #075ba3; outline-offset:6px; border-radius:5px; }
.cs-map-viewport .cs-map-city-label { background:rgba(255,255,255,.93); color:#3f3b42; border:0; border-radius:4px; padding:3px 6px; box-shadow:0 1px 4px #25333d13; font-size:11px; font-weight:600; line-height:1.25; white-space:nowrap; }
.cs-map-viewport .cs-map-city-label::before { display:none; }
.cs-map-caption { display:flex; align-items:start; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; margin-top:12px; }
.cs-map-caption>p:first-child { max-width:40ch; color:#5a7080; font-size:11px; line-height:1.7; }
.cs-map-source { margin:0; color:#6b7d88; font-size:10px; line-height:1.7; }
.cs-map-source a { text-decoration:underline; text-underline-offset:3px; }
.cs-map-status { position:absolute; top:200px; left:30px; right:30px; z-index:800; margin:0 auto; max-width:38ch; background:#fff; border:1px solid #dce5eb; border-radius:9px; padding:17px 20px; color:#486477; font-size:13px; line-height:1.8; text-align:center; pointer-events:none; }
.cs-map-status[hidden],.cs-map-tile-note[hidden] { display:none; }
.cs-map-tile-note { position:absolute; top:14px; left:65px; right:14px; z-index:800; margin:0; padding:9px 12px; background:#fff; border:1px solid #e0e6e9; border-radius:6px; color:#536977; font-size:11px; line-height:1.6; pointer-events:none; }
.cs-map-noscript { padding:14px; color:#536977; font-size:13px; line-height:1.7; }
.cs-service-map[data-map-status="unavailable"] .cs-map-viewport { height:260px; }
.cs-service-map[data-map-status="unavailable"] .cs-map-status { top:65px; }
.cs-map-controls { min-width:0; padding:12px 0 0; }
.cs-map-controls>.cs-map-detail-label { color:#aa3f6c; font-size:10px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; margin-bottom:10px; }
.cs-map-controls>h3 { color:#183d55; font-size:28px; font-weight:600; line-height:1.2; letter-spacing:-.04em; }
.cs-map-instruction { color:#6b7a85; font-size:12px; line-height:1.7; margin:12px 0 17px; }
.cs-map-choices { display:grid; grid-template-columns:1fr 1fr; gap:0 17px; margin-bottom:22px; }
.cs-map-choice { appearance:none; display:flex; align-items:center; justify-content:space-between; background:none; color:#3b5c71; border:0; border-bottom:1px solid #e0e7eb; border-radius:0; text-align:left; min-height:45px; font-size:13px; line-height:1.45; padding:11px 1px; cursor:pointer; }
.cs-map-choice::after { content:'↗'; font-size:15px; color:#bc7594; padding-left:8px; }
.cs-map-choice:hover { color:#b62868; border-color:#d89ab5; }
.cs-map-choice.is-selected { color:#b01f60; border-color:#cf5d8d; font-weight:700; }
.cs-map-choice.is-selected::after { color:#b01f60; transform:rotate(45deg); }
.cs-map-choice:focus-visible,.cs-map-reset:focus-visible { outline:2px solid #086bc0; outline-offset:3px; }
.cs-map-choice-wide { grid-column:1/-1; font-size:12px; }
.cs-map-details { position:relative; min-height:145px; padding-top:19px; }
.cs-map-details::before { content:''; position:absolute; left:0; top:0; width:34px; height:2px; background:#ed3786; }
.cs-map-details [hidden] { display:none; }
.cs-map-details .cs-map-detail-label { color:#667f8e; font-size:9px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; margin:0 0 8px; }
.cs-map-details h4 { color:#23475e; font-size:20px; font-weight:500; line-height:1.4; letter-spacing:-.025em; margin-bottom:8px; }
.cs-map-details p { color:#5d7381; font-size:12px; line-height:1.8; margin-top:7px; }
.cs-map-reset { appearance:none; display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:10px 0; color:#075fa9; background:none; border:0; font-size:12px; font-weight:600; cursor:pointer; }
.cs-map-reset:hover { text-decoration:underline; text-underline-offset:4px; }
.cs-map-nearby { display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:27px; padding-top:24px; border-top:1px solid #e4ebef; }
.cs-map-nearby h3 { color:#314d60; font-size:16px; font-weight:600; margin-bottom:8px; }
.cs-map-nearby p { color:#5f7687; font-size:13px; line-height:1.8; max-width:48ch; }
.cs-map-tagline { color:#5a7487; font-size:12px; margin-top:25px; }
@media (max-width:1050px) {
  .cs-service-map { grid-template-columns:minmax(0,1fr) 230px; gap:25px; }
  .cs-map-viewport { height:520px; }
}
@media (max-width:760px) {
  .cs-map-page-intro { grid-template-columns:1fr; gap:20px; }
  .cs-map-section { margin-top:32px; }
  .cs-map-section-head { display:block; }
  .cs-map-section-head>p { margin-top:12px; max-width:45ch; }
  .cs-service-map { grid-template-columns:minmax(0,1fr); gap:24px; }
  .cs-map-viewport { height:440px; }
  .cs-map-controls { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; padding-top:0; }
  .cs-map-controls>.cs-map-detail-label,.cs-map-controls>h3,.cs-map-controls>.cs-map-instruction { grid-column:1/-1; }
  .cs-map-choices { grid-row:4/6; margin:0; }
  .cs-map-details { min-height:0; }
  .cs-map-reset { grid-column:2; align-self:start; }
  .cs-map-nearby { gap:25px; }
}
@media (max-width:480px) {
  .cs-map-section-head h2 { font-size:23px; }
  .cs-map-viewport { height:420px; border-radius:10px; }
  .cs-map-viewport .cs-map-city-label { font-size:10px; padding:3px 4px; }
  .cs-map-caption { gap:4px; }
  .cs-map-controls { display:block; }
  .cs-map-controls>h3 { font-size:27px; }
  .cs-map-choices { margin-bottom:23px; }
  .cs-map-details { min-height:120px; }
  .cs-map-nearby { grid-template-columns:1fr; gap:23px; }
  .cs-map-status { left:18px; right:18px; top:155px; }
}
@media (prefers-reduced-motion:reduce) {
  .cs-service-map * { transition:none !important; }
}
