/* Pittsburgh Chimney Sweep: shared styles for every page.
   Colours: a dark theme throughout: charcoal page, deeper charcoal alternate bands, slightly raised charcoal cards. Orange is kept for
   actions (buttons, links), rules and small highlights, never as a large fill except the closing CTA band
   (the logo keeps its own black & gold). Motifs from the logo: the sun behind the skyline, the
   name plate with an inner border. Patua One headlines echo the logo's PITTSBURGH; wide-tracked Montserrat labels
   echo its CHIMNEY SWEEP. Layout: full-bleed bands on a 1200px grid; white and stone bands alternate with
   black bands, and gold is the action colour.
   Dark bands (hero, inspections, booking, footer) alternate with light content bands.
   Components are documented with live examples on /styleguide.html. */
:root{
  /* Dark theme: every band is charcoal. cream = page, sand = deeper alternate band, paper = cards and raised bands */
  --soot:#0F1114; --soot-2:#1E2227; --soot-3:#2A3037; --soot-line:#3A4149;
  --cream:#16191D; --paper:#20252B; --sand:#0D0F12; --line:#363C45;
  --ink:#F3EFE9; --muted:#AEA79E; --on-dark:#F7F8F9; --on-dark-muted:#B8BEC5;
  /* Accent: orange (token names keep "gold" for compatibility with every component) */
  --gold:#F26B1D; --gold-deep:#DD5A0F; --gold-ink:#16191D; --gold-soft:#3A2416; --gold-text:#FF8F4A;
  --brick:#E2600F; --brick-deep:#FF8F4A; --brick-soft:#3A2416; --alert:#C2330F;
  --river:#3B6E8F; --field-line:#5E6670;
  --good:#5CC283; --good-soft:#18301F; --warn:#F0B44C; --warn-soft:#3A2C12; --bad:#FF7A62; --bad-soft:#3A1A14;
  --f-head:"Patua One","Rockwell","Roboto Slab",Georgia,serif;
  --f-display:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --f-old:"IM Fell English SC","IM Fell English",Georgia,"Times New Roman",serif;
  --f-old-it:"IM Fell English",Georgia,"Times New Roman",serif;
  --f-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:16px; --r-lg:26px; --r-pill:999px;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
  --wrap:1200px;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:4px}
/* Focus ring: ink on light surfaces, gold on dark ones, ink again on white/gold cards inside dark bands */
.hdr :focus-visible,.mbar :focus-visible,.ftr :focus-visible,.ftr-min :focus-visible,.on-dark :focus-visible,.band-dark :focus-visible,.book :focus-visible,.card-dark :focus-visible,.help-card :focus-visible,.figure-card :focus-visible,.season :focus-visible,.verdict :focus-visible,.panel :focus-visible{outline-color:var(--gold)}
.util :focus-visible{outline-color:var(--gold)}
.form-card :focus-visible,.qb :focus-visible,.bookbar :focus-visible,.cta-band :focus-visible,.skip:focus-visible{outline-color:var(--ink)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--gold);color:var(--gold-ink);padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Layout primitives ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
@media (max-width:600px){.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}
.wrap-narrow{max-width:var(--wrap)}
.wrap-narrow>*{max-width:820px}
.section{padding-block:96px}
.section.tight{padding-block:64px}
.section.flush-top{padding-top:0}
@media (max-width:700px){.section{padding-block:64px}.section.tight{padding-block:48px}}
.band-paper{background:var(--paper);border-block:1px solid var(--line)}
.band-sand{background:var(--sand)}
.band-dark{background:var(--soot);color:var(--on-dark)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:1000px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.grid-2{grid-template-columns:1fr;gap:32px}}
@media (max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr}}
.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}
@media (min-width:561px) and (max-width:1000px){.grid-3>:last-child:nth-child(odd),.rev-grid>:last-child:nth-child(odd),.steps.cols-3>:last-child:nth-child(odd){grid-column:1/-1}}
.center{text-align:center}
.stack{display:grid;gap:16px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---------- Type ---------- */
h1,h2,h3,h4,.display{font-family:var(--f-head);font-weight:400;line-height:1.06;letter-spacing:.01em;text-transform:uppercase;margin:0;text-wrap:balance}
h1{font-size:clamp(38px,5vw,66px)}
h2{font-size:clamp(30px,3.7vw,46px)}
h3{font-size:22px}
h4{font-family:var(--f-display);font-size:13px;font-weight:800;letter-spacing:.16em}
p{margin:0}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-display);font-weight:800;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.eyebrow::before{content:"";width:26px;height:3px;border-radius:2px;background:var(--gold)}
.section-head.center .eyebrow::after{content:"";width:26px;height:3px;border-radius:2px;background:var(--gold)}
.on-dark .eyebrow,.band-dark .eyebrow{color:var(--gold)}
@media (max-width:600px){.eyebrow{font-size:12px;letter-spacing:.18em;gap:10px}.eyebrow::before,.section-head.center .eyebrow::after{width:20px}}
.on-dark .eyebrow::before,.band-dark .eyebrow::before,.on-dark .section-head.center .eyebrow::after{background:var(--gold)}
.lede{font-size:19px;color:var(--muted);max-width:660px}
.on-dark .lede,.band-dark .lede{color:var(--on-dark-muted)}
.muted{color:var(--muted)}
.on-dark .muted,.band-dark .muted{color:var(--on-dark-muted)}
.hl{color:var(--gold)}
.section-head{display:grid;gap:16px;margin-bottom:48px;max-width:780px}
.section-head.center{margin-left:auto;margin-right:auto;justify-items:center}
.section-head .lede{margin:0}

/* Long-form copy */
.prose{max-width:720px;font-size:18px}
.prose>*+*{margin-top:18px}
.prose h2{font-size:clamp(28px,3.4vw,38px);margin-top:48px}
.prose h3{font-size:24px;margin-top:36px}
.prose h2+*,.prose h3+*{margin-top:12px}
.prose ul,.prose ol{padding-left:24px}
.prose li+li{margin-top:8px}
.prose li::marker{color:var(--brick)}
.prose a{color:var(--brick-deep);font-weight:600;text-underline-offset:3px}
.prose a:hover{color:var(--brick)}
.prose strong{font-weight:700}
.prose blockquote{margin:24px 0;padding:4px 0 4px 20px;border-left:4px solid var(--gold);font-size:20px}
.prose .callout,.prose .table-wrap,.prose figure{margin-top:28px;margin-bottom:28px}
.prose figure{margin-left:0;margin-right:0}
.prose figcaption{font-size:14px;color:var(--muted);margin-top:8px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:10px;border:2px solid transparent;font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease,color .15s,border-color .15s;white-space:nowrap;line-height:1}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn-gold{background:var(--gold);color:var(--gold-ink);box-shadow:0 3px 0 #B4470A,0 8px 20px rgba(242,107,29,.25)}
.btn-gold:hover{background:#FF8A3D;transform:translateY(-1px)}
.btn-gold:active{box-shadow:0 1px 0 #B4470A}
.btn-ghost{border-color:rgba(246,247,248,.35);color:var(--on-dark)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-dark{background:var(--soot);color:var(--on-dark)}
.btn-dark:hover{background:var(--soot-3)}
.btn-outline{border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--cream)}
.btn-white{background:#fff;color:var(--ink)}
.btn-sm{min-height:44px;font-size:13px;padding:0 18px}
.btn-block{width:100%}
.btn svg{width:20px;height:20px;flex-shrink:0}
.link-arrow{font-family:var(--f-display);font-weight:800;font-size:14px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--brick-deep);display:inline-block}
.link-arrow svg{display:inline-block;vertical-align:middle;margin:-3px 0 0 6px;transition:transform .15s ease}
.link-arrow:hover svg{transform:translateX(3px)}
.link-arrow:hover{color:var(--brick)}
.on-dark .link-arrow,.band-dark .link-arrow,.card-dark .link-arrow,.phero-aside.link-arrow{color:var(--gold)}

/* ---------- Utility bar + header ---------- */
.util{background:#131619;color:var(--on-dark-muted);font-size:15px;font-weight:600;border-bottom:1px solid #2A3037}
.util a{color:var(--gold)}
.util a:hover{color:#FF8A3D}
.util .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.util a{text-decoration:none;font-weight:700}
.util .pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:middle;animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
@media (max-width:760px){.util .hide-sm{display:none}.util .wrap{justify-content:center;font-size:13px;text-align:center}}

body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--soot)}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(31,35,40,.97);backdrop-filter:saturate(140%) blur(8px);border-bottom:3px solid var(--gold);color:var(--on-dark)}
.hdr>.wrap{display:flex;align-items:center;gap:20px;min-height:88px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;color:var(--on-dark)}
.logo-img{height:72px;width:auto;display:block}
.hdr .logo{align-self:flex-start;margin:8px 0 -30px;position:relative;z-index:2;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
.hdr .logo-img{height:108px;transition:height .2s ease}
.hdr .logo{transition:margin .2s ease}
.hdr.scrolled .logo,.menu-open .hdr .logo{margin:6px 0}
.hdr.scrolled .logo-img,.menu-open .hdr .logo-img{height:74px}
@media (max-width:700px){.hdr .logo{margin:6px 0 -18px}.hdr .logo-img{height:70px}.hdr.scrolled .logo,.menu-open .hdr .logo{margin:5px 0}.hdr.scrolled .logo-img,.menu-open .hdr .logo-img{height:54px}}
.nav{display:flex;gap:2px;margin-left:auto;align-items:center}
.nav>a,.nav-dd>a{padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:600;font-size:16px;color:var(--on-dark-muted);display:block}
.nav>a:hover,.nav-dd>a:hover,.nav-dd:hover>a{color:var(--on-dark);background:var(--soot-3)}
.nav a[aria-current="page"]{color:var(--gold)}
.nav-dd{position:relative;display:flex;align-items:center}
.nav-dd>a{padding-right:30px}
.dd-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:0;background:none;color:var(--on-dark-muted);cursor:pointer;display:grid;place-items:center;border-radius:6px}
.dd-btn svg{width:14px;height:14px;transition:transform .2s}
.dd{position:absolute;top:calc(100% + 10px);left:-16px;width:min(720px,90vw);display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:14px;background:var(--soot-2);border:1px solid var(--soot-line);border-radius:var(--r-lg);box-shadow:0 24px 48px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s}
.dd::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-dd:hover .dd,.nav-dd:focus-within .dd,.nav-dd.open .dd{opacity:1;visibility:visible;transform:none}
.nav-dd.open .dd-btn svg,.nav-dd:hover .dd-btn svg{transform:rotate(180deg)}
.dd-item{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:10px;text-decoration:none;color:var(--on-dark)}
.dd-item:hover{background:var(--soot-3)}
.dd-ico{width:38px;height:38px;border-radius:10px;background:var(--soot);border:1px solid var(--soot-line);color:var(--gold);display:grid;place-items:center;flex-shrink:0}
.dd-ico svg{width:22px;height:22px}
.dd-item b{display:block;font-size:16px}
.dd-item small{display:block;color:var(--on-dark-muted);font-size:14px;line-height:1.35}
.dd-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--soot-line);margin-top:6px;padding:12px 12px 2px;font-size:15px;color:var(--on-dark-muted)}
.dd-foot a{color:var(--gold);font-weight:700;text-decoration:none}
.dd-foot a:hover{text-decoration:underline;text-underline-offset:3px}
/* Odd number of services: the footer fills the empty cell beside the last item instead of leaving a hole */
.dd-item:nth-child(odd)+.dd-foot{grid-column:auto;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;margin:0;padding:12px 16px;border:1px solid rgba(242,107,29,.3);border-radius:10px;background:rgba(242,107,29,.07)}
.dd-item:nth-child(odd)+.dd-foot span{color:var(--on-dark);font-weight:700;font-size:16px}
.hdr-cta{display:flex;align-items:center;gap:14px}
.hdr-phone{display:grid;text-decoration:none;line-height:1.1;text-align:right;color:var(--on-dark)}
.hdr-phone small{font-size:13px;color:var(--on-dark-muted);font-weight:600}
.hdr-phone b{font-family:var(--f-head);font-size:23px;font-weight:400;color:var(--gold);letter-spacing:.02em}
.hdr .btn{min-height:46px;font-size:15px;padding:0 22px}
.menu-btn .mb-close{display:none}
.menu-btn[aria-expanded="true"] .mb-open{display:none}
.menu-btn[aria-expanded="true"] .mb-close{display:inline}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--soot-line);border-radius:10px;width:46px;height:46px;align-items:center;justify-content:center;cursor:pointer;color:var(--on-dark)}
@media (max-width:1180px){.hdr-phone small{display:none}}
@media (max-width:1100px){.nav{display:none}.hdr-cta{margin-left:auto}.menu-btn{display:inline-flex;margin-left:0}}
@media (max-width:700px){.hdr-phone,.hdr .hdr-cta .btn{display:none}.menu-btn{margin-left:auto}}
.mnav{background:var(--soot);border-bottom:1px solid var(--soot-line);padding:8px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px));max-height:calc(100dvh - 80px);overflow-y:auto}
.mnav>a,.mnav summary{display:block;padding:15px 4px;border-bottom:1px solid var(--soot-line);color:var(--on-dark);text-decoration:none;font-family:var(--f-display);font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;list-style:none}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary::after{content:"+";float:right;color:var(--gold)}
.mnav details[open] summary::after{content:"–"}
.mnav details a{display:block;padding:10px 4px 10px 16px;color:var(--on-dark-muted);text-decoration:none;font-size:17px;border-bottom:1px solid var(--soot-2)}
.mnav-ctas{display:grid;gap:10px;margin-top:20px}
.mnav-ctas .btn{width:100%}
.menu-open .mbar{display:none}
/* Landing header: logo + phone only */
.lp-hdr>.wrap{justify-content:space-between}
.lp-hdr .hdr-phone{display:grid}
@media (max-width:700px){.lp-hdr .hdr-phone small{display:none}.lp-hdr .hdr-phone b{font-size:20px}}

/* ---------- Breadcrumbs ---------- */
.crumbs ol{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:15px;color:var(--on-dark-muted)}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.5}
.crumbs a{text-decoration:none;color:var(--on-dark-muted)}
.crumbs a:hover{color:var(--gold)}
.crumbs [aria-current]{color:var(--on-dark)}

/* ---------- Heroes ---------- */
.hero,.phero{position:relative;background:var(--soot);color:var(--on-dark);overflow:hidden;isolation:isolate}
.hero::before,.phero::before{content:"";position:absolute;inset:0;z-index:-2;background:
  radial-gradient(900px 520px at 80% 0%,rgba(242,107,29,.14),transparent 62%),
  radial-gradient(600px 400px at 0% 100%,rgba(242,107,29,.06),transparent 60%),
  linear-gradient(180deg,#262B31 0%,#1F2328 70%)}
.hero>.wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:220px}
@media (max-width:980px){.hero>.wrap{grid-template-columns:1fr;gap:40px;padding-bottom:180px}}
.hero h1{font-size:clamp(44px,5.6vw,80px);line-height:1}
.hero h1 em,.phero h1 em{font-style:normal;color:var(--gold)}
.hero .lede{margin-top:22px;font-size:20px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-proof{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:32px;color:var(--on-dark-muted);font-size:15px;font-weight:600}
.hero-proof span{display:inline-flex;align-items:center;gap:8px}
.hero-proof svg{width:18px;height:18px;color:var(--gold)}
/* Home hero fire: live WebGL flames (or a real clip when heroVideo is set) under a dark overlay that keeps text readable */
.hero.has-fire>.wrap{padding-bottom:160px}
.hero-fire{position:absolute;inset:0;z-index:-2;background:radial-gradient(120% 70% at 60% 110%,#7a2a0c 0%,#2a120a 45%,var(--soot) 75%)}
.hero-fire canvas,.hero-fire video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.hero-fire .fire-sparks{mix-blend-mode:screen}
.hero-fire::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(22,25,29,.9) 0%,rgba(22,25,29,.8) 40%,rgba(22,25,29,.46) 57%,rgba(22,25,29,.1) 74%,rgba(22,25,29,.22) 100%),
  linear-gradient(180deg,rgba(22,25,29,.7) 0%,rgba(22,25,29,0) 30%)}
@media (max-width:980px){.hero-fire::after{background:linear-gradient(180deg,rgba(22,25,29,.82) 0%,rgba(22,25,29,.66) 45%,rgba(22,25,29,.3) 100%)}}
/* Interior page hero */
.phero>.wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;padding-top:56px;padding-bottom:140px}
.phero.no-aside>.wrap{grid-template-columns:1fr}
.phero.short>.wrap{padding-bottom:200px}
.phero h1{font-size:clamp(40px,5.6vw,72px);margin-top:14px}
.phero .lede{margin-top:20px}
@media (max-width:980px){.phero>.wrap{grid-template-columns:1fr;gap:36px;padding-bottom:120px}}
.phero-aside{background:var(--soot-2);border:1px solid var(--soot-line);border-radius:var(--r-lg);padding:28px}
.phero-aside h2,.phero-aside h3{font-size:26px}
.phero-aside .kv{margin-top:16px}
.phero>.wrap{padding-bottom:230px}
@media (max-width:980px){.phero>.wrap{padding-bottom:200px}}
.stars{display:inline-flex;gap:2px;color:var(--gold)}
.stars svg{width:18px;height:18px}
.skyline{position:absolute;left:0;right:0;bottom:-1px;z-index:-1;width:100%;height:auto;min-width:1100px;pointer-events:none}
@media (max-width:1100px){.skyline{left:50%;transform:translateX(-50%)}}
/* Phones: smaller art, shifted so the gold sun (the logo's centrepiece) stays in view instead of falling off the right edge */
@media (max-width:700px){.skyline{min-width:860px;left:calc(58% - 669px);transform:none}}
.smoke{animation:drift 9s ease-in-out infinite;transform-origin:center bottom;opacity:.5}
.smoke.s2{animation-delay:-3s}.smoke.s3{animation-delay:-6s}
@keyframes drift{0%{transform:translateY(0) scale(1);opacity:0}20%{opacity:.5}100%{transform:translateY(-40px) translateX(14px) scale(1.4);opacity:0}}

/* ---------- Forms ---------- */
.form-card,.qb{background:var(--paper);color:var(--ink);border-radius:var(--r-lg);padding:28px;position:relative}
.qb{box-shadow:0 30px 60px rgba(0,0,0,.45)}
.qb::before{content:"";position:absolute;inset:6px;border:2px solid var(--gold);border-radius:10px;pointer-events:none}
.qb h2{font-size:32px}
.qb p.sub,.form-card p.sub{color:var(--muted);font-size:15px;margin:6px 0 20px}
@media (max-width:600px){.form-card,.qb{padding:22px}}
.field{display:grid;gap:6px;margin-bottom:14px}
.field>label,.field>.label{font-size:14px;font-weight:700;letter-spacing:.02em}
.field input,.field select,.field textarea{width:100%;min-height:50px;border:1.5px solid var(--field-line);background:var(--paper);border-radius:var(--r);padding:12px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}
.field input::placeholder,.field textarea::placeholder{color:#746C62}
.field .opt{font-weight:500;color:var(--muted)}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink);background:var(--paper);box-shadow:0 0 0 4px rgba(242,107,29,.22)}
.field .hint{font-size:13px;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row2>*{min-width:0}
@media (max-width:420px){.row2{grid-template-columns:1fr}}
.form-card .btn,.qb .btn{width:100%;margin-top:6px}
.fine{display:flex;align-items:center;gap:8px;justify-content:center;font-size:14px;color:var(--muted);margin-top:14px;text-align:center}
.fine svg{width:16px;height:16px;color:var(--good);flex-shrink:0}
@media (max-width:420px){.fine{font-size:13px}}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slots label{position:relative;cursor:pointer}
.slots input{position:absolute;opacity:0;inset:0}
.slots span{display:grid;place-items:center;min-height:50px;border:1.5px solid var(--field-line);border-radius:var(--r);background:var(--paper);font-weight:700;font-size:15px;line-height:1.1;text-align:center;padding:4px}
.slots span small{display:block;font-weight:500;font-size:13px;color:var(--muted)}
.slots input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.slots input:checked+span small{color:var(--on-dark-muted)}
.slots input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.err{color:var(--bad);font-size:14px;font-weight:600;margin:-4px 0 10px}
.success{text-align:center;padding:24px 8px}
.success .ok-ico{width:72px;height:72px;border-radius:50%;background:var(--good-soft);color:var(--good);display:grid;place-items:center;margin:0 auto 18px}
.success .ok-ico svg{width:36px;height:36px}
.success h3,.success .success-title{font-size:34px;margin-bottom:8px}
.success p{color:var(--muted)}

/* ---------- Trust strip ---------- */
.trust{background:var(--paper);border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:repeat(5,1fr)}
.trust-item{display:flex;align-items:center;gap:12px;padding:26px 14px;border-right:1px solid var(--line)}
.trust-item:last-child{border-right:0}
.trust-item svg{width:44px;height:44px;flex-shrink:0;color:var(--gold);background:var(--soot);border-radius:50%;padding:11px;box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--soot)}
.trust-item b{display:block;font-family:var(--f-head);font-size:16px;font-weight:400;text-transform:uppercase;line-height:1.1}
.trust-item small{color:var(--muted);font-size:14px;line-height:1.3;display:block}
@media (max-width:1000px){.trust .wrap{grid-template-columns:repeat(2,1fr)}.trust-item{border-bottom:1px solid var(--line)}.trust-item:nth-child(2n){border-right:0}.trust-item:last-child{grid-column:1/-1;border-bottom:0}}
@media (max-width:520px){.trust .wrap{grid-template-columns:1fr}.trust-item{border-right:0}}

/* Seasonal / promo banner */
.season{background:var(--soot);color:var(--on-dark);border-block:2px solid var(--gold)}
.season .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}
.season p{font-weight:600;font-size:17px}
.season b{font-family:var(--f-head);font-weight:400;font-size:21px;text-transform:uppercase;letter-spacing:.02em;margin-right:8px;color:var(--gold)}

/* ---------- Cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc-grid.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1100px){.svc-grid,.svc-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.svc-grid,.svc-grid.cols-3{grid-template-columns:1fr;gap:12px}}
@media (min-width:561px) and (max-width:1100px){.svc-grid>:last-child:nth-child(odd){grid-column:1/-1}}
.svc{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s;text-decoration:none;color:var(--ink)}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--ink)}
.svc .ico{width:56px;height:56px;border-radius:14px;background:var(--soot);color:var(--gold);display:grid;place-items:center;margin-bottom:20px}
.svc .ico svg{width:30px;height:30px}
.svc h3{margin-bottom:8px}
.svc p{color:var(--muted);font-size:16px;flex:1}
.svc ul{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:6px;font-size:15px}
.svc li{display:flex;gap:8px;align-items:flex-start}
.svc li::before{content:"";width:6px;height:6px;margin-top:9px;background:var(--brick);flex-shrink:0;transform:rotate(45deg)}
.svc .tag{position:absolute;top:18px;right:18px}
.svc .more{margin-top:18px;font-family:var(--f-display);font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:12px;color:var(--brick-deep)}
/* Compact service card (icon beside text): phones, and the full-width last card on tablets */
@media (max-width:560px){
  .svc-grid .svc{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;align-content:start;padding:20px}
  .svc-grid .svc>*{grid-column:2}
  .svc-grid .svc>.ico{grid-column:1;grid-row:1/span 6;width:44px;height:44px;border-radius:12px;margin:0}
  .svc-grid .svc>.ico svg{width:24px;height:24px}
  .svc-grid .svc h3{font-size:22px;margin:4px 0 6px}
  .svc-grid .svc .more{margin-top:10px}
}
@media (min-width:561px) and (max-width:1100px){
  .svc-grid>.svc:last-child:nth-child(odd){display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:20px;align-content:start}
  .svc-grid>.svc:last-child:nth-child(odd)>*{grid-column:2}
  .svc-grid>.svc:last-child:nth-child(odd)>.ico{grid-column:1;grid-row:1/span 6;margin:0}
}
.tag{display:inline-block;background:var(--gold);color:var(--gold-ink);font-family:var(--f-display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:6px;line-height:1.3}
.tag-brick{background:var(--gold-soft);color:var(--brick-deep);box-shadow:inset 0 0 0 1px rgba(226,96,15,.45)}
.tag-dark{background:var(--soot);color:var(--gold)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.card h3{margin-bottom:10px}
.card p{color:var(--muted)}
.card-dark{background:var(--soot-2);border:1px solid var(--soot-line);border-radius:var(--r-lg);padding:26px;color:var(--on-dark)}
.card-dark h3{margin-bottom:10px}
.card-dark p{color:var(--on-dark-muted)}
.card .ico,.card-dark .ico{width:48px;height:48px;border-radius:12px;background:var(--soot);color:var(--gold);display:grid;place-items:center;margin-bottom:16px}
.card .ico svg,.card-dark .ico svg{width:26px;height:26px}
a.card{text-decoration:none;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s;display:block}
a.card:hover{border-color:var(--ink);box-shadow:var(--shadow);transform:translateY(-3px)}

/* Feature list with check marks */
.checklist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.checklist li{display:flex;gap:12px;align-items:flex-start}
.checklist li::before{content:"";flex-shrink:0;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--good-soft) no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%232F7D4A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.on-dark .checklist li::before,.band-dark .checklist li::before{background-color:rgba(242,107,29,.14);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F26B1D' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.checklist.cols-2{grid-template-columns:1fr 1fr;gap:12px 24px}
@media (max-width:600px){.checklist.cols-2{grid-template-columns:1fr}}
.xlist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.xlist li{display:flex;gap:12px;align-items:flex-start}
.xlist li::before{content:"!";flex-shrink:0;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--bad-soft);color:var(--bad);font-weight:800;font-size:14px;display:grid;place-items:center}

/* Key/value list */
.kv{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0}
.kv dt{font-weight:700}
.kv dd{margin:0;color:var(--muted)}
.on-dark .kv dd,.band-dark .kv dd,.phero-aside .kv dd{color:var(--on-dark-muted)}
.phero-aside .kv dt{color:var(--on-dark)}

/* Callouts */
.callout{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:var(--r);background:var(--gold-soft);border-left:5px solid var(--gold);font-size:17px}
.callout svg{width:24px;height:24px;flex-shrink:0;margin-top:2px;color:var(--gold-deep)}
.callout b{display:block;margin-bottom:2px}
.callout-warn{background:var(--bad-soft);border-left-color:var(--bad)}
.callout-warn svg{color:var(--bad)}
.callout-good{background:var(--good-soft);border-left-color:var(--good)}
.callout-good svg{color:var(--good)}

/* Split: copy beside an illustration or card */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.reverse>:first-child{order:2}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:32px}.split.reverse>:first-child{order:0}}
.split>*{min-width:0}
.figure-card{background:var(--soot);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.figure-card svg{width:100%;height:auto}
@media (max-width:600px){.figure-card{margin-left:-16px;margin-right:-16px;border-radius:0;box-shadow:none}.prose figure .figure-card{margin-left:-16px;margin-right:-16px}}

/* ---------- Inspection tabs ---------- */
.lvl-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
@media (max-width:960px){.lvl-wrap{grid-template-columns:1fr;gap:32px}}
.tabs{display:flex;gap:8px;margin:28px 0 0;flex-wrap:wrap}
.tab{background:var(--soot-2);border:1.5px solid var(--soot-line);color:var(--on-dark-muted);border-radius:10px;padding:12px 20px;font-family:var(--f-display);font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.tab[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.panel{background:var(--soot-2);border:1px solid var(--soot-line);border-radius:var(--r-lg);padding:32px;color:var(--on-dark)}
.panel h3{font-size:34px}
.panel .when{display:inline-block;margin:12px 0 18px;padding:6px 12px;border-radius:8px;background:var(--soot-3);color:var(--gold);font-weight:700;font-size:15px}
.panel p{color:var(--on-dark-muted)}
.panel ul{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
@media (max-width:560px){.panel ul{grid-template-columns:1fr}}
.panel li{display:flex;gap:10px;align-items:flex-start;font-size:16px}
.panel li svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;margin-top:3px}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--r-lg)}
.compare,.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;font-size:16px}
.compare th,.compare td,.table th,.table td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.compare tr:last-child td,.table tr:last-child td{border-bottom:0}
.table .tag,.compare .tag{white-space:nowrap}
.table .link-arrow{font-size:13px;letter-spacing:.07em}
.link-arrow .nw{white-space:nowrap}
.compare thead th,.table thead th{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:12px;background:var(--sand)}
.compare thead th.us{background:var(--soot);color:var(--gold)}
.compare td.us{background:#FFF3EC;font-weight:600}
.compare .yes,.compare .no{display:flex;align-items:center;gap:8px}
.compare .yes svg{color:var(--good)}.compare .no svg{color:var(--bad)}
.compare svg{width:20px;height:20px;flex-shrink:0}
.compare td:nth-child(3){color:var(--muted)}
@media (max-width:640px){.compare th,.compare td,.table th,.table td{padding:12px;font-size:14px}.compare thead th,.table thead th{font-size:11px;letter-spacing:.1em}
  .compare,.compare thead,.compare tbody{display:block}
  .compare tr{display:grid;grid-template-columns:1fr 1fr}
  .compare thead th:first-child{display:none}
  .compare tbody td:first-child{grid-column:1/-1;padding:14px 14px 4px;border-bottom:0;font-family:var(--f-display);font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
  .compare tbody td.us,.compare tbody td:nth-child(3){padding:8px 14px 14px;font-size:15px;align-self:stretch}
  .compare .yes,.compare .no{align-items:flex-start}
  .compare .yes svg,.compare .no svg{margin-top:1px}
}

/* ---------- Process steps (ordered) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step;list-style:none;padding:0;margin:0}
.steps.cols-3{grid-template-columns:repeat(3,1fr)}
.steps.cols-1{grid-template-columns:1fr}
@media (max-width:1000px){.steps,.steps.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps,.steps.cols-3{grid-template-columns:1fr}}
.step{position:relative;padding:28px 24px 26px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg)}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--f-head);font-weight:400;font-size:56px;line-height:1;color:var(--sand);position:absolute;top:16px;right:20px}
.step h3{margin:44px 0 10px;position:relative}
.step p{color:var(--muted);font-size:16px;position:relative}
.step .bar{position:absolute;left:24px;top:28px;width:42px;height:6px;border-radius:3px;background:var(--brick)}
@media (max-width:560px){.steps{gap:12px}.step{padding:22px 20px}.step::before{font-size:48px;top:14px;right:18px}.step h3{margin-top:30px;font-size:22px}.step .bar{left:20px;top:22px}}

/* ---------- Self-check ---------- */
.checker{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media (max-width:900px){.checker{grid-template-columns:1fr}}
.signs{display:grid;gap:10px}
.sign{display:flex;gap:14px;align-items:center;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s}
.sign input{width:22px;height:22px;accent-color:var(--gold-deep);flex-shrink:0}
.sign:has(input:checked){border-color:var(--gold-deep);background:var(--gold-soft)}
.sign b{display:block;font-weight:700}
.sign small{color:var(--muted);font-size:14px}
.verdict{position:sticky;top:110px;background:var(--soot);color:var(--on-dark);border-radius:var(--r-lg);padding:32px}
.meter{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin:20px 0}
.meter i{height:16px;border-radius:2px;background:var(--soot-3);transition:background .25s}
.meter i.on{background:var(--alert)}
.verdict[data-level="0"] .meter i.on{background:var(--good)}
.verdict[data-level="1"] .meter i.on{background:var(--gold)}
.verdict h3{font-size:34px}
.verdict p{color:var(--on-dark-muted);margin:10px 0 24px}

/* ---------- Reviews ---------- */
.rev-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.rev-top .section-head{margin-bottom:0}
.score{display:inline-flex;align-items:center;gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 22px;color:var(--ink)}
.score b{font-family:var(--f-head);font-size:50px;font-weight:400;line-height:1}
.score small{display:block;color:var(--muted);font-size:14px}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:1000px){.rev-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.rev-grid{grid-template-columns:1fr}}
.rev{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.rev blockquote{margin:0;font-size:17px;flex:1}
.rev blockquote::before{content:"“"}.rev blockquote::after{content:"”"}
.rev footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.rev footer>div{flex:1}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--soot);color:var(--gold);display:grid;place-items:center;font-family:var(--f-head);font-weight:400;font-size:19px;flex-shrink:0}
.rev footer b{display:block;font-size:16px}
.rev footer small{color:var(--muted);font-size:14px}
.sample-tag{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);padding:3px 8px;border-radius:6px}
.sample-note{margin-top:16px;font-size:14px;color:var(--muted)}

/* ---------- Service areas ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:15px;font-weight:600;text-decoration:none;color:var(--ink);transition:border-color .15s,background .15s}
a.chip:hover{border-color:var(--ink)}
.band-dark .chip,.on-dark .chip{background:var(--soot-2);border-color:var(--soot-line);color:var(--on-dark)}
.band-dark a.chip:hover,.on-dark a.chip:hover{border-color:var(--gold);color:var(--gold)}
.zip{display:flex;gap:10px;max-width:460px}
.zip input{flex:1;min-width:0;min-height:52px;border:1.5px solid var(--field-line);border-radius:var(--r);padding:0 16px;background:var(--paper);font-size:17px}
.zip input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(242,107,29,.22)}
.zip-msg{margin-top:12px;font-weight:600;min-height:28px}
.zip-msg.ok{color:var(--good)}.zip-msg.maybe{color:var(--warn)}
.on-dark .zip-msg.ok,.band-dark .zip-msg.ok{color:#7FD39B}.on-dark .zip-msg.maybe,.band-dark .zip-msg.maybe{color:var(--gold)}
.map{background:var(--soot);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
@media (max-width:600px){.map{margin-left:-16px;margin-right:-16px;border-radius:0;box-shadow:none}.map .map-town{font-size:19px}.map .map-river{font-size:15px}.map .map-city{font-size:22px}}
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:900px){.area-grid{grid-template-columns:1fr 1fr}.area-grid>:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:520px){.area-grid{grid-template-columns:1fr}}
.area-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.area-card:hover{border-color:var(--ink);transform:translateY(-2px)}
.area-card b{font-size:18px}
.area-card small{grid-column:1;color:var(--muted);font-size:14px}
.area-card span{grid-row:1/3;grid-column:2;font-size:20px;color:var(--brick)}

/* ---------- FAQ ---------- */
.faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
@media (max-width:960px){.faq-wrap{grid-template-columns:1fr;gap:28px}}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;font-weight:700;font-size:18px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:22px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details[open]{border-color:var(--ink)}
.faq .ans{padding:0 22px 22px;color:var(--muted)}
.faq .ans>*+*{margin-top:10px}
.faq .ans a{color:var(--brick-deep);font-weight:600}
.help-card{background:var(--soot);color:var(--on-dark);border-radius:var(--r-lg);padding:28px;margin-top:28px}
.help-card h3{font-size:28px}
.help-card p{color:var(--on-dark-muted);margin:8px 0 20px}

/* ---------- Article layout ---------- */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start}
@media (max-width:1000px){.article{grid-template-columns:1fr;gap:40px}}
.aside-sticky{position:sticky;top:110px;display:grid;gap:20px}
.toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}
.toc h4{margin-bottom:12px}
.toc ol{margin:0;padding-left:20px;display:grid;gap:8px;font-size:15px}
.toc a{text-decoration:none;color:var(--ink)}
.toc a:hover{color:var(--brick)}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--on-dark-muted);font-size:15px;margin-top:20px}
.resource-card{display:flex;flex-direction:column;gap:10px}
.resource-card .tag{align-self:flex-start}
.resource-card h3{font-size:26px}
.resource-card.link-arrow{margin-top:auto;padding-top:8px}
a.card.resource-card{display:flex}
.resource-card small{color:var(--muted);font-size:14px}
.prose>:first-child{margin-top:0}
.prose .checklist,.prose .xlist{padding-left:0}
.toc h3,.toc h4{font-size:19px;letter-spacing:.04em;margin-bottom:12px}
.aside-sticky .help-card{margin-top:0}
@media (max-width:1000px){.article .toc{display:none}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--gold);color:var(--ink);position:relative;overflow:hidden}
.cta-band::before,.book::before{content:"";position:absolute;inset:0;opacity:.035;background:
  repeating-linear-gradient(0deg,transparent 0 26px,#fff 26px 28px),
  repeating-linear-gradient(90deg,transparent 0 58px,#fff 58px 60px);pointer-events:none}
.cta-band::before{inset:14px;opacity:1;background:none;border:2px solid rgba(31,35,40,.22);border-radius:14px}
.cta-band .wrap{position:relative;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-top:64px;padding-bottom:64px}
.cta-band h2{font-size:clamp(30px,3.8vw,46px)}
.cta-band p{color:#3A3122;margin-top:10px;max-width:560px}
.cta-band .btn-dark{box-shadow:0 8px 22px rgba(31,35,40,.22)}
.cta-band .btn-outline:hover{background:var(--ink);color:var(--gold)}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px}
/* keep copy well inside the inset plate border when the wrap gutter gets narrow */
@media (max-width:1260px){.cta-band .wrap{padding-left:44px;padding-right:44px}}
@media (max-width:600px){.cta-band::before{inset:8px;border-radius:10px}.cta-band .wrap{padding:52px 28px}}
@media (max-width:560px){.hero-ctas .btn,.cta-actions,.cta-actions .btn{width:100%}}
.book{background:var(--soot);color:var(--on-dark);position:relative;overflow:hidden}
.book-wrap{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
@media (max-width:960px){.book-wrap{grid-template-columns:1fr;gap:32px}}
.book-wrap>*{min-width:0}
@media (max-width:420px){.book-call{padding:16px;gap:12px}.book-call a{font-size:26px}}
.book-list{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.book-list li{display:flex;gap:12px;align-items:flex-start}
.book-list svg{width:24px;height:24px;color:var(--gold);flex-shrink:0}
.book-call{margin-top:32px;padding:22px;border:1px solid var(--soot-line);border-radius:var(--r-lg);display:flex;align-items:center;gap:16px}
.book-call>svg{display:block;flex-shrink:0;width:40px;height:40px;color:var(--gold)}
.book-call small{color:var(--on-dark-muted);display:block;font-size:14px}
.book-call a{font-family:var(--f-head);font-size:32px;font-weight:400;color:var(--gold);text-decoration:none;letter-spacing:.02em}

/* ---------- Landing pages ---------- */
.lp-hero>.wrap{padding-bottom:230px}
@media (max-width:980px){.lp-hero>.wrap{padding-bottom:180px}}
.offer{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--gold-ink);border-radius:10px;padding:8px 16px 8px 10px;font-weight:700;font-size:15px}
.offer b{background:var(--soot);color:var(--gold);border-radius:6px;padding:3px 10px;font-family:var(--f-display);font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.badge{display:inline-flex;align-items:center;gap:8px;border:0;border-left:3px solid var(--gold);background:rgba(242,107,29,.08);border-radius:4px;padding:8px 14px 8px 11px;font-size:14px;font-weight:600;color:var(--on-dark)}
.badge svg{width:16px;height:16px;color:var(--gold)}
.ftr-min{background:var(--soot);border-top:3px solid var(--gold);color:var(--on-dark-muted);padding:32px 0 110px;font-size:14px}
.ftr-min .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media (min-width:701px){.ftr-min{padding-bottom:32px}}
.ftr-min a{color:var(--on-dark-muted)}

/* ---------- Footer ---------- */
.ftr{background:var(--soot);color:var(--on-dark-muted);padding:0 0 120px;font-size:15px}
.ftr-sky{position:relative;height:clamp(190px,18vw,260px);overflow:hidden;margin-bottom:48px;border-top:3px solid var(--gold)}
.ftr .ftr-sky .skyline{z-index:0}
.ftr .logo-img{height:132px}
.ftr-tag{font-family:var(--f-head);font-size:19px;white-space:nowrap;color:var(--gold);text-transform:uppercase;letter-spacing:.02em;margin-bottom:10px}
/* Tagline set large in the empty, unlit half of the skyline band (desktop/tablet); phones keep the small one under the logo */
.ftr-sky>.wrap{position:relative;z-index:1;height:100%;display:flex;align-items:flex-end;padding-bottom:clamp(28px,3vw,44px)}
.ftr-sign{margin:0;font-family:var(--f-head);font-size:clamp(34px,3.6vw,52px);line-height:1;text-transform:uppercase;letter-spacing:.01em;color:var(--gold);max-width:9em}
.ftr-sign::first-line{color:var(--on-dark)}
@media (min-width:701px){.ftr-tag{display:none}}
@media (max-width:700px){.ftr-sky{height:150px;margin-bottom:36px}}
@media (max-width:700px){.ftr-sign{display:none}}
@media (min-width:701px){.ftr{padding-bottom:40px}}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:40px}
@media (max-width:1000px){.ftr-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.ftr-grid{grid-template-columns:1fr 1fr}.ftr-grid>:first-child{grid-column:1/-1}}
.ftr h2{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--gold);margin:0 0 16px}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ftr a{text-decoration:none}
.ftr a:hover{color:var(--gold)}
.ftr .logo{margin-bottom:16px}
.ftr .phone-lg{color:var(--gold);font-size:24px;font-family:var(--f-head);letter-spacing:.02em}
.ftr-bottom{border-top:1px solid var(--soot-line);margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}
.ftr-bottom nav{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- Floating call / book bar (all sizes): Call 65%, Book 35% ---------- */
.mbar{position:fixed;z-index:60;display:flex;gap:8px;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));padding:8px;background:rgba(20,22,25,.94);border:1px solid var(--soot-line);border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mbar .btn{min-height:52px;font-size:14px;letter-spacing:.06em;padding:0 12px;white-space:nowrap}
.mbar .mbar-call{flex:65 1 0;min-width:0}
.mbar .mbar-book{flex:35 1 0;min-width:0;background:transparent;color:var(--on-dark);box-shadow:inset 0 0 0 2px var(--soot-line)}
.mbar .mbar-book:hover{box-shadow:inset 0 0 0 2px var(--gold);color:var(--gold)}
.mbar .mbar-num{display:none}
@media (max-width:520px){.mbar .btn{font-size:13px;letter-spacing:.04em;padding:0 8px;gap:8px}.mbar .mbar-book svg{display:none}}
@media (max-width:350px){.mbar .btn{font-size:12px;letter-spacing:.02em}}
@media (min-width:701px){
  .mbar{left:auto;right:24px;bottom:24px;width:560px}
  .mbar .mbar-num{display:inline;font-family:var(--f-head);letter-spacing:.02em;text-transform:none;font-size:16px;margin-left:2px}
  .mbar .mbar-num::before{content:"·";margin-right:8px;opacity:.6}
}
.ftr,.ftr-min{padding-bottom:110px!important}
/* ---------- Motion ---------- */
.reveal{transition:opacity .6s ease,transform .6s ease}
.js .reveal.pre{opacity:0;transform:translateY(16px)}
@media (prefers-reduced-motion: reduce){.js .reveal.pre{opacity:1;transform:none}}

/* ---------- 404 / thank-you ---------- */
.notice-page{min-height:60vh;display:grid;place-items:center;text-align:center}
.notice-page .big{font-family:var(--f-head);font-weight:400;font-size:clamp(96px,16vw,200px);line-height:.9;color:var(--gold)}

/* ---------- Spacing helpers (last, so they win over component margins) ---------- */
.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-48{margin-top:48px}

/* Self-check on phones/tablets: the result follows the list, so keep a compact version pinned to the bottom while ticking */
@media (max-width:900px){
  .checker{display:block}
  .checker .signs{margin-bottom:24px}
  .verdict{position:sticky;top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));padding:16px 18px;box-shadow:0 -8px 30px rgba(0,0,0,.25);display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 14px}
  .verdict .eyebrow,.verdict p{display:none}
  .verdict .meter{grid-column:1/-1;margin:0 0 6px;order:-1}
  .verdict h3{font-size:22px}
  .verdict .btn{min-height:44px;font-size:15px;padding:0 14px}
}
@media (max-width:700px){.verdict{bottom:calc(82px + env(safe-area-inset-bottom,0px))}}

/* Grid children may shrink below their content width (prevents clipped text/SVG in single-column heroes) */
.hero>.wrap>*,.phero>.wrap>*,.lvl-wrap>*,.faq-wrap>*,.checker>*{min-width:0}
.map{max-width:100%}
.map svg{width:100%;height:auto}

/* ================= Old-fashioned layer =================
   Paper-toned bands with a faint grain, old printed-type labels between double rules, double-ruled cards
   like shop labels, seal-style round icons, square-cornered plates, and framed sepia photographs. */
body{background-color:var(--cream)}
.band-paper{background-color:var(--paper)}
/* printed-type eyebrow between double rules */
.eyebrow{font-family:var(--f-old);font-weight:400;font-size:18px;letter-spacing:.06em;text-transform:none;gap:14px}
.eyebrow::before,.section-head.center .eyebrow::after{content:"";width:34px;height:2px;border-radius:0;background:var(--gold);box-shadow:0 5px 0 var(--gold)}
.eyebrow::before{transform:translateY(-3px)}
.section-head.center .eyebrow::after{transform:translateY(-3px)}
.lede em,.oldstyle{font-family:var(--f-old-it);font-style:italic}
/* plates: square corners with an inner rule */
:root{--r:6px;--r-lg:8px}
.btn{border-radius:4px}
.tag{border-radius:3px}
.card,.svc,.step,.rev,.area-card,.toc,.faq details,.score{border-radius:var(--r-lg);box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--line)}
.card,.svc,.step,.rev,.area-card{background:var(--paper)}
.svc:hover,a.card:hover{box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--gold),0 10px 26px rgba(42,38,34,.12)}
.card-dark{border-radius:var(--r-lg);box-shadow:inset 0 0 0 4px var(--soot-2),inset 0 0 0 5px var(--soot-line)}
/* seal-style icons */
.svc .ico,.card .ico,.card-dark .ico{border-radius:50%;box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--soot)}
.card-dark .ico{box-shadow:0 0 0 3px var(--soot-2),0 0 0 4px var(--gold)}
.trust-item svg{border-radius:50%}
/* ornamental divider for between blocks: <div class="ornament" aria-hidden="true"></div> */
.ornament{display:flex;align-items:center;gap:14px;justify-content:center;color:var(--gold);margin:0 auto}
.ornament::before,.ornament::after{content:"";height:1px;width:min(160px,30vw);background:currentColor;box-shadow:0 4px 0 currentColor}
.ornament span{font-size:14px;letter-spacing:.5em}
/* framed sepia photographs */
.photo{position:relative;margin:0;background:#FBF7EF;padding:10px 10px 12px;box-shadow:0 1px 0 rgba(0,0,0,.05),0 18px 40px rgba(31,35,40,.28);border-radius:2px}
.photo img{display:block;width:100%;height:auto;filter:sepia(.18) contrast(1.02)}
.photo figcaption{font-family:var(--f-old-it);font-style:italic;font-size:15px;color:var(--muted);text-align:center;padding-top:10px}
.photo.tilt{transform:rotate(-1.6deg)}
.photo.tilt-r{transform:rotate(1.4deg)}
.on-dark .photo,.band-dark .photo{box-shadow:0 18px 44px rgba(0,0,0,.55)}
.photo-wide img{aspect-ratio:16/9;object-fit:cover}
.photo-band{position:relative;min-height:340px;display:grid;place-items:center;color:var(--on-dark);background:var(--soot) center/cover no-repeat;isolation:isolate}
.photo-band::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,35,40,.55),rgba(31,35,40,.75));z-index:-1}
/* ---------- Booking bar under the home hero ----------
   A white plate that overlaps the bottom of the hero so the first booking step shows near the fold,
   followed directly by the trust strip (same white band). */
.bookbar{--lift:118px;margin-top:calc(var(--lift) * -1);background:linear-gradient(transparent var(--lift),var(--paper) var(--lift));position:relative;z-index:2}
.bookbar>.wrap{padding-bottom:4px}
.bookbar-card{position:relative;background:var(--paper);border-top:4px solid var(--gold);border-radius:var(--r-lg);padding:30px 32px 22px;box-shadow:0 26px 60px rgba(10,12,14,.32),0 2px 6px rgba(10,12,14,.12)}
.bookbar-card::before{content:"";position:absolute;inset:7px;border:1px solid var(--line);border-radius:4px;pointer-events:none}
.bookbar-head{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;margin-bottom:20px}
.bookbar-head h2{font-size:clamp(28px,3vw,38px);margin-top:8px}
.bookbar-points{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:15px;font-weight:600;color:var(--ink)}
.bookbar-points li{display:inline-flex;align-items:center;gap:8px}
.bookbar-points svg{width:18px;height:18px;color:var(--gold-deep);flex-shrink:0}
.bookbar-form{position:relative;display:grid;grid-template-columns:1.35fr .75fr 1fr .95fr auto;gap:12px;align-items:end}
.bookbar-form .field{margin:0}
.bookbar-form .btn{min-height:50px;padding:0 26px}
.bookbar-form .err{grid-column:1/-1;margin:0}
.bookbar .fine{position:relative;justify-content:flex-start;flex-wrap:wrap;margin-top:16px}
.bookbar .fine a{color:var(--ink);font-weight:700;text-decoration:none;white-space:nowrap}
.bookbar .fine a:hover{color:var(--brick-deep)}
.bookbar+.trust{border-top:0}
.hero.has-fire>.wrap{grid-template-columns:minmax(0,780px) 1fr;padding-bottom:210px}
.bookbar-form .btn{white-space:nowrap}
@media (max-width:1100px){.bookbar-form{grid-template-columns:repeat(3,minmax(0,1fr))}.bookbar-form .field:first-child,.bookbar-form .btn{grid-column:1/-1}}
@media (max-width:980px){.hero.has-fire>.wrap{grid-template-columns:1fr;padding-bottom:120px}.bookbar{--lift:64px}}
@media (max-width:600px){.bookbar-card{padding:24px 20px 18px;margin-left:-4px;margin-right:-4px}.bookbar-points{display:grid;gap:6px;font-size:15px}.bookbar-head{margin-bottom:16px}}
@media (max-width:560px){.bookbar-form{grid-template-columns:1fr 1fr}.bookbar-form .field:nth-child(4){grid-column:1/-1}}

/* ---------- Icon list: rows with a seal icon, separated by hairlines (ledger style) ----------
   <ul class="ilist"><li><span class="ico"><svg><use href="#i-snow"/></svg></span><div><b>Title</b><p>Text</p></div></li></ul>
   Add .boxed for a white double-ruled plate around the list. */
.ilist{list-style:none;padding:0;margin:0;display:grid}
.ilist>li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;align-items:start;padding:20px 0;border-top:1px solid var(--line)}
.ilist>li:first-child{border-top:0;padding-top:4px}
.ilist>li:last-child{padding-bottom:4px}
.ilist .ico{width:48px;height:48px;border-radius:50%;background:var(--soot);color:var(--gold);display:grid;place-items:center;margin:2px;box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--soot)}
.ilist .ico svg{width:24px;height:24px}
.ilist b{display:block;font-family:var(--f-head);font-weight:400;font-size:21px;line-height:1.15;text-transform:uppercase;letter-spacing:.01em}
.ilist p{color:var(--muted);font-size:16px;margin-top:6px}
.ilist.boxed{background:var(--paper);border-radius:var(--r-lg);padding:14px 28px;box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--line),var(--shadow)}
.ilist.boxed>li:first-child{padding-top:18px}.ilist.boxed>li:last-child{padding-bottom:18px}
.band-dark .ilist>li,.on-dark .ilist>li{border-color:var(--soot-line)}
.band-dark .ilist .ico,.on-dark .ilist .ico{box-shadow:0 0 0 3px var(--soot),0 0 0 4px var(--gold)}
.band-dark .ilist p,.on-dark .ilist p{color:var(--on-dark-muted)}
@media (max-width:600px){.ilist>li{grid-template-columns:44px minmax(0,1fr);gap:14px}.ilist .ico{width:40px;height:40px}.ilist .ico svg{width:20px;height:20px}.ilist b{font-size:19px}.ilist.boxed{padding:8px 20px}}

/* ---------- Inspection levels: help line under the tabs + photo-report key ---------- */
.lvl-help{margin-top:36px;padding-top:28px;border-top:1px solid var(--soot-line);max-width:480px}
.lvl-help p{color:var(--on-dark-muted)}
.lvl-help .row{margin-top:18px;gap:14px 22px}
.lvl-help .link-arrow{color:var(--on-dark)}
.lvl-help .link-arrow:hover{color:var(--gold)}
.report-note{margin-top:20px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;border:1px solid var(--soot-line);border-radius:var(--r-lg);padding:24px 26px;background:rgba(0,0,0,.18)}
.report-note>svg{width:46px;height:46px;padding:11px;border-radius:50%;color:var(--gold);background:var(--soot);box-shadow:0 0 0 3px #22262B,0 0 0 4px var(--gold)}
.report-note b{display:block;font-family:var(--f-head);font-weight:400;font-size:22px;text-transform:uppercase;letter-spacing:.01em;line-height:1.1;color:var(--on-dark)}
.report-note p{color:var(--on-dark-muted);font-size:16px;margin-top:6px}
.report-key{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--on-dark-muted)}
.report-key li{display:inline-flex;align-items:center;gap:8px}
.report-key span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;padding:3px 9px;border-radius:3px;background:var(--bad)}
.report-key .m{background:var(--warn)}.report-key .g{background:var(--good)}
@media (max-width:520px){.report-note{grid-template-columns:1fr;gap:12px;padding:20px}.report-key{display:grid;gap:8px}}

/* ---------- Landing-page hero ---------- */
.lp-hero .hero-proof{margin-top:26px}
.lp-hero .hero-ctas{margin-top:28px}
.lp-call{display:inline-flex;align-items:center;gap:14px;color:var(--on-dark);text-decoration:none}
.lp-call>svg{width:46px;height:46px;padding:12px;border-radius:50%;border:1.5px solid rgba(246,247,248,.35);color:var(--gold);flex-shrink:0;transition:border-color .15s}
.lp-call small{display:block;font-size:14px;color:var(--on-dark-muted);font-weight:600}
.lp-call b{display:block;font-family:var(--f-head);font-weight:400;font-size:26px;letter-spacing:.02em;color:var(--gold);line-height:1.1}
.lp-call:hover>svg{border-color:var(--gold)}
.qb .btn-gold{box-shadow:0 3px 0 #B4470A}
/* dark CTA card beside a warning-sign list (landing pages) */
.card-dark .checklist{margin-top:18px}
.card-dark .checklist li{color:var(--on-dark)}
.card-dark .checklist li::before{background-color:rgba(242,107,29,.14);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F26B1D' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.card-dark .checklist small{display:block;color:var(--on-dark-muted);font-size:15px}

/* ---------- Booking form inside an interior hero (book.html) ---------- */
.phero-form{align-self:start}
.phero.has-form>.wrap{grid-template-columns:1fr minmax(0,500px);grid-template-rows:auto 1fr;grid-template-areas:"intro form" "more form";column-gap:56px;row-gap:0;align-items:start;padding-bottom:180px}
.phero.has-form>.wrap>:first-child{grid-area:intro}
.phero.has-form .phero-form{grid-area:form}
.phero.has-form .phero-more{grid-area:more}
.phero.has-form .form-card{box-shadow:0 30px 60px rgba(0,0,0,.45)}
.phero.has-form .form-card::before{content:"";position:absolute;inset:6px;border:2px solid var(--gold);border-radius:6px;pointer-events:none}
.form-card .form-title{font-size:30px}
.form-card .form-title+.sub{margin-bottom:18px}
.expect{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px;max-width:520px}
.expect li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;color:var(--on-dark-muted)}
.expect li b{color:var(--on-dark);font-weight:700}
.expect svg{width:22px;height:22px;color:var(--gold);margin-top:2px}
@media (max-width:980px){.phero.has-form>.wrap{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"intro" "form" "more";row-gap:32px;padding-bottom:150px}.phero.has-form .expect{margin-top:0}}

/* ---------- Small polish ---------- */
::selection{background:#FBD3BA;color:var(--ink)}
.btn-ghost:hover{background:rgba(242,107,29,.08)}
.offer{background:rgba(242,107,29,.12);color:var(--on-dark);box-shadow:inset 0 0 0 1px rgba(242,107,29,.55)}
.offer b{background:var(--gold);color:var(--gold-ink)}
.book-list li{color:var(--on-dark-muted)}
.book-list b{color:var(--on-dark);font-weight:700}

/* ---------- Articles: sidebar and buttons inside prose ---------- */
.aside-sticky>*{min-width:0}
.help-card .btn{white-space:normal;text-align:center;line-height:1.2;padding-top:10px;padding-bottom:10px}
/* short laptop screens: a tall sticky sidebar would cut off its booking card, so let it scroll with the page */
@media (max-height:860px){.aside-sticky{position:static}}
.prose a.btn{text-decoration:none;font-weight:800}
.prose a.btn-gold,.prose a.btn-gold:hover{color:var(--gold-ink)}
.prose a.btn-dark,.prose a.btn-dark:hover{color:var(--on-dark)}
.prose a.btn-outline{color:var(--ink)}
.prose a.btn-outline:hover{color:var(--cream)}
.prose a.btn-white,.prose a.btn-white:hover{color:var(--ink)}
.book .form-card::before{content:"";position:absolute;inset:6px;border:2px solid var(--gold);border-radius:6px;pointer-events:none}
/* service + ZIP row keeps two columns on phones (ZIP is short) */
.row2.r21{grid-template-columns:minmax(0,2.2fr) minmax(88px,1fr)}
/* old-fashioned eyebrow at phone width */
@media (max-width:600px){.eyebrow{font-size:16px;gap:10px}.eyebrow::before,.section-head.center .eyebrow::after{width:24px}}
.row2.keep{grid-template-columns:1fr 1fr}
/* Phones: icon cards go compact (seal icon beside the text) so a stack of four doesn't run several screens */
@media (max-width:560px){
  .card:has(>.ico):not(:has(>.aside-photo)),.card-dark:has(>.ico):not(:has(>.aside-photo)){display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;align-content:start;padding:20px}
  .card:has(>.ico):not(:has(>.aside-photo))>*,.card-dark:has(>.ico):not(:has(>.aside-photo))>*{grid-column:2}
  .card:has(>.ico):not(:has(>.aside-photo))>.ico,.card-dark:has(>.ico):not(:has(>.aside-photo))>.ico{grid-column:1;grid-row:1/span 8;width:44px;height:44px;margin:2px 0 0}
  .card:has(>.ico):not(:has(>.aside-photo))>.ico svg,.card-dark:has(>.ico):not(:has(>.aside-photo))>.ico svg{width:22px;height:22px}
  .card:has(>.ico):not(:has(>.aside-photo)) h3,.card-dark:has(>.ico):not(:has(>.aside-photo)) h3{font-size:21px}
  .card-dark:has(>.ico):not(:has(>.aside-photo)){align-items:center}
  .card-dark:has(>.ico):not(:has(>.aside-photo))>.ico{grid-row:1;margin:0}
  .card-dark:has(>.ico):not(:has(>.aside-photo))>:not(.ico){grid-column:1/-1}
  .card-dark:has(>.ico):not(:has(>.aside-photo))>.ico+*{grid-column:2;grid-row:1;justify-self:start;margin-top:0}
  .card-dark:has(>.ico):not(:has(>.aside-photo))>.ico+*+*{margin-top:12px}
}
/* Phones: the closing booking band leads with the form (the benefits list is already shown higher on every page) */
@media (max-width:600px){.book .book-list{display:none}.book .book-call{margin-top:20px}}
/* photos in hero and "at a glance" cards */
.hero-photo{justify-self:end;width:100%;max-width:400px}
.hero-photo img{aspect-ratio:4/5;object-fit:cover;max-height:520px}
@media (max-width:980px){.hero-photo{display:none}}
.aside-photo{margin:-28px -28px 22px;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;border-bottom:3px solid var(--gold)}
.aside-photo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;filter:sepia(.18) contrast(1.02)}
.card-dark>.aside-photo,.card>.aside-photo{margin:-26px -26px 20px}
a.card-dark .aside-photo img{transition:transform .5s ease}
a.card-dark:hover .aside-photo img{transform:scale(1.04)}
/* single-column heroes with a framed print on the right */
.phero.has-photo>.wrap{grid-template-columns:1.3fr .7fr}
.phero-photo{justify-self:end;width:100%;max-width:360px}
.phero-photo img{aspect-ratio:4/5;object-fit:cover}
@media (max-width:980px){.phero.has-photo>.wrap{grid-template-columns:1fr}.phero-photo{display:none}}
/* service cards with a photo header */
.svc.has-img{overflow:hidden}
.svc-img{display:block;margin:-26px -26px 0;aspect-ratio:16/10;overflow:hidden;background:var(--soot)}
.svc-img img{display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.18) contrast(1.02);transition:transform .5s ease}
.svc.has-img:hover .svc-img img{transform:scale(1.05)}
.svc.has-img .ico{position:relative;margin-top:-28px;border:3px solid var(--paper);box-sizing:content-box}
@media (max-width:560px){
  .svc-grid .svc.has-img{grid-template-columns:112px minmax(0,1fr);padding:0 16px 0 0}
  .svc-grid .svc.has-img>.svc-img{grid-column:1;grid-row:1/span 6;margin:0;aspect-ratio:auto;height:100%;min-height:132px}
  .svc-grid .svc.has-img>.ico{display:none}
  .svc-grid .svc.has-img h3{margin-top:16px}
  .svc-grid .svc.has-img .more{padding-bottom:16px}
}
@media (min-width:561px) and (max-width:1100px){
  .svc-grid>.svc.has-img:last-child:nth-child(odd){grid-template-columns:minmax(0,.9fr) 56px minmax(0,1.6fr);padding:0 26px 0 0;align-items:start}
  .svc-grid>.svc.has-img:last-child:nth-child(odd)>*{grid-column:3}
  .svc-grid>.svc.has-img:last-child:nth-child(odd)>.svc-img{grid-column:1;grid-row:1/span 6;margin:0;aspect-ratio:auto;height:100%;min-height:200px}
  .svc-grid>.svc.has-img:last-child:nth-child(odd)>.ico{grid-column:2;margin:26px 0 0;border:0}
  .svc-grid>.svc.has-img:last-child:nth-child(odd) h3{margin-top:26px}
  .svc-grid>.svc.has-img:last-child:nth-child(odd) .more{padding-bottom:26px}
}
/* resource cards with a photo header */
.resource-card .rc-img{display:block;margin:-26px -26px 6px;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0}
.resource-card .rc-img img{display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.18) contrast(1.02);transition:transform .5s ease}
a.resource-card:hover .rc-img img{transform:scale(1.05)}
.article-photo{margin:0 0 36px}
/* full-width photo band between sections */
.photo-band{min-height:0;padding:clamp(80px,11vw,140px) 0;overflow:hidden}
.photo-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:sepia(.25) contrast(1.05)}
.photo-band::before{background:linear-gradient(90deg,rgba(28,31,35,.92) 0%,rgba(28,31,35,.72) 45%,rgba(28,31,35,.35) 100%)}
.photo-band .pb-inner{width:100%}
.photo-band .pb-inner>*{max-width:640px}
.photo-band h2{margin-top:14px;color:#fff}
.photo-band .lede{margin-top:16px;color:var(--on-dark-muted)}
.photo-band .hero-ctas{margin-top:28px}
@media (max-width:640px){.photo-band::before{background:linear-gradient(180deg,rgba(28,31,35,.6),rgba(28,31,35,.88))}}
.photo picture{display:block}
.phero:not(:has(>.skyline))>.wrap{padding-bottom:80px}
/* process steps with a photo on top */
.step.has-img{overflow:hidden;padding-top:0}
.step-img{display:block;margin:0 -24px;aspect-ratio:4/3;overflow:hidden;background:var(--soot)}
.step-img img{display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.18) contrast(1.02)}
.step.has-img::before{top:12px;right:14px;z-index:1;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.step.has-img .bar{position:relative;display:block;left:0;top:0;margin-top:22px}
.step.has-img h3{margin-top:14px}
@media (max-width:560px){.step-img{margin:0 -20px}.step.has-img .bar{left:0;top:0}.step.has-img h3{margin-top:12px}}
/* booking forms sit under the hero (no overlap) */
.bookbar{--lift:0px;margin-top:0;padding:56px 0 8px}
.hero.has-fire>.wrap{padding-bottom:110px}
@media (max-width:980px){.bookbar{--lift:0px;padding-top:32px}.hero.has-fire>.wrap{padding-bottom:72px}}
.book-main-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:start}
.book-side{position:sticky;top:110px}
@media (max-width:980px){.book-main-grid{grid-template-columns:minmax(0,1fr);gap:32px}.book-side{position:static}}

/* ---------- Dark theme fixes: components that assumed a light page ---------- */
.btn-white,.prose a.btn-white,.prose a.btn-white:hover{color:#16191D}
.btn-dark{background:var(--soot-3);color:var(--on-dark);box-shadow:inset 0 0 0 1px var(--soot-line)}
.btn-dark:hover{background:#353C44}
.cta-band{color:#16191D}
.cta-band h2,.cta-band .eyebrow{color:#16191D}
.cta-band .btn-outline{border-color:#16191D;color:#16191D}
.cta-band .btn-outline:hover{background:#16191D;color:var(--gold)}
.cta-band .btn-dark{background:#16191D;box-shadow:0 8px 22px rgba(0,0,0,.3)}
.cta-band :focus-visible{outline-color:#16191D}
.compare td.us{background:rgba(242,107,29,.12)}
.step::before{color:var(--soot-3)}
::selection{background:var(--gold);color:#16191D}
.report-key span{background:#B03A26}.report-key .m{background:#8F5A00}.report-key .g{background:#2F7D4A}
.band-paper{border-block-color:var(--line)}
.field input::placeholder,.zip input::placeholder{color:#7D858E}
.bookbar{background:transparent}
.bookbar-card{background:var(--paper);box-shadow:0 26px 60px rgba(0,0,0,.45),inset 0 0 0 1px var(--line)}
.bookbar-card::before{border-color:var(--line)}
.form-card,.qb{box-shadow:0 26px 60px rgba(0,0,0,.4),inset 0 0 0 1px var(--line)}
.svc:hover,a.card:hover{box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--gold),0 12px 30px rgba(0,0,0,.4)}
.card-dark{background:var(--soot);border-color:var(--soot-line)}
.photo{box-shadow:0 18px 44px rgba(0,0,0,.55)}

/* ---------- Rounded look: pill buttons, tags and chips, soft cards, rounded photo prints ---------- */
:focus-visible{border-radius:10px}
.btn,.tab,.tag,.sample-tag,.chip,.offer,.offer b,.panel .when,.report-key span,.skip{border-radius:var(--r-pill)}
.btn{padding:0 28px}
.mbar{border-radius:var(--r-pill);padding:7px}
.mbar .btn{padding:0 14px}
.nav>a,.nav-dd>a,.dd-item,.menu-btn{border-radius:14px}
.dd-ico,.svc .ico,.card .ico,.card-dark .ico{border-radius:50%}
.badge{border-radius:16px}
.meter i{border-radius:var(--r-pill)}
.photo{border-radius:20px;padding:10px}
.photo img{border-radius:12px}
.qb::before,.phero.has-form .form-card::before,.book .form-card::before{border-radius:calc(var(--r-lg) - 6px)}
.bookbar-card::before{border-radius:calc(var(--r-lg) - 7px)}
.cta-band::before{border-radius:32px}
@media (max-width:600px){.cta-band::before{border-radius:22px}}
.card-dark,.card,.svc,.step,.rev,.form-card,.qb,.bookbar-card,.phero-aside{overflow:hidden}
.trust-item svg{border-radius:50%}

/* ---------- QA fixes ---------- */
.mbar{transition:transform .3s ease,opacity .3s ease}
.mbar.is-hidden{transform:translateY(160%);opacity:0;pointer-events:none}
.mbar .mbar-book{background:#F3EFE9;color:#16191D;box-shadow:none}
.mbar .mbar-book:hover{background:#fff;color:#16191D;box-shadow:none}
.no-book-cta .mbar .mbar-book{display:none}
.book-hero>.wrap{padding-bottom:56px}
@media (max-width:700px){.book-hero>.wrap{padding-top:32px;padding-bottom:40px}}
.email-line{overflow-wrap:break-word;font-size:15px}
.hero-proof{text-shadow:0 1px 3px rgba(0,0,0,.85)}
.hero.has-fire::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(15,17,20,.75),transparent);pointer-events:none;z-index:0}
.hero.has-fire>.wrap{position:relative;z-index:1}
@media (max-width:1150px){.hero-photo{display:none}.hero.has-fire>.wrap{grid-template-columns:1fr}}
@media (min-width:760px) and (max-width:1100px){.svc-grid.cols-3{grid-template-columns:repeat(3,1fr)}.svc-grid>.svc:last-child:nth-child(odd){grid-column:auto}
  .svc-grid>.svc.has-img:last-child:nth-child(odd){display:flex;padding:26px}
  .svc-grid>.svc.has-img:last-child:nth-child(odd)>.svc-img{margin:-26px -26px 0;aspect-ratio:16/10;height:auto;min-height:0}
  .svc-grid>.svc.has-img:last-child:nth-child(odd)>.ico{margin:-28px 0 20px;border:3px solid var(--paper)}
  .svc-grid>.svc.has-img:last-child:nth-child(odd) h3{margin-top:0}
  .svc-grid>.svc.has-img:last-child:nth-child(odd) .more{padding-bottom:0}}
.panel .when{color:var(--gold-text)}
.cta-band p{color:#16191D}
@media (min-width:1001px) and (max-width:1200px){.trust-item small{display:none}}
@media (max-width:700px){
  .verdict{position:static;margin-top:16px;display:block;padding:24px}
  .verdict .eyebrow,.verdict p{display:block}
  .meter{box-sizing:border-box;width:100%}
  .ftr li a,.ftr-bottom a,.crumbs a{display:inline-block;padding:10px 0}
}
.chip{min-height:44px;display:inline-flex;align-items:center}
.split:has(>.table-wrap){align-items:start}
