/* ==========================================================================
   COPPERVIEW — v10 "THE DRAWING SET"
   Design language: a premium electrical drawing set. Drafting hairlines
   instead of shadows, monospace spec labels, panel-schedule tables,
   title-block footer. Flat, sharp, typographic. Gold = the live wire.
   ========================================================================== */

/* ---- mono face (labels) ---- */
@font-face{ font-family:'Plex Mono'; src:url('../fonts/plexmono-400.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap }
@font-face{ font-family:'Plex Mono'; src:url('../fonts/plexmono-500.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap }
@font-face{ font-family:'Plex Mono'; src:url('../fonts/plexmono-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap }

:root{
  --gold:#C6982F; --gold-deep:#7D601B; --gold-pale:rgba(198,152,47,.08); --gold-line:rgba(198,152,47,.45);
  --ink:#16130E; --ink-2:#1D1913; --paper:#F7F5F0; --paper-2:#F1EEE6; --white:#FCFBF8;
  --text:#232019; --stone:#6B6355; --mute-d:rgba(240,234,222,.72);
  --line:rgba(22,19,14,.16); --line-soft:rgba(22,19,14,.09); --line-d:rgba(252,251,248,.16);
  --grid:rgba(22,19,14,.045);
  --disp:var(--wp--preset--font-family--display,'Schibsted Grotesk',sans-serif);
  --body:var(--wp--preset--font-family--body,'Hanken Grotesk',sans-serif);
  --mono:'Plex Mono',ui-monospace,'SF Mono','Cascadia Mono',monospace;
  --wrap:1280px; --gut:clamp(1.1rem,3.4vw,2.5rem); --sp:clamp(4.5rem,9vw,8rem);
  --header-h:72px; --r:2px; --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; background:var(--paper) }
@media(prefers-reduced-motion:reduce){ html{ scroll-behavior:auto } }
body{ margin:0; color:var(--text); background:var(--paper); font-family:var(--body); font-size:1.0625rem; line-height:1.7; overflow-x:clip; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility }
img{ max-width:100%; height:auto; display:block }
a{ color:var(--gold-deep); text-decoration:none; transition:color .15s var(--ease) } a:hover{ color:var(--gold) }
::selection{ background:var(--gold); color:var(--ink) }
:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }
.skip-link{ position:absolute; left:-999px; top:0; z-index:999; background:var(--gold); color:var(--ink); padding:.7rem 1.2rem; font-family:var(--mono); font-size:.8rem } .skip-link:focus{ left:1rem; top:1rem }
h1,h2,h3,h4{ font-family:var(--disp); font-weight:800; line-height:1.02; letter-spacing:-.028em; color:var(--ink); margin:0 0 .5em; text-wrap:balance; overflow-wrap:break-word }
p{ margin:0 0 1.1rem } p:last-child{ margin-bottom:0 } strong{ font-weight:600 }
.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); width:100% }

/* ---- mono label utilities ---- */
.mn{ font-family:var(--mono); font-weight:500; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--stone) }
.mn--ink{ color:var(--ink) } .mn--gold{ color:var(--gold-deep) }
.on-dark .mn,.mn--d{ color:var(--mute-d) }

/* ---- crosshair figure frames ---- */
.fig{ position:relative; margin:0; border:1px solid var(--line); background:var(--white); padding:.55rem }
.fig img{ width:100%; height:100%; object-fit:cover; display:block }
.fig figcaption{ display:flex; justify-content:space-between; gap:1rem; padding:.7rem .2rem .15rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone) }
.xh::before,.xh::after{ content:""; position:absolute; width:13px; height:13px; pointer-events:none;
  background:linear-gradient(var(--ink),var(--ink)) center/13px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) center/1px 13px no-repeat }
.xh::before{ top:-7px; left:-7px } .xh::after{ bottom:-7px; right:-7px }

/* ---- buttons: rectangular, drafting ---- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; font-family:var(--mono); font-weight:600; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; line-height:1; padding:1.05rem 1.5rem; border-radius:var(--r); border:1px solid transparent; cursor:pointer; transition:background .18s,color .18s,border-color .18s,transform .15s var(--ease); white-space:nowrap; max-width:100% }
.btn:active{ transform:translateY(1px) }
.btn .ci{ width:1.05em; height:1.05em }
.btn--sm{ padding:.7rem 1rem; font-size:.72rem } .btn--lg{ padding:1.2rem 1.9rem } .btn--block{ display:flex; width:100% }
.btn--gold{ background:var(--gold); color:var(--ink); border-color:var(--gold) }
.btn--gold:hover{ background:var(--ink); border-color:var(--ink); color:var(--gold) }
.btn--line{ background:transparent; border-color:var(--line); color:var(--ink) }
.btn--line:hover{ border-color:var(--ink); color:var(--ink); background:var(--white) }
.btn--line-d{ background:transparent; border-color:var(--line-d); color:var(--white) }
.btn--line-d:hover{ border-color:var(--gold); color:var(--gold) }
.btn--ink{ background:var(--ink); color:var(--white); border-color:var(--ink) } .btn--ink:hover{ background:transparent; color:var(--ink) }
/* aliases so older markup/patterns keep working */
.btn--copper{ background:var(--gold); color:var(--ink); border:1px solid var(--gold) } .btn--copper:hover{ background:var(--ink); border-color:var(--ink); color:var(--gold) }
.btn--ghost{ background:transparent; border:1px solid var(--line); color:var(--ink) } .btn--ghost:hover{ border-color:var(--ink) }
.btn--ghost-d,.btn--ghost-light,.btn--white{ background:transparent; border:1px solid var(--line-d); color:var(--white) } .btn--ghost-d:hover,.btn--ghost-light:hover,.btn--white:hover{ border-color:var(--gold); color:var(--gold) }

/* ---- icon spans ---- */
.ci{ display:inline-block; width:1.2em; height:1.2em; background:currentColor; -webkit-mask:var(--cve-ico,none) center/contain no-repeat; mask:var(--cve-ico,none) center/contain no-repeat; flex:none }
.ico{ width:1.4em; height:1.4em; flex:none }

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{ position:sticky; top:0; z-index:100; background:color-mix(in srgb,var(--paper) 92%,transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line) }
.site-header__inner{ max-width:var(--wrap); margin-inline:auto; padding:0 var(--gut); height:var(--header-h); display:flex; align-items:center; gap:1.5rem; width:100% }
.site-header__brand{ margin-right:auto; min-width:0; display:flex; align-items:center }
.brandmark__logo,.custom-logo{ height:42px; width:auto }
.site-nav{ display:none }
.site-header__end{ display:flex; align-items:center; gap:1.1rem }
.header-call{ display:none; font-family:var(--mono); font-weight:600; font-size:.82rem; letter-spacing:.08em; color:var(--ink); align-items:center; gap:.5rem; font-variant-numeric:tabular-nums }
.header-call:hover{ color:var(--gold-deep) } .header-call .ci,.header-call .ico{ width:1em; height:1em; color:var(--gold-deep) }
@media(min-width:700px){ .header-call{ display:inline-flex } }
.header-quote{ display:none }
@media(min-width:1080px){
  .header-quote{ display:inline-flex }
  .site-nav{ display:block }
  .site-nav__menu{ list-style:none; display:flex; align-items:center; gap:.25rem; margin:0; padding:0 }
  .site-nav__menu>li{ position:relative }
  .site-nav__menu a{ display:inline-block; padding:.6rem .7rem; font-family:var(--mono); font-weight:500; font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--text) }
  .site-nav__menu a:hover,.site-nav__menu .current-menu-item>a,.site-nav__menu .current-menu-parent>a{ color:var(--gold-deep) }
  .site-nav__menu .menu-item-has-children>a::after{ content:"+"; margin-left:.5ch; color:var(--gold) }
  .site-nav__menu .sub-menu{ position:absolute; top:calc(100% + 10px); left:0; min-width:300px; list-style:none; margin:0; padding:0; background:var(--white); border:1px solid var(--line); opacity:0; visibility:hidden; transform:translateY(6px); transition:all .18s var(--ease); counter-reset:sm }
  .site-nav__menu li:hover>.sub-menu,.site-nav__menu li:focus-within>.sub-menu{ opacity:1; visibility:visible; transform:none }
  .site-nav__menu .sub-menu li{ border-bottom:1px solid var(--line-soft) } .site-nav__menu .sub-menu li:last-child{ border-bottom:0 }
  .site-nav__menu .sub-menu a{ display:block; padding:.75rem .9rem; font-size:.7rem; letter-spacing:.1em; color:var(--text) }
  .site-nav__menu .sub-menu a::before{ counter-increment:sm; content:counter(sm,decimal-leading-zero) "  "; color:var(--gold-deep) }
  .site-nav__menu .sub-menu a:hover{ background:var(--gold-pale); color:var(--ink) }
}
.nav-toggle{ display:inline-flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:40px; padding:0 10px; background:transparent; border:1px solid var(--line); border-radius:var(--r); cursor:pointer }
.nav-toggle span{ height:2px; background:var(--ink); transition:transform .22s var(--ease),opacity .2s }
.nav-toggle[aria-expanded=true] span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.nav-toggle[aria-expanded=true] span:nth-child(2){ opacity:0 }
.nav-toggle[aria-expanded=true] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }
@media(min-width:1080px){ .nav-toggle{ display:none } }
.mobile-nav{ background:var(--paper); border-top:1px solid var(--line); padding:.5rem var(--gut) 1.75rem; min-height:calc(100dvh - var(--header-h)); overflow-y:auto }
.mobile-nav__menu{ list-style:none; margin:0 0 1.25rem; padding:0 }
.mobile-nav__menu li{ border-bottom:1px solid var(--line-soft); position:relative }
.mobile-nav__menu a{ display:block; padding:1.05rem .1rem; color:var(--ink); font-family:var(--disp); font-weight:700; font-size:1.25rem; letter-spacing:-.01em }
.mobile-nav__menu .sub-menu{ list-style:none; margin:0 0 .7rem; padding:0 0 0 .25rem; display:none }
.mobile-nav__menu .submenu-open>.sub-menu{ display:block }
.mobile-nav__menu .sub-menu a{ font-family:var(--mono); font-weight:500; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); padding:.55rem .1rem }
.submenu-toggle{ position:absolute; right:0; top:.65rem; width:40px; height:40px; background:transparent; border:1px solid var(--line); border-radius:var(--r); color:var(--gold-deep); font-size:1.25rem; cursor:pointer }
.mobile-nav__cta{ display:grid; gap:.6rem }
body.nav-open .sticky-bar{ display:none }

/* sticky mobile call bar */
.sticky-bar{ position:fixed; left:0; right:0; bottom:0; z-index:120; display:grid; grid-template-columns:1fr 1fr; background:var(--ink); transform:translateY(110%); transition:transform .3s var(--ease) }
body.past-fold .sticky-bar{ transform:none }
.sticky-bar__btn{ display:flex; align-items:center; justify-content:center; gap:.55rem; padding:1.05rem; font-family:var(--mono); font-weight:600; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase }
.sticky-bar__btn .ci,.sticky-bar__btn .ico{ width:1.05em; height:1.05em }
a.sticky-bar__btn--call,a.sticky-bar__btn--call:hover{ background:var(--gold); color:var(--ink) }
a.sticky-bar__btn--quote,a.sticky-bar__btn--quote:hover{ background:var(--ink); color:var(--white); border-left:1px solid var(--line-d) }
@media(min-width:1080px){ .sticky-bar{ display:none } }

/* ==========================================================================
   SECTION SYSTEM — numbered drawing sheets
   ========================================================================== */
.sec{ position:relative }
.sec__inner{ max-width:var(--wrap); margin-inline:auto; padding:var(--sp) var(--gut); width:100% }
.sec--tint{ background:var(--paper-2) }
.sec--ink{ background:var(--ink); color:var(--mute-d) }
.sec--ink h2,.sec--ink h3{ color:var(--white) }
.shead{ display:flex; align-items:center; gap:1rem; margin-bottom:clamp(2rem,4vw,3rem) }
.shead__node{ width:11px; height:11px; background:transparent; border:1px solid var(--ink); flex:none; transition:background .5s var(--ease),border-color .5s }
.shead.is-on .shead__node{ background:var(--gold); border-color:var(--gold) }
.shead__label{ font-family:var(--mono); font-weight:600; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); white-space:nowrap }
.sec--ink .shead__label{ color:var(--white) } .sec--ink .shead__node{ border-color:var(--mute-d) }
.shead__rule{ flex:1; height:1px; background:var(--line); transform:scaleX(0); transform-origin:left; transition:transform .9s var(--ease) }
.shead.is-on .shead__rule{ transform:scaleX(1) }
.sec--ink .shead__rule{ background:var(--line-d) }
.no-js .shead__rule{ transform:none }
.stitle{ font-size:clamp(1.9rem,1.1rem + 2.8vw,3.3rem); max-width:22ch; margin-bottom:.6em }
.slede{ color:var(--stone); font-size:1.1rem; max-width:56ch } .sec--ink .slede{ color:var(--mute-d) }

/* ==========================================================================
   HERO — the title sheet
   ========================================================================== */
.dw-hero{ border-bottom:1px solid var(--line); background:
  linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:72px 72px; background-position:center top }
.dw-hero__inner{ max-width:var(--wrap); margin-inline:auto; padding:clamp(2rem,4vw,3.5rem) var(--gut) 0; width:100% }
.dw-hero__meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.75rem; padding-bottom:1.3rem; border-bottom:1px solid var(--line) }
.dw-hero__meta span{ font-family:var(--mono); font-weight:500; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone) }
.dw-hero__meta b{ color:var(--gold-deep); font-weight:600 }
.dw-hero__grid{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); padding:clamp(2.25rem,4.5vw,4rem) 0 clamp(2.5rem,4.5vw,4rem); align-items:end }
@media(min-width:960px){ .dw-hero__grid{ grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr) } }
.dw-hero__title{ font-size:clamp(2.7rem,1rem + 6.2vw,5.6rem); line-height:.96; letter-spacing:-.035em; margin:0 0 1.4rem; max-width:14ch }
.dw-hero__title .hl{ color:var(--gold-deep) }
.dw-hero__sub{ font-size:clamp(1.08rem,1rem + .5vw,1.28rem); line-height:1.55; color:var(--stone); max-width:46ch; margin-bottom:2.1rem }
.dw-hero__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.6rem }
.dw-hero__phone{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--mono); font-weight:600; font-size:.95rem; letter-spacing:.06em; color:var(--ink); font-variant-numeric:tabular-nums }
.dw-hero__phone:hover{ color:var(--gold-deep) } .dw-hero__phone .ci{ width:1em; height:1em; color:var(--gold-deep) }
.dw-hero__fig{ min-width:0 } .dw-hero__fig img{ aspect-ratio:4/3.4 }
.dw-hero__plate{ border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr }
@media(min-width:900px){ .dw-hero__plate{ grid-template-columns:repeat(4,1fr) } }
.dw-hero__cell{ padding:1.2rem .2rem 1.4rem; border-right:1px solid var(--line-soft) }
.dw-hero__cell:last-child{ border-right:0 }
.dw-hero__cell .k{ display:block; font-family:var(--mono); font-weight:500; font-size:.66rem; letter-spacing:.15em; text-transform:uppercase; color:var(--stone); margin-bottom:.4rem }
.dw-hero__cell .v{ font-family:var(--disp); font-weight:700; font-size:1.02rem; color:var(--ink); letter-spacing:-.01em }
@media(max-width:899px){ .dw-hero__cell:nth-child(2n){ border-right:0 } .dw-hero__cell{ border-bottom:1px solid var(--line-soft) } .dw-hero__cell:nth-last-child(-n+2){ border-bottom:0 } }

/* ==========================================================================
   PANEL SCHEDULE — services
   ========================================================================== */
.psch{ border:1px solid var(--line); background:var(--white) }
.psch__cap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 2rem; padding:.9rem 1.25rem; border-bottom:1px solid var(--line); background:var(--paper-2) }
.psch__cap span{ font-family:var(--mono); font-weight:600; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink) }
.psch__cap .dim{ color:var(--stone); font-weight:500 }
.psch__list{ list-style:none; margin:0; padding:0 }
.psch__list li{ border-bottom:1px solid var(--line-soft) } .psch__list li:last-child{ border-bottom:0 }
.psch__row{ display:grid; grid-template-columns:2.6rem 3.4rem minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1.05rem 1.25rem; color:var(--ink); transition:background .18s }
@media(min-width:900px){ .psch__row{ grid-template-columns:2.6rem 3.4rem minmax(0,21rem) minmax(0,1fr) 8rem 2rem } }
.psch__row:hover{ background:var(--gold-pale) }
.psch__no{ font-family:var(--mono); font-weight:600; font-size:.78rem; color:var(--stone); font-variant-numeric:tabular-nums }
.psch__row:hover .psch__no{ color:var(--gold-deep) }
.brk{ position:relative; width:34px; height:19px; border:1px solid var(--line); border-radius:var(--r); background:var(--paper); flex:none }
.brk::after{ content:""; position:absolute; top:2px; left:2px; width:13px; height:13px; background:var(--ink); transition:transform .2s var(--ease),background .2s }
.psch__row:hover .brk{ border-color:var(--gold-deep) }
.psch__row:hover .brk::after{ transform:translateX(15px); background:var(--gold) }
.psch__name{ font-family:var(--disp); font-weight:700; font-size:clamp(1.08rem,1rem + .5vw,1.35rem); letter-spacing:-.015em; line-height:1.1 }
.psch__desc{ display:none; color:var(--stone); font-size:.92rem; line-height:1.45 }
@media(min-width:900px){ .psch__desc{ display:block } }
.psch__amp{ justify-self:end; font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.1em; color:var(--gold-deep); border:1px solid var(--gold-line); padding:.32rem .5rem; border-radius:var(--r); white-space:nowrap }
.psch__go{ display:none; color:var(--stone) } .psch__go .ci{ width:1.15rem; height:1.15rem }
@media(min-width:900px){ .psch__go{ display:block } .psch__row:hover .psch__go{ color:var(--gold-deep) } }
.psch__note{ display:flex; flex-wrap:wrap; gap:.4rem 2rem; padding:.85rem 1.25rem; border-top:1px solid var(--line); background:var(--paper-2) }
.psch__note span{ font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--stone) }

/* ==========================================================================
   GENERAL NOTES — about
   ========================================================================== */
.gnotes{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,4rem) }
@media(min-width:940px){ .gnotes{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start } .gnotes__left{ position:sticky; top:calc(var(--header-h) + 2.5rem) } }
.gnotes__left h2{ font-size:clamp(1.9rem,1.2rem + 2.6vw,3.1rem); max-width:16ch }
.gnotes__left .fig{ margin-top:2rem; max-width:26rem } .gnotes__left .fig img{ aspect-ratio:4/3 }
.gnotes__body p{ color:var(--text); font-size:1.08rem; line-height:1.75 }
.gnotes__body p+p{ margin-top:1.25rem }
.gnotes__body .lead{ font-size:clamp(1.15rem,1rem + .7vw,1.4rem); line-height:1.55; color:var(--ink) }
.gnotes__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem }

/* ==========================================================================
   DETAIL DRAWINGS — feature deep dives
   ========================================================================== */
.det{ border:1px solid var(--line); background:var(--white) }
.det+.det,.det-row{ margin-top:1.4rem }
.det__inner{ display:grid; grid-template-columns:1fr }
@media(min-width:880px){ .det__inner{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) } .det--flip .det__media{ order:2 } }
.det__media{ position:relative; border-bottom:1px solid var(--line); min-height:300px }
@media(min-width:880px){ .det__media{ border-bottom:0; border-right:1px solid var(--line) } .det--flip .det__media{ border-right:0; border-left:1px solid var(--line) } }
.det__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.det__media .tag{ position:absolute; left:.9rem; bottom:.9rem; background:var(--ink); color:var(--white); font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; padding:.45rem .6rem }
.det__body{ padding:clamp(1.75rem,3.5vw,3rem) }
.det__body h2,.det__body h3{ font-size:clamp(1.55rem,1.1rem + 1.6vw,2.3rem); letter-spacing:-.022em }
.det__body>p{ color:var(--stone); line-height:1.7 }
.spec{ list-style:none; margin:1.5rem 0 1.9rem; padding:0; border-top:1px solid var(--line-soft) }
.spec li{ display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:.7rem .1rem; border-bottom:1px solid var(--line-soft); font-size:.96rem; color:var(--text) }
.spec li b{ font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); white-space:nowrap }
.det-row{ display:grid; grid-template-columns:1fr; gap:1.4rem }
@media(min-width:880px){ .det-row{ grid-template-columns:1fr 1fr } }
.det-row .det{ margin-top:0 } .det-row .det__inner{ grid-template-columns:1fr }
.det-row .det__media{ border-right:0!important; border-left:0!important; border-bottom:1px solid var(--line); aspect-ratio:16/9; min-height:0 }

/* ==========================================================================
   FAULT CONDITIONS — when to call
   ========================================================================== */
.faults{ display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--line-d) }
@media(min-width:760px){ .faults{ grid-template-columns:1fr 1fr } }
.fault{ padding:1.6rem 1.5rem; border-bottom:1px solid var(--line-d) }
@media(min-width:760px){ .fault{ border-right:1px solid var(--line-d) } .fault:nth-child(2n){ border-right:0 } }
.fault:last-child{ border-bottom:0 }
@media(min-width:760px){ .fault:nth-last-child(2):nth-child(odd){ border-bottom:0 } }
.fault .mn-tag{ display:inline-block; font-family:var(--mono); font-weight:600; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem }
.fault b{ display:block; font-family:var(--disp); font-weight:700; font-size:1.15rem; color:var(--white); margin-bottom:.3rem; letter-spacing:-.01em }
.fault span{ color:var(--mute-d); font-size:.95rem; line-height:1.6 }
.btn-row{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.75rem; margin-top:2.25rem }
.sec--ink .dw-hero__phone{ color:var(--white) } .sec--ink .dw-hero__phone:hover{ color:var(--gold) }

/* ==========================================================================
   FIELD REPORTS — reviews
   ========================================================================== */
.freports{ border:1px solid var(--line); background:var(--white); padding:clamp(1.5rem,3vw,2.5rem) }

/* ==========================================================================
   COVERAGE — service area
   ========================================================================== */
.cov{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem) }
@media(min-width:920px){ .cov{ grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:start } }
.cov__intro p{ color:var(--stone); font-size:1.06rem; line-height:1.7 }
.cov__plate{ margin-top:1.75rem; border:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); background:var(--white) }
.cov__plate>div{ padding:1.1rem 1rem; border-right:1px solid var(--line-soft) } .cov__plate>div:last-child{ border-right:0 }
.cov__plate .k{ display:block; font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone); margin-bottom:.3rem }
.cov__plate .v{ font-family:var(--disp); font-weight:800; font-size:1.5rem; color:var(--ink); letter-spacing:-.02em; font-variant-numeric:tabular-nums }
.cov__cta{ margin-top:1.75rem }
.cov__cols{ display:grid; grid-template-columns:1fr; gap:1.4rem }
@media(min-width:560px){ .cov__cols{ grid-template-columns:1fr 1fr } }
.cov__group{ border:1px solid var(--line); background:var(--white) }
.cov__group h3{ font-family:var(--mono); font-weight:600; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink); margin:0; padding:.85rem 1.1rem; border-bottom:1px solid var(--line); background:var(--paper-2) }
.cov__group ul{ list-style:none; margin:0; padding:.4rem 0 }
.cov__group a{ display:flex; justify-content:space-between; align-items:center; padding:.52rem 1.1rem; color:var(--text); font-size:.95rem }
.cov__group a::after{ content:"→"; color:var(--gold-deep); opacity:0; transition:opacity .15s,transform .15s; transform:translateX(-4px) }
.cov__group a:hover{ color:var(--gold-deep); background:var(--gold-pale) } .cov__group a:hover::after{ opacity:1; transform:none }
.cov__note{ margin-top:1.1rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone) }

/* ==========================================================================
   METHOD — process strip
   ========================================================================== */
.method{ border:1px solid var(--line); background:var(--white); display:grid; grid-template-columns:1fr }
@media(min-width:760px){ .method{ grid-template-columns:repeat(4,1fr) } }
.method>div{ padding:1.75rem 1.5rem 2rem; border-bottom:1px solid var(--line-soft) }
.method>div:last-child{ border-bottom:0 }
@media(min-width:760px){ .method>div{ border-bottom:0; border-right:1px solid var(--line-soft) } .method>div:last-child{ border-right:0 } }
.method .mn-step{ font-family:var(--mono); font-weight:600; font-size:.72rem; letter-spacing:.14em; color:var(--gold-deep); display:block; margin-bottom:.9rem }
.method h3{ font-size:1.14rem; margin-bottom:.35rem; letter-spacing:-.01em }
.method p{ color:var(--stone); font-size:.93rem; margin:0; line-height:1.6 }

/* ==========================================================================
   FAQ — notes & answers
   ========================================================================== */
.faq-accordion{ border:1px solid var(--line); background:var(--white) }
.cve-faq-item{ border-bottom:1px solid var(--line-soft) } .cve-faq-item:last-of-type{ border-bottom:0 }
.cve-faq-item>summary{ cursor:pointer; list-style:none; padding:1.2rem 1.4rem; font-family:var(--disp); font-weight:700; font-size:1.06rem; letter-spacing:-.01em; color:var(--ink); display:flex; justify-content:space-between; gap:1.25rem; align-items:baseline }
.cve-faq-item>summary::-webkit-details-marker{ display:none }
.cve-faq-item>summary::after{ content:"+"; font-family:var(--mono); color:var(--gold-deep); font-size:1.15rem; transition:transform .2s var(--ease); flex:none }
.cve-faq-item[open]>summary::after{ transform:rotate(45deg) }
.cve-faq-item>*:not(summary){ padding:0 1.4rem 1.3rem; color:var(--stone); line-height:1.72; max-width:72ch }
.cve-faq-item[open]{ background:var(--gold-pale) }

/* ==========================================================================
   REQUEST FOR SERVICE — contact
   ========================================================================== */
.rfs{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:start }
@media(min-width:920px){ .rfs{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) } }
.rfs__info h2{ font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem) }
.rfs__info>p{ color:var(--mute-d) }
.rfs__phone{ display:inline-block; font-family:var(--disp); font-weight:800; font-size:clamp(1.9rem,1.2rem + 2.4vw,2.9rem); letter-spacing:-.02em; color:var(--gold); font-variant-numeric:tabular-nums; margin:1.25rem 0 1.5rem }
.rfs__phone:hover{ color:var(--gold) }
.rfs__plate{ border:1px solid var(--line-d) }
.rfs__plate>div{ display:flex; justify-content:space-between; gap:1.5rem; padding:.8rem 1rem; border-bottom:1px solid var(--line-d); font-size:.92rem }
.rfs__plate>div:last-child{ border-bottom:0 }
.rfs__plate .k{ font-family:var(--mono); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--mute-d); align-self:center }
.rfs__plate .v{ color:var(--white); text-align:right }
.rfs__form{ background:var(--white); border:1px solid var(--line); padding:clamp(1.5rem,3vw,2.4rem); color:var(--text) }
.rfs__form h3{ font-size:1.35rem; margin-bottom:.3rem } .rfs__form>p{ color:var(--stone); font-size:.92rem; margin-bottom:1.4rem }

/* ==========================================================================
   PRE-FOOTER + FOOTER — title block
   ========================================================================== */
.precta{ background:var(--gold); border-top:1px solid var(--ink) }
.precta__inner{ max-width:var(--wrap); margin-inline:auto; padding:clamp(3rem,6vw,5rem) var(--gut); display:grid; gap:1.5rem; text-align:left; grid-template-columns:1fr }
@media(min-width:860px){ .precta__inner{ grid-template-columns:1fr auto; align-items:center } }
.precta__title{ color:var(--ink); font-size:clamp(2rem,1.2rem + 3vw,3.6rem); letter-spacing:-.03em; margin:0 }
.precta__sub{ color:rgba(22,19,14,.8); max-width:44ch; margin:.6rem 0 0; font-size:1.05rem }
.precta__actions{ display:flex; flex-wrap:wrap; gap:.9rem }
.precta .btn--copper,.precta .btn--gold{ background:var(--ink); border-color:var(--ink); color:var(--gold) }
.precta .btn--copper:hover,.precta .btn--gold:hover{ background:transparent; color:var(--ink) }
.precta .btn--ghost-light,.precta .btn--ghost-d{ border-color:rgba(22,19,14,.45); color:var(--ink) }
.precta .btn--ghost-light:hover,.precta .btn--ghost-d:hover{ border-color:var(--ink); background:rgba(22,19,14,.06); color:var(--ink) }
.precta__mark{ display:none }

.site-footer{ background:var(--ink); color:var(--mute-d) }
.site-footer__inner{ max-width:var(--wrap); margin-inline:auto; padding:clamp(3rem,6vw,4.5rem) var(--gut) 2.25rem; display:grid; grid-template-columns:1fr; gap:2.5rem; width:100% }
@media(min-width:720px){ .site-footer__inner{ grid-template-columns:1.35fr 1fr 1.3fr 1fr } }
.site-footer__logo{ height:40px; width:auto; margin-bottom:1.25rem }
.footer-nap{ font-style:normal; display:grid; gap:.4rem; line-height:1.5 }
.footer-nap a{ color:var(--mute-d) } .footer-nap a:hover{ color:var(--gold) }
.footer-nap__phone{ font-family:var(--disp); font-weight:800; font-size:1.45rem; color:var(--gold)!important; font-variant-numeric:tabular-nums; letter-spacing:-.01em }
.footer-meta{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-top:1.1rem; line-height:1.9 }
.site-footer__h{ font-family:var(--mono); font-weight:600; font-size:.68rem; text-transform:uppercase; letter-spacing:.16em; color:var(--gold); margin:0 0 1.1rem; padding-bottom:.7rem; border-bottom:1px solid var(--line-d) }
.site-footer__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:.45rem }
.site-footer__col a{ color:var(--mute-d); font-size:.92rem } .site-footer__col a:hover{ color:var(--gold) }
.footer-county{ font-family:var(--mono); font-weight:600; color:var(--white); margin:1rem 0 .5rem; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase }
.footer-townlist{ display:flex!important; flex-wrap:wrap; gap:.25rem .85rem!important } .footer-townlist a{ font-size:.85rem }
/* title block bar */
.site-footer__bar{ border-top:1px solid var(--line-d); max-width:var(--wrap); margin-inline:auto; padding:0 var(--gut); display:grid; grid-template-columns:1fr; width:100% }
@media(min-width:860px){ .site-footer__bar{ grid-template-columns:1fr 1fr } }
.site-footer__bar p{ margin:0; padding:1rem 0; font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--stone) }
@media(min-width:860px){ .site-footer__bar p{ padding:1rem 1.75rem 1rem 0; border-right:1px solid var(--line-d); margin-right:1.75rem } .site-footer__bar p:last-child{ border-right:0; margin-right:0; padding-right:0; text-align:right; justify-self:end } }

/* ==========================================================================
   INTERIOR PAGES — shared components (service/city/blog templates)
   ========================================================================== */
.crumb-strip{ background:var(--ink) } .crumb-strip__inner{ max-width:var(--wrap); margin-inline:auto; padding:.65rem var(--gut) }
.breadcrumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.45rem; margin:0; padding:0; font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone) }
.breadcrumbs li+li::before{ content:"/"; margin-right:.45rem; color:var(--stone) }
.breadcrumbs a{ color:var(--mute-d) } .breadcrumbs a:hover{ color:var(--gold) } .breadcrumbs [aria-current=page]{ color:var(--gold) }
.hero{ position:relative; overflow:clip; background:var(--ink); color:var(--white) }
.hero__inner{ max-width:var(--wrap); margin-inline:auto; padding:clamp(2.5rem,5vw,4.5rem) var(--gut); display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; width:100% }
@media(min-width:880px){ .hero:not(.hero--full) .hero__inner{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) } }
.hero--full .hero__inner{ max-width:860px }
.hero__content{ min-width:0 } .hero h1{ color:var(--white); font-size:clamp(2.1rem,1.3rem + 3vw,3.5rem); margin-bottom:.8rem }
.hero__eyebrow,.eyebrow{ display:inline-block; font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:1rem }
.hero .hero__eyebrow,.section--ink .eyebrow,.sec--ink .eyebrow{ color:var(--gold) }
.section--paper .eyebrow,.section--gray .eyebrow,.section--white .eyebrow{ color:var(--gold-deep) }
.hero__sub{ font-size:1.1rem; color:var(--mute-d); max-width:48ch; margin-bottom:1.6rem }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.9rem }
.hero__media{ min-width:0; border:1px solid var(--line-d); padding:.5rem; background:var(--ink-2) }
.hero__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3 }
.trust-chips{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; margin:1.5rem 0 0; padding:0 }
.trust-chips li{ border:1px solid var(--line-d); color:var(--mute-d); padding:.45rem .8rem; font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase }
.emergency-strip{ background:var(--gold) }
.emergency-strip__inner{ max-width:var(--wrap); margin-inline:auto; padding:.85rem var(--gut); display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.7rem 1.4rem; text-align:center; color:var(--ink) }
.emergency-strip__inner p{ margin:0; color:var(--ink); font-weight:500 }
.emergency-strip .wp-block-button__link{ background:var(--ink); border-color:var(--ink); color:var(--white) }
/* generic sections for interior stored content */
.section{ position:relative } .section__inner{ max-width:var(--wrap); margin-inline:auto; padding:var(--sp) var(--gut); width:100% }
.section--paper{ background:var(--paper) } .section--gray,.section--sand{ background:var(--paper-2) } .section--white{ background:var(--white) }
.section--ink{ background:var(--ink); color:var(--mute-d) } .section--ink h1,.section--ink h2,.section--ink h3{ color:var(--white) } .section--ink p,.section--ink .section__lead{ color:var(--mute-d) } .section--ink a:not(.btn):not(.wp-block-button__link){ color:var(--gold) }
.sec-head{ max-width:50rem; margin:0 0 2.5rem } .sec-head h2{ font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem) } .sec-head p{ color:var(--stone); font-size:1.08rem }
.section--ink .sec-head p{ color:var(--mute-d) }
.section__lead,.lede{ color:var(--stone); font-size:1.1rem } .cve-narrow{ max-width:52rem; margin-inline:auto }
.cve-grid-2,.cve-grid-3{ display:grid; grid-template-columns:1fr; gap:1.1rem } @media(min-width:640px){ .cve-grid-2,.cve-grid-3{ grid-template-columns:1fr 1fr } } @media(min-width:920px){ .cve-grid-3{ grid-template-columns:repeat(3,1fr) } } .cve-grid-2>*,.cve-grid-3>*{ min-width:0 }
.subcard{ position:relative; background:var(--white); border:1px solid var(--line); padding:1.5rem 1.4rem; min-width:0 }
.subcard::before{ content:""; display:block; width:40px; height:40px; margin-bottom:.9rem; border:1px solid var(--gold-line); background:var(--gold-pale) }
.subcard::after{ content:""; position:absolute; top:2.1rem; left:2.05rem; width:22px; height:22px; background:var(--gold-deep); -webkit-mask:var(--cve-ico) center/contain no-repeat; mask:var(--cve-ico) center/contain no-repeat }
.subcard h3{ font-size:1.12rem; margin-bottom:.35rem } .subcard p{ color:var(--stone); font-size:.94rem; margin:0 }
.process-steps{ counter-reset:step; display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--line); background:var(--white) }
@media(min-width:640px){ .process-steps{ grid-template-columns:1fr 1fr } } @media(min-width:920px){ .process-steps{ grid-template-columns:repeat(4,1fr) } }
.process-step{ padding:1.6rem 1.4rem; border-bottom:1px solid var(--line-soft) } .process-step:last-child{ border-bottom:0 }
@media(min-width:920px){ .process-step{ border-bottom:0; border-right:1px solid var(--line-soft) } .process-step:last-child{ border-right:0 } }
.process-step::before{ counter-increment:step; content:"STEP " counter(step,decimal-leading-zero); font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.14em; color:var(--gold-deep); display:block; margin-bottom:.7rem }
.process-step h3{ font-size:1.1rem; margin-bottom:.3rem } .process-step p{ color:var(--stone); font-size:.92rem; margin:0 }
.media-text{ display:grid; grid-template-columns:1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center }
@media(min-width:800px){ .media-text{ grid-template-columns:1fr 1fr } .media-text--reverse .media-text__media{ order:2 } }
.media-text+.media-text{ margin-top:clamp(2.5rem,5vw,4rem) } .media-text>*{ min-width:0 }
.media-text__media{ border:1px solid var(--line); padding:.5rem; background:var(--white) } .media-text__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3 }
.media-text ul{ list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:.55rem }
.media-text ul li{ position:relative; padding-left:1.6rem; color:var(--text) }
.media-text ul li::before{ content:""; position:absolute; left:0; top:.5em; width:.65rem; height:.65rem; background:var(--gold) }
.area-groups{ display:grid; grid-template-columns:1fr; gap:2rem } @media(min-width:700px){ .area-groups{ grid-template-columns:1fr 1fr } }
.area-group h3{ font-family:var(--mono); font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; color:var(--gold-deep) }
.section--ink .area-group h3{ color:var(--gold) }
.area-chips{ list-style:none; margin:.75rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.45rem }
.area-chips a{ display:inline-block; padding:.42rem .75rem; background:var(--white); border:1px solid var(--line); color:var(--text); font-size:.88rem }
.area-chips a:hover{ border-color:var(--gold-deep); color:var(--gold-deep) }
.section--ink .area-chips a{ background:var(--ink-2); border-color:var(--line-d); color:var(--mute-d) }
.quote-section{ display:grid; grid-template-columns:1fr; gap:clamp(1.5rem,4vw,3rem); align-items:start } @media(min-width:820px){ .quote-section{ grid-template-columns:.9fr 1.1fr } }
.quote-phone{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--disp); font-weight:800; font-size:1.7rem; color:var(--gold); font-variant-numeric:tabular-nums }
.quote-card{ padding:clamp(1.5rem,3vw,2.25rem); background:var(--white); border:1px solid var(--line); color:var(--text) }
.from-blog{ display:grid; grid-template-columns:1fr; gap:1.1rem } @media(min-width:680px){ .from-blog{ grid-template-columns:repeat(3,1fr) } }
.post-card{ background:var(--white); border:1px solid var(--line); padding:1.4rem; transition:border-color .15s } .post-card:hover{ border-color:var(--gold-deep) }
.post-card__kicker{ font-family:var(--mono); font-weight:600; text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; color:var(--gold-deep) }
.post-card__title{ font-size:1.12rem; margin:.45rem 0 0 } .post-card__title a{ color:var(--ink) } .post-card__title a:hover{ color:var(--gold-deep) }
.post-card__link{ color:inherit; display:block }
.post-card__media{ aspect-ratio:16/9; overflow:hidden; margin-bottom:1rem; background:var(--paper-2); border:1px solid var(--line-soft) } .post-card__media img{ width:100%; height:100%; object-fit:cover }
.post-card__excerpt{ color:var(--stone); font-size:.92rem }
.post-card__more{ display:inline-flex; align-items:center; gap:.35rem; margin-top:.7rem; color:var(--gold-deep); font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase }
.post-grid{ display:grid; grid-template-columns:1fr; gap:1.1rem } @media(min-width:640px){ .post-grid{ grid-template-columns:1fr 1fr } } @media(min-width:960px){ .post-grid{ grid-template-columns:repeat(3,1fr) } }
.archive-hero{ background:var(--ink) } .archive-hero__title{ color:var(--white) } .archive-hero__desc{ color:var(--mute-d); font-size:1.12rem; max-width:52ch }
.hub-filter{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem }
.hub-filter__chip{ border:1px solid var(--line-d); color:var(--mute-d); padding:.45rem .85rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase }
.hub-filter__chip:hover{ border-color:var(--gold); color:var(--gold) }
.pagination{ margin-top:2.5rem } .pagination .nav-links{ display:flex; gap:.4rem; flex-wrap:wrap; justify-content:center }
.pagination a,.pagination span{ padding:.5rem .85rem; border:1px solid var(--line); color:var(--ink); font-family:var(--mono); font-size:.78rem }
.pagination .current{ background:var(--gold); border-color:var(--gold); color:var(--ink) }
.post__header{ max-width:760px; margin-inline:auto; padding:clamp(2rem,4vw,3rem) var(--gut) 0 }
.post__kicker{ font-family:var(--mono); font-weight:600; text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; color:var(--gold-deep) }
.post__title{ margin:.5rem 0 .75rem } .post__byline{ color:var(--stone); font-size:.85rem; display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; font-family:var(--mono) }
.post__hero{ margin:2rem auto 0; max-width:1000px } .post__hero img{ width:100%; height:100%; object-fit:cover; aspect-ratio:16/8 }
.post__body{ max-width:760px; margin-inline:auto; padding:2rem var(--gut); font-size:1.08rem; line-height:1.78; color:var(--text) }
.post__body>h2{ margin-top:2.25rem; scroll-margin-top:100px } .post__body>h3{ margin-top:1.75rem }
.post__body ul,.post__body ol{ padding-left:1.25rem } .post__body li{ margin-bottom:.5rem } .post__body a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px }
.post__body table{ width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.95rem; display:block; overflow-x:auto }
.post__body th,.post__body td{ border:1px solid var(--line); padding:.7rem .8rem; text-align:left } .post__body thead th{ background:var(--paper-2); font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase }
.post__body .post-answer{ font-size:1.18rem; line-height:1.55; background:var(--gold-pale); border-left:2px solid var(--gold); padding:1.1rem 1.3rem; margin-bottom:1.5rem; color:var(--ink) }
.post__body .post-cta{ background:var(--ink); color:var(--mute-d); padding:1.75rem; margin:2rem 0; text-align:center }
.post__body .post-cta p{ color:var(--white); font-family:var(--disp); font-size:1.15rem; margin-bottom:1rem } .post__body .post-cta .wp-block-buttons{ justify-content:center }
.post__footer{ max-width:760px; margin:1rem auto 0; padding:1.5rem var(--gut); display:flex; gap:.8rem; flex-wrap:wrap; border-top:1px solid var(--line) }
.post-related{ background:var(--paper-2) } .post-related .related-grid{ display:grid; grid-template-columns:1fr; gap:1.1rem } @media(min-width:680px){ .post-related .related-grid{ grid-template-columns:repeat(3,1fr) } }
.related-card{ background:var(--white); border:1px solid var(--line); padding:1.35rem; display:flex; flex-direction:column; gap:.5rem; color:inherit } .related-card:hover{ border-color:var(--gold-deep) }
.related-card__title{ font-family:var(--disp); font-weight:700; font-size:1.08rem; color:var(--ink) }
.related-card__more{ color:var(--gold-deep); font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; margin-top:auto }
.error-404{ text-align:center } .error-404__actions{ display:flex; gap:.8rem; flex-wrap:wrap; justify-content:center; margin:1.5rem 0 }
.error-404__links{ display:flex; gap:1.25rem; flex-wrap:wrap; justify-content:center } .error-404__links a{ color:var(--gold) }
/* Gutenberg buttons in stored content */
.wp-block-buttons{ display:flex; flex-wrap:wrap; gap:.8rem }
.wp-block-button__link{ font-family:var(--mono); font-weight:600; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; border-radius:var(--r); padding:1.05rem 1.5rem; background:var(--gold); color:var(--ink); border:1px solid var(--gold); transition:background .18s,color .18s }
.wp-block-button__link:hover{ background:var(--ink); border-color:var(--ink); color:var(--gold) }
.wp-block-button.is-style-outline .wp-block-button__link,.wp-block-button.is-style-outline-ink .wp-block-button__link{ background:transparent; border:1px solid var(--line); color:var(--ink) }
.wp-block-button.is-style-outline .wp-block-button__link:hover{ border-color:var(--ink); background:var(--white); color:var(--ink) }
.section--ink .wp-block-button.is-style-outline .wp-block-button__link,.hero .wp-block-button.is-style-outline .wp-block-button__link{ border-color:var(--line-d); color:var(--white) }
.section--ink .wp-block-button.is-style-outline .wp-block-button__link:hover,.hero .wp-block-button.is-style-outline .wp-block-button__link:hover{ border-color:var(--gold); color:var(--gold); background:transparent }
.wp-block-button.is-style-ink .wp-block-button__link{ background:var(--ink); border-color:var(--ink); color:var(--white) }

/* ---- forms (Fluent Forms) ---- */
.frm-fluent-form fieldset,.fluentform fieldset,fieldset{ min-inline-size:0!important }
.frm-fluent-form,.fluentform,.quote-card,.rfs__form{ max-width:100% }
.frm-fluent-form .ff-el-group{ margin-bottom:1.1rem; min-width:0 }
.ff-el-input--label label,.quote-card label,.rfs__form label{ font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:.45rem; display:block; color:var(--ink) }
.frm-fluent-form input[type=text],.frm-fluent-form input[type=email],.frm-fluent-form input[type=tel],.frm-fluent-form select,.frm-fluent-form textarea{ width:100%; padding:.9rem .95rem; border:1px solid var(--line); border-radius:var(--r); font-family:var(--body); font-size:1rem; background:var(--paper); color:var(--ink); transition:border-color .15s,background .15s }
.frm-fluent-form input:focus,.frm-fluent-form select:focus,.frm-fluent-form textarea:focus{ border-color:var(--gold-deep); background:var(--white); outline:none }
.frm-fluent-form .ff-btn-submit,.fluentform button[type=submit]{ background:var(--gold); color:var(--ink); font-family:var(--mono); font-weight:600; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--gold); padding:1.05rem 1.6rem; border-radius:var(--r); cursor:pointer; transition:background .18s,color .18s }
.frm-fluent-form .ff-btn-submit:hover{ background:var(--ink); border-color:var(--ink); color:var(--gold) }
.ff-message-success{ background:rgba(46,125,79,.1); border:1px solid #2E7D4F; color:#2E7D4F; padding:1rem }

/* ---- misc ---- */
.alignfull{ max-width:100%!important } .text-center{ text-align:center } .cve-todo{ display:none }
@media(prefers-reduced-motion:reduce){
  .shead__rule{ transform:none!important; transition:none }
  .shead__node{ transition:none }
}

/* ---- icon vars (single-encoded) ---- */
.i-breaker{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%225%22%20y%3D%223%22%20width%3D%2214%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%207v4m-3%200h6m-6%204h6%22%2F%3E%3C%2Fsvg%3E") }
.i-wrench{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M14%206a4%204%200%200%200%205%205l-8%208a2.8%202.8%200%200%201-4-4l8-8a4%204%200%200%200-1-1Z%22%2F%3E%3C%2Fsvg%3E") }
.i-siren{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M6%2020v-5a6%206%200%200%201%2012%200v5M4%2020h16M12%204V2M5%207%204%206m15%201%201-1%22%2F%3E%3C%2Fsvg%3E") }
.i-generator{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%223%22%20y%3D%228%22%20width%3D%2218%22%20height%3D%2210%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M7%208V6h10v2M8%2013h3l-1%203%204-5h-3l1-3%22%2F%3E%3C%2Fsvg%3E") }
.i-ev{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%224%22%20y%3D%225%22%20width%3D%2212%22%20height%3D%2215%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%209h4M8%2013h4m6-5%202%202v6a2%202%200%200%201-2%202%22%2F%3E%3Cpath%20d%3D%22M10%203%208%207h3l-2%204%22%2F%3E%3C%2Fsvg%3E") }
.i-bulb{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%2018h6m-5%203h4M8%2014a5%205%200%201%201%208%200c-1%201-1.5%202-1.5%203h-5c0-1-.5-2-1.5-3Z%22%2F%3E%3C%2Fsvg%3E") }
.i-fan{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%2010c0-4%201-6%203-6s2%204-1%206m-2%202c-4%200-6%201-6%203s4%202%206-1m2%202c0%204-1%206-3%206s-2-4%201-6%22%2F%3E%3C%2Fsvg%3E") }
.i-hottub{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2011h16v6a3%203%200%200%201-3%203H7a3%203%200%200%201-3-3v-6Z%22%2F%3E%3Cpath%20d%3D%22M8%2011V6a2%202%200%200%201%204%200m2%205c1-1%201-2%200-3%22%2F%3E%3C%2Fsvg%3E") }
.i-plug{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%203v5m6-5v5M6%208h12v3a6%206%200%200%201-12%200V8Zm6%209v4%22%2F%3E%3C%2Fsvg%3E") }
.i-home{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2011%2012%204l8%207M6%2010v9h12v-9%22%2F%3E%3C%2Fsvg%3E") }
.i-clipboard{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%226%22%20y%3D%224%22%20width%3D%2212%22%20height%3D%2217%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%204h6v3H9zM9%2011h6M9%2015h4%22%2F%3E%3C%2Fsvg%3E") }
.i-bolt{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M13%203%205%2013h5l-1%208%208-11h-5l1-7Z%22%2F%3E%3C%2Fsvg%3E") }
.i-clock{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E") }
.i-shield{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M12%203%205%206v5c0%205%203%208%207%2010%204-2%207-5%207-10V6l-7-3Z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E") }
.i-check{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22m5%2012%205%205L20%206%22%2F%3E%3C%2Fsvg%3E") }
.i-phone{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%205c0%208%207%2015%2015%2015l0-3.5-4-1.5-2%202c-2.5-1.3-4.7-3.5-6-6l2-2-1.5-4L4%205Z%22%2F%3E%3C%2Fsvg%3E") }
.i-users{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M3%2020c0-3%203-5%206-5s6%202%206%205M16%206a3%203%200%200%201%200%206m5%208c0-2-1.5-3.5-3.5-4%22%2F%3E%3C%2Fsvg%3E") }
.i-arrow{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M5%2012h14m-6-6%206%206-6%206%22%2F%3E%3C%2Fsvg%3E") }
.subcard--panels{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%225%22%20y%3D%223%22%20width%3D%2214%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%207v4m-3%200h6m-6%204h6%22%2F%3E%3C%2Fsvg%3E") }
.subcard--repairs{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M14%206a4%204%200%200%200%205%205l-8%208a2.8%202.8%200%200%201-4-4l8-8a4%204%200%200%200-1-1Z%22%2F%3E%3C%2Fsvg%3E") }
.subcard--emergency{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M6%2020v-5a6%206%200%200%201%2012%200v5M4%2020h16M12%204V2M5%207%204%206m15%201%201-1%22%2F%3E%3C%2Fsvg%3E") }
.subcard--generators{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%223%22%20y%3D%228%22%20width%3D%2218%22%20height%3D%2210%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M7%208V6h10v2M8%2013h3l-1%203%204-5h-3l1-3%22%2F%3E%3C%2Fsvg%3E") }
.subcard--ev{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%224%22%20y%3D%225%22%20width%3D%2212%22%20height%3D%2215%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%209h4M8%2013h4m6-5%202%202v6a2%202%200%200%201-2%202%22%2F%3E%3Cpath%20d%3D%22M10%203%208%207h3l-2%204%22%2F%3E%3C%2Fsvg%3E") }
.subcard--lighting{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%2018h6m-5%203h4M8%2014a5%205%200%201%201%208%200c-1%201-1.5%202-1.5%203h-5c0-1-.5-2-1.5-3Z%22%2F%3E%3C%2Fsvg%3E") }
.subcard--ceilingfan{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%2010c0-4%201-6%203-6s2%204-1%206m-2%202c-4%200-6%201-6%203s4%202%206-1m2%202c0%204-1%206-3%206s-2-4%201-6%22%2F%3E%3C%2Fsvg%3E") }
.subcard--hottub{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2011h16v6a3%203%200%200%201-3%203H7a3%203%200%200%201-3-3v-6Z%22%2F%3E%3Cpath%20d%3D%22M8%2011V6a2%202%200%200%201%204%200m2%205c1-1%201-2%200-3%22%2F%3E%3C%2Fsvg%3E") }
.subcard--outlets{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%203v5m6-5v5M6%208h12v3a6%206%200%200%201-12%200V8Zm6%209v4%22%2F%3E%3C%2Fsvg%3E") }
.subcard--remodel{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%2011%2012%204l8%207M6%2010v9h12v-9%22%2F%3E%3C%2Fsvg%3E") }
.subcard--inspections{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%226%22%20y%3D%224%22%20width%3D%2212%22%20height%3D%2217%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%204h6v3H9zM9%2011h6M9%2015h4%22%2F%3E%3C%2Fsvg%3E") }
.subcard--bolt{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M13%203%205%2013h5l-1%208%208-11h-5l1-7Z%22%2F%3E%3C%2Fsvg%3E") }
.subcard--clipboard{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%226%22%20y%3D%224%22%20width%3D%2212%22%20height%3D%2217%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M9%204h6v3H9zM9%2011h6M9%2015h4%22%2F%3E%3C%2Fsvg%3E") }
.subcard--plug{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%203v5m6-5v5M6%208h12v3a6%206%200%200%201-12%200V8Zm6%209v4%22%2F%3E%3C%2Fsvg%3E") }
.subcard--bulb{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M9%2018h6m-5%203h4M8%2014a5%205%200%201%201%208%200c-1%201-1.5%202-1.5%203h-5c0-1-.5-2-1.5-3Z%22%2F%3E%3C%2Fsvg%3E") }
.subcard--shield{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M12%203%205%206v5c0%205%203%208%207%2010%204-2%207-5%207-10V6l-7-3Z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E") }
.subcard--clock{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E") }

/* hide mobile submenu toggles on desktop (theme.js injects them globally) */
@media(min-width:1080px){ .site-nav .submenu-toggle{ display:none } }

/* ==========================================================================
   v11 — CONTRACTOR PRO (light-dominant, gold-led, angled dividers)
   Structure modeled on the client-approved reference sites; executed clean.
   ========================================================================== */
:root{ --paper:#FFFFFF; --paper-2:#F6F3EC; --white:#FFFFFF; --grid:rgba(22,19,14,.035) }
body{ background:var(--paper) }
h1,h2,h3,h4{ letter-spacing:-.005em; font-weight:700 }

/* buttons: bold condensed, contractor punch */
.btn,.wp-block-button__link,.frm-fluent-form .ff-btn-submit,.fluentform button[type=submit]{ font-family:var(--disp); font-weight:700; font-size:1.02rem; letter-spacing:.05em; text-transform:uppercase }
.btn--lg{ font-size:1.12rem }
.sticky-bar__btn{ font-family:var(--disp); font-weight:700; font-size:1rem; letter-spacing:.05em }
/* header nav: condensed caps */
@media(min-width:1080px){
  .site-nav__menu a{ font-family:var(--disp); font-weight:600; font-size:1rem; letter-spacing:.05em }
  .site-nav__menu .sub-menu a{ font-family:var(--body); font-size:.88rem; letter-spacing:.01em; text-transform:none; font-weight:500 }
  .site-nav__menu .sub-menu a::before{ content:none }
}
.header-quote{ font-size:.95rem }

/* angled divider (the reference-site signature) */
.angle{ height:58px; position:relative; overflow:hidden; margin-top:-1px }
.angle::before{ content:""; position:absolute; inset:0; background:var(--ink); clip-path:polygon(0 22%,100% 0,100% 46%,0 72%) }
.angle::after{ content:""; position:absolute; inset:0; background:var(--gold); clip-path:polygon(0 46%,100% 20%,100% 68%,0 96%) }
.angle--flip{ transform:scaleX(-1) }

/* section head: all-caps condensed + gold bar */
.h-cap{ font-size:clamp(2.1rem,1.2rem + 3vw,3.6rem); text-transform:uppercase; letter-spacing:.01em; line-height:.98; max-width:24ch }
.h-cap::after{ content:""; display:block; width:76px; height:6px; background:var(--gold); margin-top:.75rem }
.h-cap--c{ margin-inline:auto; text-align:center } .h-cap--c::after{ margin-inline:auto }
.sec-sub{ color:var(--stone); font-size:1.1rem; max-width:56ch; margin-top:1.1rem }
.sec-sub--c{ margin-inline:auto; text-align:center }

/* ---- HERO (dark, photo, angled base) ---- */
.vh{ position:relative; overflow:clip; background:var(--ink); color:#fff }
.vh__bg{ position:absolute; inset:0 } .vh__bg img{ width:100%; height:100%; object-fit:cover }
.vh__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(16,13,9,.94) 0%,rgba(16,13,9,.86) 42%,rgba(16,13,9,.45) 78%,rgba(16,13,9,.65) 100%) }
.vh__inner{ position:relative; z-index:1; max-width:var(--wrap); margin-inline:auto; padding:clamp(3.5rem,7vw,6rem) var(--gut) clamp(4rem,7vw,6.5rem); width:100% }
.vh__chips{ display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:1.6rem }
.vh__chips span{ display:inline-flex; align-items:center; gap:.5rem; border:1px solid rgba(255,255,255,.28); color:#fff; padding:.5rem .85rem; font-family:var(--disp); font-weight:600; font-size:.88rem; letter-spacing:.08em; text-transform:uppercase }
.vh__chips .ci{ width:1em; height:1em; color:var(--gold) }
.vh h1{ color:#fff; text-transform:uppercase; font-weight:800; font-size:clamp(2.9rem,1.4rem + 6.4vw,6rem); line-height:.94; letter-spacing:.005em; margin:0 0 1.2rem; max-width:16ch }
.vh h1 .hl{ color:var(--gold) }
.vh__sub{ font-size:clamp(1.06rem,1rem + .4vw,1.22rem); color:rgba(244,238,226,.88); max-width:46ch; line-height:1.6; margin-bottom:1.6rem }
.vh__checks{ list-style:none; margin:0 0 2.1rem; padding:0; display:flex; flex-direction:column; gap:.55rem }
@media(min-width:640px){ .vh__checks{ flex-direction:row; flex-wrap:wrap; gap:.6rem 1.8rem } }
.vh__checks li{ display:flex; align-items:center; gap:.6rem; font-family:var(--disp); font-weight:600; font-size:1.05rem; letter-spacing:.03em; text-transform:uppercase }
.vh__checks .ci{ width:1.15rem; height:1.15rem; color:var(--gold) }
.vh__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem }
.vh__phone{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--disp); font-weight:700; font-size:1.35rem; letter-spacing:.03em; color:#fff; font-variant-numeric:tabular-nums }
.vh__phone:hover{ color:var(--gold) } .vh__phone .ci{ width:1.05em; height:1.05em; color:var(--gold) }
.vh__lic{ margin-top:2rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:rgba(244,238,226,.6) }

/* ---- SERVICES (photo cards) ---- */
.svcx{ display:grid; grid-template-columns:1fr; gap:1.5rem; margin-top:2.75rem }
@media(min-width:620px){ .svcx{ grid-template-columns:1fr 1fr } }
@media(min-width:960px){ .svcx{ grid-template-columns:repeat(3,1fr) } }
.svcx>*{ min-width:0 }
.svcx__card{ display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); color:inherit; transition:transform .2s var(--ease),box-shadow .25s,border-color .2s }
.svcx__card:hover{ transform:translateY(-5px); border-color:var(--gold); box-shadow:0 24px 44px -24px rgba(22,19,14,.28) }
.svcx__media{ position:relative; aspect-ratio:16/10; overflow:hidden; border-bottom:3px solid var(--gold) }
.svcx__media img{ width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease) }
.svcx__card:hover .svcx__media img{ transform:scale(1.05) }
.svcx__ico{ position:absolute; left:1rem; bottom:-2px; width:3rem; height:3rem; background:var(--gold); display:flex; align-items:center; justify-content:center }
.svcx__ico .ci{ width:1.5rem; height:1.5rem; color:var(--ink) }
.svcx__body{ padding:1.5rem 1.4rem 1.4rem; display:flex; flex-direction:column; flex:1 }
.svcx__body h3{ font-size:1.5rem; text-transform:uppercase; letter-spacing:.02em; margin:0 0 .45rem }
.svcx__body p{ color:var(--stone); font-size:.95rem; line-height:1.6; margin:0 0 1.1rem; flex:1 }
.svcx__more{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--disp); font-weight:700; font-size:.95rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-deep) }
.svcx__more .ci{ width:1em; height:1em; transition:transform .18s } .svcx__card:hover .svcx__more .ci{ transform:translateX(4px) }
.svcx-cta{ text-align:center; margin-top:2.75rem }

/* ---- ABOUT + FORM dark band ---- */
.abf{ background:var(--ink); color:var(--mute-d) }
.abf__inner{ max-width:var(--wrap); margin-inline:auto; padding:clamp(3.5rem,7vw,6rem) var(--gut); display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,4rem); align-items:start; width:100% }
@media(min-width:940px){ .abf__inner{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) } }
.abf h2{ color:#fff; text-transform:uppercase; font-size:clamp(2rem,1.2rem + 2.8vw,3.4rem); line-height:.98 }
.abf h2::after{ content:""; display:block; width:76px; height:6px; background:var(--gold); margin-top:.75rem }
.abf__body p{ color:var(--mute-d); font-size:1.05rem; line-height:1.7; margin-top:1.25rem }
.abf__body p strong{ color:#fff }
.abf__checks{ list-style:none; margin:1.6rem 0; padding:0; display:grid; gap:.7rem }
.abf__checks li{ display:flex; gap:.7rem; align-items:flex-start; color:#fff; font-weight:500 }
.abf__checks .ci{ width:1.2rem; height:1.2rem; color:var(--gold); flex:none; margin-top:.2rem }
.abf__phone{ display:inline-flex; align-items:center; gap:.65rem; font-family:var(--disp); font-weight:800; font-size:clamp(1.7rem,1.2rem + 1.6vw,2.4rem); color:var(--gold); font-variant-numeric:tabular-nums; margin-top:.5rem }
.abf__phone .ci{ width:.9em; height:.9em }
.abf__form{ background:var(--white); border-top:6px solid var(--gold); padding:clamp(1.6rem,3vw,2.4rem); color:var(--text); box-shadow:0 34px 60px -30px rgba(0,0,0,.5) }
.abf__form h3{ font-size:1.7rem; text-transform:uppercase; margin-bottom:.3rem }
.abf__form>p{ color:var(--stone); font-size:.93rem; margin-bottom:1.35rem }

/* ---- WHY (4-up) ---- */
.whyx{ display:grid; grid-template-columns:1fr; gap:1.4rem; margin-top:2.75rem }
@media(min-width:620px){ .whyx{ grid-template-columns:1fr 1fr } }
@media(min-width:960px){ .whyx{ grid-template-columns:repeat(4,1fr) } }
.whyx>div{ background:var(--white); border:1px solid var(--line); border-top:4px solid var(--gold); padding:1.7rem 1.5rem }
.whyx .ci{ width:2rem; height:2rem; color:var(--gold-deep); margin-bottom:1rem }
.whyx h3{ font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:.4rem }
.whyx p{ color:var(--stone); font-size:.94rem; line-height:1.6; margin:0 }

/* ---- WHEN TO CALL ---- */
.warnx{ display:grid; grid-template-columns:1fr; gap:1.1rem; margin-top:2.5rem }
@media(min-width:700px){ .warnx{ grid-template-columns:1fr 1fr } }
.warnx>div{ display:flex; gap:1rem; align-items:flex-start; background:var(--white); border:1px solid var(--line); padding:1.3rem 1.4rem }
.warnx .ci{ width:1.5rem; height:1.5rem; color:var(--gold-deep); flex:none; margin-top:.15rem }
.warnx b{ display:block; font-family:var(--disp); font-weight:700; font-size:1.22rem; text-transform:uppercase; letter-spacing:.02em; color:var(--ink); margin-bottom:.25rem }
.warnx span{ color:var(--stone); font-size:.94rem; line-height:1.6 }
.warnx-cta{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.75rem; margin-top:2.25rem }

/* ---- reviews wrap ---- */
.revx{ margin-top:2.75rem; background:var(--white); border:1px solid var(--line); border-top:6px solid var(--gold); padding:clamp(1.5rem,3vw,2.5rem) }

/* media-text heading fit for condensed */
.media-text h2{ font-size:clamp(1.7rem,1.2rem + 1.8vw,2.5rem); text-transform:uppercase }
.media-text h2::after{ content:""; display:block; width:56px; height:5px; background:var(--gold); margin-top:.6rem }
.media-text__media{ padding:0; border:1px solid var(--line); border-bottom:4px solid var(--gold) }

/* coverage/method/faq inherit; tint sections use paper-2 */
.sec--tint{ background:var(--paper-2) }

.i-chat{ --cve-ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%22M4%205h16v11H9l-4%203v-3H4z%22%2F%3E%3Cpath%20d%3D%22M8%209h8M8%2012h5%22%2F%3E%3C%2Fsvg%3E") }

/* ---- v11.1 refinements ---- */
/* about band: fact plate fills the column */
.abf__plate{ margin-top:2rem }
.abf__plate .v{ font-size:.9rem }
/* FAQ: bigger questions, full-width answers */
.cve-faq-item>summary{ font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem); padding:1.35rem 1.5rem }
.cve-faq-item>*:not(summary){ max-width:none; padding:0 1.5rem 1.45rem; font-size:1.02rem; line-height:1.75 }
/* coverage: county cards */
.areax{ display:grid; grid-template-columns:1fr; gap:1.4rem; margin-top:2.75rem }
@media(min-width:700px){ .areax{ grid-template-columns:1fr 1fr } }
@media(min-width:1040px){ .areax{ grid-template-columns:1fr 1fr 1fr } }
.areax__card{ background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; min-width:0 }
.areax__head{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.05rem 1.3rem; background:var(--ink); border-bottom:4px solid var(--gold) }
.areax__head h3{ color:#fff; text-transform:uppercase; font-size:1.35rem; letter-spacing:.03em; margin:0 }
.areax__head span{ font-family:var(--mono); font-weight:600; font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold) }
.areax__towns{ list-style:none; margin:0; padding:.9rem 1.05rem 1.1rem; display:grid; grid-template-columns:1fr 1fr; gap:.3rem .8rem }
.areax__towns a{ display:flex; align-items:center; gap:.5rem; padding:.42rem .5rem; color:var(--text); font-size:.95rem; border:1px solid transparent }
.areax__towns a::before{ content:""; width:.45rem; height:.45rem; background:var(--gold); flex:none }
.areax__towns a:hover{ color:var(--gold-deep); border-color:var(--gold-line); background:var(--gold-pale) }
.areax__card--hq{ background:var(--ink); color:var(--mute-d) }
.areax__head--hq{ background:var(--gold); border-bottom-color:var(--ink) }
.areax__head--hq h3{ color:var(--ink) } .areax__head--hq span{ color:var(--ink) }
.areax__hqbody{ padding:1.4rem 1.3rem 1.5rem; display:flex; flex-direction:column; gap:1.1rem; flex:1 }
.areax__hqbody p{ margin:0; color:var(--mute-d); line-height:1.65 } .areax__hqbody strong{ color:#fff }
.areax__addr{ font-family:var(--mono); font-size:.7rem!important; letter-spacing:.1em; text-transform:uppercase; color:var(--stone)!important }
.areax__hqbody .btn{ align-self:flex-start }
.areax__phone{ font-size:1.2rem; margin-top:auto }
/* footer title-block: keep the scope line on one line */
@media(min-width:1100px){ .site-footer__bar p{ white-space:nowrap } }

/* ---- v11.2 ---- */
/* town links: never wrap, never break the two-column rhythm */
.areax__towns{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.25rem .5rem; padding:.85rem .9rem 1rem }
.areax__towns a{ white-space:nowrap; font-size:.9rem; padding:.4rem .4rem; overflow:hidden; text-overflow:ellipsis }
/* FAQ questions: decisively larger */
.faq-accordion .cve-faq-item>summary{ font-size:clamp(1.35rem,1.15rem + .8vw,1.7rem); line-height:1.15; padding:1.45rem 1.6rem; font-weight:700 }
.faq-accordion .cve-faq-item>summary::after{ font-size:1.5rem }
.faq-accordion .cve-faq-item>*:not(summary){ padding:0 1.6rem 1.5rem }

/* ==========================================================================
   v11.3 — SERVICE PAGE components (pilot: panel upgrades)
   ========================================================================== */
.sec__inner--top{ padding-top:clamp(3rem,6vw,4.5rem) }
.h-cap--sm{ font-size:clamp(1.7rem,1.2rem + 1.8vw,2.6rem) }
/* answer box: liftable definition */
.ansbox{ background:var(--white); border:1px solid var(--line); border-left:6px solid var(--gold); padding:clamp(1.5rem,3vw,2.25rem); max-width:62rem }
.ansbox__label{ display:inline-block; font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:.7rem }
.ansbox p{ margin:0; font-size:clamp(1.05rem,1rem + .3vw,1.18rem); line-height:1.7; color:var(--text) }
/* fact strip */
.factx{ display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); background:var(--white); margin-top:1.4rem; max-width:62rem }
@media(min-width:860px){ .factx{ grid-template-columns:repeat(4,1fr) } }
.factx>div{ padding:1.05rem 1.15rem; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft) }
@media(min-width:860px){ .factx>div{ border-bottom:0 } .factx>div:last-child{ border-right:0 } }
@media(max-width:859px){ .factx>div:nth-child(2n){ border-right:0 } .factx>div:nth-last-child(-n+2){ border-bottom:0 } }
.factx .k{ display:block; font-family:var(--mono); font-weight:500; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone); margin-bottom:.3rem }
.factx .v{ font-family:var(--disp); font-weight:700; font-size:1rem; color:var(--ink) }
/* included checklist */
.inclx{ list-style:none; margin:1.5rem 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:.65rem }
@media(min-width:560px){ .inclx{ grid-template-columns:1fr 1fr } }
.inclx li{ display:flex; gap:.65rem; align-items:flex-start; color:var(--text); font-size:.98rem; line-height:1.55 }
.inclx .ci{ width:1.15rem; height:1.15rem; color:var(--gold-deep); flex:none; margin-top:.2rem }
/* 5-step method */
@media(min-width:1000px){ .method--5{ grid-template-columns:repeat(5,1fr) } }
@media(min-width:760px) and (max-width:999px){ .method--5{ grid-template-columns:repeat(3,1fr) } .method--5>div{ border-bottom:1px solid var(--line-soft) } .method--5>div:nth-last-child(-n+2){ border-bottom:0 } }
/* comparison table */
.cmp-wrap{ margin-top:2.25rem; overflow-x:auto; border:1px solid var(--line); background:var(--white) }
.cmp{ width:100%; border-collapse:collapse; min-width:640px }
.cmp th,.cmp td{ padding:1.05rem 1.25rem; text-align:left; border-bottom:1px solid var(--line-soft); vertical-align:top }
.cmp thead th{ font-family:var(--disp); font-weight:700; font-size:1.15rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink); background:var(--paper-2); border-bottom:1px solid var(--line) }
.cmp tbody th{ font-family:var(--disp); font-weight:700; font-size:1.02rem; color:var(--ink); width:26% }
.cmp td{ color:var(--stone); font-size:.96rem; line-height:1.6 }
.cmp .is-hl{ background:var(--gold-pale); border-left:1px solid var(--gold-line) }
.cmp thead .is-hl{ color:var(--gold-deep) }
.cmp tr:last-child th,.cmp tr:last-child td{ border-bottom:0 }
/* inline CTA strip */
.ctax{ margin-top:2.5rem; background:var(--gold); padding:clamp(1.5rem,3vw,2rem); display:grid; gap:1.1rem; grid-template-columns:1fr; align-items:center }
@media(min-width:820px){ .ctax{ grid-template-columns:1fr auto } }
.ctax p{ margin:0; color:var(--ink); font-weight:500; font-size:1.05rem; max-width:52ch }
.ctax__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem }
/* credentials band */
.credx{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center }
@media(min-width:880px){ .credx{ grid-template-columns:1.1fr .9fr } }
/* related: 4-up smaller cards */
@media(min-width:960px){ .svcx--4{ grid-template-columns:repeat(4,1fr) } }
.svcx--4 .svcx__body h3{ font-size:1.2rem }
.svcx--4 .svcx__body{ padding:1.2rem 1.15rem 1.15rem }

/* ---- v11.4 service-page refinements ---- */
/* answer section: content + image */
.ansx{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center }
@media(min-width:880px){ .ansx{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) } }
.ansx__lead{ font-size:clamp(1.05rem,1rem + .35vw,1.2rem); line-height:1.75; color:var(--text); margin:1.4rem 0 0; max-width:60ch }
.ansx__media{ margin:0; border:1px solid var(--line); border-bottom:4px solid var(--gold); background:var(--white) }
.ansx__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3 }
/* included checklist: kill media-text square-bullet collision */
.media-text ul.inclx li{ padding-left:0 }
.media-text ul.inclx li::before{ content:none }
/* FAQ two-column with aside */
.faqx{ display:grid; grid-template-columns:1fr; gap:clamp(1.5rem,3vw,2.5rem); align-items:start }
@media(min-width:960px){ .faqx{ grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr) } .faqx__aside{ position:sticky; top:calc(var(--header-h) + 2rem); margin-top:2.5rem } }
.faqx__img{ margin:0 0 1.1rem; border:1px solid var(--line); border-bottom:4px solid var(--gold); background:var(--white) }
.faqx__img img{ width:100%; object-fit:cover; aspect-ratio:4/3 }
.faqx__card{ background:var(--ink); padding:1.6rem 1.5rem }
.faqx__card h3{ color:#fff; text-transform:uppercase; font-size:1.3rem; margin-bottom:.4rem }
.faqx__card p{ color:var(--mute-d); font-size:.94rem; margin-bottom:1.2rem }
.faqx__card .btn + .btn{ margin-top:.6rem }
/* dark FAQ card: outline button must be light-on-dark */
.faqx__card .btn--line{ border-color:var(--line-d); color:#fff }
.faqx__card .btn--line:hover{ border-color:var(--gold); color:var(--gold); background:transparent }

/* ---- v11.5: FAQ question size settle (between the two extremes) + dark-card quote button ---- */
.faq-accordion .cve-faq-item>summary{ font-size:clamp(1.1rem,1.02rem + .35vw,1.32rem); padding:1.25rem 1.5rem }
.faq-accordion .cve-faq-item>summary::after{ font-size:1.25rem }
.faqx__card a.btn--line,.faqx__card a.btn--line:visited{ border-color:rgba(252,251,248,.4); color:#FCFBF8; background:transparent }
.faqx__card a.btn--line:hover{ border-color:var(--gold); color:var(--gold) }
/* FAQ questions: final size (clearly above body, below section heads) */
.faq-accordion .cve-faq-item>summary{ font-size:clamp(1.2rem,1.1rem + .5vw,1.5rem) }

/* ---- v11.6: FAQ column balance + per-page question sizing ---- */
/* homepage (and any non-split FAQ): previous size */
.faq-accordion .cve-faq-item>summary{ font-size:clamp(1.1rem,1.02rem + .35vw,1.32rem) }
/* service page split FAQ: larger questions */
.faqx .cve-faq-item>summary{ font-size:clamp(1.2rem,1.1rem + .5vw,1.5rem) }
/* equalize the two columns: accordion rows flex to fill the aside's height */
@media(min-width:960px){
  .faqx{ align-items:stretch }
  .faqx__aside{ position:static; display:flex; flex-direction:column }
  .faqx__img{ flex:none; margin-bottom:1.1rem }
  .faqx__img img{ aspect-ratio:16/10 }
  .faqx__card{ flex:1; display:flex; flex-direction:column; justify-content:center }
  .faqx .faq-accordion{ display:flex; flex-direction:column; height:calc(100% - 2.5rem) }
  .faqx .cve-faq-item{ flex:1; display:flex; flex-direction:column; justify-content:center }
}

/* ---- v11.7 city-page components ---- */
.erax{ display:grid; grid-template-columns:1fr; gap:1.4rem; margin-top:2.5rem }
@media(min-width:880px){ .erax{ grid-template-columns:repeat(3,1fr) } }
.erax__card{ background:var(--white); border:1px solid var(--line); border-top:4px solid var(--gold); padding:1.7rem 1.5rem; min-width:0 }
.erax__card h3{ font-size:1.4rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:.35rem }
.erax__card>p{ color:var(--stone); font-size:.94rem; margin:0 0 1.1rem }
.erax__card ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem }
.erax__card li{ display:flex; gap:.6rem; align-items:flex-start; color:var(--text); font-size:.93rem; line-height:1.55 }
.erax__card li .ci{ width:1.05rem; height:1.05rem; color:var(--gold-deep); flex:none; margin-top:.2rem }
/* dark method variant (ink section) */
.method--dark{ background:transparent; border-color:var(--line-d) }
.method--dark>div{ border-color:var(--line-d)!important }
.method--dark h3{ color:#fff }
.method--dark p{ color:var(--mute-d) }
.method--dark .mn-step{ color:var(--gold) }
/* fact plate matches full content width */
.factx{ max-width:none }
.ansbox{ max-width:none }

/* ---- v12 blog editorial layer ---- */
.post__header-inner{ max-width:760px; margin-inline:auto }
.post__title{ font-size:clamp(2rem,1.2rem+3vw,3.4rem); text-transform:uppercase; letter-spacing:.005em }
.post__kicker{ background:var(--gold-pale); border:1px solid var(--gold-line); padding:.35rem .7rem; display:inline-block }
/* table of contents */
.post-toc{ background:var(--paper-2); border:1px solid var(--line); border-left:5px solid var(--gold); padding:1.4rem 1.6rem; margin:2rem 0 }
.post-toc>p:first-child{ font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 .7rem }
.post-toc ul{ list-style:none; margin:0!important; padding:0!important; display:grid; gap:.35rem }
@media(min-width:640px){ .post-toc ul{ grid-template-columns:1fr 1fr } }
.post-toc li{ margin:0!important }
.post-toc a{ text-decoration:none!important; color:var(--text); font-size:.95rem; display:flex; gap:.55rem; align-items:baseline }
.post-toc a::before{ content:"→"; color:var(--gold) }
.post-toc a:hover{ color:var(--gold-deep) }
/* callout + pull quote */
.post-callout{ background:var(--gold-pale); border:1px solid var(--gold-line); padding:1.3rem 1.5rem; margin:1.75rem 0; font-size:1rem }
.post-callout strong:first-child{ color:var(--gold-deep); font-family:var(--mono); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; display:block; margin-bottom:.4rem }
.post__body blockquote,.post-pull{ border:0; border-left:5px solid var(--gold); margin:2rem 0; padding:.4rem 0 .4rem 1.5rem; font-family:var(--disp); font-weight:700; font-size:clamp(1.25rem,1.1rem+.7vw,1.6rem); line-height:1.3; color:var(--ink) }
.post__body figure{ margin:2rem 0 }
.post__body figcaption{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); padding:.7rem .2rem .15rem }
/* author box */
.post-author{ max-width:760px; margin:2.5rem auto 4.5rem; padding:1.5rem var(--gut); display:flex; gap:1.1rem; align-items:flex-start; border-top:1px solid var(--line) }
.post-author__mark{ width:3rem; height:3rem; flex:none; background:var(--gold-pale); border:1px solid var(--gold-line); display:flex; align-items:center; justify-content:center }
.post-author__mark .ico{ width:1.5rem; height:1.5rem; color:var(--gold-deep) }
.post-author__name{ font-family:var(--disp); font-weight:700; font-size:1.05rem; margin:0 0 .25rem; color:var(--ink) }
.post-author__meta{ font-size:.9rem; color:var(--stone); margin:0; line-height:1.6 }
/* in-body faq spacing */
.post__body .cve-faq-item>summary{ font-size:1.1rem }

/* ============================================================ */
/* v12.1 — hero-width fix (contact/reviews) + single-post polish */
/* ============================================================ */
/* full-variant hero aligns with the site grid, not a narrow centered box */
.hero--full .hero__inner{ max-width:var(--wrap) }
.hero--full .hero__content{ max-width:54rem }
/* contact page: fact cells get room to breathe (2-up, wrap-safe) */
.quote-section .factx{ grid-template-columns:1fr }
@media(min-width:560px){ .quote-section .factx{ grid-template-columns:1fr 1fr } }
.quote-section .factx>div{ border-right:0; border-bottom:1px solid var(--line-soft) }
@media(min-width:560px){ .quote-section .factx>div:nth-child(odd){ border-right:1px solid var(--line-soft) } .quote-section .factx>div:nth-last-child(-n+2){ border-bottom:0 } }
.factx .v{ overflow-wrap:break-word; line-height:1.35 }

/* ---- SINGLE POST: media/table alignment + editorial polish ---- */
/* tables: frame owned by the figure, table fills it edge-to-edge */
.post__body .wp-block-table{ margin:2.25rem 0; border:1px solid var(--line); background:var(--white); padding:0; overflow-x:auto }
.post__body .wp-block-table table{ display:table; width:100%; min-width:620px; margin:0; border:0; border-collapse:collapse; font-size:.95rem }
.post__body .wp-block-table th,.post__body .wp-block-table td{ border:0; border-bottom:1px solid var(--line-soft); border-right:1px solid var(--line-soft); padding:.85rem 1rem; vertical-align:top }
.post__body .wp-block-table th:last-child,.post__body .wp-block-table td:last-child{ border-right:0 }
.post__body .wp-block-table tbody tr:last-child td,.post__body .wp-block-table tbody tr:last-child th{ border-bottom:0 }
.post__body .wp-block-table thead th{ background:var(--paper-2); font-family:var(--mono); font-weight:600; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); border-bottom:1px solid var(--line) }
.post__body .wp-block-table tbody tr:nth-child(even){ background:rgba(198,152,47,.04) }
.post__body .wp-block-table tbody td:first-child{ font-weight:600; color:var(--ink) }
/* image figures: frame + gold base, image fills the frame */
.post__body figure.wp-block-image{ margin:2.25rem 0 }
.post__body figure.wp-block-image img{ width:100%; height:auto; display:block }
.post__body figure.wp-block-image figcaption{ margin:0; padding:.75rem 0 0 }
/* media stays flush with the text column */
.post__body>.wp-block-table,.post__body>figure.wp-block-image{ width:100%; margin-left:0; margin-right:0 }
/* headings: gold bar, stronger rhythm */
.post__body>h2{ margin-top:3rem; font-size:clamp(1.6rem,1.2rem+1.4vw,2.2rem) }
.post__body>h2::after{ content:""; display:block; width:56px; height:4px; background:var(--gold); margin-top:.55rem }
/* answer box: labeled */
.post__body .post-answer{ position:relative; padding-top:2.6rem }
.post__body .post-answer::before{ content:"The short answer"; position:absolute; top:1rem; left:1.3rem; font-family:var(--mono); font-weight:600; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep) }
/* list markers */
.post__body li::marker{ color:var(--gold-deep); font-weight:700 }
.post__body ol{ padding-left:1.5rem } .post__body ol li{ padding-left:.35rem }
/* in-body FAQ: framed group look */
.post__body .cve-faq-item{ border:1px solid var(--line); border-bottom:0; background:var(--white) }
.post__body .cve-faq-item+.cve-faq-item{ margin-top:0 }
.post__body details.cve-faq-item:last-of-type{ border-bottom:1px solid var(--line) }
/* featured hero: clean, no frame */
/* post CTA band: full polish */
.post__body .post-cta{ border-left:5px solid var(--gold); text-align:left; padding:2.25rem 2rem; display:flex; flex-direction:column; gap:1.4rem }
.post__body .post-cta p{ margin:0; font-size:1.3rem; line-height:1.45; max-width:38rem }
.post__body .post-cta .wp-block-buttons{ justify-content:flex-start; gap:.75rem }
/* explicit button colors: article link color must never bleed in */
.post__body .post-cta .wp-block-button__link{ display:inline-flex; align-items:center; background:var(--gold); color:var(--ink); font-family:var(--mono); font-size:.85rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:.95rem 1.6rem; border:1px solid var(--gold); border-radius:0 }
.post__body .post-cta .is-style-outline .wp-block-button__link,.post__body .post-cta .wp-block-button.is-style-outline>.wp-block-button__link{ background:transparent; color:var(--white); border-color:rgba(252,251,248,.45) }
.post__body .post-cta .wp-block-button__link:hover{ background:var(--gold-deep); border-color:var(--gold-deep); color:var(--white) }
.post__body .post-cta .is-style-outline .wp-block-button__link:hover{ background:rgba(252,251,248,.08); color:var(--white); border-color:var(--white) }
/* buttons inside post body never inherit the article link underline */
.post__body a.btn,.post__body .wp-block-button__link{ text-decoration:none }

/* ---- "From the guide" band on service pages ---- */
.sec--guide{ border-top:1px solid var(--line) }
.guidex{ margin-top:2.5rem; display:grid; gap:1.25rem }
@media(min-width:860px){ .guidex{ grid-template-columns:repeat(3,1fr) } }
.guidex__card{ display:flex; flex-direction:column; gap:.6rem; padding:1.6rem 1.5rem 1.4rem; background:var(--white); border:1px solid var(--line); border-top:4px solid var(--gold); text-decoration:none; transition:transform .18s ease, box-shadow .18s ease }
.guidex__card:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -18px rgba(26,23,20,.35) }
.guidex__kicker{ font-family:var(--mono); font-size:.66rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep) }
.guidex__card h3{ font-family:var(--disp); font-weight:700; font-size:1.2rem; line-height:1.25; color:var(--ink); margin:0 }
.guidex__card p{ font-size:.92rem; line-height:1.55; color:var(--stone); margin:0; flex:1 }
.guidex__more{ font-family:var(--mono); font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); display:inline-flex; align-items:center; gap:.45rem; margin-top:.35rem }
.guidex__more .ico{ width:.9rem; height:.9rem; transition:transform .18s ease }
.guidex__card:hover .guidex__more .ico{ transform:translateX(3px) }

/* a11y: --stone fails AA on the dark footer; use a lighter warm gray there */
.site-footer .footer-meta,.site-footer__bar p{ color:#948A7C }

/* ---- Google Maps embed ---- */
.mapx{ margin-top:2.25rem; border:1px solid var(--line); border-bottom:4px solid var(--gold); background:var(--paper-2) }
.mapx iframe{ display:block; width:100%; height:420px; border:0 }
@media(max-width:700px){ .mapx iframe{ height:320px } }

/* footer credit link inherits the AA-safe bar styling */
.site-footer__credit a{ color:#948A7C; text-decoration:underline; text-underline-offset:2px }
.site-footer__credit a:hover{ color:#FCFBF8 }
