/* Coverage explorer and guided service choices. */
.area-head h2 { font-size:clamp(44px,5.3vw,76px); }
.coverage-explorer { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr); border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 18px 50px -40px #0005; }
.coverage-canvas { position:relative; display:flex; flex-direction:column; min-width:0; background:#f0f0ee; isolation:isolate; }
.coverage-map-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:19px 22px; background:#fff; border-bottom:1px solid var(--line); z-index:2; }
.coverage-label { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:700; }
.coverage-label i { width:8px; height:8px; border-radius:50%; background:var(--red); }
#mapReset { display:flex; align-items:center; gap:6px; border:0; padding:6px 0; background:none; font-size:12px; font-weight:600; }
#mapReset svg { width:16px; height:16px; }
#mapReset:hover { color:var(--red); }
#coverageMap { width:100%; flex:1; min-height:540px; z-index:0; background:#e9e9e6; font-family:var(--body); }
.coverage-map-footer { padding:15px 22px; background:#fff; border-top:1px solid var(--line); font-size:11px; color:#666; display:flex; flex-wrap:wrap; gap:3px 16px; }
.coverage-map-footer span { display:flex; align-items:center; gap:7px; color:#444; font-weight:600; }
.coverage-map-footer i { display:inline-block; width:12px; height:12px; border:1px solid var(--red); border-radius:3px; background:#d6292922; }
.map-state { position:absolute; z-index:1; left:20px; right:20px; bottom:76px; background:#fff; border-radius:10px; padding:12px 16px; box-shadow:0 5px 20px #0001; font-size:13px; pointer-events:none; }
.map-state[hidden] { display:none; }
.coverage-controls { padding:28px; min-width:0; display:flex; flex-direction:column; border-left:1px solid var(--line); }
.coverage-search > label { display:block; margin-bottom:10px; font-size:18px; font-weight:700; letter-spacing:-.02em; }
.coverage-search-row { display:flex; gap:8px; }
.coverage-search input { flex:1; min-width:0; width:0; border:1px solid #cfcfcf; border-radius:10px; background:#fafafa; font:inherit; font-size:16px; padding:13px 14px; color:var(--ink); }
.coverage-search input:focus { outline:2px solid var(--red); outline-offset:2px; }
.coverage-search input[aria-invalid="true"] { border-color:var(--red); }
.coverage-search .btn { border-radius:10px; padding:0 18px; font-size:14px; }
.coverage-result { min-height:2.9em; margin-top:10px; font-size:13px; line-height:1.5; color:#666; }
.coverage-result[data-state="error"] { color:#a31a1a; }
.coverage-result[data-state="success"] { color:var(--ink); font-weight:600; }
.coverage-cities { margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }
.coverage-overline { font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#777; }
.city-picker { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.city-picker button { background:#fff; border:1px solid #dedede; border-radius:8px; padding:8px 12px; min-height:39px; font-size:13px; font-weight:600; transition:background .2s,color .2s,border-color .2s; }
.city-picker button:hover { border-color:var(--red); color:var(--red); }
.city-picker button[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:#fff; }
.coverage-selection { flex:1; margin:24px 0; padding-top:22px; border-top:1px solid var(--line); }
.coverage-selection .coverage-overline { color:var(--red); }
.coverage-selection h3 { font-size:clamp(32px,3vw,44px); line-height:1.04; margin-top:9px; }
#cityDetail { font-size:14px; color:#606060; line-height:1.6; margin-top:12px; }
.selected-zips { display:flex; gap:7px; flex-wrap:wrap; margin-top:12px; }
.selected-zips:empty { display:none; }
.selected-zips button { border:1px solid #ddd; background:#f8f8f8; border-radius:6px; font-size:13px; padding:6px 11px; min-height:34px; font-variant-numeric:tabular-nums; }
.selected-zips button:hover, .selected-zips button[aria-pressed="true"] { border-color:var(--red); color:var(--red); background:#fff3f3; }
.coverage-request { width:100%; border-radius:10px; font-size:15px; }
.coverage-call { text-align:center; margin-top:12px; font-size:12px; font-weight:600; text-decoration:none; }
.coverage-call:hover { text-decoration:underline; }
.coverage-note { color:#777; max-width:105ch; margin-top:15px; font-size:11px; line-height:1.6; }
.coverage-note a { text-underline-offset:3px; }
.leaflet-container a { color:#313131; }
.leaflet-container .leaflet-control-attribution { font-size:10px; padding:3px 5px; background:#fffc; }
.leaflet-control-attribution svg { display:none; }
.leaflet-tile-pane { filter:grayscale(1) contrast(.9) brightness(1.06); }
.leaflet-container .leaflet-control-zoom { border:1px solid #ddd; box-shadow:0 2px 8px #0001; border-radius:8px; overflow:hidden; }
.leaflet-container .leaflet-control-zoom a { width:36px; height:36px; line-height:36px; color:#222; }
.coverage-pin { background:none; border:none; }
.coverage-pin span { display:flex; position:absolute; align-items:center; gap:6px; top:5px; left:7px; padding:4px 8px 4px 4px; border-radius:30px; background:#fff; color:#202020; white-space:nowrap; font-size:11px; font-weight:700; box-shadow:0 2px 8px #0002; border:1px solid #ddd; }
.coverage-pin span::before { content:""; width:11px; height:11px; flex:none; border-radius:50%; background:#222; border:2px solid #fff; }
.coverage-pin.is-selected span { border-color:var(--red); background:var(--red); color:#fff; z-index:2; }
.coverage-pin.is-selected span::before { background:#fff; border-color:#ffffff55; }
.coverage-pin:focus-visible { outline:none; }
.coverage-pin:focus-visible span { outline:3px solid var(--red); outline-offset:3px; }













.card { transition:transform .3s var(--ease),box-shadow .3s var(--ease); }
@media (hover:hover) { .card:hover { transform:translateY(-4px); box-shadow:0 16px 32px -24px #0006; } }
.repair-actions { display:flex; gap:12px 22px; flex-wrap:wrap; }
@media(max-width:1000px) { .coverage-controls { padding:24px; } .coverage-explorer { grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr); }  }
@media(max-width:760px) {
  .coverage-explorer { grid-template-columns:minmax(0,1fr); border-radius:20px; }
  .coverage-controls { display:contents; }
  .coverage-search { grid-row:1; padding:22px 22px 20px; }
  .coverage-canvas { grid-row:2; border-top:1px solid var(--line); }
  #coverageMap { flex:none; min-height:0; height:380px; }
  .coverage-map-heading { padding:13px 16px; }
  .coverage-map-footer { padding:12px 16px; }
  .coverage-selection { min-height:0; margin:20px 22px; }
  .coverage-selection h3 br { display:none; }
  .coverage-selection h3 br::after { content:" "; }
  .coverage-cities { margin:0 22px; padding-top:22px; border-top:0; }
  .coverage-result { min-height:1.5em; }
  .coverage-request { width:auto; margin:0 22px; }
  .coverage-call { margin:12px 22px 24px; }
  
  
  
}
@media(max-width:400px) { .coverage-controls { padding:22px 18px; } #coverageMap { height:340px; } .coverage-label { font-size:12px; } #mapReset { font-size:11px; }   }
@media(prefers-reduced-motion:reduce) { .card { transition:none; } .card:hover { transform:none; } }
