*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;line-height:1.6;padding-bottom:calc(58px + env(safe-area-inset-bottom))}
img,svg,iframe{max-width:100%}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.08;text-wrap:balance}
p{margin:0 0 1em}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
address{font-style:normal}
blockquote,figure,dl,dd{margin:0}
.wrap{width:min(100% - 2.5rem,1180px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;z-index:300;background:#fff;color:#000;padding:.6rem 1rem}
.skip:focus{left:1rem;top:1rem}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hdr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.3rem 1rem}
.brand{text-decoration:none}
.site-nav{order:3;width:100%;display:flex;gap:1.3rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none;padding-block:.35rem}
.site-nav::-webkit-scrollbar{display:none}
.site-nav a{text-decoration:none}
.hdr-call{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:50px;padding:.8rem 1.3rem;font:inherit;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;border:2px solid transparent}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
details>summary .ic{transition:transform .2s}
details[open]>summary .ic{transform:rotate(45deg)}
.map{display:block;width:100%;height:100%;min-height:320px;border:0}
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:1.7fr 1fr;padding-bottom:env(safe-area-inset-bottom)}
.mbar a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:58px;font-weight:800;text-decoration:none}
.prose>*+*{margin-top:1rem}
.prose ul{list-style:disc;padding-left:1.25rem}
.prose ol{list-style:decimal;padding-left:1.25rem}
.prose h3{margin-top:1.4rem}
.ft-grid{display:grid;gap:1.8rem}
.ft-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem}
.ft-legal nav{display:flex;flex-wrap:wrap;gap:1.2rem}
.ft-col li{margin:.35rem 0}
.ft-phone{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:800}
.site-footer a{text-decoration:none}
.site-footer a:hover{text-decoration:underline}
@media(min-width:700px){.ft-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.ft-grid{grid-template-columns:1.4fr repeat(4,1fr)}}
@media(min-width:900px){body{padding-bottom:0}.mbar{display:none}.site-nav{order:0;width:auto;overflow:visible}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{--olive:#3f4a24;--olive2:#2b3517;--moss:#5d6b33;--khaki:#d7d8c4;--lichen:#e8e9db;--blaze:#ff5a1f;--blaze2:#e3440c;--ink:#1d2410;--mute:#464d34;--focus:#ff5a1f;
--fh:"Zilla Slab",Georgia,"Times New Roman",serif;--fb:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{font-family:var(--fb);background:var(--lichen);color:var(--ink);font-size:1.075rem}
h1,h2,h3{font-family:var(--fh);font-weight:700;letter-spacing:-.01em;line-height:1.08}
h1{font-size:clamp(2.3rem,5.8vw,4.3rem)}
h2{font-size:clamp(1.8rem,3.8vw,2.8rem)}
h3{font-size:1.3rem}
.sec{padding:4rem 0}
.sec-khaki{background:var(--khaki)}
.sec-olive{background:var(--olive);color:#f1f2e4}
.sec-head{max-width:44rem;margin-bottom:2rem}
.sec-head p{margin:.7rem 0 0;color:var(--mute)}
.sec-olive .sec-head p{color:#d3d8bd}
.btn{border-radius:6px;font-weight:700}
.btn-call{background:var(--blaze);color:#1d1008;border-color:var(--blaze)}
.btn-call:hover{background:#ff7a47}
.btn-wa{border-color:currentColor}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem}
/* header */
.site-header{background:var(--olive2);color:#f1f2e4;border-bottom:4px solid var(--blaze)}
.hdr{padding-block:.7rem}
.brand{font-family:var(--fh);font-weight:700;font-size:1.35rem}
.site-nav a{font-weight:600;font-size:.96rem;color:#d3d8bd;padding:.3rem 0}
.site-nav a:hover{color:#fff}
.hdr-call{background:var(--blaze);color:#1d1008;font-weight:700;padding:.5rem .95rem;border-radius:6px}
@media(min-width:900px){.site-nav{gap:1.8rem}}
/* hero */
.hero{position:relative;overflow:hidden;background:var(--olive);color:#f1f2e4;padding:2.8rem 0 3.6rem}
.topo{position:absolute;inset:0;width:100%;height:100%;color:rgba(241,242,228,.16)}
.hero .wrap{position:relative;z-index:1}
.hero-g{display:grid;gap:2.6rem;align-items:center}
.crumbs{font-size:.93rem;margin-bottom:1rem;color:#d3d8bd}
.crumbs a{text-decoration:none;border-bottom:2px solid var(--blaze)}
.lede{font-size:1.2rem;max-width:34rem;margin:1.1rem 0 0;color:#e4e8d2}
.hero-actions{margin-top:1.6rem}
.hero .btn-wa{color:#f1f2e4}
.flag-wrap{position:relative;padding-left:1.4rem}
.flag-wrap::before{content:"";position:absolute;left:0;top:-.6rem;bottom:-2.4rem;width:.45rem;border-radius:.3rem;background:#f1f2e4}
.flag{display:block;background:var(--blaze);color:#1d1008;text-decoration:none;padding:1.4rem 3.4rem 1.5rem 1.5rem;clip-path:polygon(0 0,100% 0,calc(100% - 1.8rem) 50%,100% 100%,0 100%)}
.flag:hover{background:#ff7a47}
.flag-l{display:flex;align-items:center;gap:.5rem;font-weight:700;margin-bottom:.3rem}
.flag-n{display:block;font-family:var(--fh);font-weight:700;font-size:clamp(1.9rem,8vw,3.3rem);line-height:1;letter-spacing:-.02em;white-space:nowrap}
.flag-s{display:block;font-weight:600;margin-top:.5rem;font-size:.95rem}
.pin-a,.pin-b{position:absolute;color:var(--blaze);width:1.9rem;height:1.9rem;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35))}
.pin-a{right:8%;top:-2.2rem}.pin-b{right:34%;bottom:-3.6rem}
@media(min-width:900px){.hero{padding:3.8rem 0 4.6rem}.hero-g{grid-template-columns:1.1fr .9fr;gap:3.5rem}}
/* field strip */
.field{background:var(--khaki);border-bottom:3px solid var(--olive)}
.field ul{display:grid;grid-template-columns:1fr 1fr}
.field li{display:grid;grid-template-columns:auto 1fr;gap:.6rem;padding:1rem .8rem;font-size:.92rem;line-height:1.3;border-left:2px dashed var(--moss)}
.field strong{display:block;font-size:1rem}
.field .ic{width:2rem;height:2rem;padding:.4rem;border-radius:50%;background:var(--olive);color:#f1f2e4}
@media(min-width:900px){.field ul{grid-template-columns:repeat(4,1fr)}.field li{padding:1.3rem 1.3rem}}
/* dog-ear cards */
.cards{display:grid;gap:1.2rem}
.card{position:relative;display:block;height:100%;background:#fff;border-top:6px solid var(--olive);padding:1.3rem 1.3rem 1.2rem;text-decoration:none;clip-path:polygon(0 0,calc(100% - 1.6rem) 0,100% 1.6rem,100% 100%,0 100%);transition:background .15s}
.card::after{content:"";position:absolute;right:0;top:0;width:1.6rem;height:1.6rem;background:linear-gradient(225deg,transparent 50%,var(--blaze) 50%)}
.card:hover{background:#fff6ef}
.card .ic{width:2.6rem;height:2.6rem;padding:.55rem;background:var(--olive);color:#f1f2e4;border-radius:6px;margin-bottom:.8rem}
.card h3{margin-bottom:.3rem}
.card p{margin:0 0 .8rem;font-size:.95rem;color:var(--mute);line-height:1.45}
.card .more{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--blaze2)}
.card .more .ic{width:1.1rem;height:1.1rem;padding:0;background:none;color:inherit;margin:0}
@media(min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.cards{grid-template-columns:repeat(3,1fr)}}
/* route */
.route{position:relative;display:grid;gap:2rem;padding-left:3.6rem}
.route::before{content:"";position:absolute;left:1.35rem;top:1rem;bottom:1rem;border-left:3px dashed var(--blaze)}
.wp{position:relative}
.wp .mk{position:absolute;left:-3.6rem;top:0;display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--blaze);color:#1d1008;border:3px solid var(--olive)}
.wp .mk .ic{transform:rotate(45deg);width:1.3rem;height:1.3rem}
.wp h3{font-size:1.45rem;margin-bottom:.3rem}
.wp p{margin:0;font-size:.98rem;color:#d3d8bd}
.route-svg{display:none}
@media(min-width:900px){
.route{grid-template-columns:repeat(4,1fr);gap:1.5rem;padding-left:0}
.route::before{display:none}
.route-svg{display:block;position:absolute;left:0;top:1.4rem;width:100%;height:4rem;color:var(--blaze)}
.wp{padding-top:4rem;text-align:center}
.wp:nth-of-type(odd){padding-top:0;margin-bottom:4rem}
.wp .mk{position:relative;left:auto;top:auto;margin:0 auto 1rem}
.wp:nth-of-type(even) .mk{margin-top:0}
}
/* plates */
.plates{display:grid;gap:1.2rem}
.plate{background:#fff;border:2px solid var(--olive);border-radius:8px;overflow:hidden}
.plate header{display:flex;align-items:center;gap:.7rem;background:var(--olive);color:#f1f2e4;padding:.7rem 1rem}
.plate header .ic{width:1.6rem;height:1.6rem;color:var(--blaze)}
.plate h3{margin:0;font-size:1.25rem}
.plate p{margin:0;padding:1rem;font-size:.97rem;color:var(--mute)}
.sign-cta{margin-top:2rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}
.sign-cta p{margin:0;font-family:var(--fh);font-weight:700;font-size:1.4rem}
@media(min-width:640px){.plates{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.plates{grid-template-columns:repeat(3,1fr)}}
/* coverage */
.cover{display:grid;gap:2rem}
.cover-map{border:6px solid var(--olive);border-radius:10px;overflow:hidden;min-height:340px;background:#fff;box-shadow:0 0 0 3px var(--khaki),0 0 0 5px var(--olive)}
.coords{margin:1.2rem 0;padding:.9rem 1rem;border:2px dashed var(--moss);background:var(--lichen);font-weight:600}
.coords b{display:block;font-family:var(--fh);font-size:1.1rem;margin-bottom:.2rem}
.flags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.flags a{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.7rem .55rem .9rem;background:var(--blaze);color:#1d1008;font-weight:700;text-decoration:none;clip-path:polygon(0 0,100% 0,calc(100% - .9rem) 50%,100% 100%,0 100%)}
.flags a:hover{background:#ff7a47}
.cover h3{margin-top:1.5rem}
@media(min-width:900px){.cover{grid-template-columns:1.1fr 1fr;align-items:center;gap:3.5rem}}
/* faq */
.qas{columns:1;column-gap:3.5rem}
.qa{break-inside:avoid;margin-bottom:1.8rem;padding-left:1rem;border-left:5px solid var(--blaze)}
.qa h3{font-size:1.25rem;margin-bottom:.35rem}
.qa p{margin:0;color:var(--mute)}
@media(min-width:820px){.qas{columns:2}}
.proof-grid{display:grid;gap:1.2rem;margin-top:1.5rem}
.proof-grid figure{background:#fff;padding:1.3rem;border-left:6px solid var(--blaze)}
.proof-grid figcaption{margin-top:.6rem;font-weight:700}
@media(min-width:800px){.proof-grid{grid-template-columns:repeat(2,1fr)}}
/* cta */
.cta{position:relative;overflow:hidden;background:var(--blaze);color:#1d1008;padding:3.8rem 0;text-align:center}
.cta .topo{color:rgba(29,16,8,.13)}
.cta .wrap{position:relative;z-index:1}
.cta h2{font-size:clamp(1.9rem,4.2vw,3.2rem)}
.cta-num{display:block;font-family:var(--fh);font-weight:700;font-size:clamp(2rem,9.4vw,5.6rem);letter-spacing:-.02em;line-height:1;text-decoration:none;white-space:nowrap;margin:.7rem 0 1.4rem}
.cta .btn-row{justify-content:center}
.cta .btn-call{background:var(--olive2);border-color:var(--olive2);color:#f1f2e4}
.cta .btn-wa{color:#1d1008}
.cta :focus-visible{outline-color:var(--olive2)}
/* inner */
.cols{display:grid;gap:2.4rem}
.chunk+.chunk{margin-top:2.4rem}
.chunk h2{display:flex;align-items:center;gap:.9rem;font-size:clamp(1.6rem,3vw,2.2rem)}
.chunk h2 .ic{width:2.9rem;height:2.9rem;padding:.6rem;background:var(--olive);color:var(--blaze);border-radius:6px;flex:none}
.pull{margin:2.2rem 0;padding:1.6rem 1.6rem 1.6rem 2rem;background:var(--olive);color:#f1f2e4;border-left:8px solid var(--blaze);font-family:var(--fh);font-weight:700;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15}
.aside{display:grid;gap:1.3rem;align-content:start}
.field-note{background:var(--khaki);border:2px dashed var(--olive);padding:1.3rem}
.field-note h3{margin-bottom:.6rem}
.field-note ul{list-style:disc;padding-left:1.2rem;margin-bottom:1rem}
.field-note .cta-num{font-size:clamp(1.7rem,6.4vw,2rem);margin:.2rem 0 1rem;text-align:left;color:var(--ink)}
.benefits{display:grid;gap:1.2rem}
.landmark{background:var(--olive);color:#f1f2e4;padding:2.6rem 0;border-block:4px solid var(--blaze)}
.landmark .wrap{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start}
.landmark .ic{width:3rem;height:3rem;color:var(--blaze)}
.landmark p{margin:0;max-width:44rem;color:#e4e8d2}
.narrow{max-width:46rem}
@media(min-width:800px){.benefits{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.cols{grid-template-columns:minmax(0,1fr) 22rem;gap:3.5rem}.aside{position:sticky;top:1.5rem;align-self:start}}
/* footer */
.site-footer{background:var(--olive2);color:#cfd5b6;padding:3rem 0 1.2rem;font-size:.96rem;border-top:4px solid var(--blaze)}
.ft-name{font-family:var(--fh);font-weight:700;font-size:1.5rem;color:#fff;margin-bottom:.4rem}
.site-footer h3{font-family:var(--fb);font-size:1rem;color:#fff}
.ft-phone{color:#fff}
.ft-legal{border-top:1px solid #4a5530;margin-top:2rem;padding-top:1rem;font-size:.86rem}
.mbar{box-shadow:0 -4px 16px rgba(0,0,0,.3)}
.mbar-call{background:var(--blaze);color:#1d1008}
.mbar-wa{background:var(--olive2);color:#f1f2e4}

/* ---- Trailhead build additions (site10, Sterling VA) ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.narrow.prose{max-width:46rem;margin-inline:auto}
.btn-outline{background:transparent;border-color:currentColor;color:inherit}
.btn-outline:hover{background:rgba(255,255,255,.12)}
.hero .btn-outline{color:#f1f2e4}

/* zip chip row (neighborhood + location pages) */
.zip-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.1rem 0 0}
.zip-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:var(--khaki);border:2px solid var(--olive);border-radius:999px;font-weight:700;font-size:.88rem;color:var(--ink)}
.zip-chip .ic{width:1.05em;height:1.05em}

/* sidebar note box (reuses field-note look, plus dl for coverage-summary ticket) */
.field-note .cta-num{display:block}
.field-note dl{margin:.4rem 0 1.1rem}
.field-note dl>div{display:flex;justify-content:space-between;gap:.6rem;padding:.4rem 0;border-bottom:1px dashed var(--moss)}
.field-note dl>div:last-child{border-bottom:0}
.field-note dt{font-weight:700}
.field-note dd{margin:0;text-align:right}
.field-note.ticket{margin-bottom:1.3rem}
.ticket-title{font-family:var(--fh);font-weight:700;font-size:1.2rem;margin:0 0 .6rem}
.ticket-call{display:block;text-align:center;width:100%;margin-top:.4rem;background:var(--blaze);color:#1d1008;font-weight:800;padding:.85rem 1rem;border-radius:6px;text-decoration:none}
.ticket-call:hover{background:#ff7a47}

/* mid-content CTA strip, standalone between sections */
.sign-cta-wrap{padding:2.2rem 0}
.sign-cta-wrap .sign-cta{margin:0;justify-content:center;text-align:center;flex-direction:column;background:var(--khaki);border:2px dashed var(--olive);padding:1.6rem}

/* nearby-areas grid (location pages) */
.nearby-grid{display:grid;gap:.8rem;margin-top:1.1rem}
.nearby-grid a{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.85rem 1.1rem;background:#fff;border:2px solid var(--olive);border-radius:8px;text-decoration:none;font-weight:700;color:var(--ink)}
.nearby-grid a:hover{background:var(--lichen)}
.nearby-grid em{font-style:normal;color:var(--mute);font-weight:600}
@media(min-width:700px){.nearby-grid{grid-template-columns:repeat(2,1fr)}}

/* tables (location pages, areas index) */
.table-wrap{overflow-x:auto;margin:1.3rem 0}
.table-wrap table{width:100%;border-collapse:collapse;background:#fff}
.table-wrap th,.table-wrap td{padding:.7rem .9rem;text-align:left;border:1px solid var(--khaki);font-size:.94rem;vertical-align:top}
.table-wrap thead th{background:var(--olive);color:#f1f2e4}
.table-wrap tbody tr:nth-child(even){background:var(--lichen)}

/* areas index town rows (link rows, distinct from a data table) */
.arow-list{display:grid;gap:.7rem;margin-top:1.2rem}
.arow{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:.6rem;align-items:center;padding:.9rem 1.1rem;background:#fff;border:2px solid var(--olive);border-radius:8px;text-decoration:none;color:var(--ink)}
.arow.ahead{background:var(--olive);color:#f1f2e4;font-weight:700;border-color:var(--olive)}
.arow strong{font-family:var(--fh)}
.arow:not(.ahead):hover{background:var(--lichen)}

/* sources / citations block (shares .chunk look, list styling only) */
.sources ul{list-style:disc;padding-left:1.3rem;margin-top:.8rem}
.sources li{margin-bottom:.5rem}
.sources li a{font-weight:700;color:var(--blaze2)}

/* FAQ divs already styled via .qas/.qa in the base template */

/* single call-only mobile bar (network standing rule: call CTAs only) */
.mbar{grid-template-columns:1fr}

/* skip-link focus already provided; ensure card icon backgrounds show on olive sections */
.sec-olive .card{background:#fff}

/* page-type/body hook classes (used for scoping/analytics, no visual rule needed) */
.d9,.pg-index,.pg-service,.pg-hood,.pg-location,.pg-plain,.pg-services,.pg-blog,.pg-post,.pg-areas{display:block}
.ft-brand{display:block}
.ft-areas{display:block}
.chunk-lede{display:block}
.mobile-bar,.sticky-cta{display:flex}

/* mobile hamburger menu toggle (checkbox-driven, no JS) */
.nav-toggle{position:absolute;opacity:0;pointer-events:none}
.menu-toggle{display:none;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;background:transparent;border:2px solid currentColor;border-radius:6px;cursor:pointer;order:2;color:inherit}
@media(max-width:899px){
  .hdr{position:relative}
  .menu-toggle{display:inline-flex}
  .site-nav.mobile-nav{order:4;width:100%;max-height:0;opacity:0;overflow:hidden;flex-direction:column;gap:0;white-space:normal;transition:max-height .25s ease,opacity .2s ease}
  .site-nav.mobile-nav a{padding:.55rem 0;border-bottom:1px dashed rgba(255,255,255,.15)}
  .nav-toggle:checked ~ .wrap .site-nav.mobile-nav{max-height:26rem;opacity:1;overflow-y:auto;padding-block:.4rem}
}
@media(min-width:900px){.menu-toggle{display:none}}
.hamburger{}
.nav-menu{}
