/* Areas Served page */
:root{--map-land:#f3f3f4;--map-sc:#ebe9e6;--map-water:#cfdfe8;--map-road:#a3a5ab;--map-road2:#c4c6ca;--map-state:#d4600a;--map-shield:#57585c;--map-shield-ink:#ffffff;--map-ink:#26272b}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--map-land:#1d1e22;--map-sc:#222327;--map-water:#1f3240;--map-road:#5c5e65;--map-road2:#45474d;--map-state:#f58a3a;--map-shield:#3a3b40;--map-shield-ink:#ececee;--map-ink:#ececee}}
:root[data-theme="dark"]{--map-land:#1d1e22;--map-sc:#222327;--map-water:#1f3240;--map-road:#5c5e65;--map-road2:#45474d;--map-state:#f58a3a;--map-shield:#3a3b40;--map-shield-ink:#ececee;--map-ink:#ececee}
.menu>li>a.active{color:var(--brand)}
.page-hero{position:relative;color:#fff;background:#2a2b2f;overflow:hidden;isolation:isolate}
.page-hero .hero-photo{object-position:50% 45%;animation:none}
.page-hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(24,25,28,.9) 0%,rgba(24,25,28,.7) 50%,rgba(24,25,28,.3) 100%)}
.page-hero-inner{position:relative;z-index:1;padding-block:clamp(64px,9vw,110px);display:grid;gap:18px;max-width:820px}
.page-hero h1{font-weight:300;font-size:clamp(2rem,4.6vw,3.3rem);letter-spacing:-.01em}
.page-hero p{font-size:1.15rem;color:rgba(255,255,255,.86);max-width:60ch}
.crumbs{display:flex;gap:10px;font:500 .85rem var(--head);color:rgba(255,255,255,.75)}
.crumbs a{color:#f7a25a;text-decoration:none}
.detail-head{display:grid;gap:12px;max-width:760px;margin-bottom:36px}

/* map */
.map-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 32px;margin-bottom:28px}
.map-head>div{display:grid;gap:10px;min-width:0}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filt{display:inline-flex;align-items:center;gap:8px;font:600 .88rem var(--head);padding:10px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;transition:all .15s}
.filt svg{width:18px;height:18px;color:var(--brand)}
.filt:hover{border-color:var(--brand)}
.filt[aria-pressed="true"]{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.filt[aria-pressed="true"] svg{color:#f7a25a}
.map-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:28px;align-items:start}
.map-frame{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--map-land);min-width:0}
.map{display:block;width:100%;height:auto;max-height:78vh}
.map-note{font-size:.82rem;color:var(--muted);padding:10px 16px;border-top:1px solid var(--line);background:var(--bg)}
.state-lbl{font:600 11px Montserrat,Arial,sans-serif;letter-spacing:.24em;fill:var(--muted);opacity:.8}
.water-lbl{font:italic 500 11px "Source Sans 3",Arial,sans-serif;fill:#5d84a0}
.mk{cursor:pointer;outline:none;transition:opacity .2s}
.mk-dot{fill:#f17511;stroke:#fff;stroke-width:2.5;transition:transform .2s;transform-box:fill-box;transform-origin:center}
.mk-halo{fill:#f17511;opacity:0;transition:opacity .2s;transform-box:fill-box;transform-origin:center}
.mk text{font:600 12.5px Montserrat,Arial,sans-serif;fill:var(--map-ink);paint-order:stroke;stroke:var(--map-land);stroke-width:4px;stroke-linejoin:round}
.mk:hover .mk-halo,.mk:focus-visible .mk-halo{opacity:.22}
.mk:focus-visible .mk-dot{stroke:var(--accent)}
.mk.sel .mk-dot{transform:scale(1.3);fill:#d4600a}
.mk.sel .mk-halo{opacity:.28;animation:pulse 2.2s ease-out infinite}
.mk.sel text{font-weight:700;font-size:13.5px}
.mk.dim{opacity:.22}
@keyframes pulse{0%{transform:scale(.7);opacity:.45}100%{transform:scale(1.8);opacity:0}}
@media (prefers-reduced-motion: reduce){.mk.sel .mk-halo{animation:none}}
.panel{position:sticky;top:120px;border:1px solid var(--line);border-top:4px solid #f17511;border-radius:var(--radius);padding:28px;display:grid;gap:14px;background:var(--bg);box-shadow:0 18px 40px rgba(20,20,25,.08);min-width:0}
.panel-kicker{font:600 .75rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.panel h3{font-size:1.7rem;font-weight:600}
.panel p{color:var(--muted)}
.panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:4px}
.panel-count{font-size:.85rem;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:900px){.map-grid{grid-template-columns:1fr}.panel{position:static}.map{max-height:none}}

/* state line */
.stateline{background:var(--brand-deep);color:#fff;padding-block:clamp(48px,6vw,72px)}
.sl-grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.sl-grid>div{min-width:0}
.sl-grid h2{color:#fff;margin-bottom:12px}
.sl-grid p{color:rgba(255,255,255,.8);max-width:64ch}
.sl-badges{display:flex;align-items:center;gap:10px}
.st-badge{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font:700 1.4rem var(--head);border:3px solid #f17511;color:#fff}
.sl-plus{font:300 2rem var(--head);color:#f7a25a}
@media (max-width:640px){.sl-grid{grid-template-columns:1fr}}

/* area cards */
.areas-list{background:var(--bg-alt)}
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.area-card{background:var(--bg);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;transition:opacity .2s,box-shadow .2s,border-color .2s;scroll-margin-top:120px}
.area-card.sel{border-color:#f17511;box-shadow:0 0 0 2px rgba(241,117,17,.35)}
.area-card.dim{opacity:.35}
.mini{display:block;width:100%;height:auto;aspect-ratio:220/150;border-bottom:1px solid var(--line)}
.mini-dot{fill:#f17511;stroke:#fff;stroke-width:2.5}
.mini-halo{fill:#f17511;opacity:.2}
.area-body{padding:20px 22px 22px;display:grid;gap:10px;align-content:start}
.area-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.area-top h3{font-size:1.15rem}
.st{font:700 .7rem var(--head);letter-spacing:.08em;padding:3px 8px;border-radius:6px}
.st-nc{background:var(--bg-alt);color:var(--muted);border:1px solid var(--line)}
.st-sc{background:#f17511;color:#fff}
.area-body p{color:var(--muted);font-size:.97rem}
.area-body .chips span{font-size:.82rem;padding:4px 10px}
.show-map{justify-self:start;background:none;border:0;padding:4px 0;font:600 .88rem var(--head);color:var(--brand);cursor:pointer;border-bottom:2px solid transparent}
.show-map:hover{border-bottom-color:currentColor}
.also{margin-top:28px;color:var(--muted);text-align:center}
@media (max-width:980px){.area-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.area-grid{grid-template-columns:1fr}}


.intro-areas{padding-block:clamp(56px,7vw,88px) clamp(24px,3vw,32px)}
.ia-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,64px);align-items:start}
.ia-grid>*{min-width:0}
.ia-copy{display:grid;gap:14px;color:var(--muted);font-size:1.08rem}
.ia-copy a{color:var(--brand);font-weight:600}
@media (max-width:860px){.ia-grid{grid-template-columns:1fr}}
.map-section{padding-top:clamp(32px,4vw,48px)}
.panel-name{font:600 1.7rem/1.15 var(--head);color:var(--ink)}
.area-body .loc{font:500 .85rem var(--head);color:var(--muted);margin-top:-6px}
.area-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:4px}
.area-links a{font:600 .88rem var(--head);color:var(--brand);text-decoration:none}
.area-links a:hover{text-decoration:underline}

.carolinas{display:block;width:min(340px,100%);height:auto;overflow:visible}
.carolinas .nc{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.75);stroke-width:1.4;stroke-linejoin:round}
.carolinas .sc{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.75);stroke-width:1.4;stroke-linejoin:round}
.carolinas .border{fill:none;stroke:#f17511;stroke-width:2.6;stroke-linejoin:round}
.carolinas .metro{fill:rgba(241,117,17,.12);stroke:#f7a25a;stroke-width:1.2;stroke-dasharray:3 3}
.carolinas .clt{fill:#f17511;stroke:#fff;stroke-width:2}
.carolinas .clt-halo{fill:#f17511;transform-box:fill-box;transform-origin:center;animation:cltpulse 2.4s ease-out infinite}
@keyframes cltpulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(3.2);opacity:0}}
@media (prefers-reduced-motion: reduce){.carolinas .clt-halo{animation:none;opacity:0}}
.carolinas .clt-lbl{font:700 12px Montserrat,Arial,sans-serif;fill:#fff;paint-order:stroke;stroke:#2e2f33;stroke-width:3px}
.carolinas .st-lbl{font:600 9px Montserrat,Arial,sans-serif;letter-spacing:.18em;fill:rgba(255,255,255,.6)}
.sl-grid{grid-template-columns:minmax(0,340px) 1fr}
@media (max-width:640px){.sl-grid{grid-template-columns:1fr}.carolinas{width:min(300px,100%)}}
