@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:optional;src:url('/assets/fonts/outfit-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:optional;src:url('/assets/fonts/outfit-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}:root{--c-primary:#1F2A35;--c-primary-fg:#FFFFFF;--c-accent:#4FC3E8;--c-accent-fg:#111111;--c-accent-text:#4FC3E8;--c-dark:#EEF2F1;--c-light:#1A222C;--c-white:#10151C;--c-ground:#10151C;--c-border:rgba(238,242,241,0.14);--c-muted:#A4B4C0;--f-head:'Outfit',system-ui,sans-serif;--f-body:'Outfit',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;--f-mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,monospace;--header-h:78px;--topbar-h:0px;--cta-h:60px;--r:10px;--maxw:1120px;--gap:24px;}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--f-body);color:var(--c-dark);background:var(--c-white);
line-height:1.65;font-size:17px}
img,svg,iframe{max-width:100%}
img{height:auto}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.18;margin:0 0 .5em;font-weight:700}
h1{font-size:clamp(1.9rem,4.4vw,3rem)}
h2{font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-size:1.2rem}
a{color:var(--c-primary)}
p{margin:0 0 1em}
[id]{scroll-margin-top:calc(var(--header-h) + var(--topbar-h) + 14px)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:1.25em;height:1.25em;fill:currentColor;vertical-align:-.15em;flex:none}
.icon-sm{width:1em;height:1em}.icon-lg{width:1.6em;height:1.6em}.icon-xl{width:2em;height:2em}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1200;background:var(--c-dark);
color:#fff;padding:12px 18px;border-radius:0 0 var(--r) 0}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--c-accent-text);outline-offset:2px;border-radius:3px}
.topbar{background:var(--c-primary);color:var(--c-primary-fg);font-size:.85rem;
min-height:var(--topbar-h);display:flex;align-items:center}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;
justify-content:space-between;width:100%}
.topbar a{color:inherit;text-decoration:none;font-weight:700;display:inline-flex;
align-items:center;gap:6px}
.topbar .promo{display:inline-flex;align-items:center;gap:6px}
#header{position:sticky;top:0;z-index:999;overflow:visible;background:#fff;
box-shadow:0 1px 0 var(--c-border)}
#header .wrap{display:flex;align-items:center;gap:18px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--c-dark);
font-family:var(--f-head);font-weight:700;font-size:1.05rem;min-width:0}
.brand img{width:52px;height:52px;object-fit:contain}
.nav-desktop{margin-left:auto;display:flex;align-items:center;gap:4px}
.hero{padding:44px 0 52px;background:linear-gradient(180deg,var(--c-light),#fff)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
padding:14px 22px;border-radius:var(--r);font-weight:700;text-decoration:none;
border:2px solid transparent;cursor:pointer;font-size:1rem;min-height:48px;
font-family:var(--f-body)}
.btn-primary{background:var(--c-accent);color:var(--c-accent-fg)}
.btn-outline{background:transparent;color:var(--c-primary);border-color:var(--c-primary)}
.nav-toggle{display:none}
@media(max-width:1024px){.nav-desktop{display:none}
.nav-toggle{display:inline-flex;margin-left:auto;align-items:center;justify-content:center;
width:48px;height:48px;border:1px solid var(--c-border);border-radius:var(--r);
background:#fff;color:var(--c-dark)}}

.section{padding:60px 0}
.section-alt{background:var(--c-light)}
.section-dark{background:var(--c-primary);color:var(--c-primary-fg)}
.section-dark h2,.section-dark h3{color:inherit}
.lead{font-size:1.08rem;color:var(--c-muted);max-width:62ch}
.section-dark .lead{color:inherit;opacity:.92}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:700;
color:var(--c-accent-text);margin:0 0 8px}
.section-dark .eyebrow{color:var(--c-accent)}
.grid{display:grid;gap:var(--gap)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.grid>*{min-width:0}
.card{background:#fff;border:1px solid var(--c-border);border-radius:var(--r);
padding:24px;min-width:0}
.card h3{display:flex;align-items:center;gap:10px}
.card .icon{color:var(--c-accent-text)}
.card-cta{display:inline-flex;align-items:center;gap:6px;font-weight:700;
text-decoration:none;margin-top:6px}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.badge{display:inline-flex;align-items:center;gap:6px;background:#fff;
border:1px solid var(--c-border);border-radius:999px;padding:7px 14px;font-size:.85rem;
font-weight:700}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 12px}
.trustline{font-size:.9rem;color:var(--c-muted);display:flex;align-items:center;gap:8px}
.form-box{background:#fff;border:1px solid var(--c-border);border-radius:14px;
padding:24px;box-shadow:0 10px 30px rgba(17,17,17,.07)}
.form-box h2{font-size:1.35rem}
.field{margin-bottom:14px}
.field label{display:block;font-weight:700;font-size:.86rem;margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;padding:12px 13px;font-size:1rem;
border:1px solid var(--c-border);border-radius:var(--r);font-family:inherit;
background:#fff;color:inherit;min-height:48px}
.field textarea{min-height:110px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.field-row{grid-template-columns:1fr}}
.req{color:#B3261E}
.honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;
opacity:0;pointer-events:none}
.form-status{min-height:26px;font-size:.9rem;font-weight:700;margin:6px 0}
.form-status[data-state=error]{color:#B3261E}
.form-status[data-state=ok]{color:#12693B}
.recaptcha-slot{min-height:78px;margin:10px 0}
.form-success{text-align:center;padding:26px 10px}
.form-success .icon{color:#12693B}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}
.stat{text-align:center;padding:8px}
.stat b{display:block;font-family:var(--f-head);font-size:2rem;line-height:1.1}
.stat span{font-size:.88rem;opacity:.9}
.steps{counter-reset:step;display:grid;gap:var(--gap);
grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.step{position:relative;padding-left:56px}
.step::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;
width:42px;height:42px;border-radius:50%;background:var(--c-primary);
color:var(--c-primary-fg);display:flex;align-items:center;justify-content:center;
font-family:var(--f-head);font-weight:700;font-size:1.1rem}
.checklist{list-style:none;padding:0;margin:0;display:grid;gap:12px;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.checklist li{display:flex;gap:10px;align-items:flex-start}
.checklist .icon{color:var(--c-accent-text);margin-top:3px}
.reviews{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.review{background:#fff;border:1px solid var(--c-border);border-radius:var(--r);padding:22px}
.review-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--c-primary);
color:var(--c-primary-fg);display:flex;align-items:center;justify-content:center;
font-weight:700;font-family:var(--f-head);flex:none}
.stars{color:#E8A317;display:inline-flex;gap:2px}
.review-meta{font-size:.82rem;color:var(--c-muted)}
.faq{border:1px solid var(--c-border);border-radius:var(--r);background:#fff;
margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;padding:16px 20px;font-weight:700;font-family:var(--f-head);
font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;
align-items:center;gap:14px;min-height:52px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .icon{transition:transform .2s;color:var(--c-primary);flex:none}
.faq[open] summary .icon{transform:rotate(180deg)}
.faq .faq-body{padding:0 20px 18px;color:var(--c-muted)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;
border:1px solid var(--c-border);border-radius:999px;padding:10px 16px;
text-decoration:none;font-weight:700;font-size:.9rem;color:var(--c-dark);min-height:44px}
.breadcrumb{background:var(--c-light);font-size:.85rem;padding:12px 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.breadcrumb li{display:flex;align-items:center;gap:8px}
.breadcrumb li+li::before{content:"/";color:var(--c-muted)}
.embed{position:relative;aspect-ratio:16/9;background:var(--c-light);
border-radius:var(--r);overflow:hidden;border:1px solid var(--c-border)}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.embed-facade{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;
align-items:center;justify-content:center;background:var(--c-light);border:0;
cursor:pointer;font-family:inherit;font-weight:700;color:var(--c-primary);font-size:1rem}
.embed-facade .icon{color:var(--c-accent-text)}
.hours{width:100%;border-collapse:collapse;font-size:.95rem}
.hours caption{text-align:left;font-weight:700;font-family:var(--f-head);
font-size:1.1rem;margin-bottom:10px}
.hours th,.hours td{text-align:left;padding:9px 6px;border-bottom:1px solid var(--c-border)}
.hours th{font-weight:600;color:var(--c-muted)}
address{font-style:normal}
.nap a{color:inherit;font-weight:700;display:inline-flex;align-items:center;
min-height:32px;padding:4px 0}
.nap div{margin-bottom:2px}
.footer{background:var(--c-dark);color:#e9edf2;padding:52px 0 0;font-size:.94rem}
.footer a{color:#e9edf2;text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer h2{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.footer ul a{display:inline-flex;align-items:center;min-height:32px;padding:4px 0}
.footer-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.footer-brand img{width:64px;height:64px;object-fit:contain;background:#fff;
border-radius:var(--r);padding:6px}
.social{display:flex;gap:12px;margin-top:14px}
.social a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);
display:flex;align-items:center;justify-content:center}
.footer-bottom{margin-top:40px;border-top:1px solid rgba(255,255,255,.16);
padding:18px 0;font-size:.85rem;opacity:.8;display:flex;flex-wrap:wrap;gap:10px;
justify-content:space-between}
.nav-desktop>.nav-item{position:relative}
.nav-desktop a.nav-link,.nav-desktop button.nav-link{display:inline-flex;align-items:center;
gap:6px;padding:10px 14px;text-decoration:none;color:var(--c-dark);font-weight:700;
font-size:.95rem;background:none;border:0;font-family:inherit;cursor:pointer;
min-height:44px;border-radius:var(--r)}
.dropdown{position:absolute;top:100%;left:0;min-width:274px;background:#fff;
border:1px solid var(--c-border);border-radius:var(--r);box-shadow:0 16px 40px
rgba(17,17,17,.14);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);
transition:opacity .15s,transform .15s;z-index:1000}
.nav-item:hover>.dropdown,.nav-item:focus-within>.dropdown{opacity:1;visibility:visible;
transform:none}
.dropdown a{display:block;padding:10px 12px;text-decoration:none;color:var(--c-dark);
border-radius:8px;font-size:.94rem}
.dropdown a:hover,.dropdown a:focus-visible{background:var(--c-light)}
.dropdown hr{border:0;border-top:1px solid var(--c-border);margin:8px 4px}
.nav-phone{display:inline-flex;align-items:center;gap:8px;background:var(--c-accent);
color:var(--c-accent-fg);padding:12px 18px;border-radius:var(--r);font-weight:700;
text-decoration:none;margin-left:8px;min-height:48px}
#mobile-nav{position:fixed;inset:0;z-index:998;background:#fff;overflow-y:auto;
padding:18px 20px 40px;display:none}
#mobile-nav[data-open=true]{display:block}
.mnav-head{display:flex;align-items:center;justify-content:space-between;
padding-bottom:14px;border-bottom:1px solid var(--c-border)}
.mnav-close{width:48px;height:48px;border:1px solid var(--c-border);background:#fff;
border-radius:var(--r);display:flex;align-items:center;justify-content:center;
color:var(--c-dark)}
.mnav-label{text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;
color:var(--c-muted);font-weight:700;margin:22px 0 8px}
#mobile-nav a{display:block;padding:13px 4px;text-decoration:none;color:var(--c-dark);
font-weight:700;border-bottom:1px solid var(--c-border);min-height:44px}
.sticky-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:997;
background:var(--c-accent);padding-bottom:env(safe-area-inset-bottom)}
.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:10px;
min-height:var(--cta-h);color:var(--c-accent-fg);text-decoration:none;font-weight:700;
font-size:1.05rem}
@media(max-width:768px){
.sticky-cta{display:block}
body{padding-bottom:calc(var(--cta-h) + env(safe-area-inset-bottom))}
.section{padding:44px 0}
}
.defer{content-visibility:auto;contain-intrinsic-size:auto 620px}
.imgwrap{border-radius:var(--r);overflow:hidden;border:1px solid var(--c-border)}
.imgwrap img{display:block;width:100%;height:auto}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{.topbar,#header,.sticky-cta,#mobile-nav,.form-box{display:none!important}}

/* ============================================================
   Brand skin - the Air Conn landing page's design, site-wide.
   Emitted twice on purpose: inline in the critical CSS so the
   first paint is already dark, and again at the end of the
   stylesheet so it still wins the cascade once that loads.
   ============================================================ */
body{background:var(--c-ground);color:var(--c-dark);font-size:16px;line-height:1.6}
.wrap,.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,40px)}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:640;line-height:1.14;
letter-spacing:-.015em;text-wrap:balance}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-size:1.22rem;font-weight:620}
.lead{color:var(--c-muted)}
.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.22em;
text-transform:uppercase;color:var(--c-accent-text)}
.section{padding:clamp(56px,9vh,104px) 0}
.section-alt{background:var(--c-light)}

/* header - the landing page lockup, nav and cyan call button */
#header,.site-header{position:sticky;top:0;z-index:999;padding:14px 0;overflow:visible;
background:rgba(13,17,23,.88);-webkit-backdrop-filter:blur(12px);
backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--c-border)}
.header-inner,.header-in{display:flex;align-items:center;gap:26px}
.logo,.lockup{display:flex;align-items:center;gap:11px;text-decoration:none;
white-space:nowrap}
.logo img,.logo-mark{width:46px;height:46px;flex:0 0 auto;display:block}
.logo-text{display:flex;flex-direction:column;line-height:1.05}
.logo-text b{font-size:1.22rem;font-weight:680;letter-spacing:-.01em;color:var(--c-dark)}
.logo-text em{font-style:normal;font-family:var(--f-mono);font-size:.6rem;
letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);margin-top:3px}
.nav{display:flex;gap:15px;margin-left:auto;align-items:center;min-width:0}
.nav a{font-size:.88rem;color:var(--c-muted);text-decoration:none;padding:.3rem 0;
position:relative;white-space:nowrap}
.nav a:hover{color:var(--c-accent-text)}
.nav-toggle{border:1px solid var(--c-border);background:transparent;color:var(--c-dark)}
@media(max-width:1024px){.nav{display:none}}
@media(min-width:1025px){.nav-toggle{display:none}}

/* buttons */
.btn{border-radius:10px;font-family:var(--f-body);font-size:1rem;font-weight:600;
padding:14px 26px;min-height:44px;border:1px solid transparent;text-shadow:none}
.btn-primary,.header-call{background:var(--c-accent);color:var(--c-accent-fg);
border-color:var(--c-accent);text-decoration:none}
.header-call{white-space:nowrap;flex:0 0 auto;margin-left:18px;padding:12px 20px;
font-size:.95rem}
@media(max-width:1180px){.nav{gap:15px}.nav a{font-size:.87rem}
.header-call{margin-left:12px;padding:11px 15px}.header-call .call-label{display:none}}
/* below the desktop nav breakpoint the lockup and the phone button together
   overflowed the bar, pushing the menu button off screen */
@media(max-width:600px){
.logo img,.logo-mark{width:38px;height:38px}
.logo-text b{font-size:1rem}
.logo-text em{font-size:.52rem;letter-spacing:.1em}
.header-call{padding:11px 13px;margin-left:8px}
/* hidden from the layout but kept in the accessibility tree - display:none
   left the link with no discernible name */
.header-call .call-number{position:absolute;width:1px;height:1px;padding:0;
margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.header-inner,#header .wrap{gap:10px}}
@media(max-width:380px){.logo-text em{display:none}}
.btn-primary:hover,.header-call:hover{background:var(--c-accent-text);color:var(--c-accent-fg)}
.btn-outline{background:rgba(16,21,28,.25);color:var(--c-dark);border-color:var(--c-border)}
/* adjacent CTAs need real separation to pass the 24px touch-target rule */
.hero-cta,.cta-actions{display:flex;flex-wrap:wrap;gap:16px}
@media(max-width:600px){.btn{min-height:48px}.hero-cta,.cta-actions{gap:32px}}
.btn-outline:hover{border-color:var(--c-accent-text);color:var(--c-accent-text)}

/* surfaces - hairline borders only, no filled cards */
.card,.form-box,.faq,.review,.stat,.step,.hours,.nap,.shot-fig{
background:transparent;border:1px solid var(--c-border);border-radius:16px}
.card:hover{border-color:rgba(79,195,232,.5)}
.section-alt .card,.section-alt .form-box{background:transparent}
.chip,.badges .badge{background:transparent;border:1px solid var(--c-border);
color:var(--c-muted);border-radius:999px}
.chip:hover{border-color:var(--c-accent-text);color:var(--c-accent-text)}
.breadcrumb{background:transparent;border-bottom:1px solid var(--c-border)}
.breadcrumb a{color:var(--c-muted)}
.stats{border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border);
background:transparent}
.stat b,.stat strong{color:var(--c-dark);overflow-wrap:anywhere}
.stat span{color:var(--c-muted);overflow-wrap:anywhere}
/* long stat values such as "2,000+ CFM" overflowed the bar on narrow screens */
@media(max-width:600px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat b,.stat strong{font-size:1.15rem}}

/* forms on a dark ground */
.field input,.field select,.field textarea{background:rgba(238,242,241,.05);
border:1px solid var(--c-border);color:var(--c-dark);border-radius:10px}
.field input:focus,.field select:focus,.field textarea:focus{
border-color:var(--c-accent-text);outline:none;box-shadow:0 0 0 3px rgba(79,195,232,.18)}
.field label{color:var(--c-muted)}
.field select option{background:var(--c-light);color:var(--c-dark)}

.hero{background:linear-gradient(180deg,rgba(26,34,44,.55),transparent 70%)}
.trustline{color:var(--c-muted)}
a{color:var(--c-accent-text)}

/* map tuned to the dark ground, like the landing page */
.embed{position:relative;aspect-ratio:16/10;border:1px solid var(--c-border);
border-radius:16px;overflow:hidden}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
filter:grayscale(.35) contrast(1.02)}
.hours-open{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.15rem;
border:1px solid var(--c-border);border-radius:16px}
.hours-open strong{font-size:1.3rem;font-weight:640;color:var(--c-dark)}
.hours-open span{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;
text-transform:uppercase;color:var(--c-muted)}
.footer,footer{border-top:1px solid var(--c-border);background:rgba(10,14,19,.35)}
.footer .nap,.footer address{border:0;padding:0;background:transparent}
.review-meta{color:var(--c-muted);font-size:.85rem}

/* ---- every remaining light-theme surface -------------------------------
   The base stylesheet is a light theme: twelve components hardcode a white
   background. Restyling only the ones on the pages I happened to look at is
   what left the mobile menu and the desktop dropdown as white panels with
   near-white text on them - effectively invisible. These are all of them. */
/* The panel covers the header, so its close button has to land exactly where
the hamburger was - same 18px gutter, same 48px box, same vertical centre. */
#mobile-nav{background:var(--c-ground);color:var(--c-dark);z-index:1200;
padding:calc(33px + env(safe-area-inset-top)) 18px calc(40px + env(safe-area-inset-bottom))}
.mnav-head{position:sticky;top:0;background:var(--c-ground);z-index:1}
#mobile-nav a{color:var(--c-dark);text-decoration:none;display:block;
padding:13px 4px;min-height:44px;border-bottom:1px solid var(--c-border)}
#mobile-nav a:hover,#mobile-nav a:focus-visible{color:var(--c-accent-text)}
.mnav-head{border-bottom:1px solid var(--c-border)}
.mnav-head strong{color:var(--c-dark);font-size:1.1rem}
.mnav-label{color:var(--c-accent-text);margin:24px 0 4px}
.mnav-close{background:transparent;border:1px solid var(--c-border);
color:var(--c-dark);border-radius:10px;width:48px;height:48px;
display:inline-flex;align-items:center;justify-content:center}
.mnav-close:hover{border-color:var(--c-accent-text);color:var(--c-accent-text)}

.dropdown{background:var(--c-ground);border:1px solid var(--c-border);
box-shadow:0 18px 44px rgba(0,0,0,.55)}
.dropdown a{color:var(--c-dark);padding:11px 16px;min-height:44px;
display:flex;align-items:center}
.dropdown a:hover,.dropdown a:focus-visible{background:rgba(79,195,232,.10);
color:var(--c-accent-text)}
.dropdown hr{border:0;border-top:1px solid var(--c-border);margin:6px 0}

/* the logo is a transparent badge; the light plate behind it was the base
   theme's, and it read as a sticker stuck on the footer */
.footer-brand img,.brand img,.logo img,.logo-mark{background:transparent;
border-radius:0;padding:0}
.footer h2,.footer h3,.footer h4{color:var(--c-dark)}

/* form status: the base error colour is a dark red that cannot be read on a
   dark ground */
.form-status[data-state=error]{color:#FF9E8A}
.form-status[data-state=ok],.form-status[data-state=success]{color:var(--c-accent-text)}

/* the sticky call bar is the mobile conversion path - it keeps the accent
   fill from the base theme rather than fading into the page */
.sticky-cta a{color:var(--c-accent-fg);font-weight:700;text-decoration:none;
display:flex;align-items:center;justify-content:center;gap:10px;
min-height:56px;font-size:1.02rem}
.sticky-cta a .icon{color:var(--c-accent-fg)}

/* touch targets: footer and breadcrumb links sat at 19-22px on mobile */
@media(max-width:600px){
.footer a,.breadcrumb a,.breadcrumb li{min-height:32px;display:inline-flex;
align-items:center}
.foot-col a,.footer nav a{padding:5px 0}
.card-cta{min-height:44px}
.nap-card .open-tag,.hours-open span{font-size:.72rem}}
/* --c-dark is the light paper colour on this dark palette, so the base rule
   painted white-on-white: the skip link was invisible on every page. */
.skip-link{background:var(--c-accent);color:var(--c-accent-fg);z-index:1300;font-weight:700}
/* the required asterisk was a dark red on a dark ground (3.2:1) */
.req{color:#FF9E8A}
/* the breadcrumb was 22px tall on desktop too - under the 24px target floor */
.breadcrumb a,.breadcrumb li{min-height:24px;display:inline-flex;align-items:center}
/* the lockup was a 38px-tall link on mobile */
.logo,.lockup{min-height:44px}
/* The desktop nav had min-width:0 with overflow visible, so flexbox shrank
   it 67px below its content width and the nowrap links painted straight
   under the call button - "Contact" sat beneath the cyan pill at every
   width above 1024. It must never shrink. */
.nav,.site-nav{flex:0 0 auto;min-width:auto}
/* With the nav at its true width, the mono tagline no longer fits beside it
   inside the 1120px measure at any viewport, and it was rendering at 8-9px
   anyway. The lockup keeps the badge and the name; the tagline lives in the
   footer, where it has the room to be read. */
.logo-text em{display:none}
/* Below the desktop breakpoint the nav is hidden, and it was the nav that
   carried margin-left:auto - so nothing pushed the call button right and it
   sat against the lockup with a dead gap before the menu button. */
@media(max-width:1024px){
.header-call{margin-left:auto}
.nav-toggle{margin-left:10px}}
/* The number was hidden below 600px back when the lockup overflowed the bar.
   With the tagline gone the header has the room again, and the number is the
   whole point of the button on a phone. Measured: it clears the gutter from
   375px up; narrower than that stays icon-only. */
@media(min-width:375px) and (max-width:600px){
.header-call .call-number{position:static;width:auto;height:auto;padding:0;
margin:0;overflow:visible;clip:auto;white-space:nowrap}}

/* ============================================================
   Landing-page chrome, applied to the generated pages.
   ============================================================ */
html{background:var(--c-ground)}
body{background:transparent}
#atmo{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
main{position:relative}

/* one continuous ground - the landing page has no alternating bands */
.section-alt{background:transparent}
.section-alt::before{content:'';position:absolute;inset:0;pointer-events:none;
background:linear-gradient(180deg,rgba(26,34,44,.55),rgba(26,34,44,0));z-index:-1}
.section{position:relative}

/* header: transparent over the atmosphere, solid once you scroll */
#header{background:transparent;box-shadow:none;transition:background .35s ease,
box-shadow .35s ease,padding .35s ease;padding:18px 0}
/* .88 let the hero stats line ghost through the bar and read behind the
   nav links; .95 keeps the glass edge without the bleed */
#header.scrolled{background:rgba(13,17,23,.95);
-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
box-shadow:0 1px 0 var(--c-border);padding:10px 0}

/* type scale and the halo that keeps text legible over the artwork */
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:700}
h1,h2,h3,.lead,.eyebrow,p,li,blockquote,figcaption,.trustline,.stat b,.stat span{
text-shadow:0 1px 3px rgba(10,12,14,.9),0 2px 16px rgba(10,12,14,.8)}
.btn,.chip,.badge,.field label,.field input,.field select,.field textarea{text-shadow:none}

/* breadcrumb sits on the ground rather than in its own bar */
.breadcrumb{border-bottom:0;background:transparent}

/* reveal on scroll - same distance, easing and duration as the landing page */
.rv{opacity:0;transform:translateY(36px);
transition:opacity .95s ease,transform .95s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none}}
