/* Buzzing Along Movers — main stylesheet.
   Design-DNA tokens come from inline <style id="ns-palette"> in <head>.
   This file is the layout + components layer. Ledger constraints baked in:
   - inputs font-size:16px (#15 iOS zoom)
   - object-fit:cover + aspect-ratio container on every image slot (#5)
   - hero overlay max .40 (well under .55 cap #6)
   - eager hero / lazy below-fold is applied at template level (#13)
*/

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0; background:var(--c-bg); color:var(--c-text);
  font-family:var(--f-body); font-size:var(--ts-base); line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden; /* Mobile safety — prevent horizontal scroll from any element overflow */
}
html{scroll-padding-top:70px} /* Offset anchor jumps past sticky header height */
img,svg{display:block;max-width:100%;height:auto}
a{color:var(--c-main);text-underline-offset:2px}
a:hover{color:var(--c-main-dk)}

h1,h2,h3,h4{font-family:var(--f-heading);font-weight:700;line-height:1.18;letter-spacing:-.005em;margin:0 0 .6em}
h1{font-size:var(--ts-1)} h2{font-size:var(--ts-2)} h3{font-size:var(--ts-3); font-weight:700}
p{margin:0 0 1em}

/* Visually-hidden skip link, revealed on focus */
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;padding:0;margin:-1px;border:0}
a.sr-only:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;clip:auto;clip-path:none;background:var(--c-main);color:#fff;padding:.6rem 1rem;border-radius:var(--radius);z-index:1000}

.container{max-width:var(--container);margin:0 auto;padding:0 var(--spacing)}
section{padding:clamp(2.5rem,4vw,4rem) 0}
section.alt{background:var(--c-bg-alt)}
/* 4-tier section weight scale: hero/feature sections get more padding, secondary sections less */
section[data-panel="hero"]{padding:clamp(2rem,3vw,3.25rem) 0 clamp(2.5rem,3.5vw,3.5rem)}
section[data-panel="services"], section[data-panel="reviews"], section[data-panel="faq"]{padding:clamp(3rem,5vw,5.5rem) 0}
section[data-panel="trust"]{padding:1.6rem 0}
section[data-panel="cta"]{padding:clamp(2rem,3vw,3rem) 0}
section[data-panel="areas"], section[data-panel="routes-preview"]{padding:clamp(2.5rem,4vw,4rem) 0}
/* Adjacent same-tone sections: add a subtle divider so the cream→cream boundary is visible */
section.alt + section.alt, section:not(.alt) + section:not(.alt){border-top:1px solid rgba(31,19,15,0.06)}
/* First H2 in a section shouldn't double-pad (section pt + h2 mt) */
section > .container > h2:first-child, section > .container > .eyebrow + h2{margin-top:0}
/* Last section → footer transition: tighter */
main > section:last-child{padding-bottom:clamp(2rem,3vw,3rem)}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-mid);margin-bottom:.6rem}
/* Accent-colored small text uses --c-accent-text (4.5:1+) instead of --c-accent (3.5:1) — Designer iter-6 WCAG fix */
.accent-text{color:var(--c-accent-text,var(--c-accent))}

/* ----- Buttons ----- */
.btn{
  display:inline-block;padding:.95em 1.5em;border-radius:8px;
  font-weight:600;font-size:1rem;letter-spacing:.02em;
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:transform .12s ease, background-color .12s ease;
}
.btn-primary{background:var(--c-main);color:#fff}
.btn-primary:hover{background:var(--c-main-dk);color:#fff;transform:translateY(-1px)}
.btn-accent{background:var(--c-accent);color:#1f130f}
.btn-accent:hover{background:var(--c-accent-dk);color:#1f130f;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--c-text);border-color:var(--c-border)}
.btn-ghost:hover{background:var(--c-bg-alt);color:var(--c-text);border-color:var(--c-text-muted)}
/* Focus-visible on ALL interactive elements — a11y gap flagged by Architect critic */
.btn:focus-visible,.btn-outline:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.tab:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}
a:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:2px}
.zone-grid a:focus-visible{outline-offset:1px}

/* ----- Forms (ledger #15: 16px inputs, labels, autocomplete) ----- */
.ns-form label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3rem;color:var(--c-text)}
.ns-form .row{display:grid;gap:.85rem;grid-template-columns:1fr 1fr;margin-bottom:.9rem}
.ns-form .row:last-of-type{margin-bottom:0}
.ns-form .row.one{grid-template-columns:1fr}
@media (max-width:640px){.ns-form .row{grid-template-columns:1fr}}
.ns-form input, .ns-form select, .ns-form textarea{
  width:100%; font-size:16px; line-height:1.4; padding:.7em .85em;
  border:1px solid var(--c-border); border-radius:var(--radius); background:#fff;
  font-family:inherit; color:var(--c-text);
}
.ns-form input:focus, .ns-form select:focus, .ns-form textarea:focus{
  outline:2px solid var(--c-accent); outline-offset:1px; border-color:var(--c-accent-dk);
}
.ns-form .sr-only{position:absolute!important;clip:rect(0 0 0 0);width:1px;height:1px;overflow:hidden}
.ns-form .submit-row{margin-top:1.6rem}
.ns-form .submit-row button{width:100%;padding:.95em 1.6em}
.ns-form .reassure{font-size:.84rem;color:var(--c-text-muted);margin-top:.55rem}

/* ----- Header ----- */
.site-header{position:sticky;top:0;z-index:50;background:var(--c-bg);border-bottom:1px solid var(--c-border)}
/* Header inner: vertical padding only here; horizontal comes from .container's --pad.
   iter-5 bug: `padding:.85rem 0` was zeroing OUT container's horizontal padding (more
   specific selector wins) → logo/CTA touched viewport edges on narrow widths. */
.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding-block:.85rem;padding-inline:var(--spacing);gap:1rem}
/* Brand-mark layout — logo SVG + 2-line text. Logo + text-stack are flex-row siblings;
   text is column-stacked. Larger l1 (brand name) + smaller l2 (city) with breathing room
   between lines fixes the cluttered brand-name text
   that user flagged as overlapping. */
.brand-mark{display:flex;align-items:center;line-height:1;color:var(--c-text);text-decoration:none}
.brand-mark .brand-logo{flex:0 0 auto;height:63px;width:auto;display:block}
@media (max-width:640px){.brand-mark .brand-logo{height:50px}}
/* Mobile header adapt (≤760px): hide brand-name text + hide Free-quote button.
   On narrow widths the full header (logo + brand-text + phone + Free-quote + burger)
   overflowed/squeezed. User direction iter-5: keep logo + phone-link + burger only;
   brand identity carried by the logo, primary action is the phone tap (real conversion). */
@media (max-width:760px){
  .header-cta .btn-ghost{display:none}
}
.primary-nav > ul, .primary-nav .menu{display:flex;gap:1.35rem;margin:0;padding:0;list-style:none;font-weight:500}
.primary-nav a{color:var(--c-text);text-decoration:none}
.primary-nav a:hover, .primary-nav .current-menu-item > a{color:var(--c-main)}
/* Dropdown submenu (depth=2) — appears on hover/focus of parent li with .menu-item-has-children.
   PM critic iter-5: flat nav forced users to land on /services/ /service-areas/ /routes/ index
   before drilling to specific pages. Mega-dropdown lets them jump direct in 1 click. */
.primary-nav .menu-item-has-children{position:relative}
.primary-nav .menu-item-has-children > a::after{content:" ▾";font-size:.7em;color:var(--c-text-muted);margin-left:.15em}
.primary-nav .sub-menu{display:none;position:absolute;top:100%;left:-1rem;min-width:200px;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:.5rem 0;margin:0;list-style:none;box-shadow:0 8px 24px -8px rgba(31,19,15,.15);z-index:50;flex-direction:column;gap:0}
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children:focus-within > .sub-menu{display:flex}
.primary-nav .sub-menu li{margin:0}
.primary-nav .sub-menu a{display:block;padding:.55rem 1.1rem;font-size:.94rem;color:var(--c-text);white-space:nowrap}
.primary-nav .sub-menu a:hover{background:var(--c-bg-alt);color:var(--c-main)}
/* Mobile drawer: submenu inline under parent, indented */
@media (max-width:900px){
  .primary-nav .sub-menu{display:flex !important;position:static;border:0;box-shadow:none;background:transparent;padding:.2rem 0 .2rem 1rem;min-width:0}
  .primary-nav .menu-item-has-children > a::after{display:none}
  .primary-nav .sub-menu a{padding:.35rem 0;font-size:.9rem;color:var(--c-text-muted)}
}
.header-cta{display:flex;gap:.6rem;align-items:center}
.header-phone{font-weight:700;color:var(--c-main);text-decoration:none;white-space:nowrap}
.header-quote-btn{padding:.55em 1em;font-size:.9rem}
.nav-toggle{display:none;background:none;border:0;font-size:1.5rem;color:var(--c-text);padding:.6rem .75rem;cursor:pointer;min-width:44px;min-height:44px;line-height:1}
.nav-toggle[aria-expanded="true"]{font-size:1.6rem}
@media (max-width:900px){
  .primary-nav{display:none}
  .nav-toggle{display:inline-block}
  .primary-nav.open{display:block;position:absolute;top:100%;right:0;background:var(--c-bg);border:1px solid var(--c-border);border-top:0;padding:1rem;min-width:240px;max-height:calc(100vh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .primary-nav.open ul{flex-direction:column;gap:.85rem}
}

/* ----- Hero (split photo/form — ledger HARD rule first-screen form) ----- */
.hero{position:relative;background:var(--c-bg)}
.hero .grid{
  display:grid;gap:2rem;align-items:start;
  grid-template-columns: 1.05fr .95fr;
  padding:0;
}
.hero .copy, .hero > .container > .grid > div{padding-top:.5rem}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr}}
/* Hero mobile: a touch more padding-inline-start so H1/eyebrow don't crowd the
   left edge on phones (user iter-5: "в hero сделай отступ на мобильном чуток слева"). */
@media (max-width:640px){.hero > .container{padding-inline-start:1.6rem}}
.hero h1{margin-top:0}
.hero .hook{font-size:1.1rem;color:var(--c-text-muted);max-width:46ch}
.hero .photo{
  position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-lg);
  background:#1f130f;
}
.hero .photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero .photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.4) 100%);
}
/* Home hero lead-card sticky on desktop — keeps the primary conversion CTA in viewport
   while user scrolls the long home page. Mobile: position:static (form already at top
   on collapsed single-col layout). iter-5 PM critic: "sticky form fails on home —
   position:static, scrolls away with hero". */
@media (min-width:980px){.hero > .container > .grid > div:has(> .lead-card){align-self:start}.hero .lead-card{position:sticky;top:1.2rem}}
.hero .lead-card{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:clamp(1.1rem,2.2vw,1.6rem) clamp(1.1rem,2.2vw,1.8rem);
  box-shadow:0 12px 30px -18px rgba(31,19,15,.25);
}
.hero .lead-card h2{font-size:1.25rem;margin-bottom:.35rem}
.hero .lead-card .reassure-row{display:flex;gap:1rem;font-size:.82rem;color:var(--c-text-muted);margin-top:.65rem}

/* ----- Trust strip ----- */
.badge-row{background:var(--c-bg-alt);padding:2.5rem 0;border-block:1px solid var(--c-border)}
.badge-row .row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2rem 3rem}
.badge-row .heading{
  font-family:var(--f-body);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--c-text-muted);margin-bottom:1.25rem;text-align:center;
}
.badge-row a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;height:28px}
/* width:100px (fixed, not max-width) + object-fit:contain → every logo occupies
   the same 100×22 slot regardless of its natural aspect. With max-width:100px
   alone, wide logos (Nextdoor ~180px → capped at 100px) looked dominant while
   narrow logos (Thumbtack ~40px → stayed 40px) looked invisible by comparison.
   Now they all anchor to the same box with internal whitespace as needed.
   Iter-5 Designer flag: "Nextdoor dominates, Thumbtack is tiny." */
/* Round 2 Designer: opacity .55 + grayscale 100% read as "broken/faded assets",
   not "vetted-by". Bumped to .85 opacity + partial grayscale (.4) — logos still
   read as background context (not dominating) but no longer look broken. */
.badge-row img{height:26px;width:120px;max-height:26px;object-fit:contain;opacity:.85;filter:grayscale(20%) brightness(.95);transition:opacity .15s, filter .15s}
.badge-row a:hover img,.badge-row img:hover{opacity:.95;filter:grayscale(0%) brightness(1)}

/* ----- Services grid (also used for facts / svc-mix / what's-included) ----- */
.services-grid{display:flex;flex-wrap:wrap;gap:1.1rem;justify-content:center;align-items:stretch}
.services-grid > *{flex:1 1 260px;max-width:calc(33.333% - 0.733rem);min-width:240px}
@media (max-width:780px){.services-grid > *{max-width:calc(50% - 0.55rem)}}
@media (max-width:560px){.services-grid > *{max-width:100%}}
.offer-block{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);
  padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;
  text-decoration:none;color:var(--c-text);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.offer-block:hover{transform:translateY(-2px);box-shadow:0 8px 20px -14px rgba(31,19,15,.2);border-color:var(--c-main)}
.offer-block .ic{
  width:46px;height:46px;display:grid;place-items:center;
  background:var(--c-bg-alt);border-radius:var(--radius);color:var(--c-main);
  flex:0 0 auto;
}
.offer-block .ic svg{width:24px;height:24px;display:block}
.offer-block h3{margin:.4rem 0 .5rem;font-size:1.35rem;font-weight:700;line-height:1.25;color:var(--c-text)}
.offer-block p{margin:0;color:var(--c-text-muted);font-size:1rem;line-height:1.5}
.offer-block .more{margin-top:auto;color:var(--c-main);font-weight:600;text-decoration:none;font-size:.95rem}
.offer-block:hover .more{text-decoration:underline;text-underline-offset:3px}

/* ----- Owner block ----- */
.founder-section{display:grid;gap:2.5rem;grid-template-columns:.65fr 1fr;align-items:center;padding:1.25rem 0;min-width:0}
.founder-section > *{min-width:0;max-width:100%}
@media (max-width:780px){.founder-section{grid-template-columns:1fr}}
.founder-section .ph{aspect-ratio:4/5;overflow:hidden;border-radius:12px;border:1px solid var(--c-border);box-shadow:0 1px 2px rgba(31,19,15,.04),0 16px 36px -22px rgba(31,19,15,.2)}
.founder-section .ph img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.founder-section blockquote{margin:0 0 .8rem;font-family:var(--f-heading);font-size:1.35rem;line-height:1.4;color:var(--c-text);border-left:3px solid var(--c-mid);padding-left:1.1rem;font-style:italic;overflow-wrap:break-word;hyphens:auto}
.founder-section blockquote, .founder-section p{max-width:60ch}

/* ----- Process steps ----- */
.steps{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));counter-reset:s;margin-top:2.5rem}
.step{padding:4.2rem 1.7rem 1.7rem;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);position:relative;box-shadow:0 1px 2px rgba(31,19,15,.04),0 8px 24px -16px rgba(31,19,15,.08)}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:1.2rem;left:1.7rem;background:var(--c-accent);color:#1f130f;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:1.05rem}
.step h3{font-size:1.2rem;margin:0 0 .5rem}
.step p{margin:0;color:var(--c-text-muted);font-size:1rem;line-height:1.55}

/* ----- Reviews ----- */
/* Masonry reviews grid — cards of varying height, Pinterest-style columns */
.reviews-grid{columns:3 280px;column-gap:1.1rem}
.reviews-grid .voice-item{break-inside:avoid;margin-bottom:1.1rem;display:inline-block;width:100%}
@media (max-width:640px){.reviews-grid{columns:1}}
.voice-item{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.55rem}
.voice-item .who{display:flex;gap:.7rem;align-items:center}
.voice-item .av{width:56px;height:56px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:var(--c-bg-alt)}
.voice-item .av img{width:100%;height:100%;object-fit:cover}
.voice-item .meta{display:flex;flex-direction:column;line-height:1.25}
.voice-item .meta .nm{font-weight:600}
.voice-item .meta .sub{font-size:.82rem;color:var(--c-text-muted)}
.voice-item .stars{color:var(--c-accent);letter-spacing:.06em}
.voice-item .body{color:var(--c-text)}
.voice-item .src{font-size:.78rem;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:auto}

/* ----- Service Areas Strip ----- */
section[data-panel="areas"] h2{max-width:680px;margin-left:auto;margin-right:auto}
.zone-grid{display:flex;flex-wrap:wrap;gap:.5rem .7rem;justify-content:center}
.zone-grid a{display:inline-block;padding:.7rem 1rem;background:#fff;border:1px solid var(--c-border);border-radius:8px;text-decoration:none;color:var(--c-text);font-weight:500;font-size:.95rem;min-height:44px;transition:border-color .12s, background-color .12s, color .12s}
.zone-grid a:hover{border-color:var(--c-main);color:var(--c-main);background:var(--c-bg-alt)}

/* ----- CTA band ----- */
.action-strip{background:var(--c-main-dk);color:#f5f0ea}
.action-strip .inner{display:grid;gap:1.5rem;grid-template-columns:1fr auto;align-items:center}
@media (max-width:780px){.action-strip .inner{grid-template-columns:1fr;text-align:center}}
.action-strip h2{color:#fff;margin:0}
.action-strip p{color:rgba(245,240,234,.88);margin:.3rem 0 0}

/* ----- FAQ ----- */
.faq details{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:.6rem}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:44px;padding:.35rem 0} /* 44px tap target — Mobile critic */
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--c-main);line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details > div{padding-top:.65rem;color:var(--c-text-muted)}

/* ----- Footer ----- */
.site-footer{background:#1f130f;color:#c7bdb2;padding-block:2.5rem 1.2rem;margin-top:0}
.site-footer a{color:#f5f0ea;text-decoration:none}
.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer .grid{display:grid;gap:2rem;grid-template-columns:1.3fr 1fr 1fr .6fr}
@media (max-width:900px){.site-footer .grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.site-footer .grid{grid-template-columns:1fr}}
.site-footer h4{color:#f5f0ea;font-family:var(--f-heading);font-size:1.05rem;margin:0 0 .5rem}
.site-footer ul{margin:0;padding:0;list-style:none;display:grid;gap:0}
.site-footer li a{display:block;padding:0;font-size:.88rem;line-height:1.85}
@media (max-width:640px){.site-footer li a{padding:.15rem 0;min-height:44px;line-height:44px}}
.site-footer .footer-logo{height:88px;width:auto;margin-bottom:.8rem}
/* Service areas column: 2-col grid on desktop to keep footer short */
.site-footer .areas-col ul{display:block;columns:2;column-gap:1.5rem}
.site-footer .areas-col li{break-inside:avoid}
.site-footer .creds{font-size:.85rem;line-height:1.55;color:#9a8f86}
.site-footer .bottom{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1.5rem;padding-top:1.5rem;margin-top:2rem;border-top:1px solid #f2eee7;font-size:.85rem;color:#9a8f86;text-align:center}
.site-footer .bottom a{display:inline-block;padding:.45rem .3rem;min-height:44px;line-height:calc(44px - .9rem)} /* 44px tap target for footer utility links — Mobile critic */
.site-footer .bottom > *{flex:0 1 auto}

/* ----- Generic page intro hero (non-home) ----- */
.page-hero{background:var(--c-bg-alt);padding:clamp(2rem,4vw,3rem) 0 0;border-bottom:1px solid var(--c-border)}
/* align-items:start so the LEFT column (H1+intro, short) starts at top of row
   instead of being pulled to the BOTTOM by the much-taller RIGHT column (form
   with 6-8 inputs, ~620px). With align-items:end the page-hero rendered a
   500px cream void ABOVE the H1 on /about/, /reviews/, /faq/, /contact/, /quote/.
   See references/css-rules.md "Page-hero grid". */
.page-hero .grid{display:grid;gap:2rem;grid-template-columns:1.1fr .9fr;align-items:start;padding-bottom:clamp(1.5rem,3vw,2.5rem)}
@media (max-width:900px){.page-hero .grid{grid-template-columns:1fr}}
/* H1 cap — Round 2 Designer measured 5-line wraps still on /services/apartment/, suburb,
   route pages. Tightened max-width 18ch → 14ch + clamp pegged to smaller range. Applies
   to both `.page-hero h1` (about/faq/contact/quote/reviews) AND `.hero h1`
   (home/services/suburb/route) — both templates had long-title overflow. */
.page-hero h1,.hero h1{margin-bottom:.45rem;max-width:14ch;font-size:clamp(1.9rem,1.2rem + 1.7vw,2.5rem);line-height:1.15}
@media (max-width:640px){.page-hero h1,.hero h1{max-width:16ch}}
.page-hero .breadcrumb{font-size:.82rem;color:var(--c-text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.08em}

/* ----- Benefits grid (home #benefits section, 4×2 → 2×4 → 1col responsive) ----- */
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
@media (max-width:980px){.why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}}
@media (max-width:520px){.why-grid{grid-template-columns:1fr;gap:1rem}}
.why-box{display:flex;flex-direction:column;gap:.55rem}
.why-box .why-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--c-main);background:#fff;border:1px solid var(--c-border);border-radius:50%;flex:0 0 auto}
.why-box .why-icon svg{width:22px;height:22px}
.why-box h3{font-family:var(--f-heading);font-size:1.05rem;font-weight:600;margin:0;color:var(--c-text);line-height:1.25}
.why-box p{font-size:.92rem;color:var(--c-text-muted);line-height:1.5;margin:0}

/* ----- Recent-work gallery (home #recent-work section) ----- */
.gallery-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}
@media (max-width:980px){.gallery-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.gallery-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.gallery-row{grid-template-columns:1fr}}
.work-card{margin:0;display:flex;flex-direction:column;gap:.45rem}
.work-card .portfolio-img{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--c-bg-alt)}
/* Unified photo treatment — iter-5 Designer flagged: home mixed B&W silhouettes,
   colour stock, sepia portraits side-by-side. Apply consistent warm-desaturated
   filter to ALL people/work photos so they read as one visual voice. */
.work-card .portfolio-img img,
.voice-item .av img,
.team-grid img,
.founder-section img,
.hero-owner-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .3s ease, filter .25s ease;
  filter:saturate(.85) sepia(.08) brightness(.96) contrast(1.03);
}
.work-card:hover .portfolio-img img{filter:saturate(.95) sepia(.05) brightness(1) contrast(1.05);transform:scale(1.04)}
.work-card figcaption{font-size:.85rem;color:var(--c-text-muted);line-height:1.4;padding:0 .15rem}

/* ----- Aspect helpers ----- */
.aspect-16-9{aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius)}
.aspect-4-5{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius)}
.aspect-3-2{aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius)}
.aspect-1-1{aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius)}
.aspect-16-10{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius)}
.aspect-16-9 img,.aspect-4-5 img,.aspect-3-2 img,.aspect-1-1 img,.aspect-16-10 img{width:100%;height:100%;object-fit:cover}

/* ----- Generic content layout ----- */
.page-body{display:grid;gap:2.5rem;grid-template-columns:1fr 320px;align-items:start}
.page-body > .main{min-width:0}
.page-body > aside{align-self:start}
/* aside-stretch — for pages where article >> aside-stack (notably /about/). Overrides
   `align-self: start` so the aside container stretches to the row's height, and its
   existing .sidebar-lead bg/border (`#f7f3ee`) fills the column below the cards. Result:
   right column looks like a tall tinted card with content at top, no visible cream
   void where the form ends. Safer than `position: sticky` (which re-introduces the
   1600-2200px dead-zone bug — see ".sidebar-lead is NOT position: sticky" rule). */
.page-body > aside.aside-stretch{align-self:stretch}
/* Aside-form compact variant — visually differentiates the sticky sidebar form
   from the hero form. Designer-critic #1 flagged "Two stacked nearly identical
   lead forms... reads as a templating tell." Same fields submit-wise (CRM payload
   unchanged), just compacter typography + secondary button color so the eye reads
   them as DIFFERENT conversion paths, not duplicates. */
.sidebar-lead .ns-form{font-size:.92rem}
.sidebar-lead .ns-form label{font-size:.8rem;margin-bottom:.2rem}
.sidebar-lead .ns-form input,.sidebar-lead .ns-form select{font-size:16px;padding:.5rem .65rem}
.sidebar-lead .ns-form .row{gap:.55rem;margin-bottom:.55rem}
.sidebar-lead .ns-form button[type="submit"]{
  background:var(--c-mid);  /* olive secondary instead of primary brick-red */
  font-size:.95rem;
  padding:.7em 1em;
  margin-top:.4rem;
}
.sidebar-lead .ns-form button[type="submit"]:hover{background:#4a2e24}  /* darker olive on hover */
.sidebar-lead .tcpa-text,.sidebar-lead .form-reassure{font-size:.76rem}
/* aside-sticky — wrapper around the form-section inside sidebar-lead that follows
   scroll. Applied ONLY to the lead-card area, NOT the whole aside (whole-aside
   sticky breaks when aside > viewport, the Round-5 dead-zone bug). z-index lifts
   form above call/ticker siblings during scroll-collision so the form visually
   covers them; same aside-bg color prevents harsh edges. Disabled on mobile
   (single column = no benefit, would just stick at top of stack). */
.page-body > aside .aside-sticky{position:sticky;top:1.2rem;z-index:2;background:#f7f3ee}
@media (max-width:980px){.page-body > aside .aside-sticky{position:static}}
@media (max-width:980px){.page-body{grid-template-columns:1fr}}
.page-body .main p{margin-bottom:1em}
.page-body .main h2{margin-top:1.6em}
.page-body .main h3{margin-top:1.4em}

/* Callout / info-box in article content */
.callout{background:var(--c-bg-alt);border-left:4px solid var(--c-accent);padding:1rem 1.25rem;margin:1.5rem 0;border-radius:var(--radius)}
.callout strong{color:var(--c-text)}

/* Tables in blog posts / article content */
.main table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}
.main table th,.main table td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--c-border)}
.main table thead th{background:var(--c-main);color:#fff;font-weight:600;font-family:var(--f-heading);letter-spacing:.02em}
.main table tbody tr:nth-child(even){background:var(--c-bg-alt)}
.main table tbody tr:hover{background:rgba(168,212,200,.06)}
@media(max-width:640px){.main table{font-size:.88rem;display:block;overflow-x:auto}.main table th,.main table td{white-space:nowrap}}
/* Aside scrolls naturally — sticky caused 1600+px dead zones on long content pages */
.sidebar-lead{background:#f7f3ee;border:1px solid var(--c-border);border-radius:var(--radius);padding:1.4rem;box-shadow:0 1px 2px rgba(31,19,15,.04),0 4px 14px -10px rgba(31,19,15,.12)}
.sidebar-lead h3{margin-top:0}

/* ----- Utility ----- */
.text-center{text-align:center}
.mt-2{margin-top:2rem}
.mb-2{margin-bottom:2rem}
.muted{color:var(--c-text-muted)}
.accent{color:var(--c-accent)}

/* ----- Dark Hero (landing-hero) — video bg + form card right ----- */
.landing-hero{
  position:relative;background-color:var(--c-main-dk);
  padding:clamp(3rem,5vw,5rem) 0 0;overflow:hidden;
}
.landing-hero .hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  pointer-events:none;
}
.landing-hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(74,46,36,.88) 0%,rgba(74,46,36,.72) 50%,rgba(74,46,36,.55) 100%);
  z-index:1;
}
.landing-hero > .container{position:relative;z-index:2}

.landing-row{
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,3vw,3rem);
  align-items:start;padding-bottom:clamp(2rem,3vw,3rem);
}
@media (max-width:900px){.landing-row{grid-template-columns:1fr;gap:1.5rem}}

.landing-copy{color:#fff;padding-top:clamp(.5rem,2vw,1.5rem)}
.landing-copy h1{
  color:#fff;font-size:clamp(2rem,1.3rem + 2.6vw,3.2rem);line-height:1.08;
  margin-bottom:.45rem;max-width:16ch;
}
.hero-tagline{
  color:rgba(255,255,255,.92);font-size:clamp(1.15rem,1rem + .8vw,1.55rem);
  font-family:var(--f-heading);font-weight:600;line-height:1.25;margin-bottom:.65rem;
}
.hero-sub{
  color:rgba(255,255,255,.72);font-size:1.05rem;line-height:1.5;max-width:44ch;margin:0;
}
/* Hero CTA row on dark hero — override ghost btn colors for white-on-dark */
.landing-copy .hero-cta-row{margin-top:1.4rem}
.landing-copy .hero-call-btn{color:#fff;border-color:rgba(255,255,255,.4)}
.landing-copy .hero-call-btn:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.65)}

/* Hero review — left column, white on dark */
.hero-review{display:flex;gap:.75rem;align-items:flex-start;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15);max-width:480px}
.hero-review-av{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid rgba(255,255,255,.3)}
.hero-review-body{color:rgba(255,255,255,.82);font-size:.92rem;line-height:1.45}
.hero-review-stars{color:var(--c-accent);font-size:1rem;letter-spacing:.04em;display:block;margin-bottom:.2rem}
.hero-review-body strong{color:#fff;font-weight:600}

/* Hero association logos — mover industry badges */
.hero-assoc{display:flex;gap:1.2rem;align-items:center;margin-top:1.2rem;flex-wrap:wrap}
.hero-assoc img{height:22px;width:auto;opacity:.55;filter:brightness(10);transition:opacity .15s}
.hero-assoc img:hover{opacity:.85}

.landing-card{
  background:#fff;border-radius:var(--radius-lg);
  padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1.2rem,2.4vw,2rem);
  box-shadow:0 16px 48px -16px rgba(0,0,0,.35);
}
.landing-card h2{font-size:1.3rem;margin-bottom:.25rem;color:var(--c-text)}
.landing-card-sub{margin-bottom:.6rem;font-size:.92rem}

/* Stats bar — 4 counters in a full-width strip below hero */
.stats-bar{background:var(--c-main);padding:1.6rem 0;border-bottom:3px solid var(--c-accent)}
.stats-bar .container{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.stats-bar .stat-item .stat-num{
  font-family:var(--f-heading);font-weight:800;font-size:clamp(1.6rem,2.5vw,2.4rem);
  color:#fff;line-height:1.1;
}
.stats-bar .stat-item .stat-label{
  font-size:.82rem;color:rgba(255,255,255,.72);text-transform:uppercase;
  letter-spacing:.08em;margin-top:.25rem;font-weight:500;
}
@media (max-width:640px){.stats-bar .container{grid-template-columns:repeat(2,1fr);gap:1rem .5rem}}
@media (max-width:420px){.stats-bar .container{grid-template-columns:1fr 1fr;gap:.8rem}}

/* Legacy stat-pill kept for compatibility with non-home templates */
.landing-stats{display:flex;justify-content:flex-start;gap:clamp(1.5rem,3vw,3rem);padding:clamp(1rem,2vw,1.5rem) 0 clamp(1.2rem,2vw,1.8rem)}
.stat-pill{display:flex;align-items:center;gap:.7rem}
.stat-dot{width:clamp(52px,6vw,64px);height:clamp(52px,6vw,64px);border-radius:50%;background:var(--c-accent);color:#fff;font-family:var(--f-heading);font-weight:800;font-size:clamp(1.1rem,1.5vw,1.35rem);display:flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:1}
.stat-pill > span{color:rgba(255,255,255,.85);font-size:.88rem;font-weight:500;line-height:1.3}

/* ----- Vertical timeline (how-it-works) ----- */
.timeline{position:relative;padding-left:3rem;max-width:640px}
.timeline::before{content:"";position:absolute;left:14px;top:8px;bottom:8px;width:2px;background:var(--c-border)}
.timeline-step{position:relative;padding-bottom:2rem}
.timeline-step:last-child{padding-bottom:0}
.timeline-step .step-marker{
  position:absolute;left:-3rem;top:0;width:30px;height:30px;
  border-radius:50%;background:var(--c-accent);color:#fff;
  font-family:var(--f-heading);font-weight:700;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
  z-index:2;box-shadow:0 0 0 4px var(--c-bg);
}
section.alt .timeline-step .step-marker{box-shadow:0 0 0 4px var(--c-bg-alt)}
.timeline-step h3{font-size:1.1rem;margin-bottom:.25rem}
.timeline-step p{color:var(--c-text-muted);font-size:.95rem;margin:0;line-height:1.5}
@media (max-width:640px){.timeline{padding-left:2.5rem}.timeline-step .step-marker{left:-2.5rem;width:26px;height:26px;font-size:.78rem}}

/* ----- Price calculator ----- */
.calc-card{
  background:#fff;border:2px solid var(--c-accent);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.5rem);max-width:520px;margin:0 auto;
  box-shadow:0 12px 40px -12px rgba(74,46,36,.1);
}
.calc-card h3{font-size:1.2rem;margin-bottom:1rem;text-align:center}
.calc-row{display:flex;gap:.8rem;margin-bottom:1rem;align-items:end}
.calc-row > div{flex:1}
.calc-row label{display:block;font-size:.85rem;font-weight:600;color:var(--c-text);margin-bottom:.3rem}
.calc-row select{
  width:100%;padding:.7rem .8rem;border:1px solid var(--c-border);border-radius:var(--radius);
  font-size:16px;font-family:var(--f-body);background:#fff;color:var(--c-text);
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23586478' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .8rem center;
}
.calc-result{
  text-align:center;padding:1.2rem;background:var(--c-bg-alt);border-radius:var(--radius);
  margin-top:1rem;
}
.calc-result .calc-range{
  font-family:var(--f-heading);font-weight:800;font-size:clamp(1.6rem,2.5vw,2.2rem);
  color:var(--c-accent);line-height:1.1;
}
.calc-result .calc-note{font-size:.84rem;color:var(--c-text-muted);margin-top:.4rem}
.calc-result .btn{margin-top:.8rem}
@media (max-width:520px){.calc-row{flex-direction:column;gap:.5rem}}

/* ----- Pricing table ----- */
.pricing-banner{
  display:flex;align-items:center;justify-content:center;gap:.9rem;
  background:var(--c-main);color:#fff;border-radius:var(--radius);
  padding:.85rem 1.5rem;margin:1.5rem auto 2rem;max-width:620px;
  font-size:1.02rem;font-weight:500;line-height:1.35;
}
.pricing-badge{
  flex:0 0 auto;display:inline-flex;align-items:baseline;gap:.15rem;
  background:var(--c-accent);color:#fff;border-radius:50%;
  width:52px;height:52px;justify-content:center;
  font-family:var(--f-heading);font-weight:800;font-size:1.25rem;line-height:1;
}
.pricing-badge small{font-size:.6rem;font-weight:600;margin-left:.1rem}

.pricing-table{
  display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;
  max-width:820px;margin:0 auto;text-align:left;
}
@media (max-width:700px){.pricing-table{grid-template-columns:1fr;gap:1.2rem}}

.pricing-col{
  background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:clamp(1.3rem,2.5vw,2rem) clamp(1.3rem,2.5vw,2rem);
}
.pricing-col h3{
  font-size:1.15rem;font-weight:700;color:var(--c-main);margin-bottom:.6rem;
  padding-bottom:.6rem;border-bottom:2px solid var(--c-accent);
}
.pricing-sub{font-size:.88rem;color:var(--c-text-muted);margin:-.2rem 0 .8rem}

.pricing-line{
  display:flex;justify-content:space-between;align-items:center;
  padding:.55rem 0;border-bottom:1px solid var(--c-border);
  font-size:.95rem;color:var(--c-text);
}
.pricing-line:last-of-type{border-bottom:0}
.pricing-line strong{font-weight:700;color:var(--c-main);font-size:1rem}
.pricing-line.main-rate{
  flex-direction:column;align-items:flex-start;gap:.1rem;border-bottom:0;
  padding:.2rem 0 .8rem;
}
.pricing-line.main-rate span{font-size:.85rem;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.06em}
.pricing-line.main-rate strong{font-size:clamp(2rem,3vw,2.8rem);color:var(--c-accent);line-height:1.1}
.pricing-line.main-rate strong small{font-size:.5em;font-weight:600;color:var(--c-text-muted)}
.pricing-note{font-size:.84rem;color:var(--c-text-muted);line-height:1.45;margin:.6rem 0 1.1rem}

.pricing-col .btn{width:100%;text-align:center;margin-top:.8rem}
/* Featured pricing tier — visual emphasis on the recommended option (Designer iter-6 #3) */
.pricing-col.featured{border:2px solid var(--c-accent);position:relative;box-shadow:0 8px 28px -10px rgba(74,46,36,.12)}
.pricing-col.featured::before{content:'Most Popular';position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--c-accent);color:#fff;padding:.2em 1em;border-radius:20px;font-size:.78rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}

/* ----- Service photo cards (3 cards with colored overlays) ----- */
.service-cards-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;
}
@media (max-width:780px){.service-cards-row{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

.svc-photo-card{
  position:relative;display:block;aspect-ratio:3/2;overflow:hidden;
  border-radius:var(--radius-lg);text-decoration:none;
}
.svc-photo-card img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease;
}
.svc-photo-card:hover img{transform:scale(1.06)}
.svc-photo-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,var(--overlay,#326358) 100%);
  opacity:.78;transition:opacity .2s ease;
}
.svc-photo-card:hover::after{opacity:.88}

.svc-photo-label{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  padding:1.1rem 1.2rem;color:#fff;
}
.svc-photo-label h3{
  font-size:clamp(1.05rem,1.2vw,1.3rem);color:#fff;margin:0;
  font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.25);
}

/* ----- Services intro text block ----- */
.services-text{max-width:72ch;font-size:1.02rem;line-height:1.6;color:var(--c-text)}
.services-text p{margin-bottom:1em}
.services-text p:last-child{margin-bottom:0}

/* ----- Review tabs + summary (Trustpilot-style) ----- */
.review-tabs{
  display:flex;gap:.5rem;margin-bottom:1.2rem;flex-wrap:wrap;
}
.tab{
  display:inline-block;padding:.7rem 1.1rem;border-radius:6px;min-height:44px;
  border:1px solid var(--c-border);background:#fff;color:var(--c-text);
  font-family:var(--f-body);font-size:.9rem;font-weight:500;
  cursor:pointer;transition:all .15s ease;
}
.tab:hover{border-color:var(--c-main);color:var(--c-main)}
.tab.active{background:var(--c-main);color:#fff;border-color:var(--c-main)}

.review-summary{
  display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;
  margin-bottom:.5rem;
}
.review-badge{
  display:inline-block;background:var(--c-success);color:#fff;
  padding:.35rem .9rem;border-radius:4px;font-weight:700;font-size:.92rem;
  letter-spacing:.02em;
}
.stars-big{color:var(--c-accent);font-size:1.3rem;letter-spacing:.04em;line-height:1}
.review-count{color:var(--c-text-muted);font-size:.92rem}

/* ----- Tradition / USP section ----- */
.tradition-row{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,4vw,3.5rem);
  align-items:center;
}
@media (max-width:780px){.tradition-row{grid-template-columns:1fr;gap:1.5rem}}

.tradition-copy .eyebrow{margin-bottom:.5rem}
.tradition-copy h2{margin-bottom:1.2rem}

.usp-list{
  list-style:none;padding:0;margin:0;display:grid;gap:.65rem;
}
.usp-list li{
  display:flex;align-items:flex-start;gap:.7rem;
  font-size:.98rem;line-height:1.5;color:var(--c-text);
}
.usp-list li::before{
  content:"✓";flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:var(--c-accent);color:#fff;font-size:.72rem;font-weight:700;
  margin-top:.15rem;
}
.usp-list li strong{font-weight:600;color:var(--c-text)}

.tradition-img{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3}
.tradition-img img{width:100%;height:100%;object-fit:cover;display:block}

/* ----- Outline button variant ----- */
.btn-outline{
  display:inline-block;padding:.8em 1.3em;border-radius:8px;
  font-weight:600;font-size:.95rem;text-decoration:none;
  background:transparent;color:var(--c-main);
  border:1.5px solid var(--c-main);cursor:pointer;
  transition:all .15s ease;
}
.btn-outline:hover{background:var(--c-main);color:#fff}

/* ----- Review filter tabs JS ----- */
.voice-item[data-source]{transition:opacity .15s ease}
.voice-item.review-hidden{display:none}

/* ----- Footer credential items (extracted from inline styles) ----- */
.cred-item{display:flex;gap:.6rem;align-items:flex-start}
.cred-item .cred-check{color:var(--c-accent);font-weight:700;flex:0 0 auto;line-height:1.4}

/* ----- Sticky mobile CTA bar ----- */
.mobile-cta-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:49;
  background:var(--c-main-dk);padding:.65rem 1rem;
  box-shadow:0 -4px 16px rgba(0,0,0,.2);
  border-top:1px solid rgba(255,255,255,.1);
}
.mobile-cta-bar .inner{
  display:flex;gap:.7rem;align-items:center;justify-content:center;
  max-width:var(--container);margin:0 auto;
}
.mobile-cta-bar .btn{padding:.7em 1.2em;font-size:.92rem;flex:1;text-align:center;max-width:200px}
@media (max-width:900px){
  .mobile-cta-bar{display:block}
  /* Pad body bottom so content isn't hidden behind sticky bar */
  body{padding-bottom:68px}
}
@media (min-width:901px){.mobile-cta-bar{display:none !important}}

/* ----- Micro-testimonial in hero card ----- */
.micro-review{margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--c-border);display:flex;gap:.6rem;align-items:center}
.micro-review .micro-av{border-radius:50%;flex:0 0 auto}
.micro-review .micro-body{font-size:.82rem;color:var(--c-text-muted);line-height:1.35}
.micro-review .micro-stars{color:var(--c-accent)}
.micro-review .micro-name{color:var(--c-text)}

/* ----- Utility spacing ----- */
.mt-1-5{margin-top:1.5rem}
.max-w-60{max-width:60ch}
.mx-auto{margin-left:auto;margin-right:auto}
.faq-section{padding-bottom:2.5rem}

/* ----- Hero stats (extracted from inline — Architect iter-4 #1) ----- */
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--c-border)}
.hero-stats .stat-big{font-family:var(--f-heading);font-size:1.18rem;font-weight:600;line-height:1.2;color:var(--c-text)}
.hero-stats .stat-sm{font-size:.84rem;color:var(--c-text-muted);line-height:1.45;margin-top:.25rem}
@media (max-width:640px){.hero-stats{grid-template-columns:1fr}}

/* ----- Hero process (extracted from inline — Architect iter-4 #2) ----- */
.hero-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--c-border)}
.hero-process .step-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}
.hero-process .step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--c-main);color:#fff;font-size:.78rem;font-weight:700;font-family:var(--f-body)}
.hero-process .step-title{font-family:var(--f-heading);font-size:1rem;font-weight:600;color:var(--c-text);line-height:1.2}
.hero-process .step-desc{font-size:.84rem;color:var(--c-text-muted);line-height:1.45}
@media (max-width:640px){.hero-process{grid-template-columns:1fr}}

/* ----- Aside ticker (extracted from inline) ----- */
.aside-ticker{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:1.2rem;margin-top:1.2rem;box-shadow:0 1px 2px rgba(31,19,15,.04),0 4px 14px -10px rgba(31,19,15,.12)}
.aside-ticker h3{margin:0 0 .35rem;font-size:1.05rem}
.aside-ticker .ticker-sub{margin:0 0 .8rem;font-size:.82rem}
.aside-ticker .ticker-rows{font-size:.88rem;font-family:var(--f-body);line-height:1.7}
.aside-ticker .ticker-row{display:flex;justify-content:space-between;border-bottom:1px dashed var(--c-border);padding:.3rem 0}
.aside-ticker .ticker-day{color:var(--c-text-muted);font-weight:600;letter-spacing:.04em}
.aside-ticker .ticker-val{color:var(--c-text)}
.aside-ticker .ticker-updated{margin:.7rem 0 0;font-size:.76rem;text-align:right}

/* ----- Aside call card (extracted from inline) ----- */
.aside-call{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:1.2rem;margin-top:1.2rem;box-shadow:0 1px 2px rgba(31,19,15,.04),0 4px 14px -10px rgba(31,19,15,.12)}
.aside-call h3{margin:0 0 .35rem;font-size:1.05rem}
.aside-call .call-intro{margin:0 0 .8rem;font-size:.88rem}
.aside-call .call-number{display:block;font-family:var(--f-heading);font-size:1.35rem;font-weight:600;color:var(--c-main);text-decoration:none;line-height:1.1}
.aside-call .call-addr{font-size:.83rem;color:var(--c-text-muted);margin-top:.5rem;line-height:1.55}

/* ----- CTA band button area (extracted from inline) ----- */
.action-strip .cta-right{text-align:right}
@media (max-width:780px){.action-strip .cta-right{text-align:center}}
.action-strip .cta-btn{font-size:1.05rem;padding:1.1em 1.8em}
.action-strip .cta-tagline{font-size:.82rem;color:rgba(245,240,234,.75);margin-top:.55rem}

/* ----- Form helpers (extracted from inline) ----- */
.label-optional{font-weight:400;color:var(--c-text-muted);font-size:.78rem}
.tcpa-consent{font-size:.78rem;color:var(--c-text-muted);margin-top:.4rem}
.tcpa-consent .tcpa-check{color:var(--c-success)}

/* ----- Footer credential list + nav (extracted from inline) ----- */
.creds-list{list-style:none;padding:0;margin:.85rem 0 0;display:grid;gap:.45rem}
.creds-nav{margin-top:.85rem}

/* ----- Template helpers (extracted from inline) ----- */
.hero-cta-row{margin-top:1.2rem}
.form-intro{margin-bottom:.6rem}
.clean-list{list-style:none;padding:0;margin:0}
.mb-0{margin:0}
.max-w-62{max-width:62ch}
.section-footer{margin-top:1.2rem;text-align:center}
.spec-value{margin:.2rem 0 0}
.zone-start{justify-content:flex-start}
.band-rate{margin:.2rem 0 0;font-size:1.15rem;font-weight:600}
.band-note{margin:.3rem 0 0;font-size:.88rem}
.reviews-main{max-width:780px;margin:0 auto 2.5rem}
.mb-1-5{margin-bottom:1.5rem}

/* ===== HARLOWE — direction A new structure =====
   Warm editorial / organic re-architecture of the home + chrome.
   All colors via --c-* tokens. New blocks namespaced hw-. Appended; nothing above touched.
   Leadgen: hero form in first viewport, phone always visible in header,
   form ABOVE hero copy on mobile, no horizontal scroll at 390px, tap-targets >=44px, inputs 16px. */

/* ---------- 1. Header (hw-hd) — single inline row, flat nav, phone pill ---------- */
.hw-hd{position:sticky;top:0;z-index:50;background:var(--c-bg);border-bottom:1px solid var(--c-border)}
.hw-hd-inner{display:flex;align-items:center;gap:1.25rem;padding-block:.7rem;padding-inline:var(--spacing)}
.hw-hd-brand{flex:0 0 auto;display:inline-flex;align-items:center;line-height:1;text-decoration:none}
.hw-hd-brand .brand-logo{height:48px;max-width:190px;width:auto;object-fit:contain;display:block}
.hw-hd-nav{margin-left:auto}
/* qualified to outrank legacy .primary-nav > ul (the nav also carries .primary-nav for the JS hook) */
.hw-hd-nav .hw-hd-links{display:flex;align-items:center;gap:1.45rem;margin:0;padding:0;list-style:none;font-weight:500;flex-direction:row}
.hw-hd-links a{color:var(--c-text);text-decoration:none;font-size:.98rem;letter-spacing:.005em;white-space:nowrap;padding:.35rem 0;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}
.hw-hd-links a:hover{color:var(--c-main);border-color:var(--c-accent)}
.hw-hd-cta{flex:0 0 auto;display:flex;align-items:center;gap:.5rem}
.hw-hd-phone{display:inline-flex;align-items:center;gap:.4rem;background:var(--c-main);color:#fff;font-weight:700;font-size:.96rem;text-decoration:none;padding:.55rem 1.05rem;border-radius:999px;white-space:nowrap;transition:background-color .12s,transform .12s}
.hw-hd-phone:hover{background:var(--c-main-dk);color:#fff;transform:translateY(-1px)}
.hw-hd-phone-ic{font-size:1rem;line-height:1}
.hw-hd-burger{display:none;background:none;border:0;font-size:1.5rem;color:var(--c-text);padding:.5rem;cursor:pointer;min-width:44px;min-height:44px;line-height:1}
.hw-hd-burger:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:8px}
@media (max-width:900px){
  /* mobile drawer — qualified with both classes so HARLOWE beats legacy .primary-nav.open */
  .hw-hd-nav.primary-nav{position:absolute;top:100%;left:0;right:0;display:none;width:auto;min-width:0;max-height:calc(100vh - 70px);overflow-y:auto;background:var(--c-bg);border:0;border-bottom:1px solid var(--c-border);box-shadow:0 12px 28px -16px rgba(31,19,15,.25);padding:.6rem var(--spacing) 1rem;margin-left:0}
  .hw-hd-nav.primary-nav.open{display:block}
  .hw-hd-nav .hw-hd-links{flex-direction:column;align-items:stretch;gap:0}
  .hw-hd-links a{display:block;padding:.7rem 0;min-height:44px;border-bottom:1px solid var(--c-border)}
  .hw-hd-links li:last-child a{border-bottom:0}
  .hw-hd-burger{display:inline-flex;align-items:center;justify-content:center;order:2}
}

/* ---------- 2. Hero (hw-hero) — centered editorial + horizontal form panel ---------- */
.hw-hero{position:relative;background:linear-gradient(180deg,var(--c-bg-alt) 0%,var(--c-bg) 70%);overflow:hidden;padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(2.5rem,4vw,4rem)}
.hw-hero-inner{position:relative;z-index:2}
.hw-hero-blob{position:absolute;z-index:0;width:clamp(280px,40vw,520px);aspect-ratio:1;background:radial-gradient(circle at 35% 35%,rgba(50,99,88,.16),rgba(50,99,88,0) 70%);border-radius:var(--radius-organic);top:-8%;right:-10%;pointer-events:none}
.hw-hero-blob-2{top:auto;right:auto;bottom:-12%;left:-12%;width:clamp(240px,32vw,420px);background:radial-gradient(circle at 50% 50%,rgba(46,28,22,.12),rgba(46,28,22,0) 70%)}
.hw-hero-head{max-width:760px;margin:0 auto;text-align:center}
.hw-hero-head h1{font-size:clamp(2.5rem,1.5rem + 3.4vw,4.2rem);line-height:1.06;margin:.2rem 0 .5rem;color:var(--c-main);max-width:none}
.hw-hero-tagline{font-family:var(--f-heading);font-weight:600;font-size:clamp(1.2rem,1rem + 1vw,1.7rem);line-height:1.25;color:var(--c-text);margin-bottom:.7rem}
.hw-hero-sub{font-size:1.06rem;line-height:1.6;color:var(--c-text-muted);max-width:60ch;margin:0 auto}
/* horizontal warm form panel under the centered copy */
.hw-quotepanel{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(1.25rem,3vw,2.5rem);align-items:start;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:0 1px 2px rgba(31,19,15,.04),0 24px 60px -32px rgba(46,28,22,.35);padding:clamp(1.4rem,3vw,2.2rem);margin:clamp(1.8rem,3.5vw,2.8rem) auto 0;max-width:980px;position:relative}
.hw-quotepanel::before{content:"";position:absolute;left:0;top:1.4rem;bottom:1.4rem;width:4px;border-radius:999px;background:linear-gradient(180deg,var(--c-accent),var(--c-main))}
.hw-quotepanel-intro{padding-left:.5rem}
.hw-quotepanel-intro h2{font-size:clamp(1.4rem,1.1rem + 1vw,1.85rem);margin-bottom:.4rem;color:var(--c-main)}
.hw-quotepanel-intro .muted{font-size:.96rem;line-height:1.55;margin-bottom:1rem}
.hw-quotepanel-call{display:inline-block;font-size:.95rem;padding:.7em 1.1em}
/* horizontal/compact form: name+phone on one row, then email+zips inline 2-up; submit full width */
.hw-quotepanel-form .ns-form .row{margin-bottom:.7rem}
.hw-quotepanel-form .ns-form .submit-row{margin-top:1.1rem}
.hw-quotepanel-form .ns-form .reassure{font-size:.8rem;margin-top:.45rem}
.hw-quotepanel-form .ns-form .tcpa-consent{font-size:.74rem}
/* inline trust facts row */
.hw-hero-facts{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .9rem;margin:clamp(1.4rem,2.5vw,2rem) auto 0;max-width:900px;text-align:center;font-size:.95rem;color:var(--c-text-muted)}
.hw-hero-facts .hw-fact strong{color:var(--c-text);font-family:var(--f-heading);font-weight:600}
.hw-hero-facts .hw-fact-sep{color:var(--c-accent)}
.hw-hero-assoc{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.4rem;margin-top:1.2rem}
.hw-hero-assoc img{height:22px;width:auto;opacity:.6;filter:grayscale(35%) brightness(.9);transition:opacity .15s,filter .15s}
.hw-hero-assoc img:hover{opacity:.95;filter:grayscale(0) brightness(1)}
@media (max-width:900px){
  /* LEADGEN: form panel ABOVE the hero copy on mobile (order) */
  .hw-hero-inner{display:flex;flex-direction:column}
  .hw-hero-head{order:2;text-align:left}
  .hw-quotepanel{order:1;grid-template-columns:1fr;margin-top:0}
  .hw-hero-facts{order:3;justify-content:flex-start;text-align:left}
  .hw-hero-assoc{order:4;justify-content:flex-start}
  .hw-quotepanel-intro{padding-left:.4rem}
}
@media (max-width:560px){
  .hw-quotepanel{padding:1.2rem 1.1rem;border-radius:var(--radius)}
  .hw-quotepanel::before{left:0;top:1rem;bottom:1rem}
  .hw-hero-facts .hw-fact-sep{display:none}
  .hw-hero-facts{flex-direction:column;align-items:flex-start;gap:.35rem}
}

/* ---------- 3. Process (hw-proc) — vertical zigzag, big numbers ---------- */
.hw-proc{background:var(--c-bg)}
.hw-proc-head{max-width:680px;margin:0 0 clamp(2rem,4vw,3rem)}
.hw-proc-list{list-style:none;margin:0;padding:0;position:relative;max-width:920px;margin-inline:auto;counter-reset:none}
.hw-proc-list::before{content:"";position:absolute;left:50%;top:1.5rem;bottom:1.5rem;width:2px;background:linear-gradient(180deg,var(--c-accent),var(--c-main));transform:translateX(-50%);opacity:.35}
.hw-proc-step{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(1rem,3vw,2.5rem);margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.hw-proc-step:last-child{margin-bottom:0}
.hw-proc-num{grid-column:2;display:flex;align-items:center;justify-content:center;width:clamp(64px,8vw,92px);height:clamp(64px,8vw,92px);border-radius:var(--radius-organic);background:var(--c-surface);border:2px solid var(--c-accent);box-shadow:0 14px 34px -18px rgba(50,99,88,.55);position:relative;z-index:2}
.hw-proc-num span{font-family:var(--f-heading);font-weight:600;font-size:clamp(1.9rem,3vw,2.8rem);color:var(--c-main);line-height:1}
.hw-proc-body{grid-column:1;text-align:right}
.hw-proc-step:nth-child(even) .hw-proc-body{grid-column:3;text-align:left}
.hw-proc-body h3{font-size:clamp(1.2rem,1rem + .7vw,1.5rem);margin-bottom:.45rem;color:var(--c-text)}
.hw-proc-body p{margin:0;color:var(--c-text-muted);font-size:1rem;line-height:1.6}
@media (max-width:760px){
  .hw-proc-list::before{left:30px}
  .hw-proc-step{grid-template-columns:60px 1fr;gap:1.1rem;align-items:start}
  .hw-proc-num{grid-column:1;width:60px;height:60px}
  .hw-proc-num span{font-size:1.6rem}
  .hw-proc-body,.hw-proc-step:nth-child(even) .hw-proc-body{grid-column:2;text-align:left}
}

/* ---------- 4. Services (hw-svc) — alternating photo/text rows + compact list ---------- */
.hw-svc{background:var(--c-bg-alt)}
.hw-svc-head{max-width:720px;margin:0 0 clamp(1.8rem,3.5vw,2.8rem)}
.hw-svcrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-bottom:clamp(2rem,4vw,3.2rem)}
.hw-svcrow-photo{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-organic);box-shadow:0 22px 50px -28px rgba(31,19,15,.5)}
.hw-svcrow-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) sepia(.06) contrast(1.02);transition:transform .4s ease}
.hw-svcrow:hover .hw-svcrow-photo img{transform:scale(1.04)}
.hw-svcrow-flip .hw-svcrow-photo{order:2}
.hw-svcrow-flip .hw-svcrow-copy{order:1}
.hw-svcrow-idx{display:block;font-family:var(--f-heading);font-weight:600;font-size:2.6rem;line-height:1;color:var(--c-accent);opacity:.55;margin-bottom:.2rem}
.hw-svcrow-copy h3{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin-bottom:.5rem;color:var(--c-main)}
.hw-svcrow-copy p{color:var(--c-text-muted);font-size:1.04rem;line-height:1.6;margin-bottom:1rem;max-width:48ch}
.hw-svcrow-link{font-weight:600;color:var(--c-main);text-decoration:none;border-bottom:2px solid var(--c-accent);padding-bottom:2px}
.hw-svcrow-link:hover{color:var(--c-main-dk)}
.hw-svc-more{margin-top:clamp(2rem,4vw,3rem);padding-top:clamp(1.6rem,3vw,2.2rem);border-top:1px solid var(--c-border)}
.hw-svc-more-head{font-size:1.3rem;margin-bottom:1.2rem;color:var(--c-text)}
.hw-svc-more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.hw-svc-more-item{display:flex;flex-direction:column;gap:.4rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:1.1rem 1.2rem 1.2rem;text-decoration:none;color:var(--c-text);transition:transform .12s,box-shadow .12s,border-color .12s}
.hw-svc-more-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(31,19,15,.3);border-color:var(--c-accent)}
.hw-svc-more-item h4{font-family:var(--f-heading);font-size:1.12rem;font-weight:600;margin:0;color:var(--c-text);line-height:1.25}
.hw-svc-more-item p{margin:0;font-size:.94rem;color:var(--c-text-muted);line-height:1.5}
.hw-svc-more-link{margin-top:auto;font-size:.9rem;font-weight:600;color:var(--c-main)}
.hw-svc-all{margin-top:clamp(1.6rem,3vw,2.2rem);text-align:center}
@media (max-width:760px){
  .hw-svcrow{grid-template-columns:1fr;gap:1.2rem}
  .hw-svcrow-flip .hw-svcrow-photo{order:0}
  .hw-svcrow-flip .hw-svcrow-copy{order:0}
  .hw-svcrow-copy p{max-width:none}
}

/* ---------- 5. Pricing calculator (hw-calc) — warm inset panel ---------- */
.hw-calc{background:var(--c-bg)}
.hw-calc-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;background:var(--c-bg-alt);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:clamp(1.6rem,4vw,3rem);position:relative;overflow:hidden}
.hw-calc-panel::after{content:"";position:absolute;width:280px;height:280px;right:-90px;bottom:-110px;background:radial-gradient(circle at 50% 50%,rgba(50,99,88,.14),rgba(50,99,88,0) 70%);border-radius:var(--radius-organic);pointer-events:none}
.hw-calc-intro{position:relative;z-index:1}
.hw-calc-intro h2{font-size:clamp(1.5rem,1.2rem + 1.1vw,2.1rem);margin-bottom:.6rem;color:var(--c-main)}
.hw-calc-intro .muted{font-size:1rem;line-height:1.6;max-width:46ch}
.hw-calc-tool{position:relative;z-index:1;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:clamp(1.3rem,3vw,2rem);box-shadow:0 18px 44px -24px rgba(31,19,15,.35)}
.hw-calc-tool h3{font-size:1.15rem;margin-bottom:1rem;text-align:center;color:var(--c-text)}
.hw-calc-tool .calc-row{display:flex;gap:.8rem;margin-bottom:1rem;align-items:end}
.hw-calc-tool .calc-row > div{flex:1}
.hw-calc-tool .calc-result{text-align:center;padding:1.2rem;background:var(--c-bg-alt);border-radius:var(--radius);margin-top:1rem}
.hw-calc-tool .calc-range{font-family:var(--f-heading);font-weight:700;font-size:clamp(1.7rem,2.5vw,2.3rem);color:var(--c-accent);line-height:1.1}
.hw-calc-tool .calc-note{font-size:.84rem;color:var(--c-text-muted);margin-top:.4rem}
.hw-calc-tool .calc-result .btn{margin-top:.8rem}
@media (max-width:780px){.hw-calc-panel{grid-template-columns:1fr;gap:1.4rem}.hw-calc-intro .muted{max-width:none}}
@media (max-width:520px){.hw-calc-tool .calc-row{flex-direction:column;gap:.6rem;align-items:stretch}}

/* ---------- 6. Reviews (hw-quote) — featured pullquote + avatar filmstrip ---------- */
.hw-quote{background:var(--c-main);color:#ebe4d9}
.hw-quote-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.hw-quote-head h2{color:#fff;margin:0;font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);max-width:18ch}
.hw-quote-summary{margin:0}
.hw-quote-summary .review-count{color:rgba(240,238,231,.8)}
.hw-quote-feature{margin:0 0 clamp(1.6rem,3vw,2.4rem)}
.hw-quote-big{font-family:var(--f-heading);font-weight:500;font-size:clamp(1.5rem,1.1rem + 1.8vw,2.5rem);line-height:1.32;color:#fff;margin:0 0 1.2rem;max-width:24ch}
.hw-quote-cite{display:flex;align-items:center;gap:.85rem}
.hw-quote-cite-av{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid rgba(255,255,255,.35)}
.hw-quote-cite-meta{display:flex;flex-direction:column;line-height:1.3}
.hw-quote-cite-meta strong{color:#fff;font-weight:600}
.hw-quote-cite-sub{font-size:.86rem;color:rgba(240,238,231,.72)}
.hw-quote-strip{display:flex;gap:.9rem;overflow-x:auto;padding:.4rem .2rem 1rem;margin:0 -.2rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.hw-quote-strip::-webkit-scrollbar{height:6px}
.hw-quote-strip::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:999px}
.hw-quote-chip{flex:0 0 auto;width:150px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:1rem .85rem}
.hw-quote-chip-av{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.3)}
.hw-quote-chip-nm{font-weight:600;font-size:.9rem;color:#fff;line-height:1.2}
.hw-quote-chip-stars{color:var(--c-accent);font-size:.85rem;letter-spacing:.04em}
.hw-quote-all{margin:clamp(1.4rem,2.5vw,2rem) 0 0;text-align:center}
.hw-quote-all .btn-primary{background:var(--c-accent);color:#1f130f}
.hw-quote-all .btn-primary:hover{background:var(--c-accent-dk);color:#1f130f}
@media (max-width:640px){.hw-quote-big{max-width:none}.hw-quote-chip{width:135px}}

/* ---------- 7. About / why-us (hw-about) — editorial 2-col USP list ---------- */
.hw-about{background:var(--c-bg)}
.hw-about-head{max-width:760px;margin:0 0 clamp(1.6rem,3vw,2.4rem)}
.hw-about-head h2{color:var(--c-main)}
.hw-about-usp{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 2.6rem}
.hw-about-usp li{position:relative;padding-left:1.7rem;font-size:1.02rem;line-height:1.55;color:var(--c-text)}
.hw-about-usp li::before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;border-radius:var(--radius-organic);background:var(--c-accent)}
.hw-about-usp li strong{font-weight:600;color:var(--c-main);font-family:var(--f-heading)}
.hw-about-usp li + li::after{content:none}
.hw-about-usp li:not(:last-child){border-bottom:1px solid var(--c-border);padding-bottom:1.4rem}
@media (max-width:760px){.hw-about-usp{grid-template-columns:1fr;gap:0}.hw-about-usp li{padding-bottom:1.1rem;margin-bottom:0}.hw-about-usp li:last-child{border-bottom:0;padding-bottom:0}}

/* ---------- 8. Areas (hw-areas) — suburb index + map panel + routes index ---------- */
.hw-areas{background:var(--c-bg-alt)}
.hw-areas-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:stretch}
.hw-areas-col h2{color:var(--c-main)}
.hw-areas-index{list-style:none;margin:.4rem 0 0;padding:0;columns:2;column-gap:1.6rem}
.hw-areas-index li{break-inside:avoid;margin-bottom:.15rem}
.hw-areas-index a{display:block;padding:.55rem 0;color:var(--c-text);text-decoration:none;font-weight:500;border-bottom:1px solid var(--c-border);min-height:44px;transition:color .12s,padding-left .12s}
.hw-areas-index a:hover{color:var(--c-main);padding-left:.35rem}
.hw-areas-map{border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,var(--c-main) 0%,var(--c-main-dk) 100%);min-height:260px;position:relative;border:1px solid var(--c-border)}
.hw-areas-map-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:22px 22px}
.hw-areas-map-pin{width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--c-accent);transform:rotate(-45deg);box-shadow:0 0 0 8px rgba(50,99,88,.25),0 10px 22px -8px rgba(0,0,0,.4)}
.hw-areas-map-label{font-family:var(--f-heading);font-weight:600;font-size:1.2rem;color:#fff;letter-spacing:.01em}
.hw-areas-routes{margin-top:clamp(2rem,4vw,3rem);padding-top:clamp(1.6rem,3vw,2.2rem);border-top:1px solid var(--c-border)}
.hw-areas-routes h3{font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);color:var(--c-main);margin-bottom:.5rem}
.hw-areas-index-routes{columns:3;margin-top:1rem}
.hw-areas-routes-all{margin-top:1.4rem}
@media (max-width:780px){.hw-areas-grid{grid-template-columns:1fr}.hw-areas-map{min-height:200px;order:-1}.hw-areas-index-routes{columns:2}}
@media (max-width:480px){.hw-areas-index{columns:1}.hw-areas-index-routes{columns:1}}

/* ---------- 9. FAQ (hw-faq2) — 2-col, all answers open ---------- */
.hw-faq2{background:var(--c-bg)}
.hw-faq2-head{max-width:680px;margin:0 0 clamp(1.6rem,3vw,2.4rem)}
.hw-faq2-grid{columns:2;column-gap:2.6rem}
.hw-faq2-item{break-inside:avoid;margin-bottom:1.6rem;padding-bottom:1.6rem;border-bottom:1px solid var(--c-border)}
.hw-faq2-item h3{font-size:1.12rem;font-weight:600;color:var(--c-main);margin-bottom:.5rem;line-height:1.3}
.hw-faq2-item p{margin:0;color:var(--c-text-muted);font-size:.98rem;line-height:1.6}
@media (max-width:760px){.hw-faq2-grid{columns:1}}

/* ---------- 10. CTA — restyle action-strip into asymmetric warm layout ---------- */
.hw-faq2 + .action-strip,.action-strip{background:linear-gradient(120deg,var(--c-main) 0%,var(--c-main-dk) 100%)}
.action-strip .inner{grid-template-columns:1.5fr auto;align-items:center;gap:2rem}
.action-strip h2{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.5rem);max-width:20ch}
.action-strip .cta-btn{background:var(--c-accent);color:#1f130f}
.action-strip .cta-btn:hover{background:var(--c-accent-dk);color:#1f130f}
@media (max-width:780px){.action-strip .inner{grid-template-columns:1fr;text-align:center}.action-strip h2{max-width:none}}

/* ---------- 11. Footer (hw-ft) — large-typography sitemap ---------- */
.hw-ft{background:#2e1c16;color:#c7bdb2;padding-block:clamp(2.5rem,4vw,3.5rem) 1.4rem}
.hw-ft a{color:#f2eee7;text-decoration:none}
.hw-ft a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.hw-ft-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding-bottom:clamp(1.6rem,3vw,2.4rem);border-bottom:1px solid #f2eee7}
.hw-ft-logo{height:54px;width:auto}
.hw-ft-nap{margin:0;font-size:.92rem;line-height:1.7;color:#9a8f86;text-align:right}
.hw-ft-phone{font-family:var(--f-heading);font-size:1.2rem;font-weight:600;color:#fff !important}
.hw-ft-map{display:flex;flex-wrap:wrap;gap:.55rem 2rem;padding:clamp(1.8rem,3.5vw,2.6rem) 0;font-family:var(--f-heading);font-weight:500;font-size:clamp(1.1rem,.95rem + .7vw,1.55rem);line-height:1.4}
.hw-ft-map a{color:#e3dcd2;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}
.hw-ft-map a:hover{color:#fff;border-color:var(--c-accent);text-decoration:none}
.hw-ft-creds{list-style:none;margin:0 0 1.4rem;padding:1.4rem 0 0;border-top:1px solid #f2eee7;display:flex;flex-wrap:wrap;gap:.6rem 2rem;font-size:.88rem;color:#9a8f86}
.hw-ft-creds li{display:flex;gap:.55rem;align-items:flex-start}
.hw-ft-check{color:var(--c-accent);font-weight:700;flex:0 0 auto;line-height:1.4}
.hw-ft-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;padding-top:1.4rem;border-top:1px solid #f2eee7;font-size:.84rem;color:#8c8278}
.hw-ft-bottom a{display:inline-block;min-height:44px;line-height:44px}
@media (max-width:640px){
  .hw-ft-top{flex-direction:column}
  .hw-ft-nap{text-align:left}
  .hw-ft-map{font-size:1.15rem;gap:.4rem 1.4rem}
  .hw-ft-creds{flex-direction:column;gap:.5rem}
}


/* HARLOWE fix: constrain header logo + hero assoc logos (were rendering at intrinsic size) */
.hw-hd .brand-logo,.hw-hd-brand img{height:48px !important;width:auto !important;max-width:250px;object-fit:contain;display:block}
.hw-hero-assoc{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:center;margin-top:1.5rem}
.hw-hero-assoc img{height:22px !important;width:auto !important;opacity:.72}
@media(max-width:600px){.hw-hd .brand-logo,.hw-hd-brand img{height:38px !important;max-width:175px}}


/* ===== FIRSTRATE skin + effects =====
   Bold energetic mover (firstratede.com). Dark forest green sections + white text,
   Montserrat 900 UPPERCASE heads with a mint accent word, orange pill CTAs with a
   hover lift, mint feature cards with check bullets, dark-green form inputs.
   OVERRIDES the HARLOWE/base skin above (specificity / !important where needed).
   Layout, positions, order rules and structure are intentionally NOT touched.
   Effects (scroll-reveal, marquee, floating review popup, hover) are at the bottom.
   ====================================================================== */

/* ---------- Brand colour anchors (local, not in tokens) ---------- */
:root{
  --fr-green:#5c3a2e; --fr-green-dk:#4a2e24;
  --fr-mint:#7fbba9; --fr-orange:#11a40e; --fr-orange-dk:#0d8a0b;
  --fr-white:#FFFFFF; --fr-muted:#453a34;
  --fr-mint-line:rgba(92,58,46,.22);
  --fr-mint-soft:rgba(92,58,46,.07);
}

/* ---------- Global type + body ---------- */
body{background:var(--fr-green);color:var(--fr-white);font-family:'Oswald',system-ui,sans-serif;font-weight:300}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif}
h1,h2{font-weight:900;text-transform:uppercase;letter-spacing:-.01em;line-height:1.02}
h3{font-weight:800;letter-spacing:-.005em}
h4{font-weight:700}
.eyebrow{color:var(--fr-mint);text-transform:uppercase;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.18em}
.accent-text,.accent{color:var(--fr-mint)}
.muted{color:var(--fr-muted)}
a{color:var(--fr-white)}
a:hover{color:var(--fr-mint)}
/* mint accent word inside a heading */
.hw-hero-tagline .accent,.accent{color:var(--fr-mint)}

/* ---------- Section rhythm: dark-green default; mint + white contrast bands ---------- */
section{background:var(--fr-green)}
section.alt{background:var(--fr-green-dk)}
section > .container > h2:first-child,section > .container > .eyebrow + h2{color:var(--fr-white)}
/* drop the cream-on-cream HARLOWE divider — replace with a faint mint hairline */
section.alt + section.alt,section:not(.alt) + section:not(.alt){border-top:1px solid var(--fr-mint-soft) !important}

/* ---------- Buttons: ALL primary CTAs orange, pill, uppercase, hover-lift ---------- */
.btn{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease,color .16s ease}
.btn-primary,.btn-accent,.hw-quote-all .btn-primary,.action-strip .cta-btn,.calc-result .btn,.hw-calc-tool .calc-result .btn{
  background:var(--fr-orange) !important;color:var(--fr-white) !important;border-color:transparent !important;font-weight:700
}
.btn-primary:hover,.btn-accent:hover,.hw-quote-all .btn-primary:hover,.action-strip .cta-btn:hover,.calc-result .btn:hover,.hw-calc-tool .calc-result .btn:hover{
  background:var(--fr-orange-dk) !important;color:var(--fr-white) !important;transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(168,212,200,.55)
}
.ns-form .submit-row button,.ns-form button[type="submit"]{background:var(--fr-orange) !important;color:var(--fr-white) !important;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;border:0;transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease}
.ns-form .submit-row button:hover,.ns-form button[type="submit"]:hover{background:var(--fr-orange-dk) !important;color:var(--fr-white) !important;transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(168,212,200,.55)}
/* outline / ghost → mint outline on dark */
.btn-outline{background:transparent;color:var(--fr-mint);border:2px solid var(--fr-mint)}
.btn-outline:hover{background:var(--fr-mint);color:var(--fr-green);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(168,212,200,.5)}
.btn-ghost{background:transparent;color:var(--fr-white);border-color:var(--fr-mint-line)}
.btn-ghost:hover{background:var(--fr-mint-soft);color:var(--fr-mint);border-color:var(--fr-mint)}
.btn:focus-visible,.btn-outline:focus-visible{outline:2px solid var(--fr-mint);outline-offset:2px}

/* ---------- Forms: dark-green card with light-bordered inputs ---------- */
.ns-form label{color:var(--fr-white);font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem}
.ns-form input,.ns-form select,.ns-form textarea{
  background:var(--fr-green-dk) !important;color:var(--fr-white) !important;
  border:1px solid var(--fr-mint-line) !important;border-radius:10px
}
.ns-form input::placeholder,.ns-form textarea::placeholder{color:rgba(235,228,217,.55)}
.ns-form input:focus,.ns-form select:focus,.ns-form textarea:focus{outline:2px solid var(--fr-mint) !important;outline-offset:1px;border-color:var(--fr-mint) !important}
.ns-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394FFD6' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center}
.ns-form .reassure,.tcpa-consent{color:var(--fr-muted)}
.tcpa-consent .tcpa-check,.ns-form .tcpa-check{color:var(--fr-mint)}
.label-optional{color:var(--fr-muted)}
.ns-form a,.tcpa-consent a{color:var(--fr-mint)}

/* ---------- Header (hw-hd) — dark green, mint hovers, orange phone pill ---------- */
.hw-hd{background:var(--fr-green) !important;border-bottom:1px solid var(--fr-mint-line) !important}
.hw-hd-links a{color:var(--fr-white) !important;font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.92rem}
.hw-hd-links a:hover{color:var(--fr-mint) !important;border-color:var(--fr-mint) !important}
.hw-hd-phone{background:var(--fr-orange) !important;color:var(--fr-white) !important;font-family:'Oswald',sans-serif;font-weight:700}
.hw-hd-phone:hover{background:var(--fr-orange-dk) !important;color:var(--fr-white) !important;transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(168,212,200,.55)}
.hw-hd-burger{color:var(--fr-white)}
@media (max-width:900px){.hw-hd-nav.primary-nav{background:var(--fr-green) !important;border-bottom:1px solid var(--fr-mint-line) !important}.hw-hd-links a{border-bottom:1px solid var(--fr-mint-line) !important}}

/* ---------- Hero (hw-hero) — bold dark hero, huge mint-accented H1 ---------- */
.hw-hero{background:linear-gradient(180deg,var(--fr-green-dk) 0%,var(--fr-green) 65%) !important}
.hw-hero-blob{background:radial-gradient(circle at 35% 35%,rgba(168,212,200,.14),rgba(168,212,200,0) 70%) !important}
.hw-hero-blob-2{background:radial-gradient(circle at 50% 50%,rgba(168,212,200,.16),rgba(168,212,200,0) 70%) !important}
.hw-hero-head h1{color:var(--fr-white) !important;font-family:'Montserrat',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.015em;font-size:clamp(2.6rem,1.4rem + 4.8vw,5.4rem);line-height:1}
.hw-hero-tagline{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:800;text-transform:uppercase}
.hw-hero-tagline .accent{color:var(--fr-white) !important}
.hw-hero-sub{color:var(--fr-muted) !important}
.hw-hero-facts{color:var(--fr-muted)}
.hw-hero-facts .hw-fact strong{color:var(--fr-mint);font-family:'Montserrat',sans-serif;font-weight:800}
.hw-hero-facts .hw-fact-sep{color:var(--fr-orange)}
/* hero form panel → dark-green card, mint rule, orange-to-mint spine */
.hw-quotepanel{background:var(--fr-green-dk) !important;border:1px solid var(--fr-mint-line) !important;box-shadow:0 1px 2px rgba(0,0,0,.3),0 28px 70px -30px rgba(0,0,0,.7) !important}
.hw-quotepanel::before{background:linear-gradient(180deg,var(--fr-orange),var(--fr-mint)) !important}
.hw-quotepanel-intro h2{color:var(--fr-white) !important;font-family:'Montserrat',sans-serif;font-weight:900;text-transform:uppercase}
.hw-quotepanel-intro .muted{color:var(--fr-muted) !important}

/* ---------- Process (hw-proc) — dark band, mint numbers on green discs ---------- */
.hw-proc{background:var(--fr-green) !important}
.hw-proc-list::before{background:linear-gradient(180deg,var(--fr-mint),var(--fr-orange)) !important;opacity:.45}
.hw-proc-num{background:var(--fr-green-dk) !important;border:2px solid var(--fr-mint) !important;box-shadow:0 14px 34px -18px rgba(168,212,200,.5) !important}
.hw-proc-num span{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:900}
.hw-proc-body h3{color:var(--fr-white) !important}
.hw-proc-body p{color:var(--fr-muted) !important}
.hw-proc-head h2{color:var(--fr-white) !important}

/* ---------- Services (hw-svc) — darker band, mint headings, mint "more" cards ---------- */
.hw-svc{background:var(--fr-green-dk) !important}
.hw-svc-head h2{color:var(--fr-white) !important}
.hw-svc-head .muted{color:var(--fr-muted) !important}
.hw-svcrow-photo{box-shadow:0 22px 50px -28px rgba(0,0,0,.8) !important}
.hw-svcrow-photo img{filter:saturate(1) contrast(1.02)}
.hw-svcrow-idx{color:var(--fr-orange) !important;opacity:.85;font-family:'Montserrat',sans-serif;font-weight:900}
.hw-svcrow-copy h3{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:800;text-transform:uppercase}
.hw-svcrow-copy p{color:var(--fr-muted) !important}
.hw-svcrow-link{color:var(--fr-mint) !important;border-bottom:2px solid var(--fr-orange) !important;text-transform:uppercase;font-weight:600;letter-spacing:.04em}
.hw-svcrow-link:hover{color:var(--fr-white) !important}
.hw-svc-more{border-top:1px solid var(--fr-mint-line) !important}
.hw-svc-more-head{color:var(--fr-white) !important}
/* mint feature cards with check bullets */
.hw-svc-more-item{background:var(--fr-mint) !important;border:1px solid var(--fr-mint) !important;color:var(--fr-green) !important;padding-left:2.6rem;position:relative}
.hw-svc-more-item::before{content:"";position:absolute;left:1.2rem;top:1.3rem;width:18px;height:18px;border-radius:50%;background:var(--fr-green);box-shadow:inset 0 0 0 2px var(--fr-mint)}
.hw-svc-more-item::after{content:"\2713";position:absolute;left:1.5rem;top:1.18rem;color:var(--fr-mint);font-size:.7rem;font-weight:700;line-height:1.6}
.hw-svc-more-item h4{color:var(--fr-green) !important;font-family:'Montserrat',sans-serif;font-weight:800}
.hw-svc-more-item p{color:rgba(74,46,36,.82) !important}
.hw-svc-more-item .hw-svc-more-link{color:var(--fr-green) !important;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.hw-svc-more-item:hover{transform:translateY(-3px);box-shadow:0 16px 34px -16px rgba(168,212,200,.55);border-color:var(--fr-mint)}

/* ---------- Pricing calculator (hw-calc) — green panel, mint tool, orange figure ---------- */
.hw-calc{background:var(--fr-green) !important}
.hw-calc-panel{background:var(--fr-green-dk) !important;border:1px solid var(--fr-mint-line) !important}
.hw-calc-panel::after{background:radial-gradient(circle at 50% 50%,rgba(168,212,200,.16),rgba(168,212,200,0) 70%) !important}
.hw-calc-intro h2{color:var(--fr-white) !important}
.hw-calc-intro .muted{color:var(--fr-muted) !important}
.hw-calc-tool{background:var(--fr-mint) !important;border:1px solid var(--fr-mint) !important;box-shadow:0 18px 44px -22px rgba(0,0,0,.7) !important}
.hw-calc-tool h3{color:var(--fr-green) !important;font-family:'Montserrat',sans-serif;font-weight:800;text-transform:uppercase}
.hw-calc-tool label,.hw-calc-tool .calc-row label{color:var(--fr-green) !important;font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}
.hw-calc-tool select{background:var(--fr-white) !important;color:var(--fr-green) !important;border:1px solid rgba(74,46,36,.25) !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23183600' stroke-width='1.5' fill='none'/%3E%3C/svg%3E")}
.hw-calc-tool .calc-result{background:var(--fr-green) !important}
.hw-calc-tool .calc-range{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:900}
.hw-calc-tool .calc-note{color:var(--fr-muted) !important}

/* ---------- Reviews (hw-quote) — mint band, dark text (white contrast band) ---------- */
.hw-quote{background:var(--fr-mint) !important;color:var(--fr-green) !important}
.hw-quote-head h2{color:var(--fr-green) !important;font-family:'Montserrat',sans-serif;font-weight:900;text-transform:uppercase}
.hw-quote-summary .review-count{color:rgba(74,46,36,.72) !important}
.hw-quote .review-badge{background:var(--fr-green) !important;color:var(--fr-mint) !important;text-transform:uppercase}
.hw-quote .stars-big,.hw-quote-chip-stars{color:var(--fr-orange) !important}
.hw-quote-big{color:var(--fr-green) !important;font-family:'Montserrat',sans-serif;font-weight:800}
.hw-quote-cite-av{border:2px solid var(--fr-green) !important}
.hw-quote-cite-meta strong{color:var(--fr-green) !important}
.hw-quote-cite-sub{color:rgba(74,46,36,.7) !important}
.hw-quote-chip{background:rgba(74,46,36,.08) !important;border:1px solid rgba(74,46,36,.18) !important}
.hw-quote-chip-av{border:2px solid var(--fr-green) !important}
.hw-quote-chip-nm{color:var(--fr-green) !important}
.hw-quote-strip::-webkit-scrollbar-thumb{background:rgba(74,46,36,.25)}

/* ---------- Owner block (founder-section, section.alt) ---------- */
.founder-section .ph{border:1px solid var(--fr-mint-line);box-shadow:0 16px 36px -22px rgba(0,0,0,.8)}
.founder-section .ph img{filter:saturate(1) contrast(1.02)}
.founder-section blockquote{color:var(--fr-white) !important;border-left:3px solid var(--fr-orange) !important;font-style:italic;font-family:'Oswald',sans-serif}
.founder-section h2{color:var(--fr-white) !important}
.founder-section .eyebrow{color:var(--fr-mint) !important}
.founder-section .muted{color:var(--fr-muted) !important}

/* ---------- About / why-us (hw-about) — mint diamond bullets ---------- */
.hw-about{background:var(--fr-green) !important}
.hw-about-head h2{color:var(--fr-white) !important}
.hw-about-usp li{color:var(--fr-muted) !important;border-bottom-color:var(--fr-mint-line) !important}
.hw-about-usp li::before{background:var(--fr-mint) !important}
.hw-about-usp li strong{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:800}

/* ---------- Areas (hw-areas) — darker band, green map, orange pin ---------- */
.hw-areas{background:var(--fr-green-dk) !important}
.hw-areas-col h2,.hw-areas-routes h3{color:var(--fr-white) !important}
.hw-areas-routes .muted{color:var(--fr-muted) !important}
.hw-areas-index a{color:var(--fr-muted) !important;border-bottom:1px solid var(--fr-mint-line) !important}
.hw-areas-index a:hover{color:var(--fr-mint) !important}
.hw-areas-map{background:linear-gradient(135deg,var(--fr-green) 0%,var(--fr-green-dk) 100%) !important;border:1px solid var(--fr-mint-line) !important}
.hw-areas-map-pin{background:var(--fr-orange) !important;box-shadow:0 0 0 8px rgba(168,212,200,.25),0 10px 22px -8px rgba(0,0,0,.55) !important}
.hw-areas-map-label{color:var(--fr-white) !important}
.hw-areas-routes{border-top:1px solid var(--fr-mint-line) !important}

/* ---------- FAQ (hw-faq2) — dark band, mint questions ---------- */
.hw-faq2{background:var(--fr-green) !important}
.hw-faq2-head h2{color:var(--fr-white) !important}
.hw-faq2-item{border-bottom:1px solid var(--fr-mint-line) !important}
.hw-faq2-item h3{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:800}
.hw-faq2-item p{color:var(--fr-muted) !important}

/* ---------- Trust strip (badge-row) — darker band, mint heading ---------- */
.badge-row{background:var(--fr-green-dk) !important;border-block:1px solid var(--fr-mint-line) !important}
.badge-row .heading{color:var(--fr-mint) !important;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.16em}
.badge-row img{filter:grayscale(100%) brightness(0) invert(1);opacity:.78}
.badge-row a:hover img,.badge-row img:hover{filter:grayscale(0) brightness(1) invert(0);opacity:1}

/* ---------- CTA band (action-strip) — orange-forward energetic band ---------- */
.hw-faq2 + .action-strip,.action-strip{background:linear-gradient(120deg,var(--fr-green-dk) 0%,var(--fr-green) 100%) !important;border-top:1px solid var(--fr-mint-line)}
.action-strip h2{color:var(--fr-white) !important;font-family:'Montserrat',sans-serif;font-weight:900;text-transform:uppercase}
.action-strip p{color:var(--fr-muted) !important}
.action-strip .cta-tagline{color:rgba(235,228,217,.8) !important}

/* ---------- Footer (hw-ft) — deepest green, mint hovers ---------- */
.hw-ft{background:var(--fr-green-dk) !important;color:var(--fr-muted) !important;border-top:1px solid var(--fr-mint-line)}
.hw-ft a{color:var(--fr-muted) !important}
.hw-ft a:hover{color:var(--fr-mint) !important}
.hw-ft-top{border-bottom:1px solid var(--fr-mint-line) !important}
.hw-ft-nap{color:var(--fr-muted) !important}
.hw-ft-phone{color:var(--fr-mint) !important;font-family:'Montserrat',sans-serif;font-weight:800}
.hw-ft-map{font-family:'Montserrat',sans-serif;font-weight:800;text-transform:uppercase}
.hw-ft-map a{color:var(--fr-muted) !important;border-bottom:2px solid transparent}
.hw-ft-map a:hover{color:var(--fr-mint) !important;border-color:var(--fr-orange) !important}
.hw-ft-creds{border-top:1px solid var(--fr-mint-line) !important;color:var(--fr-muted) !important}
.hw-ft-check{color:var(--fr-mint) !important}
.hw-ft-bottom{border-top:1px solid var(--fr-mint-line) !important;color:rgba(235,228,217,.62) !important}

/* ---------- Mobile sticky CTA bar ---------- */
.mobile-cta-bar{background:var(--fr-green-dk) !important;border-top:1px solid var(--fr-mint-line) !important}
.mobile-cta-bar .btn-accent{background:var(--fr-mint) !important;color:var(--fr-green) !important}
.mobile-cta-bar .btn-accent:hover{background:#326358 !important;color:var(--fr-green) !important}
.mobile-cta-bar .btn-primary{background:var(--fr-orange) !important;color:var(--fr-white) !important}

/* ====================================================================
   EFFECTS  (native — no external libraries)
   ==================================================================== */

/* --- 1. Scroll-reveal (AOS-style fade-up) --- */
.fx-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}
.fx-reveal.is-in{opacity:1;transform:none}
/* staggered children — small incremental delay so cards/steps cascade in */
.fx-reveal.is-in > *:nth-child(1){transition-delay:0s}
.fx-reveal.is-in > *:nth-child(2){transition-delay:.06s}
.fx-reveal.is-in > *:nth-child(3){transition-delay:.12s}
.fx-reveal.is-in > *:nth-child(4){transition-delay:.18s}
.fx-reveal.is-in > *:nth-child(5){transition-delay:.24s}
.fx-reveal.is-in > *:nth-child(6){transition-delay:.30s}
.fx-reveal.is-in > *:nth-child(7){transition-delay:.36s}
.fx-reveal.is-in > *:nth-child(8){transition-delay:.42s}
@media (prefers-reduced-motion:reduce){
  .fx-reveal,.fx-reveal.is-in > *{opacity:1 !important;transform:none !important;transition:none !important}
}

/* --- 2. Marquee trust-logos --- */
.badge-row .row.fr-marquee-init{display:block;overflow:hidden;position:relative;flex-wrap:nowrap;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.badge-row .row.fr-marquee-init .fr-marquee-track{display:flex;flex-wrap:nowrap;align-items:center;gap:2rem 3rem;width:max-content;animation:fr-marquee 32s linear infinite}
.badge-row .row.fr-marquee-init .fr-marquee-track > *{flex:0 0 auto}
.badge-row .row.fr-marquee-init:hover .fr-marquee-track{animation-play-state:paused}
@keyframes fr-marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.badge-row .row.fr-marquee-init .fr-marquee-track{animation:none}}

/* --- 3. Floating rotating review popup (bottom-left) --- */
.fr-revpop{position:fixed;left:16px;bottom:16px;z-index:60;width:300px;max-width:calc(100vw - 32px);background:var(--fr-white);color:#4a2e24;border-radius:14px;box-shadow:0 18px 44px -14px rgba(0,0,0,.45),0 2px 8px rgba(0,0,0,.18);padding:14px 16px 13px;font-family:'Oswald',sans-serif;opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease;pointer-events:auto}
.fr-revpop.fr-show{opacity:1;transform:none}
.fr-revpop.fr-swap{opacity:0;transform:translateY(10px)}
.fr-revpop-x{position:absolute;top:6px;right:8px;width:26px;height:26px;border:0;background:transparent;color:#7f7368;font-size:18px;line-height:1;cursor:pointer;border-radius:50%}
.fr-revpop-x:hover{background:#efe8dd;color:#444}
.fr-revpop-top{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.fr-revpop-av{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:#efe8dd}
.fr-revpop-id{min-width:0}
.fr-revpop-nm{font-weight:600;font-size:.95rem;color:#4a2e24;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-revpop-stars{color:#326358;font-size:.9rem;letter-spacing:.04em;line-height:1.1}
.fr-revpop-txt{font-size:.86rem;line-height:1.4;color:#4a2e24;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fr-revpop-src{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:.72rem;color:#7e6f62;font-weight:500}
.fr-revpop-g{font-weight:700}
.fr-revpop-g b:nth-child(1){color:#4285F4}.fr-revpop-g b:nth-child(2){color:#EA4335}.fr-revpop-g b:nth-child(3){color:#FBBC05}.fr-revpop-g b:nth-child(4){color:#4285F4}.fr-revpop-g b:nth-child(5){color:#326358}.fr-revpop-g b:nth-child(6){color:#EA4335}
@media (max-width:480px){
  /* narrower + lower z so it never covers the hero form / sticky bottom bar */
  .fr-revpop{width:210px;left:10px;bottom:78px;z-index:45;padding:10px 12px}
  .fr-revpop-av{width:34px;height:34px}
  .fr-revpop-nm{font-size:.86rem}
}
@media (prefers-reduced-motion:reduce){.fr-revpop{transition:none}}

/* --- 4. Hover effects (cards lift, images scale, links to mint) --- */
.hw-svcrow-photo img,.svc-card img,.svc-photo-card img{transition:transform .35s ease}
.hw-svcrow:hover .hw-svcrow-photo img,.svc-card:hover img{transform:scale(1.03)}
.founder-section .ph{transition:transform .25s ease,box-shadow .25s ease}
.founder-section .ph:hover{transform:translateY(-3px);box-shadow:0 22px 44px -22px rgba(0,0,0,.85)}
.hw-quote-chip{transition:transform .2s ease,background-color .2s ease}
.hw-quote-chip:hover{transform:translateY(-3px);background:rgba(74,46,36,.14)}
.hw-areas-map-pin{transition:transform .3s ease}
.hw-areas-map:hover .hw-areas-map-pin{transform:rotate(-45deg) scale(1.12)}

/* === Reviews: smaller featured quote + clickable reviewer chips === */
.hw-quote-big{font-size:clamp(1.05rem,0.85rem + 0.95vw,1.5rem) !important;line-height:1.55 !important}
.hw-quote-chip{background:none;border:0;font:inherit;color:inherit;cursor:pointer;text-align:center;-webkit-appearance:none;appearance:none;transition:transform .15s ease}
.hw-quote-chip:hover,.hw-quote-chip:focus-visible{transform:translateY(-3px)}
.hw-quote-chip.is-active{outline:2px solid var(--c-accent);outline-offset:3px;border-radius:14px}
.hw-quote-feature{transition:opacity .22s ease}
.hw-quote-feature.is-swapping{opacity:0}

/* ===== Tweaks: dropdown nav · hero-form-fold · even zigzag · centered review · real map ===== */
.hw-has-sub{position:relative}
.hw-caret{font-size:.6em;margin-left:.2em;opacity:.85;display:inline-block}
.hw-hd-sub{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;max-height:70vh;overflow-y:auto;list-style:none;margin:0;padding:8px;background:var(--fr-green-dk,#4a2e24);border:1px solid var(--fr-mint-line,rgba(168,212,200,.28));border-radius:12px;box-shadow:0 18px 40px -14px rgba(0,0,0,.6);display:none;z-index:80}
.hw-has-sub:hover > .hw-hd-sub,.hw-has-sub:focus-within > .hw-hd-sub{display:block}
.hw-hd-sub li{margin:0;border:0 !important}
.hw-hd-sub a{display:block !important;white-space:nowrap;padding:9px 12px !important;border:0 !important;border-radius:8px;font-size:.85rem !important;text-transform:none !important;letter-spacing:0 !important;color:#fff !important}
.hw-hd-sub a:hover{background:rgba(168,212,200,.14);color:var(--fr-mint,#a8d4c8) !important;border:0 !important}
@media(max-width:900px){.hw-hd-sub{display:none !important}.hw-caret{display:none}}

.hw-hero{padding-top:clamp(1.3rem,3vw,2rem) !important;padding-bottom:clamp(2rem,4vw,3rem) !important}
.hw-hero .hw-hero-head{margin-bottom:clamp(.9rem,2.4vw,1.5rem)}
.hw-hero h1{font-size:clamp(2.1rem,1.3rem + 3.2vw,4rem) !important;margin-bottom:.3rem}
.hw-hero-tagline{margin-bottom:.3rem}

.hw-proc-step{align-items:start !important;min-height:0 !important;margin-bottom:clamp(2rem,4vw,3rem) !important}
.hw-proc-num{grid-row:1 !important;align-self:start !important;margin-top:.2rem !important}
.hw-proc-body{grid-row:1 !important;align-self:start !important;margin:0 !important;padding:0 !important}
.hw-proc-body h3{margin:0 0 .5rem !important;line-height:1.2}
@media(max-width:900px){.hw-proc-step{min-height:0}.hw-proc-num,.hw-proc-body{grid-row:auto !important}}

.hw-quote{padding-top:clamp(2.2rem,4vw,3.2rem) !important;padding-bottom:clamp(2.2rem,4vw,3.2rem) !important}
.hw-quote-head{justify-content:center;text-align:center}
.hw-quote-head h2{max-width:24ch}
.hw-quote-feature{max-width:820px;margin-left:auto !important;margin-right:auto !important;text-align:center}
.hw-quote-big{max-width:none !important;text-align:center}
.hw-quote-cite{justify-content:center}

.hw-areas-map{display:flex;min-height:300px;background:var(--fr-green-dk,#4a2e24) !important}
.hw-areas-map iframe{width:100%;height:100%;min-height:300px;border:0;display:block}


/* ============================================================
   CONTRAST FIX — dark text inside white/light cards.
   Theme page is dark navy (white global text); but many content
   cards are background:#fff, so their text must be DARK ink.
   ============================================================ */
:root{ --ink:#2e1c16; --ink-muted:#41372f; }
/* card containers: set a dark base so any stray inherited text is readable */
.voice-item, .offer-block, .step, .zone-grid a, .landing-card,
.calc-card, .pricing-col, .tab, .aside-ticker, .aside-call,
.faq details, .why-box, .landing-aside, .cost-card, .info-card,
.spec-card, .price-card, .compare-card, .estimate-card{
  color:var(--ink);
}
/* headings / names / strong inside white cards -> dark ink */
.voice-item .nm, .voice-item .name, .voice-item .body, .voice-item strong, .voice-item h3, .voice-item h4,
.offer-block h3, .offer-block h4, .offer-block strong, .offer-block .more, .offer-block .ic,
.step h3, .step h4, .step strong, .step .step-num,
.zone-grid a, .zone-grid a strong,
.landing-card h3, .landing-card h4, .landing-card strong,
.calc-card h3, .calc-card h4, .calc-card label, .calc-card strong, .calc-card .calc-total,
.pricing-col h3, .pricing-col h4, .pricing-col strong, .pricing-col .price,
.aside-ticker h3, .aside-call h3, .why-box h3, .why-box h4,
.faq details summary, .tab, .tab.is-active,
.cost-card h3, .spec-card h3, .price-card h3, .info-card h3, .info-card h4{
  color:var(--ink) !important;
}
/* muted / secondary / body text inside white cards -> readable mid-grey */
.voice-item .sub, .voice-item .src, .voice-item .meta, .voice-item .meta .sub, .voice-item p,
.offer-block p, .offer-block .spec-value, .offer-block .spec-key,
.spec-value, .spec-key, .band-rate, .band-note, .band-label,
.pricing-note, .pricing-sub, .pricing-col p, .pricing-col .muted, .pricing-col li,
.step p, .step .step-desc, .landing-card p, .calc-card .muted, .calc-card p,
.aside-ticker .muted, .aside-ticker .ticker-day, .aside-ticker .ticker-val,
.aside-call .muted, .aside-call .call-intro, .aside-call .call-addr,
.faq details > div, .faq details p, .tab .muted,
.cost-card p, .spec-card p, .price-card p, .info-card p, .why-box p{
  color:var(--ink-muted) !important;
}
/* eyebrows/accents that sit inside white cards -> navy ink (not washed gold) */
.voice-item .eyebrow, .offer-block .eyebrow, .calc-card .eyebrow,
.pricing-col .eyebrow, .landing-card .eyebrow, .cost-card .eyebrow,
.faq details .eyebrow, .step .eyebrow{ color:var(--ink) !important; }
/* stars on white cards -> readable red */
.voice-item .stars, .offer-block .stars, .pricing-col .stars{ color:#326358 !important; }
/* links inside white cards -> navy, underline on hover */
.voice-item a, .offer-block a, .calc-card a, .pricing-col a,
.landing-card a, .faq details a{ color:#326358; }


/* ----- CONTRAST FIX pass 2 ----- */
/* pricing tables: white .pricing-col cards -> all text dark */
.pricing-col, .pricing-col *, .pricing-col .pricing-line, .pricing-col .pricing-line *{
  color:#4a2e24 !important;
}
.pricing-col h3, .pricing-col h4, .pricing-col .price,
.pricing-col .main-rate strong, .pricing-col .pricing-line strong{ color:#2e1c16 !important; }
/* blog inline light-blue callouts (<div style=...background:#ede6db...>) */
.main div[style*="f0f6fa"], .main div[style*="#ede6db"], article div[style*="f0f6fa"]{ color:#2e1c16 !important; }
.main div[style*="f0f6fa"] *, article div[style*="f0f6fa"] *{ color:#2e1c16 !important; }
.main div[style*="f0f6fa"] strong{ color:#4a2e24 !important; }
/* review stars on gold badge/chip -> navy ink for contrast */
.stars-big, .hw-quote-chip-stars{ color:#2e1c16 !important; }


/* ----- CONTRAST FIX pass 3 ----- */
/* restore solid-button white text (pass-2 .pricing-col * was too broad) */
.pricing-col .btn-primary, .pricing-col .btn-accent,
.pricing-col a.btn-primary, .pricing-col a.btn-accent,
.pricing-col .btn-primary *, .pricing-col .btn-accent *{ color:#fff !important; }
/* review stars: beat the more-specific .hw-quote .stars-big rule */
.hw-quote .stars-big, .hw-quote-summary .stars-big{ color:#2e1c16 !important; }

/* ===== Content visual blocks (data-table / info-box / checklist / key-facts / step-list) — dark walnut theme ===== */
.main .data-table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.96rem}
.main .data-table th{background:#326358;color:#fff;text-align:left;padding:.6rem .8rem;font-weight:700}
.main .data-table td{padding:.55rem .8rem;border-bottom:1px solid rgba(168,212,200,.18);color:#e3dcd2}
.main .data-table tbody tr:nth-child(even){background:rgba(168,212,200,.05)}
.main .info-box{background:#f2eee7;border-left:4px solid #326358;border-radius:6px;padding:.9rem 1.1rem;margin:1.3rem 0}
.main .info-box .ib-title{font-weight:700;color:#a8d4c8;margin:0 0 .3rem;font-size:1rem}
.main .info-box p{margin:.25rem 0;color:#e3dcd2}
.main .info-box--gold{border-left-color:#a8d4c8}
.main ul.checklist{list-style:none;padding:0;margin:1.1rem 0}
.main ul.checklist li{position:relative;padding:.3rem 0 .3rem 1.7rem;color:#e3dcd2}
.main ul.checklist li:before{content:"\2713";position:absolute;left:0;top:.3rem;color:#326358;font-weight:700}
.main ol.step-list{list-style:none;counter-reset:s;padding:0;margin:1.1rem 0}
.main ol.step-list li{position:relative;padding:.35rem 0 .55rem 2.4rem;counter-increment:s;color:#e3dcd2}
.main ol.step-list li:before{content:counter(s);position:absolute;left:0;top:.3rem;width:1.6rem;height:1.6rem;line-height:1.6rem;text-align:center;background:#326358;color:#fff;border-radius:50%;font-size:.85rem;font-weight:700}
.main ul.key-facts{list-style:none;padding:0;margin:1.2rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.5rem}
.main ul.key-facts li{display:flex;flex-direction:column;background:#f2eee7;border-radius:6px;padding:.55rem .8rem}
.main ul.key-facts .kf-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#9a8f86}
.main ul.key-facts .kf-val{font-weight:700;color:#a8d4c8}
.main blockquote{border-left:4px solid #a8d4c8;margin:1.3rem 0;padding:.4rem 0 .4rem 1.2rem;font-style:italic;color:#e3dcd2}

/* light-2cb recolor safety */
html,body{background:#fff}
/* ==================== LIGHT 2CB CONVERSION (final cascade override) ==================== */
:root{--c-text:#2e1c16 !important;--c-text-muted:#6b4a3c !important;}
html,body{background:#ffffff !important;color:#2e1c16 !important}
main{background:#ffffff !important}
/* kill blanket purple on every section, then re-tint alternating bands light */
section{background:#ffffff !important}
.hw-svc,.hw-areas,.alt,.hw-calc-panel,.badge-row,.hw-proc{background:#f2eee7 !important}
.hw-about,.hw-faq2,.hw-calc{background:#ffffff !important}
/* body text dark on the now-light bands */
section h1,section h2,section h3,section h4,section h5,section p,section li,section td,section th,section figcaption,section blockquote,section small{color:#2e1c16 !important}
.hw-svcrow-copy h3,.hw-about-head h2,.hw-proc-body h3,.hw-svc-more-head,.hw-faq2 h2,.hw-faq2 summary,.hw-areas h2{color:#4a2e24 !important}
.hw-proc-body p,.hw-svcrow-copy p,.hw-svc-more-item p,.hw-about-usp li,.hw-faq2 p{color:#6b4a3c !important}
.eyebrow,.accent-text,.accent,.hw-svcrow-idx{color:#8a6b5c !important}
.hw-proc-num{background:#f2eee7 !important;border-color:#8a6b5c !important}
.hw-proc-num span{color:#5c3a2e !important}
.hw-svc-more-item{background:#ffffff !important;border:1px solid #e3dcd2 !important;color:#2e1c16 !important}
.hw-svc-more-item h4,.hw-svc-more-item p,.hw-svc-more-link{color:#4a2e24 !important}
.hw-svcrow-link{color:#5c3a2e !important}
.hw-areas-map-label{color:#4a2e24 !important}
/* ---- DARK purple bands kept: hero, cta strip, footer ---- */
.hw-hero{background:linear-gradient(165deg,#8a6b5c 0%,#4a2e24 100%) !important}
.action-strip{background:#4a2e24 !important}
.hw-ft{background:#4a2e24 !important}
.hw-hero *,.action-strip *,.hw-ft *{color:#ffffff !important}
.hw-hero .eyebrow,.hw-hero-tagline .accent,.hw-hero .accent-text{color:#3d7a6e !important}
.hw-ft a{color:#ebe4d9 !important}
.hw-ft-check{color:#6b5a42 !important}
/* ---- hero quote form -> clean WHITE card ---- */
.hw-quotepanel{background:#ffffff !important;box-shadow:0 24px 60px -28px rgba(107,74,60,.55) !important}
.hw-quotepanel *{color:#2e1c16 !important}
.hw-quotepanel-intro h2{color:#5c3a2e !important}
.hw-quotepanel-intro .muted,.reassure,.reassure strong,.label-optional{color:#6b4a3c !important}
.ns-form label{color:#6b4a3c !important}
.ns-form input,.ns-form select,.ns-form textarea{background:#f7f3ee !important;border:1px solid #c7bdb2 !important;color:#2e1c16 !important}
.hw-quotepanel .btn-ghost{color:#5c3a2e !important;border-color:#5c3a2e !important}
.hw-quotepanel .tcpa-check{color:#0d8a0b !important}
/* ---- reviews / trust-logo band -> light ---- */
.hw-quote{background:#f2eee7 !important}
.hw-quote-head h2,.hw-quote *{color:#4a2e24 !important}
.hw-quote-big{color:#5c3a2e !important}
/* buttons stay green/purple accents (already fine) */

/* ==== LIGHT 2CB CORRECTION 2 (text-fill + trust band) ==== */
section h2,section h3,section h4,.hw-proc h2,.hw-svc h2,.hw-about h2,.hw-areas h2,.hw-faq2 h2,.hw-calc h2,.hw-work h2,.hw-proc-body h3,.hw-svcrow-copy h3,.hw-about-head h2,.hw-faq2 summary{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important}
.hw-proc-body p,.hw-svcrow-copy p,.hw-svc-more-item p,.hw-about-usp li,.hw-faq2 p,section p,section li{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important}
.eyebrow,.accent-text,.accent,.hw-svcrow-idx{color:#8a6b5c !important;-webkit-text-fill-color:#8a6b5c !important}
/* trust badge-row -> dark so white logos read */
.badge-row{background:#4a2e24 !important}
.badge-row h2,.badge-row span,.badge-row p,.badge-row div{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
/* hero + dark bands keep light fill (after, wins) */
.hw-hero h1,.hw-hero h2,.hw-hero p,.hw-hero span,.hw-hero .hw-hero-tagline{-webkit-text-fill-color:#fff !important;color:#fff !important}
.hw-hero .eyebrow,.hw-hero .accent-text,.hw-hero-tagline .accent{-webkit-text-fill-color:#3d7a6e !important;color:#3d7a6e !important}
.action-strip h2,.action-strip p,.action-strip span,.hw-ft *{-webkit-text-fill-color:#fff !important}
.hw-ft a{-webkit-text-fill-color:#ebe4d9 !important}
/* form card text stays dark (after hero rule) */
.hw-quotepanel h2,.hw-quotepanel p,.hw-quotepanel label,.hw-quotepanel span,.hw-quotepanel a{-webkit-text-fill-color:#2e1c16 !important;color:#2e1c16 !important}
.hw-quotepanel-intro h2{-webkit-text-fill-color:#5c3a2e !important;color:#5c3a2e !important}

/* ==== LIGHT 2CB CORRECTION 3 (catch-all headings + ghost btns) ==== */
#main h1,#main h2,#main h3,#main h4,#main h5{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important}
#main p,#main li{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important}
#main .eyebrow,#main .accent-text,#main .accent,#main .hw-svcrow-idx,#main .hw-proc-num span{color:#8a6b5c !important;-webkit-text-fill-color:#8a6b5c !important}
/* re-assert DARK bands (higher specificity 1,1,1 beats #main h2) */
#main .hw-hero h1,#main .hw-hero h2,#main .hw-hero h3,#main .hw-hero p,#main .hw-hero span{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
#main .hw-hero .eyebrow,#main .hw-hero .accent-text,#main .hw-hero .accent{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
#main .badge-row h2,#main .badge-row span,#main .badge-row p{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
#main .action-strip h2,#main .action-strip p,#main .action-strip span{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
#main .hw-quotepanel h2,#main .hw-quotepanel p,#main .hw-quotepanel label,#main .hw-quotepanel span{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .hw-quotepanel-intro h2{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important}
#main .hw-quotepanel .eyebrow{color:#8a6b5c !important;-webkit-text-fill-color:#8a6b5c !important}
/* ghost/outline buttons visible on light */
#main .btn-ghost,#main .btn-outline{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important;border:2px solid #5c3a2e !important;background:transparent !important}
#main .hw-hero .btn-ghost{color:#fff !important;-webkit-text-fill-color:#fff !important;border-color:rgba(255,255,255,.6) !important}
#main .hw-quotepanel .btn-ghost{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important;border-color:#5c3a2e !important}
/* links stay purple; green accent buttons already fine */
#main a.btn-primary,#main a.btn-accent{-webkit-text-fill-color:#fff !important;color:#fff !important}

/* ==== LIGHT 2CB CORRECTION 4 (comprehensive text-fill sweep) ==== */
#main h1,#main h2,#main h3,#main h4,#main h5,#main h6,#main p,#main li,#main span,#main div,#main strong,#main em,#main a,#main blockquote,#main td,#main th,#main figcaption,#main label,#main small,#main summary{-webkit-text-fill-color:#6b4a3c !important;color:#6b4a3c !important}
#main .hw-proc-body p,#main .hw-svcrow-copy p,#main .hw-svc-more-item p,#main .hw-about p,#main .hw-about-usp li,#main .hw-faq2 p,#main .hw-quote p,#main .muted{-webkit-text-fill-color:#6b4a3c !important;color:#6b4a3c !important}
#main .eyebrow,#main .accent-text,#main .accent,#main .hw-svcrow-idx,#main .hw-quote-big{-webkit-text-fill-color:#8a6b5c !important;color:#8a6b5c !important}
/* ---- re-assert DARK bands (placed last, win) ---- */
#main .hw-hero h1,#main .hw-hero h2,#main .hw-hero h3,#main .hw-hero p,#main .hw-hero span,#main .hw-hero div,#main .hw-hero a,#main .hw-hero strong{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important}
#main .hw-hero .eyebrow,#main .hw-hero .accent-text,#main .hw-hero .accent,#main .hw-hero-tagline .accent{-webkit-text-fill-color:#3d7a6e !important;color:#3d7a6e !important}
#main .badge-row h2,#main .badge-row span,#main .badge-row p,#main .badge-row div{-webkit-text-fill-color:#3d7a6e !important;color:#3d7a6e !important}
#main .action-strip h2,#main .action-strip p,#main .action-strip span,#main .action-strip div{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important}
/* white form card inside hero */
#main .hw-quotepanel h2,#main .hw-quotepanel h3,#main .hw-quotepanel p,#main .hw-quotepanel span,#main .hw-quotepanel label,#main .hw-quotepanel a,#main .hw-quotepanel div,#main .hw-quotepanel strong{-webkit-text-fill-color:#2e1c16 !important;color:#2e1c16 !important}
#main .hw-quotepanel-intro h2{-webkit-text-fill-color:#5c3a2e !important;color:#5c3a2e !important}
#main .hw-quotepanel .label-optional,#main .hw-quotepanel .muted,#main .hw-quotepanel .reassure{-webkit-text-fill-color:#6b4a3c !important;color:#6b4a3c !important}
/* buttons: green/purple with white text */
#main .btn-primary,#main .btn-accent,#main .btn-primary span,#main .btn-accent span,#main .btn-primary strong,#main .cta-phone{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important}
#main .btn-ghost,#main .btn-outline{-webkit-text-fill-color:#5c3a2e !important;color:#5c3a2e !important;border:2px solid #5c3a2e !important;background:transparent !important}
#main .hw-hero .btn-ghost{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important;border-color:rgba(255,255,255,.6) !important}

/* ==== LIGHT 2CB CORRECTION 5 (.hw-quote featured band -> dark) ==== */
#main .hw-quote{background:linear-gradient(160deg,#8a6b5c 0%,#4a2e24 100%) !important}
#main .hw-quote h2,#main .hw-quote h3,#main .hw-quote p,#main .hw-quote span,#main .hw-quote div,#main .hw-quote-big,#main .hw-quote a,#main .hw-quote strong,#main .hw-quote-cite-meta,#main .hw-quote-chip-nm{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important}
#main .hw-quote .eyebrow,#main .hw-quote-head h2,#main .hw-quote .accent-text,#main .hw-quote-big{-webkit-text-fill-color:#3d7a6e !important;color:#3d7a6e !important}
#main .hw-quote-big{-webkit-text-fill-color:#ffffff !important;color:#ffffff !important}

/* ============================================================
   TCB — 2 College Brothers structure clone (front page)
   purple #5c3a2e · dark #6b4a3c · yellow #3d7a6e · green #2fa63a
   Oswald (heads) + Roboto (body — loaded via design-dna font link)
   ============================================================ */
:root{
  --tcb-purple:#5c3a2e; --tcb-dark:#6b4a3c; --tcb-mid:#8a6b5c;
  --tcb-yellow:#3d7a6e; --tcb-yellow-d:#326358; --tcb-green:#2fa63a;
  --tcb-ink:#6b4a3c; --tcb-muted:#453a34; --tcb-line:#e3dcd2;
}
.tcb-hero,.tcb-seen,.tcb-intro,.tcb-why,.tcb-stats,.tcb-loc,.tcb-svc,.tcb-cta-y,.tcb-faq,.tcb-cta-p,.tcb-rev{
  font-family:'Roboto',system-ui,sans-serif; color:var(--tcb-ink); box-sizing:border-box;
}
.tcb-hero *,.tcb-seen *,.tcb-intro *,.tcb-why *,.tcb-stats *,.tcb-loc *,.tcb-svc *,.tcb-cta-y *,.tcb-faq *,.tcb-cta-p *,.tcb-rev *{box-sizing:border-box}
.tcb-hero h1,.tcb-hero h2,.tcb-hero h3,.tcb-intro h2,.tcb-why h2,.tcb-why h3,.tcb-stats h2,.tcb-loc h2,.tcb-loc h3,.tcb-svc h2,.tcb-svc h3,.tcb-cta-y h2,.tcb-faq h2,.tcb-cta-p h2,.tcb-rev h2{
  font-family:'Oswald',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.5px; line-height:1.08; margin:0;
}
.tcb-eyebrow,.tcb-hero-eyebrow{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:2px;font-size:.85rem}
.tcb-btn{display:inline-block;font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.6px;text-decoration:none;padding:.85rem 1.6rem;border-radius:10px;font-size:1rem;transition:transform .12s,filter .12s;cursor:pointer}
.tcb-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
.tcb-btn-purple{background:var(--tcb-purple);color:#fff}
.tcb-btn-yellow{background:var(--tcb-yellow);color:var(--tcb-dark)}
.tcb-btn-dark{background:var(--tcb-dark);color:#fff}
.tcb-btn-lg{padding:1.05rem 2.1rem;font-size:1.12rem}

/* 1 HERO */
.tcb-hero{position:relative;background:linear-gradient(120deg,rgba(74,46,36,.86),rgba(74,46,36,.62)),var(--tcb-hero-bg,#6b4a3c) center/cover no-repeat;padding:clamp(2.5rem,6vw,5rem) 0}
.tcb-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.tcb-hero-copy .tcb-hero-eyebrow{color:var(--tcb-yellow);display:block;margin-bottom:.7rem}
.tcb-hero-copy h1{color:#fff;font-size:clamp(2.1rem,4.3vw,3.5rem);text-shadow:0 2px 14px rgba(0,0,0,.35)}
.tcb-hero-rating{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:1.3rem;color:#fff}
.tcb-hero-rating .tcb-g{font-weight:700;font-family:'Oswald',sans-serif}
.tcb-hero-rating .tcb-stars{color:#3d7a6e;letter-spacing:1px}
.tcb-hero-rating strong{font-size:1.15rem}
.tcb-hero-rating .tcb-rating-sub{flex-basis:100%;font-size:.9rem;opacity:.9;margin-top:.15rem}
.tcb-hero-form{background:var(--tcb-yellow);border-radius:12px;box-shadow:0 24px 60px -22px rgba(0,0,0,.6);overflow:hidden}
.tcb-form-head{background:var(--tcb-dark);color:#fff;padding:.9rem 1.3rem;display:flex;justify-content:space-between;align-items:baseline}
.tcb-form-head span{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:1.35rem}
.tcb-form-head small{font-size:.72rem;opacity:.8}
.tcb-form-body{padding:1.2rem 1.3rem 1.4rem}
.tcb-hero-form .ns-form label{color:var(--tcb-dark);font-weight:600;font-size:.82rem}
.tcb-hero-form .ns-form input,.tcb-hero-form .ns-form select{background:#fff !important;border:1px solid #326358 !important;color:var(--tcb-ink) !important;border-radius:7px;font-size:16px}
.tcb-hero-form .ns-form .btn,.tcb-hero-form .ns-form button{background:var(--tcb-purple) !important;color:#fff !important;font-family:'Oswald',sans-serif;text-transform:uppercase;border-radius:8px;width:100%;letter-spacing:.6px;-webkit-text-fill-color:#fff !important}
.tcb-hero-form .reassure,.tcb-hero-form .tcpa-consent{font-size:.72rem;color:#295147}

/* 2 AS SEEN ON */
.tcb-seen{background:#fff;border-bottom:1px solid var(--tcb-line);padding:1.2rem 0}
.tcb-seen-inner{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;justify-content:center}
.tcb-seen-label{text-align:center;line-height:1.2}
.tcb-seen-label strong{display:block;color:var(--tcb-purple);font-family:'Oswald',sans-serif;font-size:1.3rem}
.tcb-seen-label span{font-size:.8rem;color:var(--tcb-muted)}

/* 3 INTRO */
.tcb-intro{background:#fff;padding:clamp(2.6rem,5vw,4rem) 0;text-align:center}
.tcb-intro h2{color:var(--tcb-yellow);font-size:clamp(1.7rem,3.2vw,2.7rem);max-width:22ch;margin:0 auto 1rem;-webkit-text-stroke:.6px var(--tcb-yellow-d)}
.tcb-intro p{max-width:70ch;margin:0 auto;color:var(--tcb-muted);font-size:1.06rem;line-height:1.7}

/* 4 WHY */
.tcb-why{background:#f5f0ea;padding:clamp(2.6rem,5vw,4.2rem) 0}
.tcb-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.2rem);align-items:center}
.tcb-why-text .tcb-eyebrow{color:var(--tcb-green);display:block;margin-bottom:.4rem}
.tcb-why-text h2{color:var(--tcb-yellow);font-size:clamp(1.9rem,3.4vw,2.9rem);margin-bottom:1rem;-webkit-text-stroke:.6px var(--tcb-yellow-d)}
.tcb-why-text p{color:var(--tcb-muted);line-height:1.65;margin:0 0 1rem}
.tcb-why-badges{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
.tcb-badge{background:var(--tcb-purple);color:#fff;font-family:'Oswald',sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;padding:.4rem .8rem;border-radius:6px}
.tcb-check{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:.6rem}
.tcb-check li{position:relative;padding-left:2.1rem;color:var(--tcb-ink);font-size:1.02rem;line-height:1.4}
.tcb-check li::before{content:"\2714";position:absolute;left:0;top:-1px;width:1.5rem;height:1.5rem;background:var(--tcb-green);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700}

/* 5 STATS */
.tcb-stats{position:relative;background:linear-gradient(rgba(107,74,60,.9),rgba(107,74,60,.92)),var(--tcb-stats-bg,#6b4a3c) center/cover;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-stats h2{color:#fff;font-size:clamp(1.6rem,3vw,2.4rem);max-width:26ch;margin:0 auto 2.2rem}
.tcb-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.tcb-stat{display:flex;flex-direction:column;align-items:center;position:relative}
.tcb-stat-num{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(1.9rem,3.4vw,2.9rem);color:var(--tcb-yellow);line-height:1}
.tcb-stat-lbl{color:#fff;font-size:.92rem;margin-top:.35rem;max-width:14ch}
.tcb-laurel{position:absolute;top:0;font-size:2.6rem;color:var(--tcb-yellow);opacity:.55}
.tcb-laurel-l{left:calc(50% - 4.2rem);transform:scaleX(-1)}
.tcb-laurel-r{right:calc(50% - 4.2rem)}

/* 6 LOCATIONS */
.tcb-loc{background:#fff;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-loc h2{color:var(--tcb-yellow);font-size:clamp(1.9rem,3.4vw,2.9rem);-webkit-text-stroke:.6px var(--tcb-yellow-d)}
.tcb-loc-intro{max-width:66ch;margin:1rem auto 1.4rem;color:var(--tcb-muted);line-height:1.6}
.tcb-loc-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2rem;text-align:left}
.tcb-loc-col{background:#f5f0ea;border:1px solid var(--tcb-line);border-radius:10px;padding:1.2rem 1.3rem}
.tcb-loc-col h3{color:var(--tcb-purple);font-size:1.15rem;margin-bottom:.7rem;border-bottom:2px solid var(--tcb-yellow);padding-bottom:.5rem}
.tcb-loc-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.tcb-loc-col a{color:var(--tcb-ink);text-decoration:none;font-size:.96rem}
.tcb-loc-col a:hover{color:var(--tcb-purple);text-decoration:underline}

/* 7 SERVICES */
.tcb-svc{background:#f5f0ea;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-svc h2{color:var(--tcb-yellow);font-size:clamp(1.9rem,3.4vw,2.9rem);-webkit-text-stroke:.6px var(--tcb-yellow-d)}
.tcb-svc-intro{max-width:70ch;margin:1rem auto 2rem;color:var(--tcb-muted);line-height:1.6}
.tcb-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;text-align:left}
.tcb-svc-card{background:#fff;border:1px solid var(--tcb-line);border-top:4px solid var(--tcb-purple);border-radius:10px;padding:1.6rem 1.5rem;text-decoration:none;color:var(--tcb-ink);display:flex;flex-direction:column;transition:transform .14s,box-shadow .14s}
.tcb-svc-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(92,58,46,.5)}
.tcb-svc-ic{width:52px;height:52px;color:var(--tcb-purple);margin-bottom:.9rem}
.tcb-svc-ic svg{width:100%;height:100%}
.tcb-svc-card h3{color:var(--tcb-purple);font-size:1.4rem;margin-bottom:.4rem}
.tcb-svc-cities{color:var(--tcb-green);font-weight:600;font-size:.82rem;margin-bottom:.7rem}
.tcb-svc-card p{color:var(--tcb-muted);font-size:.97rem;line-height:1.55;margin:0 0 1rem;flex:1}
.tcb-svc-link{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;color:var(--tcb-purple);font-size:.9rem;letter-spacing:.5px}

/* 8 YELLOW CTA */
.tcb-cta-y{background:var(--tcb-yellow);padding:clamp(2.2rem,4vw,3.2rem) 0}
.tcb-cta-y-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.tcb-cta-y h2{color:var(--tcb-dark);font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:.5rem}
.tcb-cta-y p{color:#1d3b33;max-width:60ch;margin:0;line-height:1.55}
.tcb-cta-y-btns{display:flex;flex-direction:column;gap:.7rem;flex-shrink:0}

/* 9 FAQ */
.tcb-faq{background:#fff;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-faq h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem);margin-bottom:2rem}
.tcb-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;text-align:left}
.tcb-faq-item{background:#f5f0ea;border:1px solid var(--tcb-line);border-radius:8px;overflow:hidden}
.tcb-faq-item summary{list-style:none;cursor:pointer;padding:1.05rem 1.2rem;font-family:'Oswald',sans-serif;font-weight:500;font-size:1.02rem;color:var(--tcb-ink);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.tcb-faq-item summary::-webkit-details-marker{display:none}
.tcb-faq-plus{color:var(--tcb-purple);font-size:1.4rem;font-weight:700;flex-shrink:0;transition:transform .2s}
.tcb-faq-item[open] .tcb-faq-plus{transform:rotate(45deg)}
.tcb-faq-item[open] summary{background:var(--tcb-purple);color:#fff}
.tcb-faq-item[open] .tcb-faq-plus{color:#fff}
.tcb-faq-a{padding:1rem 1.2rem;color:var(--tcb-muted);line-height:1.6;font-size:.98rem;border-top:1px solid var(--tcb-line)}

/* 10 PURPLE CTA */
.tcb-cta-p{background:var(--tcb-purple);padding:clamp(2.6rem,5vw,4rem) 0;text-align:center}
.tcb-cta-p h2{color:#fff;font-size:clamp(1.7rem,3.2vw,2.6rem);max-width:26ch;margin:0 auto 1rem}
.tcb-cta-p p{color:rgba(255,255,255,.9);max-width:60ch;margin:0 auto 1.6rem;line-height:1.6}

/* 11 REVIEWS */
.tcb-rev{background:#f5f0ea;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-rev h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem);margin-bottom:2rem}
.tcb-rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;text-align:left}
.tcb-rev-card{background:#fff;border:1px solid var(--tcb-line);border-radius:10px;padding:1.4rem 1.4rem}
.tcb-rev-stars{color:#3d7a6e;font-size:1.05rem;letter-spacing:1px}
.tcb-rev-text{color:var(--tcb-ink);line-height:1.55;margin:.6rem 0 1rem;font-size:.98rem}
.tcb-rev-by strong{display:block;color:var(--tcb-purple);font-family:'Oswald',sans-serif}
.tcb-rev-by span{font-size:.82rem;color:var(--tcb-muted)}

/* RESPONSIVE */
@media(max-width:900px){
  .tcb-hero-grid{grid-template-columns:1fr}
  .tcb-hero-form{order:-1}
  .tcb-why-grid{grid-template-columns:1fr}
  .tcb-stat-row{grid-template-columns:repeat(2,1fr);gap:2rem}
  .tcb-loc-cols{grid-template-columns:repeat(2,1fr)}
  .tcb-svc-grid{grid-template-columns:1fr}
  .tcb-faq-grid{grid-template-columns:1fr}
  .tcb-rev-grid{grid-template-columns:1fr}
  .tcb-cta-y-inner{flex-direction:column;text-align:center}
  .tcb-laurel{display:none}
}
@media(max-width:520px){
  .tcb-stat-row{grid-template-columns:1fr 1fr}
  .tcb-loc-cols{grid-template-columns:1fr}
}

/* ==== TCB HOME OVERRIDE (beat legacy .hw-/light-2cb global rules on .home) ==== */
body.home #main .tcb-hero{background:linear-gradient(120deg,rgba(74,46,36,.88),rgba(74,46,36,.5)),var(--tcb-hero-bg,#6b4a3c) center/cover !important}
body.home #main .tcb-hero-copy h1{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-hero-eyebrow{color:var(--tcb-yellow) !important;-webkit-text-fill-color:var(--tcb-yellow) !important}
body.home #main .tcb-hero-rating,body.home #main .tcb-hero-rating *{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-hero-rating .tcb-stars{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
body.home #main .tcb-hero-form{background:var(--tcb-yellow) !important}
body.home #main .tcb-form-head{background:var(--tcb-dark) !important}
body.home #main .tcb-form-head span,body.home #main .tcb-form-head small{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-hero-form .ns-form label{color:var(--tcb-dark) !important;-webkit-text-fill-color:var(--tcb-dark) !important}
body.home #main .tcb-hero-form .ns-form input,body.home #main .tcb-hero-form .ns-form select{background:#fff !important;-webkit-text-fill-color:var(--tcb-ink) !important;color:var(--tcb-ink) !important}
body.home #main .tcb-hero-form .btn,body.home #main .tcb-hero-form button{background:var(--tcb-purple) !important;color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-hero-form .reassure,body.home #main .tcb-hero-form .reassure *,body.home #main .tcb-hero-form .tcpa-consent,body.home #main .tcb-hero-form .tcpa-consent *{color:#295147 !important;-webkit-text-fill-color:#295147 !important}
/* section backgrounds */
body.home #main .tcb-seen,body.home #main .tcb-intro,body.home #main .tcb-loc,body.home #main .tcb-faq{background:#fff !important}
body.home #main .tcb-why,body.home #main .tcb-svc,body.home #main .tcb-rev{background:#f5f0ea !important}
body.home #main .tcb-stats{background:linear-gradient(rgba(107,74,60,.9),rgba(107,74,60,.93)),var(--tcb-stats-bg,#6b4a3c) center/cover !important}
body.home #main .tcb-cta-y{background:var(--tcb-yellow) !important}
body.home #main .tcb-cta-p{background:var(--tcb-purple) !important}
body.home #main .tcb-loc-col,body.home #main .tcb-svc-card,body.home #main .tcb-rev-card{background:#fff !important}
body.home #main .tcb-faq-item{background:#f5f0ea !important}
body.home #main .tcb-badge{background:var(--tcb-purple) !important}
body.home #main .tcb-check li::before{background:var(--tcb-green) !important;color:#fff !important;-webkit-text-fill-color:#fff !important}
/* headings + text colors */
body.home #main .tcb-intro h2,body.home #main .tcb-why-text h2,body.home #main .tcb-loc h2,body.home #main .tcb-svc h2{color:var(--tcb-yellow) !important;-webkit-text-fill-color:var(--tcb-yellow) !important}
body.home #main .tcb-stats h2,body.home #main .tcb-stats .tcb-stat-lbl{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-stats .tcb-stat-num{color:var(--tcb-yellow) !important;-webkit-text-fill-color:var(--tcb-yellow) !important}
body.home #main .tcb-cta-y h2{color:var(--tcb-dark) !important;-webkit-text-fill-color:var(--tcb-dark) !important}
body.home #main .tcb-cta-y p{color:#1d3b33 !important;-webkit-text-fill-color:#1d3b33 !important}
body.home #main .tcb-cta-p h2,body.home #main .tcb-cta-p p{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-faq h2,body.home #main .tcb-rev h2{color:var(--tcb-purple) !important;-webkit-text-fill-color:var(--tcb-purple) !important}
body.home #main .tcb-loc-col h3,body.home #main .tcb-svc-card h3,body.home #main .tcb-rev-by strong{color:var(--tcb-purple) !important;-webkit-text-fill-color:var(--tcb-purple) !important}
body.home #main .tcb-svc-cities{color:var(--tcb-green) !important;-webkit-text-fill-color:var(--tcb-green) !important}
body.home #main .tcb-svc-link,body.home #main .tcb-loc-col a:hover{color:var(--tcb-purple) !important;-webkit-text-fill-color:var(--tcb-purple) !important}
body.home #main .tcb-why-text .tcb-eyebrow{color:var(--tcb-green) !important;-webkit-text-fill-color:var(--tcb-green) !important}
body.home #main .tcb-check li,body.home #main .tcb-loc-col a,body.home #main .tcb-intro p,body.home #main .tcb-why-text p,body.home #main .tcb-svc-card p,body.home #main .tcb-rev-text{color:var(--tcb-ink) !important;-webkit-text-fill-color:var(--tcb-ink) !important}
body.home #main .tcb-faq-item summary{color:var(--tcb-ink) !important;-webkit-text-fill-color:var(--tcb-ink) !important}
body.home #main .tcb-faq-item[open] summary,body.home #main .tcb-faq-item[open] summary *{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-faq-plus{color:var(--tcb-purple) !important;-webkit-text-fill-color:var(--tcb-purple) !important}
body.home #main .tcb-btn-yellow{color:var(--tcb-dark) !important;-webkit-text-fill-color:var(--tcb-dark) !important}
body.home #main .tcb-btn-purple,body.home #main .tcb-btn-dark,body.home #main .tcb-btn-purple *{color:#fff !important;-webkit-text-fill-color:#fff !important}

/* ==== TCB FOOTER (2cb 4-column) ==== */
.tcb-ft{font-family:'Roboto',sans-serif}
.tcb-ft-main{background:#fff;border-top:5px solid var(--tcb-yellow);padding:clamp(2.4rem,4vw,3.4rem) 0}
.tcb-ft-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr 1.2fr;gap:clamp(1.4rem,3vw,2.4rem)}
.tcb-ft-col h3{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;color:var(--tcb-purple);font-size:1.15rem;letter-spacing:.5px;border-bottom:2px solid var(--tcb-yellow);padding-bottom:.5rem;margin:0 0 1rem}
.tcb-ft-logo{height:46px;width:auto;margin-bottom:1rem;display:block}
.tcb-ft-rvtext{color:var(--tcb-muted);font-size:.94rem;line-height:1.5;margin:0 0 1rem}
.tcb-ft-social{display:flex;gap:.6rem;margin-bottom:1.2rem}
.tcb-soc{width:38px;height:38px;border:1px solid var(--tcb-line);border-radius:8px;display:grid;place-items:center;background:#fff;color:var(--tcb-purple)}
.tcb-soc svg{width:20px;height:20px}
.tcb-ft-checklist{font-size:.85rem;padding:.6rem 1.1rem}
.tcb-ft-nap{color:var(--tcb-ink);line-height:1.75;font-size:.98rem;margin:0}
.tcb-ft-nap strong{color:var(--tcb-purple);font-family:'Oswald',sans-serif;font-size:1.05rem}
.tcb-ft-phone{color:var(--tcb-purple);font-weight:700;text-decoration:none;font-size:1.1rem}
.tcb-ft-hours{color:var(--tcb-muted);font-size:.9rem}
.tcb-ft-links{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.tcb-ft-links a{color:var(--tcb-ink);text-decoration:none;font-size:.96rem}
.tcb-ft-links a:hover{color:var(--tcb-purple);text-decoration:underline}
.tcb-ft-form{background:var(--tcb-yellow);border-radius:12px;overflow:hidden;box-shadow:0 14px 34px -20px rgba(92,58,46,.5)}
.tcb-ft-form .tcb-form-head{background:var(--tcb-dark);color:#fff;padding:.8rem 1.1rem;display:flex;justify-content:space-between;align-items:baseline}
.tcb-ft-form .tcb-form-head span{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:1.2rem;color:#fff}
.tcb-ft-form .tcb-form-head small{font-size:.68rem;opacity:.8;color:#fff}
.tcb-ft-form .tcb-form-body{padding:1rem 1.1rem 1.2rem}
.tcb-ft-form .ns-form label{color:var(--tcb-dark);font-weight:600;font-size:.78rem}
.tcb-ft-form .ns-form input,.tcb-ft-form .ns-form select{background:#fff !important;border:1px solid #326358 !important;border-radius:7px;font-size:16px;color:var(--tcb-ink) !important;-webkit-text-fill-color:var(--tcb-ink) !important}
.tcb-ft-form .ns-form .btn,.tcb-ft-form .ns-form button{background:var(--tcb-purple) !important;color:#fff !important;-webkit-text-fill-color:#fff !important;font-family:'Oswald',sans-serif;text-transform:uppercase;border-radius:8px;width:100%}
.tcb-ft-form .reassure,.tcb-ft-form .tcpa-consent{font-size:.68rem;color:#295147}
.tcb-ft-bottom{background:var(--tcb-dark);color:#fff;padding:1.1rem 0}
.tcb-ft-bottom-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;font-size:.85rem}
.tcb-ft-legal{color:rgba(255,255,255,.78)}
@media(max-width:900px){.tcb-ft-grid{grid-template-columns:1fr 1fr}.tcb-ft-bottom-inner{flex-direction:column;text-align:center}}
@media(max-width:560px){.tcb-ft-grid{grid-template-columns:1fr}}

/* ==== TCB AUDIT FIXES (2026-07-07) ==== */
body,#main,.tcb-hero,[class*="tcb-"],.hw-proc,.hw-svc,.hw-about,.hw-faq2,.hw-areas{font-family:'Roboto',system-ui,-apple-system,sans-serif}
[class*="tcb-"] h1,[class*="tcb-"] h2,[class*="tcb-"] h3,[class*="tcb-"] h4,.tcb-form-head span,.tcb-btn,.tcb-badge,.tcb-svc-link,.tcb-eyebrow,.tcb-hero-eyebrow{font-family:'Oswald',sans-serif}
#main table thead th,#main table th,.main table thead th,.main table th{background:#5c3a2e !important;color:#fff !important;-webkit-text-fill-color:#fff !important;border-color:#8a6b5c !important}
.tcb-ft-form a,.tcb-hero-form a,.tcb-form-body a,.tcb-ft-form .reassure a,.tcb-hero-form .reassure a{color:#4a2e24 !important;-webkit-text-fill-color:#4a2e24 !important;text-decoration:underline !important;font-weight:700}
body.home #main .tcb-badge,.tcb-badge{color:#fff !important;-webkit-text-fill-color:#fff !important}
html,body{overflow-x:hidden;max-width:100%}
.tcb-seen,.fr-marquee,[class*="marquee"]{overflow:hidden !important;max-width:100vw}
.fr-marquee-track,[class*="marquee-track"]{max-width:none}
@media(max-width:900px){.hw-hd-brand{display:inline-flex !important;align-items:center;flex:0 0 auto}.hw-hd-brand .brand-logo{display:block !important;height:34px !important;width:auto !important;max-width:150px !important;opacity:1 !important;visibility:visible !important}}
/* ==== TCB FOOTER V2 ==== */
.tcb-ft-loc{margin-top:1.2rem}
.tcb-ft-loc h4{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;color:#5c3a2e;font-size:1.02rem;letter-spacing:.4px;margin:0 0 .5rem}
.tcb-ft-social .tcb-soc{cursor:default}
.tcb-ft-form .reassure{margin-top:.7rem;font-size:.74rem;color:#295147}
.tcb-ft-brandcol{max-width:340px}
/* ==== TCB BLOCKS 4-5 (guarantees + map) ==== */
.tcb-guar{background:#fff;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-guar h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem)}
.tcb-guar .tcb-eyebrow{color:var(--tcb-green);display:block;margin-bottom:.4rem}
.tcb-guar-sub{max-width:66ch;margin:.8rem auto 2rem;color:var(--tcb-muted);line-height:1.6}
.tcb-guar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;text-align:left}
.tcb-guar-card{background:#f5f0ea;border:1px solid var(--tcb-line);border-left:4px solid var(--tcb-yellow);border-radius:10px;padding:1.5rem 1.5rem}
.tcb-guar-ic{display:inline-flex;width:44px;height:44px;color:var(--tcb-purple);margin-bottom:.7rem}
.tcb-guar-ic svg{width:100%;height:100%}
.tcb-guar-card h3{color:var(--tcb-purple);font-family:'Oswald',sans-serif;font-size:1.2rem;text-transform:uppercase;margin:0 0 .45rem}
.tcb-guar-card p{color:var(--tcb-muted);font-size:.96rem;line-height:1.55;margin:0}
.tcb-guar-cta{margin-top:2rem}
.tcb-map{background:#f5f0ea;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-map h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem)}
.tcb-map .tcb-eyebrow{color:var(--tcb-green);display:block;margin-bottom:.4rem}
.tcb-map-sub{max-width:64ch;margin:.8rem auto 1.6rem;color:var(--tcb-muted);line-height:1.6}
.tcb-map-wrap{background:#fff;border:1px solid var(--tcb-line);border-radius:14px;padding:1.4rem;max-width:900px;margin:0 auto}
.tcb-map-svg{width:100%;height:auto;display:block}
.tcb-pin{cursor:pointer;text-decoration:none}
.tcb-pin circle{transition:r .12s,fill .12s}
.tcb-pin:hover circle{r:10}
.tcb-pin-lbl{font-family:'Oswald',sans-serif;font-size:15px;fill:#6b4a3c;font-weight:500}
.tcb-pin:hover .tcb-pin-lbl{fill:var(--tcb-purple)}
.tcb-pin-lbl-hub{fill:#4a2e24;font-weight:700;font-size:17px}
.tcb-map-legend{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-top:1rem;font-size:.9rem;color:var(--tcb-ink)}
.tcb-map-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:.4rem;vertical-align:middle}
@media(max-width:900px){.tcb-guar-grid{grid-template-columns:1fr}.tcb-pin-lbl{font-size:19px}.tcb-pin-lbl-hub{font-size:21px}}
/* ==== TCB BLOCK 10 (specialty items) ==== */
.tcb-spec{background:#fff;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-spec h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem)}
.tcb-spec .tcb-eyebrow{color:var(--tcb-green);display:block;margin-bottom:.4rem}
.tcb-spec-sub{max-width:70ch;margin:.8rem auto 2rem;color:var(--tcb-muted);line-height:1.6}
.tcb-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.tcb-spec-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;background:#f5f0ea;border:1px solid var(--tcb-line);border-bottom:3px solid var(--tcb-yellow);border-radius:10px;padding:1.4rem 1rem;text-decoration:none;transition:transform .12s,box-shadow .12s}
.tcb-spec-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -22px rgba(92,58,46,.5)}
.tcb-spec-ic{width:46px;height:46px;color:var(--tcb-purple);margin-bottom:.4rem}
.tcb-spec-ic svg{width:100%;height:100%}
.tcb-spec-card h3{color:var(--tcb-purple);font-family:'Oswald',sans-serif;font-size:1.05rem;text-transform:uppercase;margin:0}
.tcb-spec-n{color:var(--tcb-muted);font-size:.82rem}
.tcb-spec-cta{margin-top:2rem}
@media(max-width:900px){.tcb-spec-grid{grid-template-columns:repeat(2,1fr)}}
/* ==== TCB BLOCK 12 (who we help) ==== */
.tcb-who{background:#fff;padding:clamp(2.6rem,5vw,4.2rem) 0;text-align:center}
.tcb-who h2{color:var(--tcb-purple);font-size:clamp(1.8rem,3.2vw,2.7rem)}
.tcb-who .tcb-eyebrow{color:var(--tcb-green);display:block;margin-bottom:.4rem}
.tcb-who-sub{max-width:68ch;margin:.8rem auto 2rem;color:var(--tcb-muted);line-height:1.6}
.tcb-who-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;text-align:left}
.tcb-who-card{display:flex;flex-direction:column;background:#f5f0ea;border:1px solid var(--tcb-line);border-top:4px solid var(--tcb-purple);border-radius:10px;padding:1.6rem 1.4rem;text-decoration:none;transition:transform .12s,box-shadow .12s}
.tcb-who-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px -22px rgba(92,58,46,.5)}
.tcb-who-ic{width:48px;height:48px;color:var(--tcb-purple);margin-bottom:.7rem}
.tcb-who-ic svg{width:100%;height:100%}
.tcb-who-card h3{color:var(--tcb-purple);font-family:'Oswald',sans-serif;font-size:1.22rem;text-transform:uppercase;margin:0 0 .45rem;line-height:1.15}
.tcb-who-card p{color:var(--tcb-muted);font-size:.94rem;line-height:1.55;margin:0 0 .9rem;flex:1}
.tcb-who-link{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;color:var(--tcb-green);font-size:.86rem;letter-spacing:.4px}
@media(max-width:900px){.tcb-who-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.tcb-who-grid{grid-template-columns:1fr}}
/* ==== TCB H1/LAUREL FIX ==== */
/* hero slogan under brand H1 */
.tcb-hero-copy .tcb-hero-slogan{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;color:#3d7a6e;font-size:clamp(1.15rem,1.9vw,1.7rem);line-height:1.12;margin:.5rem 0 0;letter-spacing:.4px}
body.home #main .tcb-hero-slogan{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
/* stat laurels: push to cell edges, digits on top so nothing is hidden */
.tcb-stat{overflow:visible}
.tcb-stat-num,.tcb-stat-lbl{position:relative;z-index:3}
.tcb-laurel{z-index:1;font-size:2rem;top:2px}
.tcb-laurel-l{left:4%}
.tcb-laurel-r{right:4%}
@media(max-width:520px){.tcb-laurel{display:none}}
/* ==== TCB INNER PAGES (2cb hero + body) ==== */
.tcb-hero--inner{padding:clamp(2rem,4vw,3.4rem) 0}
.tcb-hero--inner .tcb-hero-copy h1{font-size:clamp(1.9rem,3.6vw,3rem)}
.tcb-body{background:#fff;padding:clamp(2.4rem,4.5vw,3.6rem) 0}
.tcb-body-inner{max-width:840px;margin:0 auto;font-family:'Roboto',sans-serif;color:#6b4a3c;line-height:1.7;font-size:1.04rem}
.tcb-body-inner h2{font-family:'Oswald',sans-serif;color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important;font-size:clamp(1.5rem,2.6vw,2.1rem);text-transform:uppercase;margin:1.8rem 0 .8rem;line-height:1.12}
.tcb-body-inner h3{font-family:'Oswald',sans-serif;color:#4a2e24 !important;-webkit-text-fill-color:#4a2e24 !important;font-size:1.32rem;text-transform:uppercase;margin:1.5rem 0 .6rem}
.tcb-body-inner p,.tcb-body-inner li{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important}
.tcb-body-inner p{margin:0 0 1rem}
.tcb-body-inner a{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important;text-decoration:underline}
.tcb-body-inner ul.key-facts{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:1.4rem 0}
.tcb-body-inner ul.key-facts li{background:#f5f0ea;border:1px solid #e3dcd2;border-left:3px solid #3d7a6e;border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column}
.tcb-body-inner .kf-label{font-size:.72rem;text-transform:uppercase;color:#8a6b5c !important;-webkit-text-fill-color:#8a6b5c !important;font-weight:700;letter-spacing:.5px}
.tcb-body-inner .kf-val{color:#6b4a3c !important;-webkit-text-fill-color:#6b4a3c !important;font-weight:600}
.tcb-body-inner .info-box{background:#f5f0ea;border-left:4px solid #3d7a6e;border-radius:8px;padding:1.1rem 1.3rem;margin:1.4rem 0}
.tcb-body-inner .ib-title{font-family:'Oswald',sans-serif;color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important;font-weight:700;text-transform:uppercase;margin:0 0 .4rem}
.tcb-body-inner ol.step-list{padding-left:0;list-style:none;counter-reset:st;margin:1.2rem 0}
.tcb-body-inner ol.step-list li{position:relative;padding:.3rem 0 .3rem 2.5rem;margin-bottom:.7rem;counter-increment:st}
.tcb-body-inner ol.step-list li::before{content:counter(st);position:absolute;left:0;top:.2rem;width:1.7rem;height:1.7rem;background:#5c3a2e;color:#fff;border-radius:50%;display:grid;place-items:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:.9rem}
.tcb-body-inner ol.step-list li strong{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important}
@media(max-width:600px){.tcb-body-inner ul.key-facts{grid-template-columns:1fr}}

/* ==== TCB INNER OVERRIDE (tcb hero+blocks on inner pages, not just home) ==== */
#main .tcb-hero--inner{background:linear-gradient(120deg,rgba(74,46,36,.9),rgba(74,46,36,.55)),var(--tcb-hero-bg,#6b4a3c) center/cover !important}
#main .tcb-hero--inner .tcb-hero-copy h1{color:#fff !important;-webkit-text-fill-color:#fff !important}
#main .tcb-hero--inner .tcb-hero-eyebrow,#main .tcb-hero--inner .tcb-hero-slogan{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
#main .tcb-hero--inner .tcb-hero-rating,#main .tcb-hero--inner .tcb-hero-rating *{color:#fff !important;-webkit-text-fill-color:#fff !important}
#main .tcb-hero--inner .tcb-hero-rating .tcb-stars{color:#3d7a6e !important;-webkit-text-fill-color:#3d7a6e !important}
#main .tcb-hero-form{background:var(--tcb-yellow) !important}
#main .tcb-form-head{background:var(--tcb-dark) !important}
#main .tcb-form-head span,#main .tcb-form-head small{color:#fff !important;-webkit-text-fill-color:#fff !important}
#main .tcb-hero-form .ns-form label{color:var(--tcb-dark) !important;-webkit-text-fill-color:var(--tcb-dark) !important}
#main .tcb-hero-form .ns-form input,#main .tcb-hero-form .ns-form select{background:#fff !important;color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .tcb-hero-form .btn,#main .tcb-hero-form button{background:var(--tcb-purple) !important;color:#fff !important;-webkit-text-fill-color:#fff !important}
#main .tcb-hero-form .reassure,#main .tcb-hero-form .reassure *,#main .tcb-hero-form .tcpa-consent,#main .tcb-hero-form .tcpa-consent *{color:#295147 !important;-webkit-text-fill-color:#295147 !important}
#main .tcb-hero-form .reassure a{color:#4a2e24 !important;-webkit-text-fill-color:#4a2e24 !important}
/* colored inner blocks that section{#fff} would flatten */
#main .tcb-cta-p{background:var(--tcb-purple) !important}
#main .tcb-cta-p h2,#main .tcb-cta-p p,#main .tcb-cta-p span{color:#fff !important;-webkit-text-fill-color:#fff !important}
#main .tcb-rev{background:#f5f0ea !important}
#main .tcb-guar,#main .tcb-faq{background:#fff !important}
#main .tcb-guar-card,#main .tcb-rev-card{background:#f5f0ea !important}
#main .tcb-faq-item{background:#f5f0ea !important}
#main .tcb-guar h2,#main .tcb-faq h2,#main .tcb-rev h2{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important}
#main .tcb-guar .tcb-eyebrow{color:#2fa63a !important;-webkit-text-fill-color:#2fa63a !important}
#main .tcb-guar-card h3,#main .tcb-rev-by strong{color:#5c3a2e !important;-webkit-text-fill-color:#5c3a2e !important}
#main .tcb-guar-ic{color:#5c3a2e !important}
#main .tcb-btn-yellow{color:#4a2e24 !important;-webkit-text-fill-color:#4a2e24 !important}
/* ==== TCB FOOTER V3 (mega — all pages) ==== */
.tcb-ft-top-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(1.5rem,4vw,3rem);padding-bottom:2rem;border-bottom:1px solid var(--tcb-line);margin-bottom:2rem;align-items:start}
.tcb-ft-links-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem}
.tcb-ft-top-grid .tcb-ft-brandcol{max-width:none}
.tcb-ft-links-grid .tcb-ft-col h3{font-size:1.02rem}
@media(max-width:1050px){.tcb-ft-links-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem 1.2rem}}
@media(max-width:768px){.tcb-ft-top-grid{grid-template-columns:1fr}.tcb-ft-links-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.tcb-ft-links-grid{grid-template-columns:1fr}}

/* ==== LA coral-palette contrast fixes (contrast_audit.py, 2026-07-10) ====
   #main a{color:#6b4a3c!important} (global catch-all) was clobbering white/dark button
   text set on the new coral (#3d7a6e) surfaces; reassert correct high-contrast colors
   with equal-or-higher specificity, appended last so source order settles any tie. */
#main .tcb-btn-purple,#main .tcb-btn-purple *{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #main .tcb-btn-yellow{color:#4a2e24 !important;-webkit-text-fill-color:#4a2e24 !important}
#main .hw-quotepanel .label-optional,#main .hw-quotepanel .muted,#main .hw-quotepanel .reassure,#main .hw-quotepanel .reassure *{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .tcb-hero-form .reassure,#main .tcb-hero-form .reassure *,#main .tcb-hero-form .tcpa-consent,#main .tcb-hero-form .tcpa-consent *{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
body.home #main .tcb-hero-form .reassure,body.home #main .tcb-hero-form .reassure *,body.home #main .tcb-hero-form .tcpa-consent,body.home #main .tcb-hero-form .tcpa-consent *{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .tcb-hero-form .ns-form label{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
body.home #main .tcb-hero-form .ns-form label{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .tcb-ft-form .reassure,#main .tcb-ft-form .reassure *,#main .tcb-ft-form .tcpa-consent,#main .tcb-ft-form .tcpa-consent *{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
#main .tcb-cta-y p{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}
body.home #main .tcb-cta-y p{color:#2e1c16 !important;-webkit-text-fill-color:#2e1c16 !important}

/* Tagline rendered as live text (not baked into the logo raster) -- fixes illegible/aliased
   tagline at small mobile logo scale (Alexey, 2026-07-13). */
.hw-hd-brand{display:inline-flex !important;flex-direction:column !important;align-items:flex-start !important;justify-content:center;line-height:1.1}
.brand-tagline{display:block;font-family:var(--f-body);font-weight:700;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase;color:var(--c-mid);white-space:normal;max-width:230px;margin-top:2px}
@media (max-width:480px){.brand-tagline{font-size:.52rem;max-width:170px}}
