/* ===================================================================
   PRECISION HPS — shared theme
   Design system extracted from the homepage. Linked by every page.
   Brand: Matte Black #0D0D0E · Graphite #252627 · Brushed Silver #C4C6C5
          Off-White #F7F6F3 · Precision Copper #B8733E (accent only)
   Font: Geist. Sharp corners, hairlines, editorial scale.
   =================================================================== */

:root{
  --black:#0D0D0E;
  --graphite:#252627;
  --graphite-deep:#1B1C1D;
  --silver:#C4C6C5;
  --silver-tint:#ECEBE6;
  --silver-tint-2:#EEEDE8;
  --copper:#B8733E;
  --copper-bright:#C98A50;
  --copper-deep:#9C5F31;
  --off-white:#F7F6F3;
  --paper:#F7F6F3;
  --paper-2:#F1F0EC;
  --paper-3:#E9E8E2;
  --ink:#141517;
  --ink-soft:#33352F;
  --ink-muted:#585955;
  --hairline-dark:rgba(196,198,197,0.16);
  --hairline-light:rgba(20,21,23,0.12);
  --hairline-strong:rgba(20,21,23,0.22);
  --ease:cubic-bezier(.2,.7,.2,1);
  --gutter:20px;
  --maxw:1400px;
}
@media(min-width:900px){ :root{ --gutter:48px; } }

/* ---------- reset + base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:'Geist',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* fine paper grain over the whole page — material without pattern noise */
body::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:0.028;mix-blend-mode:multiply;
}
img,video{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
::selection{background:var(--copper);color:var(--off-white);}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px;border-radius:1px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

/* ---------- typographic system ---------- */
.eyebrow{
  display:flex;align-items:center;gap:14px;
  font-size:11.5px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;
  color:var(--ink-muted);
}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--copper);flex-shrink:0;}
.head .eyebrow::after,.eyebrow.rule::after{content:"";flex:1;height:1px;background:var(--hairline-light);min-width:24px;}
.head .on-dark.eyebrow::after,.on-dark.eyebrow.rule::after{background:var(--hairline-dark);}
.eyebrow.on-dark{color:var(--silver);}
.h-display{font-weight:600;letter-spacing:-0.028em;line-height:1.02;font-size:clamp(38px,6.6vw,76px);}
.h-section{font-weight:600;letter-spacing:-0.022em;line-height:1.06;font-size:clamp(30px,5vw,54px);}
.lede{font-size:clamp(16px,1.9vw,19.5px);line-height:1.58;color:var(--ink-muted);font-weight:400;max-width:44ch;}
.on-dark .lede,.lede.on-dark{color:var(--silver);}
.micro{font-size:11px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-muted);}

/* ---------- buttons ---------- */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:50px;padding:15px 28px;
  font-weight:600;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  border:1px solid transparent;border-radius:0;cursor:pointer;
  transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease);
  white-space:nowrap;
}
.btn svg{width:13px;height:13px;flex-shrink:0;transition:transform .35s var(--ease);}
.btn::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--copper);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease);}
.btn:hover::after{transform:scaleX(1);transform-origin:left;}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{background:var(--black);color:var(--off-white);border-color:var(--black);}
.btn-primary svg{color:var(--copper-bright);}
.btn-primary:hover{background:transparent;color:var(--ink);border-color:var(--hairline-strong);}
.btn-primary:hover svg{color:var(--copper);}
.btn-light{background:var(--off-white);color:var(--black);border-color:var(--off-white);}
.btn-light svg{color:var(--copper);}
.btn-light:hover{background:transparent;color:var(--off-white);border-color:rgba(247,246,243,0.5);}
.btn-ghost{background:transparent;color:var(--off-white);border-color:rgba(247,246,243,0.4);}
.btn-ghost:hover{border-color:var(--copper);background:rgba(247,246,243,0.06);}
.btn-ghost.on-light{color:var(--ink);border-color:var(--hairline-strong);}
.btn-ghost.on-light:hover{border-color:var(--copper);background:rgba(20,21,23,0.04);}

.textlink{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:13.5px;letter-spacing:0.03em;
  padding-bottom:3px;position:relative;
}
.textlink svg{width:13px;height:13px;transition:transform .3s var(--ease);}
.textlink::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--copper);transition:right .35s var(--ease);}
.textlink:hover::after{right:0;}
.textlink:hover svg{transform:translateX(4px);}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s);}
.reveal.in{opacity:1;transform:none;}
.mask{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease);}
.mask.in{clip-path:inset(0 0 0 0);}
.mask>img,.mask>video{transform:scale(1.12);transition:transform 1.5s var(--ease);}
.mask.in>img,.mask.in>video{transform:scale(1);}
@media (prefers-reduced-motion:reduce){
  .reveal,.mask{opacity:1;transform:none;clip-path:none;transition:none;}
  .mask>img,.mask>video{transform:none;}
  html{scroll-behavior:auto;}
}

/* ================= SKIP + PROGRESS ================= */
.skip{position:fixed;top:-100px;left:12px;z-index:2000;background:var(--black);color:var(--off-white);padding:12px 18px;border-radius:2px;font-weight:600;font-size:13px;transition:top .2s ease;}
.skip:focus{top:12px;}
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--copper);z-index:1200;transition:width .1s linear;}

/* ================= HEADER ================= */
.header{
  position:fixed;top:0;left:0;right:0;z-index:1000;height:78px;
  display:flex;align-items:center;
  transition:background-color .45s var(--ease),height .35s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease);
  border-bottom:1px solid transparent;
}
.header.scrolled{
  background:rgba(247,247,245,0.88);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom-color:var(--hairline-light);
  height:64px;
}
.header .wrap{display:flex;align-items:center;justify-content:space-between;width:100%;}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{width:30px;height:30px;flex-shrink:0;}
.brand .word{font-weight:600;font-size:15px;letter-spacing:0.28em;text-transform:uppercase;color:var(--off-white);transition:color .4s var(--ease);}
.header.scrolled .brand .word{color:var(--ink);}
/* pages with a light hero can force the dark-on-light header immediately */
.header.static-light .brand .word{color:var(--ink);}
.header.static-light .header-nav a{color:var(--ink-soft);}
.header.static-light .header-phone{color:var(--ink-soft);}
.header.static-light .navtoggle span{background:var(--ink);}

.header-nav{display:none;align-items:center;gap:clamp(16px,2vw,28px);margin:0 auto 0 clamp(20px,4vw,56px);}
@media(min-width:1120px){ .header-nav{display:flex;} }
@media(max-width:1320px){ .header-nav a.nav-md{display:none;} }
.header-nav a{
  position:relative;padding:6px 0;font-size:11px;font-weight:600;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--silver);transition:color .35s var(--ease);white-space:nowrap;
}
.header.scrolled .header-nav a{color:var(--ink-soft);}
.header-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--copper);transition:right .35s var(--ease);}
.header-nav a:hover,.header-nav a[aria-current="page"]{color:var(--off-white);}
.header.scrolled .header-nav a:hover,.header.scrolled .header-nav a[aria-current="page"],
.header.static-light .header-nav a:hover,.header.static-light .header-nav a[aria-current="page"]{color:var(--ink);}
.header-nav a:hover::after,.header-nav a[aria-current="page"]::after{right:0;}

.header-right{display:flex;align-items:center;gap:14px;}
.header-phone{display:none;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--silver);transition:color .4s var(--ease);}
.header.scrolled .header-phone{color:var(--ink-soft);}
.header-phone svg{width:14px;height:14px;color:var(--copper);}
@media(min-width:1180px){ .header-phone{display:flex;} }
.header .btn{min-height:42px;padding:11px 20px;font-size:12.5px;}
.header .btn-cta{background:var(--off-white);color:var(--black);border-color:var(--off-white);}
.header .btn-cta svg{color:var(--copper);}
.header .btn-cta:hover{background:transparent;color:var(--off-white);border-color:var(--copper);}
.header.scrolled .btn-cta,.header.static-light .btn-cta{background:var(--black);color:var(--off-white);border-color:var(--black);}
.header.scrolled .btn-cta:hover,.header.static-light .btn-cta:hover{background:transparent;color:var(--ink);border-color:var(--copper);}
.header.scrolled .btn-cta svg,.header.static-light .btn-cta svg{color:var(--copper-bright);}
/* keep the quote CTA on screen at all widths — it's the first thing a visitor wants */
@media(max-width:560px){
  .header .btn-cta{padding:9px 13px;font-size:11px;letter-spacing:0.06em;}
  .header .btn-cta svg{display:none;}
  .header .btn-cta::after{display:none;}
}
@media(max-width:420px){
  .brand .word{font-size:12.5px;letter-spacing:0.16em;}
}

.navtoggle{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;width:46px;height:46px;background:transparent;border:none;cursor:pointer;position:relative;z-index:1120;}
.navtoggle span{display:block;height:1.5px;background:var(--off-white);transition:transform .4s var(--ease),opacity .3s var(--ease),width .4s var(--ease),background-color .4s var(--ease);}
.navtoggle span:nth-child(1){width:22px;}
.navtoggle span:nth-child(2){width:16px;}
.navtoggle span:nth-child(3){width:22px;}
.header.scrolled .navtoggle span{background:var(--ink);}
.navtoggle.open span{width:22px;background:var(--off-white);}
.navtoggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.navtoggle.open span:nth-child(2){opacity:0;}
.navtoggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ---------- overlay nav ---------- */
.overlay{
  position:fixed;inset:0;z-index:1100;background:var(--black);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:110px var(--gutter) 40px;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),visibility 0s linear .5s;
}
.overlay.open{opacity:1;visibility:visible;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);}
@media(min-width:900px){ .overlay{padding:150px var(--gutter) 56px;} }
.overlay-grid{display:grid;gap:40px;grid-template-columns:1fr;max-width:var(--maxw);margin:0 auto;width:100%;}
@media(min-width:900px){ .overlay-grid{grid-template-columns:1.4fr 1fr;gap:80px;} }
.overlay-links{list-style:none;}
.overlay-links li{border-top:1px solid var(--hairline-dark);}
.overlay-links li:last-child{border-bottom:1px solid var(--hairline-dark);}
.overlay-links a{
  display:flex;align-items:baseline;gap:18px;padding:18px 4px;
  font-size:clamp(26px,5vw,40px);font-weight:600;letter-spacing:-0.02em;color:var(--off-white);
  opacity:0;transform:translateY(18px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s var(--ease);
}
.overlay.open .overlay-links a{opacity:1;transform:none;}
.overlay-links a:hover{color:var(--copper);}
.overlay-links .idx{font-size:12px;font-weight:600;color:var(--copper);letter-spacing:0.1em;}
.overlay-aside{display:flex;flex-direction:column;gap:28px;align-self:end;}
.overlay-aside .block .micro{color:var(--silver);margin-bottom:8px;}
.overlay-aside .block a,.overlay-aside .block p{color:var(--off-white);font-size:15px;font-weight:500;}
.overlay-aside .cta-row{display:flex;flex-wrap:wrap;gap:12px;}
@media (prefers-reduced-motion:reduce){
  .overlay{transition:opacity .2s ease,visibility 0s;}
  .overlay-links a{opacity:1;transform:none;}
}

/* ================= GENERIC SECTION ================= */
.section{position:relative;padding:clamp(60px,9vh,118px) 0;overflow:hidden;}
.section.dark{background:var(--black);color:var(--off-white);}
.section.graphite{background:var(--graphite-deep);color:var(--off-white);}
.section.light{background:var(--paper);color:var(--ink);}
.section.recessed{background:var(--paper-2);}
.section.light + .section.light{border-top:1px solid var(--hairline-light);}
.section>.wrap,.trust>.wrap{position:relative;z-index:1;}
.trust,.featured{position:relative;overflow:hidden;}
.section .head{max-width:720px;margin-bottom:clamp(32px,5vh,60px);}
.section .head .eyebrow{margin-bottom:20px;}
.section .head .h-section{margin-bottom:20px;}
.section.dark .h-section,.section.graphite .h-section{color:var(--off-white);}

/* ---------- breadcrumb (inner pages) ---------- */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-muted);}
.crumbs a{color:var(--ink-muted);transition:color .25s var(--ease);}
.crumbs a:hover{color:var(--copper);}
.crumbs span[aria-current]{color:var(--ink);}
.crumbs .sep{width:14px;height:1px;background:var(--hairline-strong);}

/* ================= TRUST / PROOF COMPONENTS ================= */
.trust{background:var(--off-white);border-bottom:1px solid var(--hairline-light);}
.trust-top{display:flex;flex-direction:column;gap:30px;padding:clamp(44px,7vh,72px) 0 clamp(36px,5vh,52px);}
@media(min-width:960px){ .trust-top{flex-direction:row;align-items:center;justify-content:space-between;gap:56px;} }
.trust-statement{max-width:440px;}
.trust-statement p{font-size:clamp(18px,2.3vw,23px);font-weight:600;letter-spacing:-0.01em;line-height:1.35;color:var(--ink);}
.trust-rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin-top:18px;}
.trust-rating .g-logo{width:16px;height:16px;flex-shrink:0;}
.trust-rating .stars{display:flex;gap:2px;}
.trust-rating .stars svg{width:14px;height:14px;}
.trust-rating b{font-weight:600;font-size:13px;color:var(--ink);}
.badges{display:flex;flex-wrap:wrap;align-items:center;gap:30px;}
.badges img{height:46px;width:auto;opacity:0.92;}
@media(min-width:960px){ .badges{justify-content:flex-end;gap:38px;} .badges img{height:52px;} }
.stat-row{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--hairline-strong);}
@media(min-width:760px){ .stat-row{grid-template-columns:repeat(4,1fr);} }
.stat{padding:34px 20px 10px 0;border-right:1px solid var(--hairline-light);position:relative;}
.stat::before{content:"";position:absolute;top:-1px;left:0;width:34px;height:2px;background:var(--copper);}
.stat:nth-child(2n){border-right:none;}
@media(min-width:760px){ .stat{border-right:1px solid var(--hairline-light);padding-left:0;} .stat:last-child{border-right:none;} }
.stat .n{font-size:clamp(34px,4.6vw,60px);font-weight:600;letter-spacing:-0.03em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;}
.stat .n .u{color:var(--copper);}
.stat .l{font-size:10.5px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-muted);margin-top:14px;}
.commitments{list-style:none;display:grid;grid-template-columns:1fr;margin-top:clamp(40px,6vh,64px);border-top:1px solid var(--hairline-light);}
@media(min-width:600px){ .commitments{grid-template-columns:1fr 1fr;} }
@media(min-width:980px){ .commitments{grid-template-columns:repeat(4,1fr);} }
.commitment{display:flex;align-items:flex-start;gap:11px;padding:20px 22px 20px 0;border-bottom:1px solid var(--hairline-light);font-size:13.5px;font-weight:500;line-height:1.4;color:var(--ink);}
@media(min-width:980px){
  .commitment{border-bottom:none;border-right:1px solid var(--hairline-light);padding:22px 24px 4px 0;}
  .commitment:last-child{border-right:none;padding-right:0;}
}
.commitment svg{width:15px;height:15px;color:var(--copper);flex-shrink:0;margin-top:2px;}

/* ================= SERVICE INDEX STRIP ================= */
.svc-index{background:var(--paper);border-bottom:1px solid var(--hairline-strong);}
.svc-index ul{list-style:none;display:grid;grid-template-columns:1fr;max-width:var(--maxw);margin:0 auto;}
@media(min-width:760px){ .svc-index ul{grid-template-columns:repeat(4,1fr);padding:0 max(0px,calc(var(--gutter) - 28px));} }
.svc-index li{border-bottom:1px solid var(--hairline-light);}
@media(min-width:760px){ .svc-index li{border-bottom:none;border-right:1px solid var(--hairline-light);} .svc-index li:last-child{border-right:none;} }
.svc-index a{display:flex;flex-direction:column;gap:16px;padding:34px var(--gutter) 30px;min-height:190px;color:var(--ink);position:relative;overflow:hidden;isolation:isolate;background:var(--paper);transition:color .45s var(--ease);}
@media(min-width:760px){ .svc-index a{padding:38px 28px 32px;} }
.svc-index a::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .5s var(--ease);}
.svc-index a:hover{color:var(--off-white);}
.svc-index a:hover::before{transform:translateY(0);}
.svc-index .idx{font-size:11px;font-weight:600;letter-spacing:0.14em;color:var(--copper);transition:color .45s var(--ease);}
.svc-index .name{font-size:clamp(18px,2.1vw,22px);font-weight:600;letter-spacing:-0.02em;margin-top:auto;}
.svc-index .go{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-muted);transition:color .45s var(--ease);}
.svc-index a:hover .go{color:var(--silver);}
.svc-index .go svg{width:13px;height:13px;color:var(--copper);transition:transform .3s var(--ease);}
.svc-index a:hover .go svg{transform:translateX(5px);}

/* ================= FOOTER ================= */
.footer{position:relative;overflow:hidden;background:var(--black);color:var(--silver);padding:clamp(56px,9vh,96px) 0 32px;}
.footer::after{
  content:"PRECISION";position:absolute;left:0;right:0;bottom:-0.22em;z-index:0;
  text-align:center;font-weight:600;letter-spacing:0.02em;line-height:1;
  font-size:19vw;color:transparent;-webkit-text-stroke:1px rgba(196,198,197,0.07);
  pointer-events:none;user-select:none;white-space:nowrap;
}
.footer .wrap{position:relative;z-index:1;}
.footer-top{display:grid;grid-template-columns:1fr;gap:44px;}
@media(min-width:700px){ .footer-top{grid-template-columns:1fr 1fr;} }
@media(min-width:1000px){ .footer-top{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px;} }
.footer-brand .brand{margin-bottom:20px;}
.footer-brand .brand .word{color:var(--off-white);}
.footer-brand p{font-size:13.5px;line-height:1.65;max-width:38ch;margin-bottom:22px;}
.footer-accr{display:flex;flex-wrap:wrap;gap:8px;}
.footer-accr span{font-size:10px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);border:1px solid var(--hairline-dark);padding:6px 10px;}
.footer-col h4{font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--off-white);margin-bottom:18px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:13.5px;color:var(--silver);transition:color .25s var(--ease);}
.footer-col a:hover{color:var(--copper);}
.footer-bottom{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-top:clamp(44px,7vh,72px);padding-top:26px;border-top:1px solid var(--hairline-dark);font-size:11.5px;color:var(--ink-muted);}
.footer-bottom a{color:var(--ink-muted);}
.footer-bottom a:hover{color:var(--silver);}
.footer-bottom .fb-links{display:flex;gap:18px;}

/* ================= URGENT-HELP FLOATING WIDGET ================= */
.sos{position:fixed;right:clamp(14px,3vw,26px);bottom:clamp(14px,3vw,26px);z-index:950;width:min(300px,calc(100vw - 28px));}
.sos-card,.sos-fab{transition:opacity .32s var(--ease),transform .32s var(--ease),visibility .32s;}
.sos-card{
  position:relative;background:var(--black);border:1px solid var(--hairline-dark);
  padding:20px 18px 18px;transform-origin:bottom right;
}
.sos[data-state="fab"] .sos-card{position:absolute;right:0;bottom:0;opacity:0;visibility:hidden;transform:scale(0.92) translateY(10px);pointer-events:none;}
.sos-close{position:absolute;top:6px;right:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--silver);cursor:pointer;}
.sos-close:hover{color:var(--off-white);}
.sos-close svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none;}
.sos-eyebrow{font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--copper-bright);margin-bottom:9px;}
.sos-text{font-size:13px;line-height:1.5;color:var(--silver);margin:0 0 15px;}
.sos-actions{display:flex;gap:8px;}
.sos-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:11px 10px;font-size:12px;font-weight:600;letter-spacing:0.03em;border:1px solid transparent;white-space:nowrap;transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);}
.sos-btn svg{width:14px;height:14px;flex-shrink:0;}
.sos-btn-call{background:var(--off-white);color:var(--black);border-color:var(--off-white);}
.sos-btn-call:hover{background:transparent;color:var(--off-white);border-color:var(--copper);}
.sos-btn-wa{background:transparent;color:var(--off-white);border-color:rgba(247,246,243,0.3);}
.sos-btn-wa:hover{border-color:var(--copper);}
.sos-fab{
  position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;gap:9px;
  min-height:46px;padding:11px 18px;background:var(--black);color:var(--off-white);
  border:1px solid var(--hairline-dark);cursor:pointer;
  font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
}
.sos-fab:hover{border-color:var(--copper);}
.sos-fab svg{width:15px;height:15px;color:var(--copper-bright);flex-shrink:0;}
.sos[data-state="card"] .sos-fab{opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;}
.sos-fab-dot{width:7px;height:7px;border-radius:50%;background:var(--copper);flex-shrink:0;animation:sosPulse 1.9s ease-in-out infinite;}
@keyframes sosPulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
.sos.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);}
@media (prefers-reduced-motion:reduce){
  .sos,.sos-card,.sos-fab,.sos-btn{transition:none;}
  .sos-fab-dot{animation:none;}
}

/* ================= INNER-PAGE HERO (compact, no video) ================= */
.page-hero{position:relative;background:var(--black);color:var(--off-white);padding:clamp(128px,20vh,190px) 0 clamp(56px,9vh,88px);overflow:hidden;}
.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity:0.06;mix-blend-mode:screen;
}
.page-hero .wrap{position:relative;z-index:1;}
.page-hero .crumbs{color:var(--silver);margin-bottom:clamp(26px,5vh,44px);}
.page-hero .crumbs a{color:var(--silver);}
.page-hero .crumbs a:hover{color:var(--copper-bright);}
.page-hero .crumbs span[aria-current]{color:var(--off-white);}
.page-hero .crumbs .sep{background:var(--hairline-dark);}
.page-hero .eyebrow{color:var(--silver);margin-bottom:22px;}
.page-hero h1{font-weight:600;letter-spacing:-0.028em;line-height:1.03;font-size:clamp(34px,6vw,68px);color:var(--off-white);max-width:16ch;}
.page-hero .h1-sub{margin-top:22px;max-width:52ch;font-size:clamp(15px,1.8vw,18px);line-height:1.6;color:var(--silver);}
.page-hero .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(28px,5vh,40px);}
.page-hero .hero-ghost{
  position:absolute;right:-4%;bottom:-14%;z-index:0;
  width:min(46vh,420px);aspect-ratio:1;
  background:url("images/logo-mark.png") right bottom / contain no-repeat;
  opacity:0.12;filter:grayscale(1) brightness(1.1);pointer-events:none;display:none;
}
@media(min-width:1024px){ .page-hero .hero-ghost{display:block;} }
.page-hero .hero-frame{position:absolute;top:clamp(92px,12vh,110px);left:clamp(14px,2.4vw,26px);right:clamp(14px,2.4vw,26px);bottom:clamp(14px,2.4vw,26px);z-index:1;border:1px solid rgba(247,246,243,0.12);pointer-events:none;}
.page-hero .hero-frame::before,.page-hero .hero-frame::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--copper);}
.page-hero .hero-frame::before{top:-1px;left:-1px;border-right:0;border-bottom:0;}
.page-hero .hero-frame::after{bottom:-1px;right:-1px;border-left:0;border-top:0;}

/* ================= SHARED INNER-PAGE COMPONENTS ================= */
/* spec grid — "what's included" style checklist */
.spec-grid{list-style:none;display:grid;grid-template-columns:1fr;border-top:1px solid var(--hairline-light);}
@media(min-width:600px){ .spec-grid{grid-template-columns:1fr 1fr;} }
@media(min-width:980px){ .spec-grid{grid-template-columns:repeat(4,1fr);} }
.spec-grid li{display:flex;flex-direction:column;gap:6px;padding:22px 22px 22px 0;border-bottom:1px solid var(--hairline-light);}
.spec-grid li h4{font-size:12.5px;font-weight:600;letter-spacing:0.03em;color:var(--ink);display:flex;align-items:baseline;gap:9px;text-transform:uppercase;}
.spec-grid li h4::before{content:"";width:14px;height:1px;background:var(--copper);flex-shrink:0;}
.spec-grid li p{font-size:12.5px;line-height:1.55;color:var(--ink-muted);}

/* price rows — name / sub / figure */
/* guide-price comparison cards (boilers.html / bathrooms.html) */
.price-rows{list-style:none;display:grid;grid-template-columns:1fr;gap:12px;}
@media(min-width:820px){ .price-rows{grid-template-columns:repeat(3,1fr);gap:16px;} }
.price-rows li{position:relative;display:flex;flex-direction:column;padding:24px 24px 22px;background:var(--paper);border:1px solid var(--hairline-light);transition:border-color .2s var(--ease);}
.price-rows li::before{content:"";position:absolute;top:-1px;left:-1px;width:36px;height:2px;background:var(--copper);}
.price-rows li:hover{border-color:var(--hairline-strong);}
.price-rows .pr-name{font-size:15px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);}
.price-rows .pr-fig{display:block;margin-top:14px;font-size:clamp(26px,3.2vw,32px);font-weight:600;letter-spacing:-0.025em;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.price-rows .pr-fig .pr-from{font-size:14px;font-weight:500;letter-spacing:0;color:var(--ink-muted);margin-right:2px;}
.price-rows .pr-fig .u{color:var(--copper);}
.price-rows .pr-vat{display:block;margin-top:6px;font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--copper);}
.price-rows .pr-sub{display:block;margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline-light);font-size:13px;line-height:1.55;color:var(--ink-muted);}

/* FAQ accordion */
.faq-x{border-top:1px solid var(--hairline-light);}
.faq-x-item{border-bottom:1px solid var(--hairline-light);}
.faq-x-q{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 0;background:none;border:0;text-align:left;cursor:pointer;font-family:inherit;font-size:15.5px;font-weight:600;color:var(--ink);letter-spacing:-0.01em;}
.faq-x-q:hover{color:var(--copper);}
.faq-x-ic{flex-shrink:0;width:14px;height:14px;position:relative;margin-top:4px;}
.faq-x-ic::before,.faq-x-ic::after{content:"";position:absolute;background:var(--copper);transition:transform .35s var(--ease),opacity .35s var(--ease);}
.faq-x-ic::before{top:50%;left:0;right:0;height:1.5px;transform:translateY(-50%);}
.faq-x-ic::after{left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%);}
.faq-x-item.open .faq-x-ic::after{opacity:0;transform:translateX(-50%) rotate(90deg);}
.faq-x-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease);}
.faq-x-item.open .faq-x-a{grid-template-rows:1fr;}
.faq-x-a>div{overflow:hidden;min-height:0;}
.faq-x-a p{font-size:14px;line-height:1.65;color:var(--ink-muted);padding-bottom:22px;max-width:64ch;}
@media (prefers-reduced-motion:reduce){ .faq-x-a{transition:none;} }

/* final CTA band */
.cta-band{background:var(--black);color:var(--off-white);padding:clamp(52px,8vh,88px) 0;position:relative;overflow:hidden;}
.cta-band .wrap{position:relative;z-index:1;display:flex;flex-direction:column;gap:26px;}
@media(min-width:820px){ .cta-band .wrap{flex-direction:row;align-items:center;justify-content:space-between;gap:48px;} }
.cta-band h2{font-size:clamp(26px,4vw,40px);font-weight:600;letter-spacing:-0.025em;line-height:1.08;max-width:18ch;}
.cta-band p{font-size:14.5px;color:var(--silver);margin-top:12px;max-width:44ch;}
.cta-band .cta-row{display:flex;flex-wrap:wrap;gap:14px;flex-shrink:0;}

/* two-column editorial split */
.split{display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,64px);}
@media(min-width:900px){ .split{grid-template-columns:1fr 1fr;align-items:start;} }
.split .split-media{position:relative;overflow:hidden;background:var(--silver-tint);aspect-ratio:4/3;}
.split .split-media img{width:100%;height:100%;object-fit:cover;}

/* numbered steps (shared) */
.steps{list-style:none;counter-reset:s;margin-top:clamp(28px,4vh,44px);}
.steps li{display:flex;gap:20px;padding:20px 0;border-top:1px solid var(--hairline-light);}
.steps li:last-child{border-bottom:1px solid var(--hairline-light);}
.steps .s-num{font-size:12px;font-weight:600;letter-spacing:0.1em;color:var(--copper);flex-shrink:0;padding-top:3px;}
.steps h4{font-size:15px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin-bottom:5px;}
.steps p{font-size:13.5px;line-height:1.6;color:var(--ink-muted);max-width:52ch;}
.section.graphite .steps li,.section.dark .steps li{border-color:var(--hairline-dark);}
.section.graphite .steps h4,.section.dark .steps h4{color:var(--off-white);}
.section.graphite .steps p,.section.dark .steps p{color:var(--silver);}

/* ================= BEFORE / AFTER COMPARISON (shared) ================= */
.ba-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;}
.ba-tab{
  min-height:44px;padding:11px 18px;background:transparent;border:1px solid var(--hairline-strong);
  color:var(--ink-muted);font-family:inherit;font-size:12px;font-weight:600;letter-spacing:0.08em;
  text-transform:uppercase;cursor:pointer;
  transition:border-color .3s var(--ease),color .3s var(--ease),background-color .3s var(--ease);
}
.ba-tab:hover{border-color:var(--ink-soft);color:var(--ink);}
.ba-tab[aria-selected="true"]{border-color:var(--copper);color:var(--ink);background:rgba(184,115,62,0.08);}
.ba-panel[hidden]{display:none;}
.ba{
  position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--graphite-deep);
  --pos:50%;user-select:none;touch-action:pan-y;border:1px solid var(--hairline-strong);
}
.ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.ba-img.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
.ba-label{
  position:absolute;top:14px;z-index:3;padding:6px 12px;background:rgba(13,13,14,0.72);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  color:var(--off-white);font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;
}
.ba-label.is-before{left:14px;}
.ba-label.is-after{right:14px;}
.ba-divider{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:var(--off-white);z-index:4;transform:translateX(-1px);pointer-events:none;}
.ba-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:2px solid var(--off-white);border-radius:50%;background:rgba(13,13,14,0.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.ba-knob svg{width:20px;height:20px;stroke:var(--off-white);stroke-width:2;fill:none;}
.ba:focus-within .ba-knob{border-color:var(--copper);outline:2px solid var(--copper);outline-offset:3px;}
.ba-range{position:absolute;inset:0;z-index:5;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;}
.ba-caption{margin-top:14px;display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;}
.ba-caption .ba-title{font-size:14px;font-weight:600;color:var(--ink);}
.ba-caption .ba-note{font-size:12.5px;color:var(--ink-muted);}
@media (prefers-reduced-motion:reduce){ .ba-tab{transition:none;} }

/* ================= REVIEWS REEL (auto-scroll, shared) ================= */
.reviews-x{position:relative;overflow:hidden;border-top:1px solid var(--hairline-light);border-bottom:1px solid var(--hairline-light);}
.reviews-x::before,.reviews-x::after{content:"";position:absolute;top:0;bottom:0;width:64px;z-index:2;pointer-events:none;}
.reviews-x::before{left:0;background:linear-gradient(90deg,var(--paper),transparent);}
.reviews-x::after{right:0;background:linear-gradient(270deg,var(--paper),transparent);}
.section.recessed .reviews-x::before{background:linear-gradient(90deg,var(--paper-2),transparent);}
.section.recessed .reviews-x::after{background:linear-gradient(270deg,var(--paper-2),transparent);}
.reviews-x-track{display:flex;gap:0;width:max-content;animation:reviewScroll 60s linear infinite;}
.reviews-x:hover .reviews-x-track,.reviews-x:focus-within .reviews-x-track,.reviews-x.paused .reviews-x-track{animation-play-state:paused;}
@keyframes reviewScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.review-x{flex:0 0 auto;width:min(84vw,380px);padding:26px 28px;border-right:1px solid var(--hairline-light);}
.review-x .rx-src{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.review-x .rx-src svg.g{width:15px;height:15px;flex-shrink:0;}
.review-x .rx-stars{display:flex;gap:2px;}
.review-x .rx-stars svg{width:13px;height:13px;}
.review-x p{font-size:14px;line-height:1.6;color:var(--ink-soft);}
.review-x .rx-meta{margin-top:14px;font-size:11.5px;letter-spacing:0.03em;color:var(--ink-muted);}
.reviews-x-pause{position:absolute;right:10px;bottom:10px;z-index:3;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 11px;background:rgba(247,246,243,0.9);border:1px solid var(--hairline-strong);font-family:inherit;font-size:10px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;}
.reviews-x-pause svg{width:11px;height:11px;}
.reviews-x-pause:hover{border-color:var(--copper);color:var(--ink);}
@media (prefers-reduced-motion:reduce){
  .reviews-x{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .reviews-x-track{animation:none;width:max-content;}
  .reviews-x-pause{display:none;}
  .reviews-x::before,.reviews-x::after{display:none;}
}

/* ================= CREDIBILITY STRIP (shared) ================= */
.cred-strip{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--hairline-light);border-bottom:1px solid var(--hairline-light);}
.cred-strip li{list-style:none;flex:1 1 160px;padding:22px 22px 22px 0;border-bottom:1px solid var(--hairline-light);}
@media(min-width:760px){ .cred-strip li{border-bottom:none;border-right:1px solid var(--hairline-light);padding:26px 26px 24px 0;} .cred-strip li:first-child{padding-left:0;} .cred-strip li:last-child{border-right:none;} }
.cred-strip .c-n{font-size:clamp(19px,2.4vw,26px);font-weight:600;letter-spacing:-0.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1;}
.cred-strip .c-n .u{color:var(--copper);}
.cred-strip .c-l{font-size:10.5px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-muted);margin-top:12px;}

/* ================= LEGAL / LONG-FORM PROSE (shared) ================= */
.legal{max-width:74ch;}
.legal .legal-meta{font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:40px;}
.legal h2{font-size:clamp(17px,2vw,21px);font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin:44px 0 14px;}
.legal h2:first-of-type{margin-top:0;}
.legal h3{font-size:15px;font-weight:600;color:var(--ink);margin:26px 0 10px;}
.legal p{font-size:14.5px;line-height:1.8;color:var(--ink-soft);margin-bottom:14px;}
.legal ul{margin:0 0 16px;padding-left:0;list-style:none;}
.legal li{position:relative;font-size:14.5px;line-height:1.75;color:var(--ink-soft);padding-left:22px;margin-bottom:9px;}
.legal li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:1px;background:var(--copper);}
.legal a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hairline-strong);}
.legal a:hover{text-decoration-color:var(--copper);}
.legal .legal-table{width:100%;border-collapse:collapse;margin:8px 0 22px;font-size:13.5px;}
.legal .legal-table th{text-align:left;font-weight:600;color:var(--ink);border-bottom:1px solid var(--hairline-strong);padding:12px 14px 12px 0;vertical-align:top;}
.legal .legal-table td{color:var(--ink-soft);line-height:1.7;border-bottom:1px solid var(--hairline-light);padding:14px 14px 14px 0;vertical-align:top;}
.legal .legal-table td:last-child,.legal .legal-table th:last-child{white-space:nowrap;}
@media(max-width:560px){
  .legal .legal-table,.legal .legal-table tbody,.legal .legal-table tr,.legal .legal-table td{display:block;width:100%;}
  .legal .legal-table thead{display:none;}
  .legal .legal-table tr{border-bottom:1px solid var(--hairline-strong);padding:14px 0;}
  .legal .legal-table td{border:none;padding:2px 0;}
  .legal .legal-table td:first-child{font-weight:600;color:var(--ink);}
}

/* ================= LONG-FORM PROSE + PULL QUOTE (shared) ================= */
.prose{max-width:68ch;}
.prose > p{font-size:15px;line-height:1.85;color:var(--ink-soft);margin-bottom:20px;}
.prose > p:last-child{margin-bottom:0;}
.prose h3{font-size:clamp(17px,2vw,20px);font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin:36px 0 12px;}
.prose ul{list-style:none;margin:0 0 22px;padding:0;}
.prose li{position:relative;font-size:15px;line-height:1.75;color:var(--ink-soft);padding-left:22px;margin-bottom:10px;}
.prose li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:1px;background:var(--copper);}
.prose strong{color:var(--ink);font-weight:600;}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hairline-strong);}
.prose a:hover{text-decoration-color:var(--copper);}
.pull{margin:0;padding:28px 0 4px;border-top:1px solid var(--hairline-strong);}
.pull blockquote{margin:0;font-size:clamp(18px,2.4vw,24px);line-height:1.5;letter-spacing:-0.02em;color:var(--ink);font-weight:500;}
.pull .pull-attr{margin-top:16px;font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-muted);}
.section.dark .pull,.section.graphite .pull{border-color:rgba(255,255,255,0.18);}
.section.dark .pull blockquote,.section.graphite .pull blockquote{color:var(--paper);}
.section.dark .pull .pull-attr,.section.graphite .pull .pull-attr{color:var(--silver);}
