.areas {
  padding: 100px 7vw;
  text-align: left;
  background: var(--navy);
  color: #fff;
}
.area-heading { display: grid; grid-template-columns: .9fr 1.1fr; gap: 7vw; align-items: end; margin-bottom: 44px; }
.areas .area-heading h2 { max-width: 760px; margin: 0; }
.area-heading > p { margin: 0; color: var(--muted); line-height: 1.75; }
.coverage-layout { display: grid; grid-template-columns: 1.15fr .85fr; background: #fff; color: var(--navy); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.coverage-map { position: relative; min-height: 570px; overflow: hidden; background: #d9e3df; }
.coverage-map-canvas { display: block; width: 100%; height: 100%; min-height: 570px; border: 0; }
.coverage-map-canvas { position:relative;overflow:hidden;touch-action:none;cursor:grab;background:#dbe5e1; }
.coverage-map-canvas.is-dragging { cursor:grabbing; }
.owned-map-tiles,.owned-map-overlay { position:absolute;inset:0;width:100%;height:100%; }
.owned-map-tiles img { position:absolute;width:256px;height:256px;max-width:none;user-select:none; }
.owned-map-overlay { z-index:4;pointer-events:none;overflow:visible; }
.owned-service-circle { fill:rgba(158,234,67,.17);stroke:#3d9a39;stroke-width:5;stroke-dasharray:12 8;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 3px rgba(4,20,34,.35)); }
.owned-home-dot { fill:#9eea43;stroke:#06172b;stroke-width:5;vector-effect:non-scaling-stroke; }
.owned-city-dot { fill:#fff;stroke:#06172b;stroke-width:3;vector-effect:non-scaling-stroke; }
.owned-map-overlay text { fill:#06172b;stroke:#fff;stroke-width:4px;paint-order:stroke fill;font:900 12px Arial,sans-serif;letter-spacing:.4px; }
.owned-map-controls { position:absolute;z-index:8;top:16px;left:16px;display:grid;overflow:hidden;border-radius:4px;box-shadow:0 5px 16px rgba(4,20,34,.28); }
.owned-map-controls button { width:38px;height:38px;border:0;border-bottom:1px solid #d7dfdb;background:#fff;color:#06172b;font-size:24px;font-weight:900;cursor:pointer; }
.owned-map-controls button:last-child { border-bottom:0; }
.owned-map-caption { position:absolute;z-index:8;top:16px;right:16px;display:grid;max-width:235px;padding:12px 14px;border-left:4px solid #9eea43;background:rgba(5,16,29,.93);color:#fff;box-shadow:0 7px 22px rgba(4,20,34,.25); }
.owned-map-caption strong { font-size:12px;letter-spacing:.8px;text-transform:uppercase; }
.owned-map-caption span { margin-top:3px;color:#d5dfe5;font-size:10px;line-height:1.4; }
.map-key { position: absolute; right: 20px; bottom: 20px; left: 20px; display: flex; flex-wrap: wrap; gap: 18px; padding: 13px 16px; background: rgba(5,16,29,.92); color: #fff; font-size: 12px; font-weight: 800; }
.map-key span { display: flex; gap: 8px; align-items: center; }
.map-key i { display: inline-block; width: 11px; height: 11px; border-radius: 50%; }
.core-dot { background: var(--lime); box-shadow: 0 0 0 4px rgba(158,234,67,.25); }
.range-dot { border: 2px solid var(--lime); }
.extended-dot { border: 2px dashed #fff; }
.coverage-map-badge { display: grid; gap: 3px; max-width: 210px; padding: 11px 13px; border-left: 4px solid var(--lime); background: rgba(5,16,29,.92); color: #fff; box-shadow: 0 8px 26px rgba(0,0,0,.2); }
.coverage-map-badge strong { font-size: 13px; text-transform: uppercase; letter-spacing: .7px; }
.coverage-map-badge span { font-size: 11px; line-height: 1.35; }
.coverage-map .leaflet-control-zoom a { color: var(--navy); }
.coverage-map .leaflet-popup-content { color: var(--navy); line-height: 1.45; }
.coverage-copy { padding: 50px; }
.coverage-label { color: var(--green); font-size: 13px; font-weight: 900; letter-spacing: 2px; text-transform: uppercase; }
.coverage-copy h3 { margin: 10px 0 22px; font-family: Impact,"Arial Narrow",sans-serif; font-size: clamp(36px,4vw,56px); line-height: 1; text-transform: uppercase; }
.coverage-copy > p:not(.coverage-label) { color: #526273; line-height: 1.7; }
.location-panel { margin: 28px 0; border: 1px solid #dfe7e3; background: #f7faf8; }
.location-panel-title { margin: 0; padding: 13px 16px; border-bottom: 1px solid #dfe7e3; color: #65756d; font-size: 11px; font-weight: 900; letter-spacing: 1.35px; text-transform: uppercase; }
.area-pills { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }
.area-pills li { display: flex; gap: 10px; align-items: center; min-height: 48px; padding: 10px 14px; border-right: 1px solid #dfe7e3; border-bottom: 1px solid #dfe7e3; background: #fff; }
.area-pills li:nth-child(even) { border-right: 0; }
.area-pills li span { display: grid; width: 24px; height: 24px; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--navy); color: var(--lime); font-size: 10px; font-weight: 900; }
.area-pills li strong { color: var(--navy); font-size: 13px; letter-spacing: .15px; }
.area-pills .area-more { grid-column: 1 / -1; border-right: 0; border-bottom: 0; background: #edf5f0; }
.area-pills .area-more span { background: var(--green); color: #fff; font-size: 17px; }
.home-base { display: grid; grid-template-columns: auto 1fr; gap: 2px 13px; align-items: center; margin: 0 0 18px; padding: 16px 18px; border-left: 5px solid var(--lime); background: var(--navy); color: #fff; }
.home-base > span { grid-row: 1 / 3; color: var(--lime); font-size: 10px; font-weight: 900; letter-spacing: 1.2px; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.home-base strong { font-size: 16px; }
.home-base small { margin: 0; color: #bdc8d2; font-size: 11px; }
.coverage-intro { margin-bottom: 18px; }
.extended-coverage { margin: 18px 0; padding: 18px; border: 1px solid #d9e5df; background: #f4f8f6; }
.extended-coverage span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: 1.3px; text-transform: uppercase; }
.extended-coverage h4 { margin: 7px 0; color: var(--navy); font-size: 18px; }
.extended-coverage p { margin: 0; color: #607069; font-size: 13px; line-height: 1.55; }
.coverage-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.areas .coverage-actions .btn { margin: 0; }
.map-button { background: var(--navy); color: #fff; }
.coverage-copy small { display: block; margin-top: 18px; color: #687781; line-height: 1.5; }
@media (max-width: 900px) {
  .area-heading, .coverage-layout { grid-template-columns: 1fr; }
  .coverage-map, .coverage-map-canvas { min-height: 470px; }
}
@media (max-width: 560px) {
  .areas { padding-right: 5vw; padding-left: 5vw; }
  .coverage-copy { padding: 30px 22px; }
  .coverage-map, .coverage-map-canvas { min-height: 390px; }
  .map-key { right: 10px; bottom: 10px; left: 10px; }
  .coverage-actions .btn { width: 100%; justify-content: center; text-align: center; }
  .area-pills { grid-template-columns: 1fr; }
  .area-pills li, .area-pills li:nth-child(even) { border-right: 0; }
  .area-pills .area-more { grid-column: auto; }
}
.gallery-cta { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:28px;background:var(--navy);color:#fff; }
.gallery-cta b { display:block;font-size:22px; }
.gallery-cta p { margin:6px 0 0;color:#c4cfd7; }
@media(max-width:700px){.gallery-cta{align-items:flex-start;flex-direction:column}.gallery-cta .btn{width:100%;text-align:center}}
