.area-hero,.area-block{padding-block:var(--sp-6)}.area-hero h1{font-size:var(--fs-display);max-width:24ch}.area-copy h2{font-size:var(--fs-title)}.area-copy p{max-width:68ch;margin-block:var(--sp-4)}.area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6);list-style:none;padding:0;margin:0}.area-grid li{border-top:1px solid var(--line);padding-block:var(--sp-4)}.area-grid h2{font-size:var(--fs-title)}.area-grid p{max-width:68ch}.area-grid a,.area-services a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:.2em}.area-services{padding-inline-start:var(--sp-5)}@media(max-width:767px){.area-grid{grid-template-columns:1fr}}

/* ---- Coverage map -------------------------------------------------------- */
.area-map{margin:0 0 var(--sp-5)}
.area-map-frame{border:1px solid var(--line);border-radius:var(--sp-3);background:var(--panel-2);overflow:auto;direction:ltr}
.area-map-svg{display:block;width:100%;height:auto;min-width:620px}
@media(min-width:820px){.area-map-svg{min-width:0}}
.area-map-svg image{opacity:.85}
:root[data-theme="dark"] .area-map-svg image{filter:brightness(.5) saturate(.55) contrast(1.1)}
.area-map figcaption{font-size:var(--fs-sm);color:var(--muted);margin-block:var(--sp-3);max-width:68ch}

.area-map .map-leader{fill:none;stroke:var(--line-2);stroke-width:1.4}
.area-map .map-pin{fill:var(--accent);stroke:var(--panel);stroke-width:1.6}
.area-map .map-pin-dot{fill:var(--panel);pointer-events:none}
.area-map .map-base{fill:var(--ink)}
.area-map .map-number{fill:var(--ink);stroke:var(--panel);stroke-width:1.5}
.area-map text{font-size:var(--fs-sm);font-weight:700;fill:var(--panel);direction:ltr;pointer-events:none;user-select:none}
.area-map .map-halo{fill:var(--accent);opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.5)}

/* Interactive location groups */
.map-loc{cursor:pointer;outline:none}
.map-loc .map-halo,.map-loc .map-pin,.map-loc .map-number,.map-loc .map-leader{transition:opacity .18s ease,transform .18s ease,stroke .18s ease,fill .18s ease}
.map-loc:hover .map-halo,.map-loc:focus-visible .map-halo,.map-loc.is-active .map-halo{opacity:.22;transform:scale(1)}
.map-loc:hover .map-leader,.map-loc:focus-visible .map-leader,.map-loc.is-active .map-leader{stroke:var(--accent);stroke-width:2}
.map-loc:hover .map-number,.map-loc:focus-visible .map-number,.map-loc.is-active .map-number{fill:var(--accent)}
.map-loc:focus-visible .map-halo{opacity:.3;stroke:var(--accent);stroke-width:2}
.area-coverage[data-has-active="true"] .map-loc:not(.is-active){opacity:.45}

/* ---- Location directory -------------------------------------------------- */
.area-locations{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-2);list-style:none;margin:0;padding:0}
.area-loc{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--sp-2);background:var(--panel);color:var(--ink);font:inherit;text-align:start;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
@media(hover:hover){.area-loc:hover{border-color:var(--accent);background:var(--panel-2)}}
.area-loc:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.area-loc[aria-pressed="true"]{border-color:var(--accent);background:var(--panel-2)}
.area-loc[aria-pressed="true"] .area-map-key{background:var(--accent);color:var(--accent-ink)}
.area-map-key{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.75em;height:1.75em;border-radius:50%;background:var(--ink);color:var(--panel);font-size:var(--fs-sm);font-weight:700;transition:background .18s ease,color .18s ease}
.area-flag{flex:none;width:24px;height:16px;border-radius:2px;border:1px solid var(--line-2)}
.area-loc-text{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
.area-loc-name{font-weight:600;line-height:1.25}
.area-loc-meta{font-size:var(--fs-sm);color:var(--muted);line-height:1.25}

@media(prefers-reduced-motion:reduce){.map-loc .map-halo,.map-loc .map-pin,.map-loc .map-number,.map-loc .map-leader,.area-loc{transition:none}.area-map .map-halo{transform:scale(1)}}

/* ---- Service + example blocks ------------------------------------------- */
.area-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);list-style:none;padding:0;margin:var(--sp-3) 0 var(--sp-5)}.area-offers li{border:1px solid var(--line);border-radius:var(--sp-2);padding:var(--sp-3)}.area-offers a{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:44px;font-weight:600}.area-offers p{font-size:var(--fs-sm);margin:var(--sp-2) 0 0}.area-example-link{display:block;margin-block:var(--sp-4);min-height:44px}.area-dialogue{margin:0;border-inline-start:3px solid var(--accent);padding-inline-start:var(--sp-5);max-width:68ch}.area-dialogue dt{font-weight:700;margin-top:var(--sp-4)}.area-dialogue dd{margin:var(--sp-2) 0 var(--sp-4)}
@media(max-width:767px){.area-offers{grid-template-columns:1fr}}
