/**
 * SiliconWhiz · Home Services · "Hi-Vis" system v1.0 — tokens.
 *
 * Neutral Apple ramp. One accent, one meaning: orange marks a call SiliconWhiz
 * caught. CTA, links, focus, data — nowhere else.
 *
 * Loaded only on Home Services pages (hs_is_page()). Holds:
 *   1. the light and dark token sets (copied from SiliconWhiz-HomeServices.html),
 *   2. the HS Elementor globals, re-pointed at the tokens so dark mode and the
 *      .hs-inv band follow automatically,
 *   3. base type for body.hs-page,
 *   4. the utility classes the build guide puts on Elementor containers and widgets.
 *
 * @package SiliconWhiz
 */

/* ═══════════ 1 · TOKENS ═══════════ */
:root{
  color-scheme:light;
  --bg:#FFFFFF; --bg-2:#F5F5F7; --card:#FFFFFF; --elev:#FFFFFF; --sunk:#F5F5F7;
  --hdr:rgba(255,255,255,.82);
  --txt:#1D1D1F; --txt-2:#424245; --txt-3:#6E6E73;
  --line:rgba(0,0,0,.08); --line-2:rgba(0,0,0,.14); --line-3:rgba(0,0,0,.22);
  --acc-fill:#C24E0E; --acc-on:#FFFFFF; --acc-ink:#B3460A; --acc-mark:#D95A16;
  --acc-wash:rgba(217,90,22,.10); --acc-wash-2:rgba(217,90,22,.18); --acc-bloom:rgba(217,90,22,.16);
  --bad:#C4122F; --bad-wash:rgba(196,18,47,.08);
  --mark-team:#424245; --mark-miss:#6E6E73;
  --shadow:0 24px 60px -28px rgba(0,0,0,.22), 0 2px 6px -2px rgba(0,0,0,.06);
  --thumb:#FFFFFF;
  --f-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-mono:"SF Mono",ui-monospace,Menlo,"JetBrains Mono","IBM Plex Mono",Consolas,monospace;
  --fs-display:clamp(44px,6.4vw,88px); --fs-h2:clamp(32px,4.2vw,56px); --fs-h3:24px;
  --fs-lead:clamp(19px,1.6vw,22px); --fs-body:17px; --fs-cap:13px;
  --sec:clamp(84px,10vw,168px); --wrap:1200px; --gut:24px;
  --r-s:8px; --r-m:14px; --r-l:22px;
  --ease:cubic-bezier(.16,1,.3,1); --t-ui:180ms; --t-rv:600ms;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#000000; --bg-2:#0A0A0C; --card:#141417; --elev:#1D1D1F; --sunk:#0A0A0C;
    --hdr:rgba(0,0,0,.74);
    --txt:#F5F5F7; --txt-2:#A1A1A6; --txt-3:#86868B;
    --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16); --line-3:rgba(255,255,255,.26);
    --acc-fill:#FF7417; --acc-on:#0A0A0A; --acc-ink:#FF8A3D; --acc-mark:#FF7417;
    --acc-wash:rgba(255,116,23,.12); --acc-wash-2:rgba(255,116,23,.22); --acc-bloom:rgba(255,116,23,.20);
    --bad:#FF6B6B; --bad-wash:rgba(255,107,107,.10);
    --mark-team:#A1A1A6; --mark-miss:#86868B;
    --shadow:0 30px 80px -30px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.04);
  }
}
:root[data-theme="dark"], .hs-inv{
  color-scheme:dark;
  --bg:#000000; --bg-2:#0A0A0C; --card:#141417; --elev:#1D1D1F; --sunk:#0A0A0C;
  --hdr:rgba(0,0,0,.74);
  --txt:#F5F5F7; --txt-2:#A1A1A6; --txt-3:#86868B;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16); --line-3:rgba(255,255,255,.26);
  --acc-fill:#FF7417; --acc-on:#0A0A0A; --acc-ink:#FF8A3D; --acc-mark:#FF7417;
  --acc-wash:rgba(255,116,23,.12); --acc-wash-2:rgba(255,116,23,.22); --acc-bloom:rgba(255,116,23,.20);
  --bad:#FF6B6B; --bad-wash:rgba(255,107,107,.10);
  --mark-team:#A1A1A6; --mark-miss:#86868B;
  --shadow:0 30px 80px -30px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.04);
}

/* ═══════════ 2 · ELEMENTOR GLOBALS → TOKENS ═══════════
   The HS globals live in Site Settings › Global Colors (ids hs…). Elementor
   prints them on body.elementor-kit-<id>; re-pointing them here at the tokens
   means the light value, the dark value and the always-dark .hs-inv band all
   come from one place, and no kit id has to be copied into this file.
   Declared on .hs-inv as well, because a custom property is resolved where it
   is declared — the band needs its own copy to pick up its dark tokens. */
body.hs-page, .hs-page .hs-inv{
  --e-global-color-hsprimary:var(--acc-fill);
  --e-global-color-hsaccent:var(--acc-ink);
  --e-global-color-hstext:var(--txt-2);
  --e-global-color-hssecondary:var(--txt-3);
  --e-global-color-hsink:var(--txt);
  --e-global-color-hscanvas:var(--bg);
  --e-global-color-hsband:var(--bg-2);
  --e-global-color-hscard:var(--card);
  --e-global-color-hselevated:var(--elev);
  --e-global-color-hsline:var(--line);
  --e-global-color-hsline2:var(--line-2);
  --e-global-color-hsacclabel:var(--acc-on);
  --e-global-color-hsaccmark:var(--acc-mark);
  --e-global-color-hserror:var(--bad);
}

/* ═══════════ 3 · BASE ═══════════ */
body.hs-page{margin:0;background:var(--bg);color:var(--txt);font:400 var(--fs-body)/1.5 var(--f-sans);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
html:has(body.hs-page){-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Element rules stay at element weight via :where(), as in the design file. */
:where(.hs-page) *,:where(.hs-page) *::before,:where(.hs-page) *::after{box-sizing:border-box}
:where(.hs-page) :where(a){color:var(--acc-ink);text-decoration:none}
:where(.hs-page) :where(a:hover){text-decoration:underline;text-underline-offset:3px}
:where(.hs-page) :where(button,input,select,textarea){font:inherit;color:inherit}
:where(.hs-page) :where(button){cursor:pointer}
.hs-page :focus-visible{outline:2px solid var(--acc-mark);outline-offset:3px;border-radius:6px}
.hs-page ::selection{background:var(--acc-wash-2)}
.hs-page [hidden]{display:none!important}
.hs-page [tabindex="-1"]:focus{outline:none}
.hs-page section[id],.hs-page .e-con[id]{scroll-margin-top:72px}
.hs-page main{display:block}
/* Inside components (shortcodes, header, footer) the design's resets apply. */
/* :where() keeps these at element weight, as in the design file, so every
   component class still overrides them. */
:where(.hs-c) :where(h1,h2,h3,h4){margin:0;font-weight:600;letter-spacing:-.028em;line-height:1.08;text-wrap:balance}
:where(.hs-c) :where(p){margin:0;text-wrap:pretty}
:where(.hs-c) :where(ul,ol){margin:0;padding:0;list-style:none}
:where(.hs-c) :where(img,svg){display:block;max-width:100%}
.hs-num{font-variant-numeric:tabular-nums}
.hs-mono{font-family:var(--f-mono);font-size:.86em;letter-spacing:0}
.hs-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hs-page .skip{position:absolute;left:16px;top:-60px;z-index:200;background:var(--acc-fill);color:var(--acc-on);
  padding:10px 16px;border-radius:999px;font-weight:600;transition:top var(--t-ui) var(--ease)}
.hs-page .skip:focus{top:12px}

/* Elementor widget type follows the HS globals; these keep the design's
   behaviour the globals can't express. Overrides of a heading's size use
   body.hs-page .e-con …, which outranks Elementor's per-element rule
   (.elementor-N .elementor-element.elementor-element-x …) whatever the load order. */
body.hs-page .e-con .elementor-heading-title{text-wrap:balance}
.hs-page .elementor-widget-text-editor p{text-wrap:pretty}
.hs-page .elementor-widget-text-editor p{margin:0}
.hs-page .elementor-widget-text-editor p + p{margin-top:1em}
.hs-page .elementor-widget-text-editor sup{font-size:.6em;line-height:0}

/* ═══════════ 4 · UTILITY CLASSES (Elementor) ═══════════ */

/* Sections: every top-level container. */
.hs-page .e-con.hs-sec{
  --padding-top:var(--sec); --padding-bottom:var(--sec);
  --padding-left:var(--gut); --padding-right:var(--gut);
  --content-width:calc(var(--wrap) - 2 * var(--gut));
  --gap:0px;--row-gap:0px;--column-gap:0px; --row-gap:0px; --column-gap:0px;
  background:var(--bg);
}
.hs-page .e-con.hs-sec--alt{background:var(--bg-2)}
.hs-page .e-con.hs-sec--tight{--padding-top:0px}
/* The hero sections are tighter than a band, as in the design. */
.hs-page .e-con.hs-hero{--padding-top:clamp(72px,9vw,136px);--padding-bottom:clamp(56px,7vw,104px);text-align:center;overflow:hidden}
.hs-page .e-con.hs-thero{--padding-top:clamp(72px,9vw,136px);--padding-bottom:clamp(64px,8vw,112px);text-align:center}
.hs-page .e-con.hs-nf{--padding-top:clamp(96px,14vw,200px);--padding-bottom:clamp(96px,14vw,200px);text-align:center}
/* One full-contrast band per page. Dark tokens come from section 1. */
.hs-page .e-con.hs-inv{background:var(--bg-2);border-top:1px solid var(--line);color:var(--txt);text-align:center}

/* A section's heading group. */
.hs-page .e-con.hs-head{--gap:20px;--row-gap:20px;text-align:center;max-width:860px;width:100%;margin:0 auto clamp(44px,5.4vw,72px);
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-head .hs-lead{max-width:680px;margin-left:auto;margin-right:auto}
.hs-page .e-con.hs-head--flush{margin-bottom:0}

/* Two-tone headline: the second line, gray, on its own line. */
.hs-page .hs-tone{display:block;color:var(--txt-3)}

/* Widget roles. */
body.hs-page .e-con .hs-kick .elementor-heading-title{display:block}
.hs-page .elementor-element.hs-kick{margin-bottom:18px}
.hs-page .elementor-element.hs-lead{max-width:720px;margin-left:auto;margin-right:auto;margin-top:28px}
.hs-page .hs-head .elementor-element.hs-lead{margin-top:0}
.hs-page .elementor-element.hs-lead--l{margin-left:0;margin-right:0}
.hs-page .elementor-element.hs-hero-h{max-width:1000px;margin-left:auto;margin-right:auto}
.hs-page .elementor-element.hs-cap{text-align:center;margin-top:28px}
.hs-page .hs-cap{color:var(--txt-3)}

/* A row of actions: one filled pill + one chevron link. */
.hs-page .e-con.hs-acts{--display:flex;--flex-direction:row;--flex-wrap:wrap;--justify-content:center;--align-items:center;
  --gap:12px 30px;--row-gap:12px;--column-gap:30px;margin-top:36px;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;width:100%}
.hs-page .e-con.hs-acts--l{--justify-content:flex-start}
.hs-page .e-con.hs-acts > .elementor-element{width:auto}

/* Buttons. The Elementor Button widget is the filled pill by default on HS
   pages; .hs-lnk and .hs-btn-ghost are its two other faces. */
.hs-page .elementor-widget-button .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;
  padding:12px 24px;border-radius:999px;border:0;background:var(--acc-fill);color:var(--acc-on);font-family:inherit;font-weight:600;font-size:17px;
  letter-spacing:-.01em;line-height:1.1;text-decoration:none;white-space:nowrap;fill:currentColor;
  transition:transform var(--t-ui) var(--ease),filter var(--t-ui) var(--ease)}
.hs-page .elementor-widget-button .elementor-button:hover{text-decoration:none;filter:brightness(1.07);color:var(--acc-on)}
.hs-page .elementor-widget-button .elementor-button:active{transform:scale(.98)}
.hs-page .hs-btn-sm .elementor-button{min-height:36px;padding:8px 16px;font-size:15px}
.hs-page .hs-btn-ghost .elementor-button{background:transparent;color:var(--txt);box-shadow:inset 0 0 0 1px var(--line-2)}
.hs-page .hs-btn-ghost .elementor-button:hover{filter:none;color:var(--txt);box-shadow:inset 0 0 0 1px var(--line-3)}
.hs-page .hs-lnk .elementor-button{min-height:44px;padding:0;background:none;color:var(--acc-ink);font-weight:500;border-radius:0}
.hs-page .hs-lnk .elementor-button:hover{filter:none;color:var(--acc-ink);text-decoration:underline;text-underline-offset:3px}
/* Text first, chevron after — whatever the widget's icon position says. */
.hs-page .hs-lnk .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:4px;flex-direction:row!important}
.hs-page .hs-lnk .elementor-button-icon{order:2;display:inline-flex;transition:transform var(--t-ui) var(--ease)}
.hs-page .hs-lnk .elementor-button-icon svg{width:15px;height:15px}
.hs-page .hs-lnk .elementor-button:hover .elementor-button-icon{transform:translateX(3px)}
.hs-page .elementor-button .elementor-button-icon svg{fill:currentColor}

/* Cards and the spec strip. */
.hs-page .e-con.hs-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);overflow:hidden}
.hs-page .e-con.hs-spec{--display:grid;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:clamp(64px,8vw,104px) auto 0;max-width:1120px;width:100%;
  border-top:1px solid var(--line);text-align:left;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-spec > .e-con{padding:28px 24px 8px;border-left:1px solid var(--line);--gap:12px;--row-gap:12px;--column-gap:12px}
.hs-page .hs-spec > .e-con:first-child{border-left:0;padding-left:0}
body.hs-page .e-con .hs-spec .hs-spec-n .elementor-heading-title{font-size:clamp(40px,4.6vw,60px);font-weight:600;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;color:var(--txt)}
.hs-page .hs-spec .hs-spec-n small{font-size:.5em;letter-spacing:-.02em;margin-left:2px}
.hs-page .hs-spec .hs-spec-l{font-size:14px;line-height:1.45;color:var(--txt-2);max-width:240px}
@media (max-width:900px){
  .hs-page .e-con.hs-spec{grid-template-columns:1fr 1fr}
  .hs-page .hs-spec > .e-con:nth-child(3){border-left:0;padding-left:0}
  .hs-page .hs-spec > .e-con:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:340px){
  .hs-page .e-con.hs-spec{grid-template-columns:1fr}
  .hs-page .hs-spec > .e-con{border-left:0!important;padding-left:0;border-top:1px solid var(--line)}
  .hs-page .hs-spec > .e-con:first-child{border-top:0}
}

/* The object under the hero (the traced call), with its orange bloom. */
.hs-page .elementor-element.hs-hero-obj{position:relative;margin:clamp(56px,7vw,96px) auto 0;max-width:1040px;width:100%}

/* Two-column rows: 5/7 (tabs), 5/6 (keep your software), 6/5 (recovery hero, audit). */
.hs-page .e-con.hs-row{--display:grid;display:grid;gap:clamp(32px,5vw,80px);align-items:center;width:100%;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .e-con.hs-row--57{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.hs-page .e-con.hs-row--56{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px)}
.hs-page .e-con.hs-row--65{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,96px)}
.hs-page .e-con.hs-row > .e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px;min-width:0}
@media (max-width:900px){ .hs-page .e-con.hs-row{grid-template-columns:minmax(0,1fr)} }
body.hs-page .e-con .hs-row .hs-h3big .elementor-heading-title{font-size:clamp(28px,3vw,40px);letter-spacing:-.032em}
.hs-page .hs-row .elementor-element.hs-p{margin-top:16px}
.hs-page .hs-row .elementor-element.hs-by{margin-top:14px}
.hs-page .hs-row .elementor-element.hs-lead--l{margin-top:22px}

/* Pillar tabs (Nested Tabs) as the design's segmented control. */
.hs-page .hs-tabs .e-n-tabs{--n-tabs-title-gap:0px;--n-tabs-gap:0px}
.hs-page .hs-tabs .e-n-tabs-heading{display:inline-flex;align-self:center;justify-content:center;padding:4px;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:999px;
  margin:0 auto clamp(36px,4vw,56px);width:auto;max-width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.hs-page .hs-tabs .e-n-tab-title{min-height:40px;padding:8px 18px;border-radius:999px;border:0;background:transparent;color:var(--txt-2);font-size:15px;font-weight:500;
  letter-spacing:-.01em;white-space:nowrap;flex:none;transition:background var(--t-ui) var(--ease),color var(--t-ui) var(--ease)}
.hs-page .hs-tabs .e-n-tab-title:hover{color:var(--txt);background:transparent}
.hs-page .hs-tabs .e-n-tab-title[aria-selected="true"]{background:var(--elev);color:var(--txt);box-shadow:0 1px 2px rgba(0,0,0,.12),0 0 0 1px var(--line)}
.hs-page .hs-tabs .e-n-tab-title-text{font:inherit;color:inherit}
.hs-page .hs-tabs .e-n-tabs-content > .e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;border:0}
@media (max-width:420px){ .hs-page .hs-tabs .e-n-tab-title{padding:8px 13px;font-size:14px} }

/* Feature list with icons (the .inc list inside a tab), as a Text Editor list. */
.hs-page .hs-inc ul{margin:26px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.hs-page .hs-inc li{display:flex;flex-direction:column;padding:13px 0 13px 32px;border-bottom:1px solid var(--line);color:var(--txt);font-size:16px;line-height:1.4;position:relative}
.hs-page .hs-inc li::before{content:"";position:absolute;left:0;top:15px;width:20px;height:20px;background:var(--txt-3);
  -webkit-mask:var(--hs-ic,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5.5 12.5 4 4 9-9.5'/%3E%3C/svg%3E")) center/contain no-repeat;
  mask:var(--hs-ic,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5.5 12.5 4 4 9-9.5'/%3E%3C/svg%3E")) center/contain no-repeat}
.hs-page .hs-inc li small{display:block;color:var(--txt-3);font-size:13.5px;margin-top:2px}

/* Chips (How it works timeline). */
.hs-page .hs-chip,.hs-c .hs-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:12.5px;font-weight:500;background:var(--sunk);
  border:1px solid var(--line);color:var(--txt-2);white-space:nowrap}
.hs-page .hs-chips p{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}

/* Timeline rows (How it works, Roofing): 140px / 1fr. */
.hs-page .e-con.hs-tl{max-width:980px;width:100%;margin:0 auto;--gap:0px;--row-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-tl > .e-con{--display:grid;display:grid;grid-template-columns:140px 1fr;gap:32px;padding:28px 0;border-top:1px solid var(--line)}
.hs-page .hs-tl > .e-con:last-child{border-bottom:1px solid var(--line)}
.hs-page .hs-tl > .e-con > .e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px;min-width:0}
body.hs-page .e-con .hs-tl-d .elementor-heading-title{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1.5}
body.hs-page .e-con .hs-tl-key .hs-tl-d .elementor-heading-title{color:var(--acc-ink)}
.hs-page .hs-tl-stage{font-size:13px;color:var(--txt-3);margin-top:2px}
body.hs-page .e-con .hs-tl .hs-tl-h .elementor-heading-title{font-size:22px;letter-spacing:-.02em;line-height:1.08}
.hs-page .hs-tl .elementor-element.hs-tl-p{margin-top:8px}
@media (max-width:640px){ .hs-page .hs-tl > .e-con{grid-template-columns:1fr;gap:8px} }

/* Will / won't (two Icon List widgets). */
.hs-page .e-con.hs-ww{--display:grid;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);max-width:1080px;width:100%;margin:0 auto;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-ww > .e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
body.hs-page .e-con .hs-ww .hs-ww-h .elementor-heading-title{font-size:22px;letter-spacing:-.02em;padding-bottom:14px;border-bottom:1px solid var(--line-2);line-height:1.08}
.hs-page .hs-ww .elementor-icon-list-items{margin:0;padding:0}
.hs-page .hs-ww .elementor-icon-list-item{padding:14px 0!important;margin:0!important;border-bottom:1px solid var(--line);color:var(--txt);font-size:16px;align-items:flex-start!important;gap:12px}
.hs-page .hs-ww .elementor-icon-list-item::after{display:none!important}
.hs-page .hs-ww .elementor-icon-list-icon{padding-top:2px}
.hs-page .hs-ww .elementor-icon-list-icon svg{width:20px;height:20px;fill:var(--txt-3)}
.hs-page .hs-ww .elementor-icon-list-text{color:var(--txt);padding-left:0}
@media (max-width:760px){ .hs-page .e-con.hs-ww{grid-template-columns:1fr} }

/* What we set up (trade pages): a 2-column grid of Icon Box widgets. */
.hs-page .e-con.hs-set{--display:grid;display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(32px,6vw,96px);row-gap:0;max-width:1080px;width:100%;margin:0 auto;
  border-top:1px solid var(--line);--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-set > .elementor-element{padding:22px 0;border-bottom:1px solid var(--line);width:auto}
.hs-page .hs-set .elementor-icon-box-wrapper{display:grid!important;grid-template-columns:28px 1fr;gap:12px;text-align:left}
.hs-page .hs-set .elementor-icon-box-icon{margin:2px 0 0!important}
.hs-page .hs-set .elementor-icon{color:var(--txt-3);fill:var(--txt-3);font-size:20px}
.hs-page .hs-set .elementor-icon svg{width:20px;height:20px}
.hs-page .hs-set .elementor-icon-box-title{margin:0;font-size:18px;font-weight:600;letter-spacing:-.016em;line-height:1.3;color:var(--txt)}
.hs-page .hs-set .elementor-icon-box-description{margin:6px 0 0;color:var(--txt-2);font-size:15.5px;line-height:1.5}
@media (max-width:760px){ .hs-page .e-con.hs-set{grid-template-columns:1fr} }

/* FAQ (Nested Accordion): plus icon, rotated 45° when open. */
.hs-page .hs-faq{max-width:860px;width:100%;margin:0 auto}
.hs-page .hs-faq .e-n-accordion{border-top:1px solid var(--line)}
.hs-page .hs-faq .e-n-accordion-item{border-bottom:1px solid var(--line);margin:0}
.hs-page .hs-faq .e-n-accordion-item-title{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:16px 0;border:0;background:none;
  font-size:18px;font-weight:500;letter-spacing:-.016em;color:var(--txt)}
.hs-page .hs-faq .e-n-accordion-item-title-text{font:inherit;color:inherit}
.hs-page .hs-faq .e-n-accordion-item-title-icon{color:var(--txt-3);fill:var(--txt-3);transition:transform var(--t-ui) var(--ease)}
.hs-page .hs-faq .e-n-accordion-item-title-icon svg{width:20px;height:20px}
.hs-page .hs-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon{transform:rotate(45deg)}
.hs-page .hs-faq .e-n-accordion-item-title-icon .e-closed{display:flex}
.hs-page .hs-faq .e-n-accordion-item-title-icon .e-opened{display:none!important}
.hs-page .hs-faq .e-n-accordion-item > .e-con{border:0;--padding-top:0px;--padding-left:0px;--padding-right:40px;--padding-bottom:22px}
.hs-page .hs-faq .e-n-accordion-item > .e-con .elementor-widget-text-editor{color:var(--txt-2)}

/* Numbered steps (Missed-Call Recovery hero), a Text Editor ordered list. */
.hs-page .hs-steps ol{margin:28px 0 0;padding:0;list-style:none;border-top:1px solid var(--line);counter-reset:s;text-align:left}
.hs-page .hs-steps li{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);counter-increment:s}
.hs-page .hs-steps li::before{content:counter(s,decimal-leading-zero);font-size:13px;font-weight:600;color:var(--txt-3);padding-top:3px;font-variant-numeric:tabular-nums}
.hs-page .hs-steps b,.hs-page .hs-steps strong{display:block;font-weight:600;color:var(--txt)}
.hs-page .hs-steps li div > span{color:var(--txt-2);font-size:15.5px}

/* Free audit: intro / form / sample, with the form spanning both rows. */
.hs-page .e-con.hs-aud{--display:grid;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-areas:"intro form" "sample form";
  column-gap:clamp(32px,5vw,72px);row-gap:44px;align-items:start;width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .hs-aud > .hs-aud-intro{grid-area:intro;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px;text-align:left}
.hs-page .hs-aud > .hs-aud-form{grid-area:form;grid-row:span 2;position:sticky;top:84px}
.hs-page .hs-aud > .hs-aud-sample{grid-area:sample}
@media (max-width:960px){
  .hs-page .e-con.hs-aud{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "form" "sample";row-gap:36px}
  .hs-page .hs-aud > .hs-aud-form{position:static;grid-row:auto}
}
.hs-page .e-con.hs-sec.hs-aud-sec{--padding-top:clamp(56px,7vw,104px)}

/* Width caps used by single blocks. */
.hs-page .elementor-element.hs-w880{max-width:880px;width:100%;margin-left:auto;margin-right:auto}
.hs-page .elementor-element.hs-left{text-align:left}

/* Reduced motion: final state, always. */
@media (prefers-reduced-motion:reduce){
  .hs-page *,.hs-page *::before,.hs-page *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* Segmented controls sit on the card colour inside an alternate band. */
.hs-page .hs-sec--alt .hs-seg{background:var(--card)}

/* Header, footer and fallback 404 are theme markup, not Elementor containers. */
.hs-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
/* From an Elementor template the header sits inside Elementor's wrappers, where
   sticky would only stick within its own box: the outer wrapper sticks instead. */
.hs-part--header{position:sticky;top:0;z-index:100}
.hs-part--header .hs-hdr{position:relative;top:auto}
.hs-part--header .e-con,.hs-part--footer .e-con,.hs-part--404 .e-con.hs-tpl-row{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--content-width:100%}
.hs-page .elementor-widget-sw-hs-header,.hs-page .elementor-widget-sw-hs-footer{width:100%}
/* Fallback 404 (no Elementor template assigned). */
.hs-nf-fb{text-align:center;padding:clamp(96px,14vw,200px) 0}
.hs-nf-fb .hs-h-display .hs-tone{display:block}
.hs-nf-fb .hs-lead{margin:24px auto 0;max-width:560px}
.hs-nf-fb .hs-acts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px 30px;margin-top:36px}

/* Icons in Text Editor feature lists: <li class="hs-i-pin">. Masks of the design's line icons. */
.hs-page .hs-inc li.hs-i-pin{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.4'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-shield{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 5 6v5.5c0 4.4 3 7.6 7 9 4-1.4 7-4.6 7-9V6Z'/%3E%3Cpath d='m9 12 2.2 2.2L15.5 10'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-star{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 4 2.4 4.9 5.4.8-3.9 3.8.9 5.4L12 16.4l-4.8 2.5.9-5.4-3.9-3.8 5.4-.8Z'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-home{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11 12 4.5 20 11'/%3E%3Cpath d='M6 9.5V20h12V9.5'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-phone{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l1.6 4.2-2.1 1.4a11 11 0 0 0 6.4 6.4l1.4-2.1L20 15.5V19a1.5 1.5 0 0 1-1.6 1.5A16 16 0 0 1 3.5 5.6 1.5 1.5 0 0 1 5 4Z'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-msg{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 5.5h15a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H10l-4.5 3.5v-3.5h-1a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1Z'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-receipt{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3.5h12v17l-3-1.8-3 1.8-3-1.8-3 1.8Z'/%3E%3Cpath d='M9 8.5h6M9 12h6M9 15.5h3.5'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-bolt{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 3 5.5 13.5H12L11 21l7.5-10.5H12Z'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-chart{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16M7 16v-5M12 16V7M17 16v-8'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-link{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1'/%3E%3Cpath d='M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-cal{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5.5' width='16' height='14.5' rx='2'/%3E%3Cpath d='M4 10h16M8.5 3.5v4M15.5 3.5v4'/%3E%3C/svg%3E")}
.hs-page .hs-inc li.hs-i-check{--hs-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5.5 12.5 4 4 9-9.5'/%3E%3C/svg%3E")}

/* The design's line icons, imported as SVG for Elementor icon controls: stroke, never fill. */
.hs-page .hs-set .elementor-icon svg,.hs-page .hs-ww .elementor-icon-list-icon svg,
.hs-page .hs-faq .e-n-accordion-item-title-icon svg,.hs-page .elementor-button-icon svg{fill:none!important;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hs-page .hs-set .elementor-icon,.hs-page .hs-ww .elementor-icon-list-icon{color:var(--txt-3)}
.hs-page .hs-ww .elementor-icon-list-icon svg{fill:none!important}

/* Page-specific caps and spacing the builder uses. */
body.hs-page .e-con .hs-h1-76 .elementor-heading-title{font-size:clamp(44px,5.6vw,76px)}
body.hs-page .e-con .hs-h1-72 .elementor-heading-title{font-size:clamp(40px,5.2vw,72px)}
.hs-page .elementor-element.hs-h1-76 + .hs-lead,.hs-page .elementor-element.hs-h1-72 + .hs-lead{margin-top:24px}
.hs-page .elementor-element.hs-vm-gap{margin-top:clamp(64px,8vw,112px)}
.hs-page .e-con.hs-note-band{max-width:820px;width:100%;margin:56px auto 0;text-align:center;align-items:center;--gap:0px;--row-gap:0px;--column-gap:0px;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.hs-page .e-con.hs-left{text-align:left}
.hs-page .e-con.hs-sec.hs-tpl-row{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--content-width:100%;background:transparent}
.hs-page .hs-inv .elementor-element.hs-lead{max-width:640px;margin-top:22px}
.hs-page .hs-aud-intro .hs-x-audit_slots{margin-top:0}

/* Width caps. Elementor gives every widget in a container max-width:100%,
   so the caps need the container in the selector to win. Top-level sections
   are boxed, so their widgets sit in .e-con-inner. */
.hs-page :is(.e-con,.e-con-inner) > .elementor-element.hs-lead{max-width:720px}
.hs-page .e-con.hs-head > .elementor-element.hs-lead{max-width:680px}
.hs-page .hs-inv :is(.e-con,.e-con-inner) > .elementor-element.hs-lead{max-width:640px}
.hs-page :is(.e-con,.e-con-inner) > .elementor-element.hs-lead--l{max-width:none}
.hs-page :is(.e-con,.e-con-inner) > .elementor-element.hs-hero-h{max-width:1000px}
.hs-page :is(.e-con,.e-con-inner) > .elementor-element.hs-w880{max-width:880px}
.hs-page .hs-nf :is(.e-con,.e-con-inner) > .elementor-element.hs-lead{margin-top:24px;max-width:560px}
.hs-page .hs-spec .hs-spec-l sup{font-size:10px;line-height:normal;color:var(--txt-3);margin-left:1px}
