:root{--bg:#FFFFFF;--hero:#0A0A0A;--blue:#0057B7;--yellow:#FFDD00;--green:#006B3C;--surface:#F5F5F5;--border:#767676;--text:#1A1A1A;--maxw:1000px;--prose:760px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Atkinson Hyperlegible',Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;font-size:18px}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:underline}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.masthead :focus-visible,.nav :focus-visible,.hero :focus-visible,.cta-band :focus-visible,.site-footer :focus-visible,.sticky-cta :focus-visible{outline-color:var(--yellow)}
.nav .dropdown :focus-visible{outline-color:var(--blue)}
.skip-link{position:absolute;left:0;top:-4rem;z-index:200;background:var(--yellow);color:#000;padding:.7rem 1.2rem;font-weight:700;text-decoration:none}
.skip-link:focus{top:0}
/* masthead */
.masthead{background:var(--hero);color:#fff}
.masthead-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.15rem;color:#fff;text-decoration:none}
.brand-name span{color:var(--yellow)}
.brand-logo[hidden]{display:none}
.brand-logo{display:block;line-height:0}
.brand-logo img{display:block;height:44px;width:auto;max-width:100%;object-fit:contain}
.masthead-tag{font-size:.85rem;color:#ddd}
/* primary navigation */
.nav{background:#000;border-bottom:2px solid var(--yellow);position:relative;z-index:100}
.nav-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:stretch;padding:0 1.25rem}
.nav-toggle{display:none}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex:1;flex-wrap:nowrap}
.nav-item{position:relative;display:flex}
.nav-link{padding:.8rem .8rem;color:#fff;text-decoration:none;font-size:.9rem;font-weight:700;border:2px solid transparent;background:none;cursor:pointer;font-family:inherit;line-height:1.5;display:inline-flex;align-items:center;gap:.25rem}
.nav-link:hover{background:#1a1a1a}
.nav-link[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--yellow)}
.nav-caret{font-size:.75rem}
.dropdown{position:absolute;top:100%;left:0;z-index:60;min-width:270px;background:#fff;border:2px solid var(--border);padding:.3rem;display:none}
.dropdown.dropdown-wide{min-width:560px;columns:2;column-gap:.4rem}
.dropdown.dropdown-wide a{break-inside:avoid}
.nav-item.open>.dropdown{display:block}
@media (hover:hover) and (min-width:900px){.nav-item.has-dropdown:hover>.dropdown{display:block}}
.dropdown a{display:block;padding:.55rem .7rem;color:var(--text);text-decoration:none;font-size:.92rem;font-weight:700;line-height:1.35}
.dropdown a:hover{background:var(--surface)}
.dropdown a.view-all{color:var(--blue);text-decoration:underline}
.nav-phone{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;background:var(--yellow);color:#000;text-decoration:none;font-weight:700;border:2px solid #000;white-space:nowrap}
.nav-phone-label{font-size:.95rem}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:70}
.nav-overlay[hidden]{display:none}
/* layout */
.container{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.prose{max-width:var(--prose);margin-left:auto;margin-right:auto}
.prose p,.prose ul,.prose ol{max-width:none}
.section{padding:3rem 0}
.eyebrow{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--yellow);margin:0 0 .6rem}
.hero{background:var(--hero);color:#fff;padding:3.5rem 0}
.hero h1{font-weight:700;font-size:44px;line-height:1.25;margin:0 0 1.1rem;color:#fff;max-width:22ch}
.hero p{max-width:60ch;font-size:1.15rem;color:#eee;margin:0 0 1.3rem}
.hero .eyebrow{color:var(--yellow)}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
h2{font-weight:700;font-size:1.7rem;line-height:1.3;color:var(--text);margin:0 0 .8rem}
h3{font-weight:700;font-size:1.1rem;line-height:1.35;margin:0 0 .5rem;color:var(--text)}
p{margin:0 0 1.3rem;max-width:680px}
.ruled{padding-bottom:.5rem;border-bottom:3px solid var(--yellow);display:inline-block}
.lede{font-size:1.1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.8rem;text-decoration:none;font-weight:700;min-height:52px;border:2px solid var(--text);font-family:inherit;font-size:1rem;text-align:center}
.btn-accent{background:var(--yellow);color:#000;border-color:#000}
.btn-ghost{background:transparent;color:#fff;border-color:#fff}
.section .btn-ghost{color:var(--text);border-color:var(--text)}
.cta-band .btn-ghost,.hero .btn-ghost{color:#fff;border-color:#fff}
.grid{display:grid;gap:1.2rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:#fff;border:2px solid var(--blue);padding:1.3rem}
.card h3{margin-bottom:.4rem}
.card h3 a{color:var(--text);text-decoration:underline}
.card p{font-size:1rem;color:var(--text);margin:0}
.band{background:var(--surface);border-top:2px solid var(--border);border-bottom:2px solid var(--border)}
/* numbered steps */
.steps{list-style:none;counter-reset:step;margin:0 0 1.3rem;padding:0}
.steps li{counter-increment:step;position:relative;padding:.2rem 0 1rem 3.2rem}
.steps li::before{content:counter(step);position:absolute;left:0;top:.1rem;width:2.2rem;height:2.2rem;border:2px solid var(--text);background:var(--yellow);color:#000;font-weight:700;display:flex;align-items:center;justify-content:center}
.checklist{margin:0 0 1.3rem;padding-left:1.2rem}
.checklist li{margin-bottom:.5rem}
.callout{border:2px solid var(--text);border-left:8px solid var(--yellow);background:#fff;padding:1.1rem 1.3rem;margin:0 0 1.5rem}
.callout p:last-child{margin-bottom:0}
.band .callout{background:#fff}
.callout-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border:2px solid var(--text);background:var(--yellow);padding:1.2rem 1.4rem;margin:2rem 0}
.callout-cta p{margin:0;max-width:44ch;font-weight:700;color:#000}
.callout-cta .btn{background:#000;color:#fff;border-color:#000}
/* area lists, chips, map */
.area-cols{columns:2;column-gap:2rem}
.area-cols ul{list-style:none;margin:0;padding:0}
.area-cols li{margin-bottom:.35rem;break-inside:avoid}
.area-cols a{color:var(--blue);text-decoration:underline;font-weight:700;font-size:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:0 0 1rem;padding:0}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:.3rem 1rem;border:2px solid var(--text);background:#fff;font-weight:700}
.map-wrap{position:relative;width:100%;aspect-ratio:16/9;border:2px solid var(--border);background:var(--surface);margin:1.2rem 0}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-link{margin-top:-.4rem}
.faq details{border:2px solid var(--border);padding:.2rem;margin:0 0 .8rem;background:#fff}
.faq summary{cursor:pointer;padding:.9rem 1rem;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem;font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue)}
.faq details[open] summary::after{content:"\2212"}
.faq .faq-body{padding:.9rem 1rem 0}
.cta-band{background:var(--hero);color:#fff}
.cta-band h2{color:#fff}
.cta-band p{color:#eee}
.crumbs{font-size:.92rem;padding:.9rem 0 0}
.crumbs a{color:var(--blue)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--border)}
/* reading toggle */
.reading-toggle{position:fixed;bottom:16px;right:16px;z-index:95;background:var(--yellow);color:#000;border:2px solid #000;padding:.6rem 1rem;font-weight:700;cursor:pointer;font-family:inherit;font-size:.95rem}
body.reading-mode{font-size:24px}
/* footer */
.site-footer{background:var(--hero);color:#ddd}
.site-footer .container{padding-top:2.4rem;padding-bottom:1.4rem}
.footer-grid{display:grid;grid-template-columns:1.3fr 1.5fr 1fr 1fr;gap:1.6rem}
.footer-grid>div{min-width:0}
.footer-brand .brand{color:#fff}
.footer-brand p{font-size:.94rem;margin:.6rem 0}
.footer-phone{display:inline-block;color:#fff;font-weight:700;font-size:1.15rem;text-decoration:underline}
.footer-address{font-style:normal;font-size:.94rem;margin:.5rem 0}
.site-footer h3{color:var(--yellow);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.3rem}
.footer-cols{columns:2;column-gap:1.2rem}
.footer-cols li{break-inside:avoid}
.site-footer a{color:#ddd;text-decoration:underline;font-size:.94rem}
.footer-legal{border-top:1px solid #444;margin-top:1.4rem;padding-top:1rem;font-size:.85rem;color:#bbb}
.footer-legal p{max-width:none;margin:0 0 .6rem}
.sticky-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--yellow);border-top:2px solid #000}
.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem;color:#000;text-decoration:none;font-weight:700}
@media (max-width:899px){
  .nav-in{flex-wrap:wrap;align-items:center;justify-content:space-between}
  .nav-toggle{display:inline-flex;align-items:center;gap:.5rem;background:none;border:2px solid #fff;color:#fff;font-family:inherit;font-weight:700;font-size:1rem;padding:.65rem 1rem;margin:.6rem 0;cursor:pointer}
  .nav-phone{margin-left:0}
  .nav-list{display:none;flex-direction:column;flex-basis:100%;order:3;position:relative;z-index:75;background:#000;padding-bottom:.6rem}
  .nav-list.open{display:flex;max-height:calc(100vh - 150px);overflow-y:auto}
  .nav-item{flex-direction:column;border-top:1px solid #333}
  .nav-link{padding:.9rem .6rem;min-height:48px;width:100%;justify-content:space-between;font-size:1rem}
  .dropdown,.dropdown.dropdown-wide{position:static;min-width:0;columns:1;border:0;border-top:2px solid var(--yellow);padding:.2rem 0}
  .nav-item:hover>.dropdown{display:none}
  .nav-item.open>.dropdown{display:block}
}
@media (max-width:767px){
  .hero h1{font-size:34px}
  .hero{padding:2.5rem 0}
  .section{padding:2.2rem 0}
  h2{font-size:1.45rem}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .area-cols{columns:1}
  .footer-grid{grid-template-columns:1fr}
  .sticky-cta{display:block}
  body{padding-bottom:56px}
  .reading-toggle{bottom:72px}
  .masthead-tag{display:none}
  .callout-cta{flex-direction:column;align-items:flex-start}
}
@media (max-width:420px){.btn{width:100%}.hero-actions .btn{width:100%}.footer-cols{columns:1}}
/* service page components */
.table-wrap{overflow-x:auto;margin:0 0 1.5rem;border:2px solid var(--border);background:#fff}
.table-wrap table{border-collapse:collapse;width:100%;min-width:520px;font-size:.98rem}
.table-wrap th,.table-wrap td{padding:.7rem .85rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.table-wrap th{background:var(--surface);font-weight:700}
.table-wrap caption{caption-side:top;text-align:left;padding:.7rem .85rem;font-weight:700}
.related{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;list-style:none;margin:0 0 1rem;padding:0}
.related a{font-weight:700;color:#fff}
.hero .crumbs{padding:0 0 1rem}
.crumbs-bar{background:var(--surface);border-bottom:1px solid var(--border)}
.crumbs-bar .crumbs{padding:.7rem 0}
/* hub coverage-map module */
.cov{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}
@media(min-width:900px){.cov{grid-template-columns:1.05fr .95fr}}
.cov-svg{width:100%;height:auto;display:block;border:2px solid var(--border);background:#fff;max-width:420px;margin:0 auto}
.cov-bg{fill:#fff}
.cov-grid line{stroke:#e3e3e3;stroke-width:1}
.pin-hit{fill:transparent}
.pin-city{fill:var(--yellow);stroke:#000;stroke-width:3}
.pin-town{fill:var(--blue);stroke:#fff;stroke-width:2}
.pin-hood{fill:var(--green);stroke:#fff;stroke-width:2}
.pin-label{font:700 13px/1 'Atkinson Hyperlegible',Arial,sans-serif;fill:var(--text);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.pin:focus-visible{outline:none}
.pin:focus-visible .pin-hit{stroke:var(--blue);stroke-width:3;fill:rgba(255,221,0,.35)}
.pin:hover .pin-label{text-decoration:underline}
.cov-cap{font-size:.9rem;margin:.6rem 0 .2rem;text-align:center}
.cov-key{font-size:.9rem;display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:center;align-items:center;margin:.2rem 0}
.cov-key span{display:inline-block;width:14px;height:14px;vertical-align:middle;margin-right:.3rem}
.key-city{background:var(--yellow);border:2px solid #000;border-radius:50%}
.key-town{background:var(--blue);border-radius:50%}
.key-hood{background:var(--green);transform:rotate(45deg) scale(.85)}
.cov-map p:last-child{text-align:center}
@media(max-width:480px){.pin-label{font-size:12px}}
/* stage 2 images */
.photo{margin:1.8rem auto;max-width:800px}
.photo img{display:block;width:100%;height:auto;border:2px solid var(--text)}
.photo figcaption{font-size:.95rem;line-height:1.5;margin:.55rem 0 0;color:var(--text)}
.photo-hero{max-width:1000px}
.photo-hero img{aspect-ratio:16/9;object-fit:cover;border-color:#fff}
.hero .photo figcaption{color:#eee}
@media(max-width:600px){.photo-hero img{aspect-ratio:4/3}}
