/* ============================================================
   CONSTRUCTION / GENERAL TRADES template
   Design: IRON NIGHT / HI-VIS. Cold steel darks, safety yellow,
   Anton + Barlow + JetBrains Mono. Dark-dominant, ticket cards,
   split hero. Deliberately NOT the Flores skin.
   ============================================================ */
:root{
  --coal:#[object Object]e[object Object][object Object][object Object][object Object];
  --coal-[object Object]:#[object Object][object Object][object Object][object Object][object Object][object Object];
  --panel:#[object Object]a[object Object][object Object][object Object]c;
  --panel-[object Object]:#[object Object][object Object][object Object][object Object][object Object][object Object];
  --white:#f[object Object]f[object Object]f[object Object];
  --mut:#a[object Object]b[object Object]bc;
  --mut-[object Object]:#[object Object]f[object Object]a[object Object][object Object];
  --accent:#ff[object Object]a[object Object][object Object];
  --accent-dark:#e[object Object][object Object][object Object][object Object]a;
  --accent-dim:color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent);
  --on-accent:#[object Object]e[object Object][object Object][object Object][object Object];
  --line:rgba([object Object][object Object][object Object],[object Object][object Object][object Object],[object Object][object Object][object Object],.[object Object][object Object]);
  --line-light:rgba([object Object][object Object][object Object],[object Object][object Object][object Object],[object Object][object Object][object Object],.[object Object][object Object]);
  --font-display:"Anton",sans-serif;
  --font-body:"Barlow",sans-serif;
  --font-mono:"JetBrains Mono",monospace;
  --max:[object Object][object Object][object Object][object Object]px;
  --rad:[object Object]px;
  /* legacy aliases used by inline styles on inner pages */
  --ink:var(--coal);
  --ink-[object Object]:var(--coal-[object Object]);
  --paper:var(--panel);
  --paper-[object Object]:var(--panel);
  --bone:var(--panel);
  --bone-[object Object]:var(--coal-[object Object]);
  --red:var(--accent);
  --red-dark:var(--accent-dark);
  --steel:var(--mut-[object Object]);
}
*{margin:[object Object];padding:[object Object];box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{
  font-family:var(--font-body);
  background:var(--coal);
  color:var(--white);
  font-size:[object Object][object Object].[object Object]px;
  line-height:[object Object].[object Object][object Object];
  -webkit-font-smoothing:antialiased;
}
img{max-width:[object Object][object Object][object Object]%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--accent);color:var(--on-accent)}

/* ---------- type ---------- */
h[object Object],h[object Object],h[object Object],h[object Object]{font-family:var(--font-display);font-weight:[object Object][object Object][object Object];line-height:.[object Object][object Object];letter-spacing:.[object Object][object Object][object Object]em;text-transform:uppercase}
.display-xl{font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)}
.display-lg{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)}
.display-md{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)}
.display-sm{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)}
.kicker{
  font-family:var(--font-mono);font-size:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];
  letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:.[object Object][object Object]rem;margin-bottom:[object Object].[object Object][object Object]rem;
}
.kicker::before{content:"//";font-weight:[object Object][object Object][object Object];letter-spacing:[object Object]}
.kicker.center{justify-content:center}
.lead{font-size:clamp([object Object].[object Object][object Object]rem,[object Object].[object Object]vw,[object Object].[object Object][object Object]rem);color:var(--mut);max-width:[object Object][object Object]ch;font-weight:[object Object][object Object][object Object]}
.muted{color:var(--mut-[object Object])}
.on-dark .lead,.on-dark .muted,.dark .lead,.dark .muted,.dark[object Object] .lead,.dark[object Object] .muted{color:var(--mut)}
.outline{color:transparent;-webkit-text-stroke:[object Object].[object Object]px var(--accent)}
.acc,.red{color:var(--accent);-webkit-text-stroke:[object Object]}
.statement{font-family:var(--font-display);text-transform:uppercase;font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem);line-height:.[object Object][object Object];max-width:[object Object][object Object]ch}
.statement em{font-style:normal;color:var(--accent)}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:[object Object] auto;padding:[object Object] clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
.section{padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem) [object Object];position:relative}
.section.tight{padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem) [object Object]}
.dark{background:var(--coal-[object Object]);border-top:[object Object]px solid var(--line);border-bottom:[object Object]px solid var(--line)}
.dark[object Object]{background:var(--panel)}
.grid-[object Object]{display:grid;grid-template-columns:[object Object]fr [object Object]fr;gap:clamp([object Object]rem,[object Object]vw,[object Object].[object Object]rem);align-items:center}
.grid-[object Object]>*,.grid-[object Object]>*,.grid-[object Object]>*{min-width:[object Object]}
.grid-[object Object]{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:[object Object].[object Object]rem}
.grid-[object Object]{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:[object Object].[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.grid-[object Object]{grid-template-columns:[object Object]fr}.grid-[object Object]{grid-template-columns:[object Object]fr [object Object]fr}.grid-[object Object]{grid-template-columns:[object Object]fr [object Object]fr}}
@media(max-width:[object Object][object Object][object Object]px){.grid-[object Object],.grid-[object Object]{grid-template-columns:[object Object]fr}}

/* ---------- hazard / rules ---------- */
.hazard{height:[object Object][object Object]px;background:var(--accent);background-image:repeating-linear-gradient([object Object][object Object][object Object]deg,var(--hazard-ink,#[object Object]a[object Object]d[object Object][object Object]) [object Object] [object Object][object Object]px,rgba([object Object],[object Object],[object Object],[object Object]) [object Object][object Object]px,rgba([object Object],[object Object],[object Object],[object Object]) [object Object][object Object]px)}
/* When the page's last section before the footer is itself a .cta-band (the common case --
   every page ends on a CTA), the footer's own .hazard stripe lands right under the
   cta-band's giant background text with almost no gap, reading as two stripes sandwiching
   a half-cut-off watermark instead of one clean transition (Wayne, live screenshot on
   Sarber Construction and Eco Lawn Pros, [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]). The cta-band's own accent-color
   block already IS the transition; a second stripe right after it is redundant. Use ~
   (general sibling) not + (adjacent) since <script src="site.js"> sits between them in the DOM. */
.cta-band ~ footer .hazard{display:none}
.rule{height:[object Object]px;background:var(--line)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.[object Object]rem;
  font-family:var(--font-body);font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;
  letter-spacing:.[object Object][object Object]em;text-transform:uppercase;
  padding:[object Object].[object Object][object Object]rem [object Object].[object Object][object Object]rem;border:[object Object]px solid transparent;border-radius:[object Object];
  cursor:pointer;transition:transform .[object Object][object Object]s ease,background .[object Object][object Object]s ease,color .[object Object][object Object]s ease,border-color .[object Object][object Object]s ease,box-shadow .[object Object][object Object]s ease;
  position:relative;
}
.btn:active{transform:translateY([object Object]px)}
.btn-solid,.btn-red{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-solid:hover,.btn-red:hover{background:var(--white);border-color:var(--white);color:var(--coal);box-shadow:[object Object] [object Object]px [object Object][object Object]px color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent)}
.btn-ink{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-ink:hover{background:var(--accent);color:var(--on-accent)}
.btn-ghost{border-color:var(--line);color:var(--white);background:transparent}
.btn-ghost:hover{border-color:var(--white);background:var(--white);color:var(--coal)}
.btn-ghost-light,.btn-light{border-color:rgba([object Object][object Object][object Object],[object Object][object Object][object Object],[object Object][object Object][object Object],.[object Object][object Object]);color:var(--white);background:transparent}
.btn-ghost-light:hover,.btn-light:hover{background:var(--white);border-color:var(--white);color:var(--coal)}
.btn-lightsolid{background:var(--white);border-color:var(--white);color:var(--coal)}
.btn-lightsolid:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn .arr{transition:transform .[object Object][object Object]s ease}
.btn:hover .arr{transform:translateX([object Object]px)}

/* ---------- topbar ---------- */
.topbar{background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);font-size:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object][object Object]em;text-transform:uppercase}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:[object Object][object Object]px;gap:[object Object].[object Object]rem}.topbar .area{min-width:[object Object];overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar a{flex:[object Object] [object Object] auto;white-space:nowrap}
.topbar a{color:var(--on-accent);font-weight:[object Object][object Object][object Object]}
.topbar a:hover{text-decoration:underline}
@media(max-width:[object Object][object Object][object Object]px){.topbar .area{display:none}.topbar .wrap{justify-content:center}}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:[object Object];z-index:[object Object][object Object];background:rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object]);
  backdrop-filter:blur([object Object][object Object]px);border-bottom:[object Object]px solid var(--line);
  transition:box-shadow .[object Object][object Object]s ease,background .[object Object][object Object]s ease;
}
.site-header.scrolled{box-shadow:[object Object] [object Object][object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object]);background:rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object])}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:[object Object]rem;height:[object Object][object Object]px}
.logo{display:flex;align-items:center;gap:.[object Object]rem;flex:none}
.logo img{height:[object Object][object Object]px;width:auto;max-width:[object Object][object Object][object Object]px;display:block;object-fit:contain}
/* dark logo on the dark nav -> white chip so it reads; light/white logos show bare */
.logo img.logo-chip{background:#fff;border-radius:[object Object]px;padding:[object Object]px [object Object][object Object]px;height:[object Object][object Object]px;box-shadow:[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])}
.site-footer .logo img{height:[object Object][object Object][object Object]px}
.site-footer .logo img.logo-chip{height:[object Object][object Object]px}
/* wordmark logo (greenfield / no real logo image) */
.site-header .logo{margin-right:[object Object].[object Object]rem;flex:[object Object] [object Object] auto;min-width:[object Object]}
.site-header .header-cta{margin-left:[object Object].[object Object]rem;flex:[object Object] [object Object] auto}
.logo-word{font-family:var(--font-display);max-width:min([object Object][object Object]vw,[object Object][object Object][object Object]px);white-space:nowrap;overflow:hidden;text-overflow:clip;flex:[object Object] [object Object] auto;text-transform:uppercase;letter-spacing:.[object Object][object Object]em;line-height:.[object Object];font-size:clamp(.[object Object][object Object]rem,[object Object].[object Object][object Object]vw,[object Object].[object Object]rem);color:var(--white);display:inline-block;position:relative;padding-left:.[object Object][object Object]rem}
.logo-word::before{content:"";position:absolute;left:[object Object];top:[object Object][object Object]%;transform:translateY(-[object Object][object Object]%);width:[object Object]px;height:[object Object].[object Object]em;background:var(--accent)}
.site-footer .logo-word{font-size:[object Object].[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.logo-word{font-size:[object Object].[object Object]rem}}
@media(max-width:[object Object][object Object][object Object]px){.logo img{height:[object Object][object Object]px}.site-header .wrap{height:[object Object][object Object]px}}
.nav{display:flex;align-items:center;gap:[object Object].[object Object][object Object]rem}
.nav>a{font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;padding:.[object Object]rem [object Object];position:relative;white-space:nowrap;color:#dfe[object Object]ea}
.nav>a::after{content:"";position:absolute;left:[object Object];bottom:[object Object];width:[object Object];height:[object Object]px;background:var(--accent);transition:width .[object Object][object Object]s ease}
.nav>a:hover,.nav>a.active{color:var(--white)}
.nav>a:hover::after,.nav>a.active::after{width:[object Object][object Object][object Object]%}
.nav .has-drop{position:relative}
.nav .has-drop>a{display:inline-flex;align-items:center;gap:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;padding:.[object Object]rem [object Object];color:#dfe[object Object]ea}
.nav .has-drop>a:hover,.nav .has-drop>a.active{color:var(--white)}
.drop{
  position:absolute;top:calc([object Object][object Object][object Object]% + [object Object][object Object]px);left:[object Object][object Object]%;transform:translate(-[object Object][object Object]%,[object Object]px);
  background:var(--panel);min-width:[object Object][object Object][object Object]px;padding:.[object Object][object Object]rem [object Object];border:[object Object]px solid var(--line);
  opacity:[object Object];visibility:hidden;transition:all .[object Object][object Object]s ease;box-shadow:[object Object] [object Object][object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object]);
}
.drop::before{content:"";position:absolute;top:[object Object];left:[object Object];right:[object Object];height:[object Object]px;background:var(--accent)}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:[object Object];visibility:visible;transform:translate(-[object Object][object Object]%,[object Object])}
.drop a{display:block;color:var(--white);padding:.[object Object][object Object]rem [object Object].[object Object]rem;font-size:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object][object Object]em}
.drop a:hover{background:var(--accent);color:var(--on-accent)}
.header-cta{display:flex;align-items:center;gap:[object Object]rem;flex:none}
.header-phone{font-family:var(--font-mono);font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;white-space:nowrap;color:var(--white)}
.header-phone:hover{color:var(--accent)}
.btn-nav{padding:.[object Object][object Object]rem [object Object].[object Object][object Object]rem;font-size:.[object Object][object Object]rem}
.burger{display:none;background:none;border:[object Object];cursor:pointer;width:[object Object][object Object]px;height:[object Object][object Object]px;position:relative;z-index:[object Object][object Object][object Object]}
.burger span{display:block;width:[object Object][object Object]px;height:[object Object]px;background:var(--white);margin:[object Object]px auto;transition:all .[object Object][object Object]s ease}
.burger.open span:nth-child([object Object]){transform:translateY([object Object]px) rotate([object Object][object Object]deg)}
.burger.open span:nth-child([object Object]){opacity:[object Object]}
.burger.open span:nth-child([object Object]){transform:translateY(-[object Object]px) rotate(-[object Object][object Object]deg)}
@media(max-width:[object Object][object Object][object Object][object Object]px){
  .nav,.header-phone{display:none}
  .burger{display:block}
}
@media(max-width:[object Object][object Object][object Object]px){.btn-nav{display:none}}

/* mobile menu */
.mobile-menu{
  position:fixed;inset:[object Object];background:var(--coal);z-index:[object Object][object Object][object Object];color:var(--white);
  display:flex;flex-direction:column;justify-content:center;padding:[object Object]rem clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem) [object Object]rem;
  opacity:[object Object];visibility:hidden;transition:opacity .[object Object][object Object]s ease;overflow-y:auto;
}
.mobile-menu::before{content:"";position:fixed;top:[object Object];left:[object Object];right:[object Object];height:[object Object]px;background:repeating-linear-gradient([object Object][object Object][object Object]deg,var(--accent) [object Object] [object Object][object Object]px,var(--coal) [object Object][object Object]px [object Object][object Object]px)}
.mobile-menu.open{opacity:[object Object];visibility:visible}
.mobile-menu a.mm-link{
  font-family:var(--font-display);font-size:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);text-transform:uppercase;
  padding:.[object Object][object Object]rem [object Object];border-bottom:[object Object]px solid var(--line);display:block;
  transform:translateY([object Object][object Object]px);opacity:[object Object];transition:all .[object Object]s ease;
}
.mobile-menu.open a.mm-link{transform:none;opacity:[object Object]}
.mobile-menu a.mm-link:hover{color:var(--accent)}
.mobile-menu .mm-sub{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);margin:[object Object].[object Object]rem [object Object] .[object Object]rem}
.mobile-menu .mm-svc a{display:block;padding:.[object Object]rem [object Object];font-weight:[object Object][object Object][object Object];color:var(--mut)}
.mobile-menu .mm-svc a:hover{color:var(--accent)}
.mobile-menu .mm-cta{margin-top:[object Object]rem;display:flex;flex-wrap:wrap;gap:[object Object]rem}

/* ---------- HOME split hero ---------- */
.hero-split{position:relative;border-bottom:[object Object]px solid var(--line);overflow:clip}
.hero-split .hs-grid{display:grid;grid-template-columns:minmax([object Object],[object Object].[object Object][object Object]fr) minmax([object Object],.[object Object][object Object]fr);min-height:min([object Object][object Object]vh,[object Object][object Object][object Object]px)}
.hs-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object]rem) clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem) clamp([object Object].[object Object]rem,[object Object]vw,[object Object]rem) max(clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem),calc(([object Object][object Object][object Object]vw - var(--max))/[object Object] + [object Object].[object Object]rem));position:relative}
.hs-copy::before{content:"[object Object][object Object].[object Object][object Object] N / [object Object][object Object].[object Object][object Object] W";position:absolute;top:[object Object]rem;right:[object Object];writing-mode:vertical-rl;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;color:var(--mut-[object Object]);text-transform:uppercase}
.hs-tag{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);margin-bottom:[object Object].[object Object]rem;display:flex;gap:.[object Object][object Object]rem;align-items:center}
.hs-tag::before{content:"//";font-weight:[object Object][object Object][object Object];letter-spacing:[object Object]}
.hs-copy h[object Object]{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem);max-width:[object Object][object Object]ch;line-height:.[object Object][object Object]}
.hs-copy h[object Object] .acc{color:var(--accent)}
.hs-copy::after{content:"AIRBORNE";position:absolute;left:-.[object Object][object Object]em;bottom:-.[object Object][object Object]em;font-family:var(--font-display);font-size:clamp([object Object]rem,[object Object][object Object]vw,[object Object][object Object]rem);line-height:[object Object];color:transparent;-webkit-text-stroke:[object Object]px rgba([object Object][object Object][object Object],[object Object][object Object][object Object],[object Object][object Object][object Object],.[object Object][object Object]);pointer-events:none;user-select:none;white-space:nowrap;z-index:[object Object]}
.hs-copy>*{position:relative;z-index:[object Object]}
.hl{display:block;overflow:hidden;padding-bottom:.[object Object][object Object]em;margin-bottom:-.[object Object][object Object]em}
.hl-in{display:inline-block;transform:translateY([object Object][object Object][object Object]%);animation:heroLine .[object Object][object Object]s cubic-bezier(.[object Object][object Object],.[object Object],.[object Object][object Object],[object Object]) .[object Object][object Object]s forwards}
.hl:nth-child([object Object]) .hl-in{animation-delay:.[object Object]s}
.hl:nth-child([object Object]) .hl-in{animation-delay:.[object Object][object Object]s}
@keyframes heroLine{to{transform:none}}
.hload{opacity:[object Object];transform:translateY([object Object][object Object]px);animation:heroFade .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object]) .[object Object][object Object]s forwards}
.hload-d[object Object]{animation-delay:.[object Object][object Object]s}.hload-d[object Object]{animation-delay:.[object Object]s}.hload-d[object Object]{animation-delay:.[object Object][object Object]s}
@keyframes heroFade{to{opacity:[object Object];transform:none}}
.hs-copy p{margin:[object Object].[object Object]rem [object Object] [object Object].[object Object]rem;max-width:[object Object][object Object]ch;font-size:clamp([object Object].[object Object][object Object]rem,[object Object].[object Object]vw,[object Object].[object Object][object Object]rem);color:var(--mut)}
.btn-hero{padding:[object Object].[object Object][object Object]rem [object Object].[object Object]rem;font-size:[object Object].[object Object][object Object]rem;box-shadow:[object Object] [object Object][object Object]px [object Object][object Object]px color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent)}
.hero-proof{margin-top:[object Object].[object Object]rem;font-family:var(--font-mono);font-size:.[object Object]rem;letter-spacing:.[object Object][object Object]em;color:var(--mut);display:flex;align-items:center;gap:.[object Object][object Object]rem;flex-wrap:wrap}
.hero-proof .stars{color:var(--accent);letter-spacing:.[object Object][object Object]em;font-size:.[object Object]rem}
.hero-proof b{font-size:.[object Object][object Object]rem;color:var(--white)}
.hs-media{position:relative;min-height:[object Object][object Object][object Object]px;clip-path:polygon([object Object][object Object]% [object Object],[object Object][object Object][object Object]% [object Object],[object Object][object Object][object Object]% [object Object][object Object][object Object]%,[object Object] [object Object][object Object][object Object]%);overflow:hidden}
.hs-imgwrap{position:absolute;inset:-[object Object]% [object Object];will-change:transform}
.hs-imgwrap img{position:absolute;inset:[object Object];width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover;object-position:center [object Object][object Object]%;filter:contrast([object Object].[object Object][object Object]) saturate(.[object Object]) brightness(.[object Object][object Object]) hue-rotate(-[object Object]deg);transform:scale([object Object].[object Object]);transform-origin:[object Object][object Object]% [object Object][object Object]%;animation:hsKb [object Object][object Object]s cubic-bezier(.[object Object][object Object],.[object Object],.[object Object],[object Object]) forwards}
@keyframes hsKb{to{transform:scale([object Object].[object Object][object Object])}}
.hs-grain{position:absolute;inset:[object Object];z-index:[object Object];pointer-events:none;opacity:.[object Object][object Object];mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%[object Object]Csvg xmlns='http://www.w[object Object].org/[object Object][object Object][object Object][object Object]/svg' width='[object Object][object Object][object Object]' height='[object Object][object Object][object Object]'%[object Object]E%[object Object]Cfilter id='n'%[object Object]E%[object Object]CfeTurbulence type='fractalNoise' baseFrequency='[object Object].[object Object]' numOctaves='[object Object]' stitchTiles='stitch'/%[object Object]E%[object Object]CfeColorMatrix type='saturate' values='[object Object]'/%[object Object]E%[object Object]C/filter%[object Object]E%[object Object]Crect width='[object Object][object Object][object Object]%[object Object][object Object]' height='[object Object][object Object][object Object]%[object Object][object Object]' filter='url(%[object Object][object Object]n)' opacity='[object Object].[object Object][object Object]'/%[object Object]E%[object Object]C/svg%[object Object]E");background-size:[object Object][object Object][object Object]px [object Object][object Object][object Object]px}
.hs-media::before{content:"";position:absolute;inset:[object Object];background:linear-gradient([object Object][object Object][object Object]deg,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object][object Object]%),radial-gradient([object Object][object Object][object Object]% [object Object][object Object]% at [object Object][object Object]% [object Object][object Object]%,transparent [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object]) [object Object][object Object][object Object]%);z-index:[object Object]}
.hs-media::after{content:"";position:absolute;left:[object Object];top:[object Object];bottom:[object Object];width:[object Object][object Object]px;background:repeating-linear-gradient([object Object][object Object][object Object]deg,var(--accent) [object Object] [object Object][object Object]px,var(--coal) [object Object][object Object]px [object Object][object Object]px);transform:skewX(-[object Object].[object Object]deg);transform-origin:top;z-index:[object Object]}
.hs-plate{position:absolute;right:clamp([object Object]rem,[object Object]vw,[object Object].[object Object]rem);bottom:clamp([object Object]rem,[object Object]vw,[object Object].[object Object]rem);z-index:[object Object];background:rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]);backdrop-filter:blur([object Object]px);border:[object Object]px solid var(--line);border-left:[object Object]px solid var(--accent);padding:.[object Object]rem [object Object].[object Object]rem;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--white);max-width:min([object Object][object Object][object Object]px,[object Object][object Object]%)}
.hs-plate b{color:var(--accent);font-weight:[object Object][object Object][object Object];display:block;margin-bottom:.[object Object][object Object]rem}
.hero-strip{border-top:[object Object]px solid var(--line);display:flex;flex-wrap:wrap;gap:.[object Object]rem [object Object].[object Object]rem;padding:[object Object].[object Object][object Object]rem [object Object];font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--mut-[object Object])}
.hero-strip b{color:var(--accent);font-weight:[object Object][object Object][object Object]}
@media(max-width:[object Object][object Object][object Object]px){
  .hero-split .hs-grid{grid-template-columns:[object Object]fr;min-height:[object Object]}
  .hs-media{min-height:[object Object][object Object][object Object]px;clip-path:polygon([object Object] [object Object][object Object]%,[object Object][object Object][object Object]% [object Object],[object Object][object Object][object Object]% [object Object][object Object][object Object]%,[object Object] [object Object][object Object][object Object]%);order:[object Object]}
  .hs-media::after{display:none}
  .hs-copy{order:[object Object];padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object]rem) clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
  .hs-copy::before,.hs-copy::after{display:none}
}
@media(prefers-reduced-motion:reduce){.hs-imgwrap img{animation:none;transform:none}.hl-in{animation:none;transform:none}.hload{animation:none;opacity:[object Object];transform:none}}
.hero-ctas{display:flex;flex-wrap:wrap;gap:[object Object]rem}

/* legacy hero classes (inner use) */
.hero-bg{position:absolute;inset:[object Object];z-index:-[object Object]}
.hero-tag{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);margin-bottom:[object Object].[object Object]rem;display:flex;gap:.[object Object]rem;align-items:center}

/* ---------- HOME full-bleed centered hero (Caruth skin) ---------- */
.hero{position:relative;min-height:min([object Object][object Object]vh,[object Object][object Object][object Object]px);display:flex;align-items:center;color:var(--white);isolation:isolate;overflow:clip;text-align:center;border-bottom:[object Object]px solid var(--line)}
.hero .hero-bg{position:absolute;inset:[object Object];z-index:-[object Object];will-change:transform}
.hero .hero-bg img{width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover;object-position:center [object Object][object Object]%;filter:contrast([object Object].[object Object][object Object]) saturate([object Object].[object Object][object Object]) brightness([object Object].[object Object][object Object]);transform:scale([object Object].[object Object][object Object]);transform-origin:[object Object][object Object]% [object Object][object Object]%;animation:heroKb [object Object][object Object]s cubic-bezier(.[object Object][object Object],.[object Object],.[object Object],[object Object]) forwards}
.hero .hero-bg::after{content:"";position:absolute;inset:[object Object];background:radial-gradient(ellipse [object Object][object Object]% [object Object][object Object]% at [object Object][object Object]% [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],[object Object]) [object Object][object Object][object Object]%),linear-gradient([object Object][object Object][object Object]deg,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object][object Object]%)}
.hero .wrap{padding-top:[object Object].[object Object]rem;padding-bottom:clamp([object Object].[object Object]rem,[object Object].[object Object]vh,[object Object].[object Object]rem);width:[object Object][object Object][object Object]%;display:flex;flex-direction:column;align-items:center}
.hero .hero-tag{justify-content:center;margin-bottom:[object Object].[object Object]rem;color:#fff;font-size:.[object Object][object Object]rem;text-shadow:[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object]),[object Object] [object Object] [object Object]px rgba([object Object],[object Object],[object Object],.[object Object])}
.hero .hero-tag::before,.hero .hero-tag::after{content:"";width:[object Object].[object Object]rem;height:[object Object]px;background:var(--accent)}
.hero h[object Object]{max-width:none;margin-left:auto;margin-right:auto;font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem);line-height:[object Object].[object Object];letter-spacing:.[object Object][object Object]em;text-shadow:[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])}
.hero h[object Object] .hl-in{white-space:normal;overflow-wrap:break-word}
.hero h[object Object] .acc{color:var(--accent)}
.hero p{margin:[object Object].[object Object]rem auto [object Object]rem;max-width:[object Object][object Object]ch;font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object][object Object]rem);color:#e[object Object]ebef;text-shadow:[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])}
.hero .hero-ctas{justify-content:center}
.hero .hero-proof{margin-top:[object Object].[object Object]rem;justify-content:center;color:#e[object Object]ebef;text-shadow:[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object])}
.hero .hero-strip{border-top:[object Object]px solid var(--line-light);margin-top:clamp([object Object].[object Object]rem,[object Object]vh,[object Object]rem);padding-top:[object Object].[object Object]rem;justify-content:center}
.hero-scroll{position:absolute;right:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);bottom:[object Object];height:[object Object].[object Object]rem;width:[object Object]px;overflow:hidden;z-index:[object Object]}
.hero-scroll span{position:absolute;left:[object Object];top:-[object Object][object Object][object Object]%;width:[object Object]px;height:[object Object][object Object][object Object]%;background:linear-gradient([object Object][object Object][object Object]deg,transparent,var(--accent));animation:scrollCue [object Object].[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],.[object Object]) [object Object].[object Object]s infinite}
@keyframes heroKb{to{transform:scale([object Object])}}
@keyframes scrollCue{[object Object]%{top:-[object Object][object Object][object Object]%}[object Object][object Object]%{top:[object Object][object Object][object Object]%}[object Object][object Object][object Object]%{top:[object Object][object Object][object Object]%}}
@media(max-width:[object Object][object Object][object Object]px){.hero{min-height:min([object Object][object Object]vh,[object Object][object Object][object Object]px)}.hero-scroll{display:none}}
@media(prefers-reduced-motion:reduce){.hero .hero-bg img{animation:none;transform:none}}

/* ---------- stat band ---------- */
.statband{background:var(--accent);color:var(--on-accent);position:relative;overflow:clip}
.statband .wrap{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:[object Object].[object Object]rem;padding-top:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);padding-bottom:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
.stat{border-left:[object Object]px solid var(--on-accent);padding-left:[object Object].[object Object]rem}
.stat .sv{font-family:var(--font-display);font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem);line-height:[object Object]}
.stat .sl{font-family:var(--font-mono);font-size:.[object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object][object Object]em;text-transform:uppercase;margin-top:.[object Object][object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.statband .wrap{grid-template-columns:[object Object]fr [object Object]fr}}
@media(max-width:[object Object][object Object][object Object]px){.statband .wrap{grid-template-columns:[object Object]fr [object Object]fr;gap:[object Object].[object Object]rem .[object Object]rem}.stat .sv{font-size:[object Object].[object Object]rem}}

/* ---------- marquee (retired; safety stub) ---------- */
.marquee{display:none}

/* ---------- service ticket cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:[object Object].[object Object]rem}
.svc-card{grid-column:span [object Object];position:relative;display:flex;flex-direction:column;background:var(--panel);border:[object Object]px solid var(--line);overflow:hidden;transition:transform .[object Object]s ease,border-color .[object Object]s ease,box-shadow .[object Object]s ease}
.svc-card.wide{grid-column:span [object Object]}
.svc-card::before{content:"";position:absolute;top:[object Object];left:[object Object];right:[object Object];height:[object Object]px;background:var(--accent);transform:scaleX([object Object]);transform-origin:left;transition:transform .[object Object][object Object]s ease;z-index:[object Object]}
.svc-card:hover{transform:translateY(-[object Object]px);border-color:color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent);box-shadow:[object Object] [object Object][object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])}
.svc-card:hover::before{transform:scaleX([object Object])}
.svc-card img{position:relative;width:[object Object][object Object][object Object]%;aspect-ratio:[object Object][object Object]/[object Object].[object Object];object-fit:cover;filter:saturate(.[object Object][object Object]) contrast([object Object].[object Object][object Object]);transition:filter .[object Object]s ease,transform .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object])}
.svc-card:hover img{filter:saturate([object Object].[object Object][object Object]);transform:scale([object Object].[object Object][object Object])}
.svc-card .imgbox,.svc-card>img{overflow:hidden}
.svc-body{position:relative;z-index:[object Object];padding:[object Object].[object Object][object Object]rem [object Object].[object Object][object Object]rem [object Object].[object Object][object Object]rem;display:flex;flex-direction:column;gap:.[object Object]rem;flex:[object Object];background:var(--panel)}
.svc-num{font-family:var(--font-mono);font-size:.[object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object]em;color:var(--accent)}
.svc-body h[object Object]{font-size:[object Object].[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em}
.svc-body p{font-size:.[object Object][object Object]rem;color:var(--mut)}
.svc-link{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);display:inline-flex;gap:.[object Object]rem;margin-top:auto;padding-top:.[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.svc-card,.svc-card.wide{grid-column:span [object Object]}}
@media(max-width:[object Object][object Object][object Object]px){.svc-card,.svc-card.wide{grid-column:span [object Object]}}

/* ---------- boom vs line selector (signature) ---------- */
.bvl{border:[object Object]px solid var(--line);background:var(--coal-[object Object])}
.bvl-tabs{display:grid;grid-template-columns:[object Object].[object Object][object Object]fr .[object Object][object Object]fr}/* MUST match .bvl-panel's columns. They were [object Object]fr [object Object]fr vs [object Object].[object Object][object Object]fr .[object Object][object Object]fr, so the Residential/Commercial tab divider sat ~[object Object][object Object]px off from the text/image divider underneath it on every contractor site (Wayne, [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]). */
.bvl-tab{font-family:var(--font-display);font-size:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);text-transform:uppercase;letter-spacing:.[object Object][object Object]em;padding:[object Object].[object Object][object Object]rem [object Object]rem;background:var(--panel);color:var(--mut-[object Object]);border:[object Object];border-bottom:[object Object]px solid var(--line);cursor:pointer;transition:all .[object Object][object Object]s ease;position:relative}
.bvl-tab+.bvl-tab{border-left:[object Object]px solid var(--line)}
.bvl-tab.on{background:var(--accent);color:var(--on-accent)}
.bvl-tab:not(.on):hover{color:var(--white)}
.bvl-panel{display:none;grid-template-columns:[object Object].[object Object][object Object]fr .[object Object][object Object]fr;gap:[object Object];align-items:stretch}
.bvl-panel.on{display:grid}
.bvl-info{padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
.bvl-info h[object Object]{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem);margin-bottom:.[object Object]rem}
.bvl-info>p{color:var(--mut);max-width:[object Object][object Object]ch}
.bvl-specs{margin-top:[object Object].[object Object]rem;border-top:[object Object]px solid var(--line)}
.bvl-specs .row{display:grid;grid-template-columns:minmax([object Object][object Object][object Object]px,[object Object][object Object]%) [object Object]fr;gap:[object Object]rem;padding:.[object Object]rem .[object Object]rem;border-bottom:[object Object]px solid var(--line);font-size:.[object Object][object Object]rem}
.bvl-specs .row b{font-family:var(--font-mono);font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent)}
.bvl-media{position:relative;min-height:[object Object][object Object][object Object]px}
.bvl-media img{position:absolute;inset:[object Object];width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover}
.bvl-media::before{content:"";position:absolute;inset:[object Object];background:linear-gradient([object Object][object Object]deg,var(--coal-[object Object]) [object Object],rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],[object Object]) [object Object][object Object]%)}
@media(max-width:[object Object][object Object][object Object]px){.bvl-panel{grid-template-columns:[object Object]fr}.bvl-media{min-height:[object Object][object Object][object Object]px;order:-[object Object]}.bvl-media::before{background:linear-gradient([object Object]deg,var(--coal-[object Object]) [object Object],rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],[object Object]) [object Object][object Object]%)}}

/* ---------- service rows (services index) ---------- */
.svc-row{display:grid;grid-template-columns:auto [object Object]fr [object Object]fr;gap:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);align-items:center;padding:clamp([object Object]rem,[object Object]vw,[object Object]rem) [object Object];border-top:[object Object]px solid var(--line);position:relative}
.svc-row:last-of-type{border-bottom:[object Object]px solid var(--line)}
.svc-row .idx{font-family:var(--font-display);font-size:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);color:transparent;-webkit-text-stroke:[object Object].[object Object]px var(--accent);line-height:[object Object]}
.svc-row h[object Object]{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)}
.svc-row h[object Object] a{transition:color .[object Object]s ease}
.svc-row h[object Object] a:hover{color:var(--accent)}
.svc-row p{color:var(--mut);max-width:[object Object][object Object]ch;margin-top:.[object Object]rem}
.svc-row .media{overflow:hidden}
.svc-row .media img{aspect-ratio:[object Object][object Object]/[object Object];width:[object Object][object Object][object Object]%;object-fit:cover;filter:saturate(.[object Object][object Object]);transition:transform .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object]),filter .[object Object]s ease}
.svc-row:hover .media img{transform:scale([object Object].[object Object][object Object]);filter:saturate([object Object].[object Object][object Object])}
@media(max-width:[object Object][object Object][object Object]px){.svc-row{grid-template-columns:[object Object]fr}}
.go{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);display:inline-flex;gap:.[object Object]rem;margin-top:.[object Object]rem}
.go:hover{text-decoration:underline}

/* ---------- numbered feature rows ---------- */
.feat{display:grid;grid-template-columns:auto [object Object]fr;gap:[object Object].[object Object]rem;padding:[object Object].[object Object]rem [object Object];border-top:[object Object]px solid var(--line);align-items:start}
.feat:last-child{border-bottom:[object Object]px solid var(--line)}
.feat .n{font-family:var(--font-display);font-size:[object Object]rem;color:transparent;-webkit-text-stroke:[object Object].[object Object]px var(--accent);line-height:[object Object]}
.feat h[object Object]{font-size:[object Object].[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;margin-bottom:.[object Object]rem}
.feat p{color:var(--mut);max-width:[object Object][object Object]ch}
.light .feat,.feat.light{border-color:var(--line)}
.light .feat p,.feat.light p{color:var(--mut)}

/* ---------- process timeline ---------- */
.steps{position:relative;counter-reset:step;display:grid;grid-template-columns:[object Object]fr;gap:[object Object];max-width:[object Object][object Object][object Object]px}
.step{position:relative;padding:[object Object].[object Object]rem [object Object] [object Object].[object Object]rem [object Object].[object Object]rem;border:[object Object];background:transparent;transition:none}
.step::after{content:"";position:absolute;left:[object Object].[object Object][object Object]rem;top:[object Object];bottom:[object Object];width:[object Object]px;background:var(--line)}
.step:first-child::after{top:[object Object].[object Object]rem}
.step:last-child::after{bottom:auto;height:[object Object].[object Object]rem}
.step::before{
  counter-increment:step;content:"[object Object]" counter(step);
  position:absolute;left:[object Object];top:[object Object].[object Object][object Object]rem;width:[object Object].[object Object][object Object]rem;height:[object Object].[object Object][object Object]rem;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:[object Object].[object Object][object Object]rem;
  background:var(--coal);border:[object Object]px solid var(--accent);color:var(--accent);z-index:[object Object];
  transition:background .[object Object][object Object]s ease,color .[object Object][object Object]s ease;
}
.step:hover::before{background:var(--accent);color:var(--on-accent)}
.step h[object Object]{font-size:[object Object].[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;margin-bottom:.[object Object]rem}
.step p{font-size:.[object Object][object Object]rem;color:var(--mut);max-width:[object Object][object Object]ch}

/* ---------- gallery ---------- */
.gal-grid{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:[object Object]rem}
.gal-item{position:relative;overflow:hidden;cursor:zoom-in;aspect-ratio:[object Object]/[object Object];background:var(--panel);border:[object Object]px solid var(--line)}
.gal-item.tall{grid-row:span [object Object];aspect-ratio:auto}
.gal-item img{width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover;filter:saturate(.[object Object][object Object]);transition:transform .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object]),filter .[object Object]s ease}
.gal-item:hover img{transform:scale([object Object].[object Object][object Object]);filter:saturate([object Object].[object Object][object Object])}
.gal-item figcaption{position:absolute;left:[object Object];right:[object Object];bottom:[object Object];padding:.[object Object][object Object]rem .[object Object]rem;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);font-size:.[object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object][object Object]em;text-transform:uppercase;transform:translateY([object Object][object Object][object Object]%);transition:transform .[object Object]s ease}
.gal-item:hover figcaption{transform:none}
@media(max-width:[object Object][object Object][object Object]px){.gal-grid{grid-template-columns:[object Object]fr [object Object]fr}}
@media(max-width:[object Object][object Object][object Object]px){.gal-grid{grid-template-columns:[object Object]fr}.gal-item.tall{grid-row:span [object Object];aspect-ratio:[object Object]/[object Object]}}
.lightbox{position:fixed;inset:[object Object];background:rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]);z-index:[object Object][object Object][object Object];display:none;align-items:center;justify-content:center;padding:[object Object]rem [object Object]rem}
.lightbox.open{display:flex}
.lightbox img{max-width:min([object Object][object Object][object Object][object Object]px,[object Object][object Object]vw);max-height:[object Object][object Object]vh;object-fit:contain}
.lb-close{position:absolute;top:[object Object].[object Object]rem;right:[object Object].[object Object]rem;background:none;border:[object Object]px solid var(--white);color:var(--white);width:[object Object][object Object]px;height:[object Object][object Object]px;font-size:[object Object].[object Object]rem;cursor:pointer;transition:all .[object Object]s ease}
.lb-close:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.lb-nav{position:absolute;top:[object Object][object Object]%;transform:translateY(-[object Object][object Object]%);background:none;border:[object Object]px solid var(--white);color:var(--white);width:[object Object][object Object]px;height:[object Object][object Object]px;font-size:[object Object].[object Object]rem;cursor:pointer;transition:all .[object Object]s ease}
.lb-nav:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.lb-prev{left:[object Object].[object Object]rem}.lb-next{right:[object Object].[object Object]rem}

/* ---------- area chips + rows ---------- */
.area-list{display:flex;flex-wrap:wrap;gap:.[object Object]rem}
.area-chip{font-family:var(--font-mono);font-size:.[object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;border:[object Object]px solid var(--line);padding:.[object Object][object Object]rem [object Object].[object Object][object Object]rem;background:transparent;color:var(--mut);transition:all .[object Object]s ease}
.area-chip:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.area-rows{border-top:[object Object]px solid var(--line)}
.area-row{display:flex;justify-content:space-between;align-items:baseline;gap:[object Object]rem;padding:[object Object].[object Object][object Object]rem .[object Object]rem;border-bottom:[object Object]px solid var(--line);transition:background .[object Object]s ease,padding .[object Object]s ease}
.area-row:hover{background:var(--panel);padding-left:.[object Object]rem;padding-right:.[object Object]rem}
.area-row .nm{font-family:var(--font-display);text-transform:uppercase;font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object]rem);letter-spacing:.[object Object][object Object]em}
.area-row .co{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);text-align:right}

/* ---------- trust ---------- */
.trust{display:grid;grid-template-columns:[object Object]fr [object Object]fr;gap:[object Object].[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.trust{grid-template-columns:[object Object]fr}}
.trust-card{background:var(--panel);border:[object Object]px solid var(--line);border-top:[object Object]px solid var(--accent);padding:[object Object].[object Object]rem;transition:transform .[object Object][object Object]s ease,box-shadow .[object Object][object Object]s ease,border-color .[object Object][object Object]s ease}
.trust-card:hover{transform:translateY(-[object Object]px);box-shadow:[object Object] [object Object][object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object]);border-color:color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent)}
.tc-label{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object]em;text-transform:uppercase;color:var(--accent);margin-bottom:[object Object]rem;display:flex;align-items:center;gap:.[object Object]rem}
.tc-label::before{content:"//";letter-spacing:[object Object]}
.stars{color:var(--accent);letter-spacing:.[object Object][object Object]em;font-size:[object Object].[object Object][object Object]rem}

/* ---------- CTA band (hi-vis) ---------- */
.cta-band{position:relative;isolation:isolate;color:var(--on-accent);text-align:center;overflow:clip;background:var(--accent)}
.cta-band .bgimg{display:none}
.cta-band::before{content:"";position:absolute;top:[object Object];left:[object Object];right:[object Object];height:[object Object][object Object]px;background:var(--accent);background-image:repeating-linear-gradient([object Object][object Object][object Object]deg,var(--coal-[object Object]) [object Object] [object Object][object Object]px,rgba([object Object],[object Object],[object Object],[object Object]) [object Object][object Object]px,rgba([object Object],[object Object],[object Object],[object Object]) [object Object][object Object]px)}
.cta-band .kicker{color:var(--on-accent)}
.cta-band h[object Object]{max-width:[object Object][object Object]ch;margin:[object Object] auto}
.cta-band p{max-width:[object Object][object Object]ch;margin:[object Object].[object Object]rem auto [object Object]rem;color:rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]);font-weight:[object Object][object Object][object Object]}
.cta-band .hero-ctas{justify-content:center}
.cta-band .btn-solid,.cta-band .btn-red{background:var(--coal);border-color:var(--coal);color:var(--accent)}
.cta-band .btn-solid:hover,.cta-band .btn-red:hover{background:#[object Object][object Object][object Object];border-color:#[object Object][object Object][object Object];color:var(--white);box-shadow:none}
.cta-band .btn-ghost-light,.cta-band .btn-light,.cta-band .btn-ghost{border-color:var(--coal);color:var(--on-accent)}
.cta-band .btn-ghost-light:hover,.cta-band .btn-light:hover,.cta-band .btn-ghost:hover{background:var(--coal);color:var(--accent)}
.cta-band .btn-ink{border-color:var(--coal);color:var(--on-accent);background:transparent}
.cta-band .btn-ink:hover{background:var(--coal);color:var(--accent)}
.cta-band .giant-bg{position:absolute;inset:auto [object Object] -[object Object]vw [object Object];z-index:-[object Object];font-family:var(--font-display);text-transform:uppercase;font-size:clamp([object Object]rem,[object Object][object Object]vw,[object Object][object Object]rem);line-height:.[object Object];color:transparent;-webkit-text-stroke:[object Object].[object Object]px rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]);user-select:none;pointer-events:none;white-space:nowrap;overflow:hidden}

/* ---------- page hero (inner) ---------- */
.page-hero{position:relative;isolation:isolate;color:var(--white);padding:clamp([object Object]rem,[object Object][object Object]vw,[object Object].[object Object]rem) [object Object] clamp([object Object]rem,[object Object]vw,[object Object].[object Object]rem);overflow:clip;border-bottom:[object Object]px solid var(--line)}
.page-hero .bgimg{position:absolute;inset:[object Object] [object Object] [object Object] [object Object][object Object]%;z-index:-[object Object]}
.page-hero .bgimg img{width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover;object-position:center;filter:saturate(.[object Object])}
.page-hero::before{content:"";position:absolute;inset:[object Object];z-index:-[object Object];background:linear-gradient([object Object][object Object][object Object]deg,var(--coal) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object][object Object]%)}
.page-hero::after{content:"";position:absolute;left:[object Object];right:[object Object];bottom:[object Object];height:[object Object][object Object]px;background:repeating-linear-gradient([object Object][object Object][object Object]deg,var(--accent) [object Object] [object Object][object Object]px,var(--coal) [object Object][object Object]px [object Object][object Object]px)}
.page-hero.plain{background:var(--coal-[object Object])}
.page-hero.plain::after{display:none}
.crumbs{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--mut-[object Object]);margin-bottom:[object Object].[object Object]rem}
.crumbs::before{content:"// ";color:var(--accent)}
.crumbs a:hover{color:var(--accent)}
.page-hero h[object Object]{max-width:[object Object][object Object]ch}
.page-hero .lead{color:var(--mut);margin-top:[object Object].[object Object]rem}
.page-hero .lead a{color:var(--white)}

/* ---------- content blocks ---------- */
.media{overflow:hidden;position:relative}
.media img{width:[object Object][object Object][object Object]%;height:[object Object][object Object][object Object]%;object-fit:cover;transition:transform .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object])}
.media:hover img{transform:scale([object Object].[object Object][object Object])}
.media.frame,.media.frame-red{border:[object Object]px solid var(--line);padding:[object Object]}
.media.frame::after,.media.frame-red::after{content:"";position:absolute;top:[object Object];left:[object Object];width:[object Object][object Object]px;height:[object Object]px;background:var(--accent);z-index:[object Object]}
.media.frame::before,.media.frame-red::before{content:"";position:absolute;bottom:[object Object];right:[object Object];width:[object Object][object Object]px;height:[object Object]px;background:var(--accent);z-index:[object Object]}
.hero-badge{display:inline-block;background:var(--accent);color:var(--on-accent);padding:.[object Object][object Object]rem [object Object].[object Object][object Object]rem;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;font-weight:[object Object][object Object][object Object];letter-spacing:.[object Object][object Object]em;text-transform:uppercase}
.check-list li{display:flex;gap:.[object Object][object Object]rem;padding:.[object Object]rem [object Object];align-items:flex-start;color:var(--mut)}
.check-list li::before{content:"";flex:none;width:[object Object][object Object]px;height:[object Object][object Object]px;margin-top:.[object Object][object Object]rem;background:var(--accent);clip-path:polygon([object Object][object Object]% [object Object][object Object]%,[object Object] [object Object][object Object]%,[object Object][object Object]% [object Object][object Object][object Object]%,[object Object][object Object][object Object]% [object Object][object Object]%,[object Object][object Object]% [object Object],[object Object][object Object]% [object Object][object Object]%)}
.spec-table{width:[object Object][object Object][object Object]%;border-collapse:collapse;font-size:.[object Object][object Object]rem}
.spec-table td{padding:.[object Object]rem .[object Object]rem;border-bottom:[object Object]px solid var(--line);vertical-align:top;color:var(--white)}
.spec-table td:first-child{font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--accent);width:[object Object][object Object]%}
.spec-table a{color:var(--white)}

/* ---------- FAQ ---------- */
.faq-item{border:[object Object]px solid var(--line);background:var(--panel);margin-bottom:.[object Object]rem;overflow:hidden;transition:border-color .[object Object][object Object]s ease}
.faq-item:hover,.faq-item[open]{border-color:color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent)}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:[object Object]rem;padding:[object Object].[object Object]rem [object Object].[object Object]rem;font-weight:[object Object][object Object][object Object];font-size:[object Object].[object Object][object Object]rem;color:var(--white)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-display);color:var(--accent);font-size:[object Object].[object Object]rem;transition:transform .[object Object][object Object]s ease;flex:none}
.faq-item[open] summary::after{transform:rotate([object Object][object Object]deg)}
.faq-item .faq-a{padding:[object Object] [object Object].[object Object]rem [object Object].[object Object]rem;color:var(--mut);max-width:[object Object][object Object]ch}

/* ---------- footer ---------- */
.site-footer{background:#[object Object]a[object Object]d[object Object][object Object];color:var(--mut);border-top:[object Object]}
.footer-cta{border-bottom:[object Object]px solid var(--line);position:relative}
.footer-cta::before{content:none}
.footer-cta .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:[object Object].[object Object]rem;padding-top:[object Object].[object Object]rem;padding-bottom:[object Object].[object Object]rem}
.footer-cta h[object Object]{color:var(--white);font-size:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);max-width:[object Object][object Object]ch}
.footer-grid{display:grid;grid-template-columns:[object Object]fr [object Object]fr [object Object]fr [object Object].[object Object]fr;gap:[object Object].[object Object]rem;padding:[object Object].[object Object]rem [object Object]}
@media(max-width:[object Object][object Object][object Object]px){.footer-grid{grid-template-columns:[object Object]fr [object Object]fr}}
@media(max-width:[object Object][object Object][object Object]px){.footer-grid{grid-template-columns:[object Object]fr}}
.site-footer h[object Object]{color:var(--accent);font-size:[object Object]rem;margin-bottom:[object Object].[object Object]rem;letter-spacing:.[object Object][object Object]em}
.site-footer li{margin:.[object Object][object Object]rem [object Object]}
.site-footer a:hover{color:var(--accent)}
.f-about{max-width:[object Object][object Object]ch;font-size:.[object Object][object Object]rem;margin-top:[object Object].[object Object]rem}
.f-phone{font-family:var(--font-mono);color:var(--white);font-weight:[object Object][object Object][object Object]}
.footer-bottom{border-top:[object Object]px solid var(--line);padding:[object Object].[object Object]rem [object Object];font-size:.[object Object]rem;color:var(--mut-[object Object])}
.footer-bottom .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.[object Object]rem}
.footer-bottom a:hover{color:var(--accent)}

/* ---------- modal ([object Object]-step quote) ---------- */
.modal-veil{position:fixed;inset:[object Object];background:rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]);backdrop-filter:blur([object Object]px);z-index:[object Object][object Object][object Object];display:none;align-items:center;justify-content:center;padding:[object Object]rem}
.modal-veil.open{display:flex}
.modal{background:var(--coal-[object Object]);border:[object Object]px solid var(--line);width:min([object Object][object Object][object Object]px,[object Object][object Object][object Object]%);max-height:[object Object][object Object]vh;overflow-y:auto;position:relative;animation:modalIn .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object])}
@keyframes modalIn{from{transform:translateY([object Object][object Object]px);opacity:[object Object]}to{transform:none;opacity:[object Object]}}
.modal-inner{padding:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
.modal-close{position:absolute;top:.[object Object][object Object]rem;right:.[object Object][object Object]rem;width:[object Object][object Object]px;height:[object Object][object Object]px;border:[object Object]px solid var(--line);background:var(--panel);color:var(--white);font-size:[object Object].[object Object][object Object]rem;cursor:pointer;z-index:[object Object];transition:all .[object Object]s ease}
.modal-close:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.m-steps{display:flex;gap:.[object Object]rem;margin-bottom:[object Object].[object Object]rem;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--mut-[object Object]);flex-wrap:wrap}
.m-steps span{display:flex;align-items:center;gap:.[object Object][object Object]rem}
.m-steps span::before{content:"";width:[object Object][object Object]px;height:[object Object]px;background:var(--line);transition:background .[object Object]s ease}
.m-steps span.on{color:var(--white)}
.m-steps span.on::before{background:var(--accent)}
.modal h[object Object]{font-size:[object Object].[object Object]rem;letter-spacing:.[object Object][object Object]em;margin-bottom:.[object Object]rem}
.modal .m-sub{color:var(--mut);font-size:.[object Object][object Object]rem;margin-bottom:[object Object].[object Object]rem}
.modal .m-sub a{color:var(--accent);font-weight:[object Object][object Object][object Object]}
.f-row{display:grid;grid-template-columns:[object Object]fr [object Object]fr;gap:.[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.f-row{grid-template-columns:[object Object]fr}}
.f-field{margin-bottom:.[object Object][object Object]rem}
.f-field label{display:block;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;letter-spacing:.[object Object][object Object]em;text-transform:uppercase;color:var(--mut);margin-bottom:.[object Object]rem}
.f-field input,.f-field select,.f-field textarea{
  width:[object Object][object Object][object Object]%;padding:.[object Object][object Object]rem .[object Object][object Object]rem;border:[object Object].[object Object]px solid var(--line);border-radius:[object Object];
  background:var(--coal);font-family:var(--font-body);font-size:.[object Object][object Object]rem;color:var(--white);transition:border-color .[object Object]s ease;
}
.f-field select option{background:var(--coal);color:var(--white)}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{outline:none;border-color:var(--accent)}
.f-field textarea{min-height:[object Object][object Object]px;resize:vertical}
.f-err{color:var(--accent);font-size:.[object Object][object Object]rem;margin-top:.[object Object]rem;display:none;font-weight:[object Object][object Object][object Object]}
.day-grid{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:.[object Object][object Object]rem;margin-bottom:[object Object].[object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.day-grid{grid-template-columns:repeat([object Object],[object Object]fr)}}
.time-grid{display:grid;grid-template-columns:repeat([object Object],[object Object]fr);gap:.[object Object][object Object]rem}
@media(max-width:[object Object][object Object][object Object]px){.time-grid{grid-template-columns:repeat([object Object],[object Object]fr)}}
.pick{border:[object Object].[object Object]px solid var(--line);background:var(--coal);padding:.[object Object]rem .[object Object]rem;text-align:center;cursor:pointer;font-family:var(--font-mono);font-size:.[object Object][object Object]rem;transition:all .[object Object][object Object]s ease;color:var(--white)}
.pick small{display:block;font-size:.[object Object][object Object]rem;color:var(--mut-[object Object]);letter-spacing:.[object Object]em;text-transform:uppercase}
.pick:hover{border-color:var(--accent)}
.pick.sel{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.pick.sel small{color:rgba([object Object][object Object],[object Object][object Object],[object Object][object Object],.[object Object])}
.m-actions{display:flex;gap:.[object Object]rem;margin-top:[object Object].[object Object]rem;flex-wrap:wrap}
.m-back{background:none;border:[object Object];cursor:pointer;font-family:var(--font-mono);font-size:.[object Object]rem;letter-spacing:.[object Object]em;text-transform:uppercase;color:var(--mut);padding:.[object Object]rem .[object Object]rem}
.m-back:hover{color:var(--accent)}
.m-confirm{background:var(--panel);border:[object Object]px solid var(--line);padding:[object Object].[object Object]rem [object Object].[object Object]rem;margin-bottom:[object Object].[object Object]rem}
.m-confirm .row{display:flex;justify-content:space-between;gap:[object Object]rem;padding:.[object Object][object Object]rem [object Object];font-size:.[object Object][object Object]rem}
.m-confirm .row b{font-family:var(--font-mono);font-weight:[object Object][object Object][object Object];font-size:.[object Object][object Object]rem;letter-spacing:.[object Object]em;text-transform:uppercase;color:var(--accent)}
.m-done{text-align:center;padding:[object Object].[object Object]rem [object Object] .[object Object]rem}
.m-done .big{width:[object Object][object Object]px;height:[object Object][object Object]px;margin:[object Object] auto [object Object].[object Object]rem;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-size:[object Object].[object Object]rem}

/* ---------- reveal motion ---------- */
.rv{opacity:[object Object];transform:translateY([object Object][object Object]px);transition:opacity .[object Object]s ease,transform .[object Object]s cubic-bezier(.[object Object],.[object Object],.[object Object],[object Object])}
.rv.in{opacity:[object Object];transform:none}
.rv-d[object Object]{transition-delay:.[object Object][object Object]s}.rv-d[object Object]{transition-delay:.[object Object][object Object]s}.rv-d[object Object]{transition-delay:.[object Object][object Object]s}.rv-d[object Object]{transition-delay:.[object Object][object Object]s}
@media(prefers-reduced-motion:reduce){.rv{opacity:[object Object];transform:none;transition:none}}

/* big outline word */
.giant{font-family:var(--font-display);text-transform:uppercase;font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object]rem);line-height:.[object Object][object Object];color:transparent;-webkit-text-stroke:[object Object].[object Object]px color-mix(in srgb, var(--accent) [object Object][object Object]%, transparent);user-select:none;max-width:[object Object][object Object][object Object]%;overflow:hidden}

/* util */
.mt-[object Object]{margin-top:[object Object]rem}.mt-[object Object]{margin-top:[object Object]rem}.mt-[object Object]{margin-top:[object Object]rem}
.mb-[object Object]{margin-bottom:[object Object]rem}.mb-[object Object]{margin-bottom:[object Object]rem}.mb-[object Object]{margin-bottom:[object Object]rem}
.center{text-align:center}
.sec-head{max-width:[object Object][object Object][object Object]px;margin-bottom:clamp([object Object]rem,[object Object]vw,[object Object].[object Object]rem)}
.sec-head.center{margin-left:auto;margin-right:auto}

/* ===== HERO DOMINANCE (permanent [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]) - centered, big, present; kills the narrow "prison box" (Eliot) ===== */
.hero .wrap{align-items:center!important;text-align:center!important;padding-top:[object Object]rem!important;padding-bottom:[object Object].[object Object]rem!important;min-height:[object Object][object Object]vh!important;justify-content:center!important;max-width:min([object Object][object Object][object Object][object Object]px,[object Object][object Object]vw)!important;padding-left:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)!important;padding-right:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)!important}
.hero .wrap>*{margin-left:auto!important;margin-right:auto!important}
.hero .hero-tag{justify-content:center!important}
.hero h[object Object]{max-width:[object Object][object Object]ch!important;text-align:center!important;margin:[object Object] auto!important;font-size:clamp([object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)!important;line-height:[object Object].[object Object]!important;letter-spacing:-.[object Object][object Object]em!important}
.hero p{max-width:[object Object][object Object]ch!important;text-align:center!important;margin:[object Object].[object Object]rem auto [object Object].[object Object]rem!important;font-size:clamp([object Object].[object Object][object Object]rem,[object Object].[object Object]vw,[object Object].[object Object][object Object]rem)!important}
.hero .hero-strip{justify-content:center!important}
.hero .hero-bg::after{background:linear-gradient([object Object][object Object][object Object]deg,rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]),rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]))!important}
/* readability: brighten the accent eyebrow + proof text so it reads cleanly on the photo
   instead of just relying on the dark gradient above (Sarber Construction real-client
   fix, [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object] -- was hand-applied there only, generalizing it here). */
.hero .hero-tag{color:#f[object Object]f[object Object]ee!important;text-shadow:[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object]),[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object])!important;font-weight:[object Object][object Object][object Object]!important}
.hero .hero-tag::before,.hero .hero-tag::after{background:var(--accent)!important}
.hero .hero-proof{color:#f[object Object]eeec!important;text-shadow:[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object]),[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])!important}
.hero .hero-proof b{color:#fff!important}

/* ===== HERO v[object Object] (Eliot [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]): stretch WIDER horizontally (was cramped in a narrow center column) + fit a longer headline ===== */
.hero .wrap{max-width:min([object Object][object Object][object Object][object Object]px,[object Object][object Object]vw)!important;padding-left:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)!important;padding-right:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem)!important}
.hero h[object Object]{max-width:min([object Object][object Object][object Object][object Object]px,[object Object][object Object]vw)!important;font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)!important;line-height:[object Object].[object Object][object Object]!important}
.hero p{max-width:[object Object][object Object]ch!important}

/* ===== HERO CONTRAST SCRIM (permanent [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]): always-readable text on ANY hero photo, esp. bright/orange (Money Saving amber-on-sunset). Soft bottom-up gradient above image, below text. ===== */
.hero::before{content:"";position:absolute;inset:[object Object];z-index:-[object Object];pointer-events:none;background:linear-gradient(to top,rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object]%,rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,rgba([object Object],[object Object][object Object],[object Object][object Object],.[object Object][object Object]) [object Object][object Object]%,transparent [object Object][object Object][object Object]%)}

/* the hazard band IS the divider; a section border-bottom on top of it draws a
   hairline between the section and the stripes (Wayne, [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]) */
.section:has(+ .cta-band){border-bottom:[object Object]}
.cta-band{border-top:[object Object]}

/* HEADER OVERFLOW ([object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]). A long business name pushed the nav + phone + CTA past the
   [object Object][object Object][object Object][object Object]px wrap: "Gotham Restoration Group Inc" overflowed by [object Object][object Object][object Object]px and its Get-a-Free-Quote
   button ran off the right edge of a [object Object][object Object][object Object][object Object]px viewport. Let the wordmark shrink instead of the
   CTA, and drop the duplicate header phone before anything can clip (the topbar still shows it). */
.site-header .wrap{gap:[object Object]rem;min-width:[object Object]}
.site-header .logo{flex:[object Object] [object Object] auto;min-width:[object Object];overflow:hidden}
.site-header .logo-word{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min([object Object][object Object]vw,[object Object][object Object][object Object]px)}
/* On a phone the brand owns the row apart from the burger, so [object Object][object Object]vw ([object Object][object Object][object Object]px at [object Object][object Object][object Object]) cut
   "Teddy's Cleaning" to "Teddy'". Give it the row minus the burger + padding. */
/* [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]: [object Object][object Object][object Object]px only reserved room for the burger. The new .btn-mobook
   (below [object Object][object Object][object Object][object Object]px, so always present at this width) needed room too -- found live
   via nav_check.js flagging a clipped wordmark on the light-template-demo site
   the moment the mobile book button was added. */
@media(max-width:[object Object][object Object][object Object]px){.site-header .logo-word{max-width:calc([object Object][object Object][object Object]vw - [object Object][object Object][object Object]px)}}
.site-header .nav{flex:[object Object] [object Object] auto;min-width:[object Object]}
.site-header .header-cta{flex:[object Object] [object Object] auto}
.header-phone{display:none}   /* duplicate of the topbar phone; collided with CONTACT above [object Object][object Object][object Object][object Object]px */
@media(max-width:[object Object][object Object][object Object][object Object]px){.site-header .nav{gap:[object Object].[object Object][object Object]rem}.site-header .nav>a,.site-header .nav .has-drop>a{font-size:.[object Object]rem}}

/* HERO HEADLINE ON SAME-HUE PHOTOS ([object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object]). A green accent word sat on a green lawn and
   was unreadable (Eliot on T.N.A). Scoped per-site via .hero-acc-neutral on <body>. */
.hero h[object Object] .acc{color:#fff;text-shadow:[object Object] [object Object]px [object Object][object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object]),[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object])}

/* Small hero copy needs its own shadow: on a bright hero photo the scrim alone is not
   enough (Eliot [object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object], Eddie Jaguar sunlit canopy). */
.hero p,.hero .hero-tag,.hero .hero-proof{text-shadow:[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object]),[object Object] [object Object]px [object Object]px rgba([object Object],[object Object],[object Object],.[object Object][object Object])}

/* ---- MOBILE FIXES ([object Object][object Object][object Object][object Object]-[object Object][object Object]-[object Object][object Object], ported from ACBrise/Sarber real-client fixes) ----------
   Placed at the END of this file on purpose: HERO DOMINANCE/v[object Object]/v[object Object] above are unconditional
   !important rules, so a same-specificity mobile override declared earlier in the
   cascade loses and silently never applies. Confirmed real on Sarber Construction: the
   hero rendered with the full desktop [object Object]rem top padding + [object Object][object Object]vh min-height on every phone,
   so the hero + its own CTA button could not fit one mobile screen without scrolling, on
   EVERY site built from this template, since day one -- this is not a one-off bug. */
.btn-mobook{display:none}
.mm-close{display:none}
@media(max-width:[object Object][object Object][object Object][object Object]px){
  .btn-mobook{display:inline-flex;align-items:center;margin-right:[object Object].[object Object]rem;
    padding:.[object Object]rem [object Object].[object Object][object Object]rem;font-size:.[object Object][object Object]rem;min-height:[object Object][object Object]px;white-space:nowrap}
  .site-header .header-cta{display:flex;align-items:center;gap:[object Object]}
  .site-header .header-cta .btn-nav{display:none}
}
@media(max-width:[object Object][object Object][object Object]px){
  .header-cta{gap:.[object Object]rem}
  .btn-mobook{margin-right:.[object Object][object Object]rem;padding:.[object Object][object Object]rem .[object Object][object Object]rem;font-size:.[object Object][object Object]rem;letter-spacing:[object Object]}
  .burger{width:[object Object][object Object]px;height:[object Object][object Object]px;margin-left:.[object Object]rem}
  /* the wordmark fallback (no real logo yet) can still clip a long placeholder
     name at this width once burger+book both compete for room; a real logo
     image is unaffected since it sizes off .logo img, not this rule */
  .site-header .logo-word{font-size:[object Object].[object Object][object Object]rem!important;max-width:calc([object Object][object Object][object Object]vw - [object Object][object Object][object Object]px)!important}
  .mm-close{display:flex;align-items:center;justify-content:center;position:fixed;
    top:.[object Object]rem;right:.[object Object]rem;z-index:[object Object][object Object][object Object];background:rgba([object Object][object Object][object Object],[object Object][object Object][object Object],[object Object][object Object][object Object],.[object Object][object Object]);border:[object Object];border-radius:[object Object][object Object]%;
    color:var(--white);font-size:[object Object]rem;line-height:[object Object];cursor:pointer;width:[object Object][object Object]px;height:[object Object][object Object]px}
  /* dvh so iOS Safari's URL bar cannot clip the menu or the hero */
  .mobile-menu{overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding-top:[object Object]rem;padding-bottom:[object Object]rem;height:[object Object][object Object][object Object]vh;height:[object Object][object Object][object Object]dvh}
  /* let the whole hero + both CTAs fit in one screen instead of forcing [object Object][object Object]vh */
  .hero{min-height:auto!important}
  .hero .wrap{min-height:auto!important;padding-top:[object Object]rem!important;padding-bottom:[object Object].[object Object]rem!important}
  .hero .hero-tag{margin-bottom:[object Object]rem!important;font-size:.[object Object][object Object]rem!important}
  .hero h[object Object]{font-size:clamp([object Object].[object Object]rem,[object Object].[object Object]vw,[object Object].[object Object]rem)!important;line-height:[object Object].[object Object][object Object]!important}
  .hero p{font-size:.[object Object][object Object]rem!important;margin:.[object Object]rem auto [object Object].[object Object]rem!important}
  .hero-ctas{gap:.[object Object]rem}
  .hero .hero-proof{margin-top:.[object Object]rem!important;font-size:.[object Object]rem!important}
  .modal{max-height:[object Object][object Object]vh;max-height:[object Object][object Object]dvh}
  .modal-veil{align-items:flex-start;padding:[object Object]rem .[object Object][object Object]rem}
  .modal .m-actions{position:sticky;bottom:[object Object];background:var(--coal-[object Object]);
    padding:.[object Object]rem [object Object] .[object Object]rem;margin-top:.[object Object]rem;border-top:[object Object]px solid var(--line);z-index:[object Object]}
  .modal .m-inner,.modal form,.modal-inner{padding-bottom:.[object Object]rem}
}

/* Mobile menu: Services expands in place instead of a duplicate "Our Services" list below */
.mobile-menu .mm-toggle{background:none;border:[object Object];width:[object Object][object Object][object Object]%;text-align:left;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;color:inherit;
  font-family:var(--font-display);font-size:clamp([object Object].[object Object]rem,[object Object]vw,[object Object].[object Object]rem);line-height:[object Object].[object Object];
  padding:.[object Object][object Object]rem [object Object];border-bottom:[object Object]px solid var(--line)}
.mobile-menu .mm-caret{font-size:.[object Object]em;transition:transform .[object Object][object Object]s ease;opacity:.[object Object];margin-left:.[object Object]rem}
.mobile-menu .mm-toggle.open .mm-caret{transform:rotate([object Object][object Object][object Object]deg)}
.mobile-menu .mm-svc{display:none}
.mobile-menu .mm-svc.open{display:block}
.mobile-menu .mm-svc a{display:block;padding:.[object Object][object Object]rem [object Object] .[object Object][object Object]rem [object Object]rem;font-weight:[object Object][object Object][object Object];color:var(--mut);
  border-bottom:[object Object]px solid var(--line)}
.mobile-menu .mm-svc a:hover{color:var(--accent)}
