/* Areas hub: shared white foundations, a quiet map and a readable directory. */
.areas-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:end; padding-block:104px 88px; }
.areas-intro h1 { font-size:clamp(48px,5.5vw,78px); line-height:1.05; letter-spacing:-.055em; }
.areas-intro-copy { max-width:400px; justify-self:end; }
.areas-intro-copy > p { font-size:16px; line-height:1.8; color:var(--secondary); }
.areas-intro-copy .text-link { margin-top:24px; }
.areas-coverage { border-top:1px solid var(--line); padding-block:64px 0; }
.areas-section-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:end; margin-bottom:40px; }
.areas-section-heading > p { max-width:440px; justify-self:end; color:var(--secondary); font-size:15px; line-height:1.8; }
.areas-map { height:460px; width:100%; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); isolation:isolate; z-index:0; }
.areas-map:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.areas-map-fallback { padding:32px; color:var(--secondary); max-width:520px; }
.areas-map-caption { font-size:12px; line-height:1.8; color:var(--secondary); margin-top:16px; }
.areas-map-caption a { text-decoration:underline; text-underline-offset:3px; }
.areas-map .leaflet-container,.areas-map .leaflet-popup-content { font-family:Arial,Helvetica,sans-serif; }
.areas-map .leaflet-control-attribution { font-size:11px; }
.areas-map .areas-hq-marker { background:var(--paper); color:var(--ink); border:1px solid #909090; border-radius:5px; display:flex; justify-content:center; align-items:center; font:600 12px Arial,Helvetica,sans-serif; box-shadow:0 2px 8px #00000015; }
.areas-directory { padding-block:88px; scroll-margin-top:32px; }
.areas-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 40px; }
.areas-town { border-top:1px solid var(--line); padding-top:24px; min-width:0; }
.areas-town h3 { font-size:24px; letter-spacing:-.6px; overflow-wrap:anywhere; }
.areas-town-status { display:block; font-size:12px; color:var(--secondary); margin-top:8px; }
.areas-town-links { list-style:none; margin:20px 0 0; padding:0; }
.areas-town-links a { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; padding-block:8px; font-size:14px; line-height:1.6; }
.areas-town-links a span { flex-shrink:0; color:var(--secondary); }
.areas-town-links a:hover,.areas-page .text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.areas-town > p { color:var(--secondary); font-size:14px; line-height:1.8; margin-top:24px; }
.areas-town > .text-link { margin-top:16px; }
.areas-hq-band { background:var(--surface); }
.areas-hq { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; padding-block:80px; }
.areas-hq-details { max-width:400px; }
.areas-hq-details h3 { font-size:18px; margin-bottom:12px; }
.areas-hq-details address { font-style:normal; color:var(--secondary); font-size:15px; line-height:1.8; }
.areas-hq-details > p { margin-top:24px; font-size:15px; line-height:1.8; color:var(--secondary); }
.areas-hq-details .button { margin-top:28px; }
@media(max-width:999px) {
 .navigation { height:76px; } .nav-links,.nav-actions { display:none; } .menu-toggle { display:inline-flex; }
 .areas-intro,.areas-section-heading,.areas-hq { gap:40px; }
 .areas-intro { padding-block:64px; }
 .areas-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 32px; }
}
@media(max-width:699px) {
 .navigation { height:72px; }
 .areas-intro,.areas-section-heading,.areas-hq { grid-template-columns:1fr; gap:28px; }
 .areas-intro,.areas-hq,.areas-directory { padding-block:48px; }
 .areas-intro h1 { font-size:clamp(44px,11vw,64px); }
 .areas-intro-copy,.areas-section-heading > p { max-width:none; justify-self:start; }
 .areas-coverage { padding-top:40px; }
 .areas-map { height:360px; }
 .areas-grid { grid-template-columns:1fr; gap:32px; }
 .areas-section-heading { margin-bottom:32px; }
 .footer-top { grid-template-columns:1fr 1fr; gap:32px 24px; } .footer-brand { grid-column:1/-1; }
 .footer-bottom { flex-wrap:wrap; gap:16px; } .footer-bottom > div { flex-wrap:wrap; }
 .modal { padding:28px 24px; } .modal .form-row { grid-template-columns:1fr; }
 input:not([type=checkbox]),textarea { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .areas-page *, .areas-page *::before, .areas-page *::after { transition:none!important; animation:none!important; } }
