/* Hardware v2 (page-hardware-v2.php). Builds on css/home-v5.css (.v5 tokens, Averta, .v5-btn, .v5-faq).
   Rule: copy in the page, technical details only in the spec drawers (.hv2-drawer). */
.v5.hv2 { background:#fff; }
.v5.hv2 h2 { font-size:clamp(28px, min(3.2vw, 5.6vh), 46px); line-height:1.12; letter-spacing:-.012em; margin:0; }
.v5.hv2 h2 span { color:#2f7fb8; }
.hv2-head { text-align:center; max-width:820px; margin:0 auto clamp(32px, 5vh, 56px); }
.hv2-head .v5-eyebrow { justify-content:center; }
.v5.hv2 .hv2-sub { margin-top:14px; font-size:clamp(16px, 1.3vw, 19px); color:var(--body); }
.hv2-link { display:inline-flex; align-items:center; gap:8px; min-height:48px; font-weight:600; color:#2f7fb8 !important; font-size:16px; }
.hv2-link:hover { text-decoration:underline !important; text-underline-offset:4px; }

/* The one door to the specs: a clearly labelled, deliberately quiet button */
.hv2-specbtn { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:8px 16px 8px 12px; border:1px dashed #B9C2DA; border-radius:12px; background:#F7F8FC; color:#4A5175 !important; font-size:14.5px; font-weight:600; line-height:1.3; transition:background .2s, border-color .2s, color .2s; }
.hv2-specbtn .v5-i { color:#6B7395; }
.hv2-specbtn:hover { background:#EEF4FD; border-color:#4DAAE8; color:#1D1D1B !important; }
.hv2-specbtn:hover .v5-i { color:#2f7fb8; }

/* 1. Hero */
.hv2-hero { padding:clamp(28px, 5vh, 72px) 0 clamp(48px, 8vh, 96px); background:linear-gradient(180deg, #F7F9FC 0%, #fff 75%); }
.hv2-hero__grid { max-width:1360px; display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(32px, 4vw, 64px); align-items:center; }
.v5.hv2 .hv2-hero h1 { font-size:clamp(32px, min(3.5vw, 6.4vh), 54px); line-height:1.07; letter-spacing:-.015em; margin:0 0 20px; }
.v5.hv2 .hv2-hero h1 span { display:block; color:#2f7fb8; }
.v5.hv2 .hv2-lead { font-size:clamp(16px, 1.35vw, 19px); line-height:1.6; color:var(--body); max-width:540px; }
.hv2-cta { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin:28px 0 22px; }
.hv2-hero__art { margin:0; display:flex; flex-direction:column; align-items:center; }
.hv2-hero__art figcaption { margin-top:10px; font-size:13px; color:var(--faint); }
.hv2-counts { display:flex; width:100%; max-width:881px; margin-top:6px !important; }
.hv2-counts li { flex:1; text-align:center; padding:6px 8px; }
.hv2-counts li + li { border-left:1px solid #EBEBEB; }
.hv2-counts b { display:block; font-size:clamp(28px, 2.8vw, 44px); line-height:1.15; color:#58ae6a; font-weight:600; }
.hv2-counts em { font-style:normal; font-size:.72em; margin-left:2px; }
.hv2-counts span { display:block; margin-top:4px; font-size:clamp(13px, 1.1vw, 17px); color:var(--body); }

/* Hero kit cluster: copied verbatim from css/hardware-preview.css (.hw-kit block, lines 51-56) so the image and every
   proportion are identical to the current hardware hero. Only the outer width differs (833px there at Figma scale;
   here it fills its column up to 833px). All inner positions are percentages, so nothing else changes. */
.hw-kit { position:relative; width:833px; aspect-ratio:932/579; }
.hw-kit__img { position:absolute; left:0; top:-10.14%; width:102.61%; height:110.14%; object-fit:fill; }
.hw-kit__br { position:absolute; left:29.4%; width:1.7%; height:36%; border:2px solid #96cda3; border-left:0; border-radius:0 6px 6px 0; }
.hw-kit__br--1 { top:11.9%; } .hw-kit__br--2 { top:53.6%; }
.hw-kit__ln { position:absolute; height:2px; background:#96cda3; }
.hw-kit__ln--1 { left:31.1%; top:32.2%; width:3.1%; } .hw-kit__ln--2 { left:31.1%; top:73.9%; width:3.1%; } .hw-kit__ln--3 { left:76.6%; top:76.1%; width:8.1%; }
.hv2 .hw-kit { width:min(833px, 100%); margin-top:6%; }
.hv2 .hw-kit__img { display:block; max-width:none; }
html.hv2-js .hv2 .hw-kit__img { opacity:0; transform:translateY(24px) scale(.97); transition:opacity 1s ease .15s, transform 1.3s cubic-bezier(.2,.7,.2,1) .15s; }
html.hv2-js .hv2 .hw-kit.is-in .hw-kit__img { opacity:1; transform:none; }

/* 2. The truth (dark) */
.hv2-truth { background:#0E1424; color:#C9D1E8; padding:clamp(56px, 10vh, 120px) 0; }
.hv2-truth__in { max-width:920px; }
.v5.hv2 .hv2-truth h2 { color:#fff; }
.v5.hv2 .hv2-truth h2 span { color:#F7CA50; display:block; }
.hv2-truth__lines { margin-top:clamp(24px, 4vh, 40px) !important; display:grid; gap:14px; }
.hv2-truth__lines li { position:relative; padding-left:26px; font-size:clamp(17px, 1.45vw, 21px); line-height:1.5; }
.hv2-truth__lines li::before { content:""; position:absolute; left:0; top:.6em; width:10px; height:10px; border-radius:50%; background:#DB4B46; }
.hv2-truth__lines li:nth-child(2)::before { background:#F7CA50; } .hv2-truth__lines li:nth-child(3)::before { background:#4DAAE8; }
.v5.hv2 .hv2-truth__pay { margin-top:clamp(28px, 4.5vh, 44px); font-size:clamp(22px, 2.2vw, 32px); font-weight:600; color:#fff; line-height:1.25; }
.hv2-truth__pay span { color:#98C355; }

/* 3. Meet the kit */
.hv2-meet { padding:clamp(56px, 10vh, 120px) 0; }
.hv2-meet__cards { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(16px, 2vw, 28px); }
.hv2-meet__card { display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:20px 22px 22px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 24px 48px -40px rgba(13,23,88,.35); }
.hv2-meet__art { align-self:stretch; display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; border-radius:16px; background:#fff; border:1px solid #EEF0F6; margin-bottom:6px; overflow:hidden; }
.hv2-meet__art img { width:72%; height:auto; }
.v5.hv2 .hv2-meet__tag { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.v5.hv2 .hv2-meet__card h3 { font-size:clamp(20px, 1.7vw, 24px); line-height:1.2; margin:0; }
.v5.hv2 .hv2-meet__card > p:not(.hv2-meet__tag) { font-size:16px; line-height:1.6; flex:1; }
.hv2-meet__card .hv2-specbtn { margin-top:8px; }

/* 4. The electrician who never goes home */
.hv2-never { padding:clamp(56px, 10vh, 120px) 0; background:#F6F7FB; }
.hv2-never__grid { display:grid; grid-template-columns:minmax(0, 6fr) minmax(0, 5fr); gap:clamp(32px, 4vw, 64px); align-items:center; }
.v5.hv2 .hv2-never__copy h2 span { display:block; }
.v5.hv2 .hv2-never__copy p { margin-top:18px; font-size:clamp(16px, 1.3vw, 19px); line-height:1.65; }
.hv2-never__cards { display:grid; gap:14px; }
.hv2-never__cards li { display:flex; gap:14px; padding:18px 20px; border-radius:18px; background:#fff; border:1px solid var(--line); box-shadow:0 20px 40px -34px rgba(13,23,88,.35); }
.hv2-never__cards li .v5-i { width:20px; height:20px; }
.v5.hv2 .hv2-q { font-weight:600; color:var(--ink); margin-bottom:4px; }
.v5.hv2 .hv2-never__cards p { font-size:15px; line-height:1.5; }
.v5.hv2 .hv2-a { margin-top:8px; font-weight:600; color:#3649A8; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.hv2-never__note { grid-column:1 / -1; margin-top:0 !important; }

/* 5. Install */
.hv2-install { padding:clamp(56px, 10vh, 120px) 0; }
.hv2-install__steps { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(16px, 2vw, 28px); counter-reset:s; }
.hv2-install__steps li { position:relative; text-align:center; }
.hv2-install__art { display:block; border-radius:20px; background:#F6F7FB; overflow:hidden; aspect-ratio:1; }
.hv2-install__art img { width:100%; height:100%; object-fit:cover; }
.hv2-install__n { display:inline-flex; width:40px; height:40px; margin-top:-20px; position:relative; border-radius:50%; background:#1353e9; color:#fff; font-weight:600; align-items:center; justify-content:center; box-shadow:0 0 0 6px #fff; }
.v5.hv2 .hv2-install__steps h3 { margin:12px 0 6px; font-size:clamp(19px, 1.6vw, 22px); }
.v5.hv2 .hv2-install__steps p { font-size:16px; }

/* 6. Plan your kit (layout copied from ux-wow.css "Wow 3 v2", renamed) */
.hv2-kit { padding-block:clamp(48px, 9vh, 112px); background:linear-gradient(180deg, #fff, #F7F8FC); }
.hv2-kit__in { max-width:1360px; margin:0 auto; padding-inline:clamp(20px, 4vw, 40px); display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 7fr); gap:clamp(32px, 4.5vw, 80px); align-items:center; box-sizing:border-box; }
.v5.hv2 .hv2-kit__hint { margin-top:12px; font-size:15px; color:var(--muted); }
.hv2-kit__tog { display:inline-flex; gap:4px; margin-top:clamp(16px, 3vh, 26px); padding:4px; border-radius:999px; background:#EEF1F6; }
.hv2-kit__tog[hidden] { display:none; }
.hv2-kit__tog button { min-height:40px; padding:0 18px; border:0; border-radius:999px; background:transparent; font:600 15px/1 var(--font); color:#475467; cursor:pointer; transition:background .25s, color .25s, box-shadow .25s; }
.hv2-kit__tog button[aria-pressed="true"] { background:#fff; color:#0b121a; box-shadow:0 1px 3px rgba(16,24,40,.12); }
.hv2-kit__ctl { margin-top:clamp(16px, 3vh, 26px); }
.hv2-kit__lbl { display:block; font:600 16px/1.4 var(--font); color:#475467; }
.hv2-kit__lbl b { font-size:clamp(34px, 3vw, 48px); color:#0b121a; font-variant-numeric:tabular-nums; margin-right:4px; }
.hv2-kit input[type=range] { width:100%; margin:10px 0 6px; accent-color:#2F7D44; height:28px; cursor:pointer; }
.hv2-kit__ticks { display:flex; justify-content:space-between; font:500 13px/1 var(--font); color:#667085; }
.hv2-kit__acts { display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-top:clamp(22px, 4vh, 40px); }
.hv2-kit__art { display:grid; grid-template-columns:minmax(0, 1fr) minmax(300px, 350px); gap:clamp(16px, 2.4vw, 36px); align-items:center; }
.hv2-kit__equip { height:min(calc(100svh - var(--hdr, 84px) - 140px), 520px); min-height:280px; display:flex; align-items:flex-end; justify-content:center; }
.hv2-kit__equip > img { height:100%; width:auto; object-fit:contain; }
.hv2-kit__equip svg { display:block; width:100%; height:var(--eh, 100%); max-height:100%; transition:height .45s cubic-bezier(.2,.7,.2,1); filter:drop-shadow(0 18px 30px rgba(16,24,40,.12)); }
.hv2-kit__parts { display:grid; gap:clamp(10px, 1.8vh, 16px); }
.hv2-kit__part { display:grid; gap:8px; padding:12px 14px; border:1px solid #E7EAF3; border-radius:16px; background:#fff; }
.hv2-kit__pt { font:500 15px/1.3 var(--font); color:#344054; }
.hv2-kit__pt b { font-size:20px; color:#0b121a; font-variant-numeric:tabular-nums; margin-right:2px; }
.v5.hv2 .hv2-kit__scale { grid-column:1 / -1; text-align:right; font-size:12.5px; color:var(--faint); }

/* Result-card icons TO SCALE. One unit (--u = CSS px per hero-kit.webp px) sizes every part. Sizes are the parts as the
   current hero draws them: natural px (sensor 58x75, CT Hub 283x279, gateway 290x429) with the hero's own vertical
   stretch (x1.083, from .hw-kit__img 102.61% x 110.14% of a 932/579 box over a 1400x862 image). Layout copies the hero:
   sensors in blocks of 32 (8 x 4, pitch 49.5 x 79), CT Hubs in 2 x 2 blocks (gaps 14 x 9.75). */
.hv2-kit__parts { --u:.24px; --ky:1.083; }
.hv2-kit__ph { display:flex; flex-wrap:wrap; align-items:flex-end; gap:calc(39 * var(--u)) calc(30 * var(--u)); }
.hv2-kit__ph img { display:block; max-width:none; object-fit:fill; flex:none; }
.hv2-kit__ph--sen { min-height:calc((2 * (3 * 79 + 81.2) + 39) * var(--u)); align-content:flex-end; }
.hv2-sg { display:grid; grid-template-columns:repeat(8, calc(49.5 * var(--u))); grid-auto-rows:calc(79 * var(--u)); width:calc((7 * 49.5 + 58) * var(--u)); align-content:end; }
.hv2-sg img { width:calc(58 * var(--u)); height:calc(75 * var(--ky) * var(--u)); }
.hv2-kit__ph--hub { min-height:calc((2 * 279 * 1.083 + 9.75) * var(--u)); gap:calc(40 * var(--u)); }
.hv2-hg { display:grid; grid-template-columns:repeat(2, calc(283 * var(--u))); gap:calc(9.75 * var(--u)) calc(14 * var(--u)); align-content:end; }
.hv2-hg img { width:calc(283 * var(--u)); height:calc(279 * var(--ky) * var(--u)); }
.hv2-kit__ph--gw { min-height:calc(429 * 1.083 * var(--u)); gap:calc(40 * var(--u)); }
.hv2-kit__ph--gw img { width:calc(290 * var(--u)); height:calc(429 * var(--ky) * var(--u)); }
.hv2-kit__ph img { animation:hv2Pop .35s cubic-bezier(.2,.7,.2,1) both; }
@keyframes hv2Pop { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }

/* 7. Proof */
.hv2-proof { padding:clamp(56px, 10vh, 112px) 0; background:#F6F7FB; }
.hv2-proof__grid { display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 7fr); gap:clamp(28px, 4vw, 64px); align-items:center; }
.hv2-proof__card { display:grid; border-radius:22px; overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:0 24px 48px -36px rgba(13,23,88,.35); transition:transform .2s; }
.hv2-proof__card:hover { transform:translateY(-3px); }
.hv2-proof__img img { display:block; width:100%; height:auto; aspect-ratio:16/5.5; object-fit:cover; }
.hv2-proof__body { display:grid; gap:8px; padding:20px 24px 24px; color:var(--body); font-size:16px; line-height:1.55; }
.hv2-proof__body b { font-size:20px; color:var(--ink); font-weight:600; }
.hv2-proof__body em { font-style:normal; font-weight:600; color:#2f7fb8; }

/* 8. Offer */
.hv2-offer { padding:clamp(56px, 10vh, 120px) 0; }
.hv2-offer__grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(32px, 4vw, 64px); align-items:start; }
.v5.hv2 .hv2-offer__copy h2 span { display:block; }
.v5.hv2 .hv2-offer__copy > p { margin-top:18px; font-size:clamp(16px, 1.3vw, 19px); line-height:1.6; }
.hv2-offer__cta { margin-top:28px; align-items:flex-start; }
.v5.hv2 .hv2-offer__risk { font-size:14.5px; font-weight:600; color:var(--ink); }
.hv2-faq__specs { padding:16px 0 18px; border-top:1px solid var(--line); }

/* Spec drawers. Without JS: :target opens them. With JS: .is-open. */
.hv2-drawer { position:fixed; inset:0; z-index:100000; visibility:hidden; pointer-events:none; }
.hv2-drawer:target, .hv2-drawer.is-open { visibility:visible; pointer-events:auto; }
.hv2-specs.is-js .hv2-drawer:target:not(.is-open) { visibility:hidden; pointer-events:none; }
.hv2-drawer__scrim { position:absolute; inset:0; background:rgba(14,20,36,.5); opacity:0; transition:opacity .3s; }
.hv2-drawer__panel { position:absolute; top:0; right:0; bottom:0; width:min(520px, 100%); display:flex; flex-direction:column; background:#fff; box-shadow:-30px 0 60px -30px rgba(13,23,88,.45); transform:translateX(100%); transition:transform .38s cubic-bezier(.2,.7,.2,1); font-family:var(--font); }
.hv2-drawer--wide .hv2-drawer__panel { width:min(760px, 100%); }
.hv2-drawer:target .hv2-drawer__scrim, .hv2-drawer.is-open .hv2-drawer__scrim { opacity:1; }
.hv2-drawer:target .hv2-drawer__panel, .hv2-drawer.is-open .hv2-drawer__panel { transform:none; }
.hv2-specs.is-js .hv2-drawer:target:not(.is-open) .hv2-drawer__panel { transform:translateX(100%); }
.hv2-drawer__head { position:relative; padding:24px 64px 18px 28px; border-bottom:1px solid var(--line); }
.v5.hv2 .hv2-drawer__kick { font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.v5.hv2 .hv2-drawer__head h2 { font-size:clamp(22px, 2vw, 28px); }
.hv2-drawer__x { position:absolute; top:18px; right:18px; width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#F2F4F9; color:var(--ink) !important; }
.hv2-drawer__x:hover { background:#E3E7F2; }
.hv2-drawer__body { flex:1; overflow-y:auto; overscroll-behavior:contain; padding:22px 28px 36px; }
.hv2-drawer__img { display:flex; justify-content:center; background:#fff; border:1px solid #EEF0F6; border-radius:16px; margin-bottom:16px; }
.hv2-drawer__img img { width:46%; height:auto; }
.v5.hv2 .hv2-drawer__sum { font-size:15.5px; color:var(--body); margin-bottom:14px; }
.v5.hv2 .hv2-drawer__body h3 { font-size:18px; margin:6px 0 10px; }
.v5.hv2 .hv2-drawer__dev { display:flex; align-items:center; gap:12px; margin-top:28px !important; padding-top:20px; border-top:1px solid var(--line); }
.hv2-drawer__dev img { width:44px; height:44px; border-radius:10px; background:#fff; border:1px solid #EEF0F6; object-fit:contain; }
.hv2-dl { margin:0; display:grid; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.hv2-dl > div { display:grid; grid-template-columns:minmax(120px, 2fr) 3fr; gap:12px; padding:11px 14px; font-size:14.5px; line-height:1.45; }
.hv2-dl > div:nth-child(odd) { background:#F9FAFC; }
.hv2-dl dt { color:var(--muted); font-weight:600; }
.hv2-dl dd { margin:0; color:var(--ink); }
.v5.hv2 .hv2-drawer__more { margin-top:18px; font-size:15px; }
.hv2-drawer__more a { color:#2f7fb8 !important; font-weight:600; }
.v5.hv2 .hv2-drawer__fine { margin-top:22px; font-size:13px; color:var(--faint); }
html.hv2-locked, html.hv2-locked body { overflow:hidden; }

/* Responsive */
@media (max-width:1100px) {
	.hv2-hero__grid, .hv2-never__grid, .hv2-proof__grid, .hv2-offer__grid { grid-template-columns:1fr; }
	.hv2-kit__in { grid-template-columns:1fr; }
}
@media (max-width:860px) {
	.hv2-meet__cards, .hv2-install__steps { grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
	.hv2-install__art { aspect-ratio:4/3; }
}
@media (max-width:640px) {
	.hv2-kit__art { grid-template-columns:1fr; }
	.hv2-kit__equip { height:300px; min-height:0; }
	.hv2-kit__parts { --u:.22px; }
	.hv2-kit__ph--sen, .hv2-kit__ph--hub, .hv2-kit__ph--gw { min-height:0; }
	.hv2-cta { flex-direction:column; align-items:stretch; }
	.hv2-cta .hv2-link { justify-content:center; }
	.hv2-specbtn { font-size:14px; }
	.hv2-dl > div { grid-template-columns:1fr; gap:2px; }
	.hv2-drawer__head { padding:20px 60px 14px 20px; }
	.hv2-drawer__body { padding:18px 20px 32px; }
}
@media (prefers-reduced-motion:reduce) {
	html.hv2-js .hv2 .hw-kit__img { opacity:1 !important; transform:none !important; transition:none !important; }
	.hv2-kit__ph img { animation:none; }
	.hv2-drawer__panel, .hv2-drawer__scrim { transition:none; }
}

/* ===== Oct 19 11:03 rework ===== */
/* One-screen rule: every section fits 1440x800 (below the floating header) with its visual beside the text. */
.hv2-sec { padding-block:clamp(40px, 7vh, 72px); }
@media (min-width:1101px) { .hv2-sec { min-height:min(calc(100svh - var(--hdr, 84px)), 800px); display:flex; flex-direction:column; justify-content:center; box-sizing:border-box; } .hv2-sec > .v5-wrap, .hv2-sec > .hv2-kit__in { width:100%; } }
.v5.hv2 h2 { font-size:clamp(28px, min(3vw, 5.4vh), 44px); }
.hv2-head { margin-bottom:clamp(24px, 4vh, 44px); }

/* Hero: calm. Three lines land one at a time; the kit fades in slowly after them. */
.v5.hv2 .hv2-stack { font-size:clamp(30px, min(3.3vw, 6vh), 50px); line-height:1.12; margin:0 0 20px; }
.v5.hv2 .hv2-stack span { display:block; }
.v5.hv2 .hv2-stack span + span { color:#2f7fb8; }
.v5.hv2 .hv2-stack span:nth-child(3) { color:#4f7a1c; }
html.hv2-js .hv2-stack span { opacity:0; transform:translateY(10px); transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
html.hv2-js .hv2-stack.is-in span { opacity:1; transform:none; }
html.hv2-js .hv2-stack.is-in span:nth-child(2) { transition-delay:.7s; } html.hv2-js .hv2-stack.is-in span:nth-child(3) { transition-delay:1.4s; }
html.hv2-js .hv2 .hw-kit__img { transition:opacity 1.6s ease .6s, transform 2s cubic-bezier(.2,.7,.2,1) .6s; }
.hv2 .hw-kit { margin-top:5%; }

/* Panel / MCC section */
.hv2-one { background:#0E1424; color:#C9D1E8; }
.hv2-one__grid { max-width:1360px; display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 7fr); gap:clamp(28px, 4vw, 64px); align-items:center; }
.v5.hv2 .hv2-one h2 { color:#fff; } .v5.hv2 .hv2-one h2 span { color:#F7CA50; display:block; }
.v5.hv2 .hv2-one__copy p { margin-top:18px; font-size:clamp(16px, 1.35vw, 20px); line-height:1.6; }
.v5.hv2 .hv2-one__pay { font-size:clamp(20px, 1.9vw, 28px) !important; font-weight:600; color:#98C355; }
.hv2-one__art { margin:0; }
.hv2-one__pic { position:relative; max-height:calc(min(100svh, 800px) - var(--hdr, 84px) - 80px); aspect-ratio:1000/720; margin-inline:auto; border-radius:22px; overflow:hidden; background:#fff; }
.hv2-one__pic img { display:block; width:100%; height:100%; object-fit:cover; }
.hv2-one__lines { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hv2-one__lines path { fill:none; stroke:#1fa4ff; stroke-width:3.2; stroke-linecap:round; stroke-dasharray:8 14; opacity:.9; filter:drop-shadow(0 0 4px rgba(31,164,255,.8)); animation:hv2Flow 1.6s linear infinite; }
.hv2-one__lines path:nth-child(2) { animation-delay:-.3s; } .hv2-one__lines path:nth-child(3) { animation-delay:-.6s; } .hv2-one__lines path:nth-child(4) { animation-delay:-.9s; } .hv2-one__lines path:nth-child(5) { animation-delay:-1.2s; }
@keyframes hv2Flow { to { stroke-dashoffset:-44; } }
.hv2-one__glow { position:absolute; left:51.7%; top:40.5%; width:16%; height:28%; transform:translate(-50%, -50%); border-radius:16px; box-shadow:0 0 0 0 rgba(31,164,255,.55); animation:hv2Glow 2.4s ease-out infinite; }
@keyframes hv2Glow { 0% { box-shadow:0 0 0 0 rgba(31,164,255,.55); } 100% { box-shadow:0 0 0 22px rgba(31,164,255,0); } }

/* Install simplicity */
.hv2-easy__grid { max-width:1240px; display:grid; grid-template-columns:minmax(0, 6fr) minmax(0, 5fr); gap:clamp(28px, 4vw, 64px); align-items:center; }
.v5.hv2 .hv2-easy__copy h2 span { color:#4f7a1c; }
.v5.hv2 .hv2-easy__copy > p { margin-top:16px; font-size:clamp(16px, 1.3vw, 19px); line-height:1.6; }
.hv2-easy__pts { margin-top:22px !important; display:grid; gap:12px; }
.hv2-easy__pts li { display:flex; gap:14px; align-items:flex-start; font-size:16px; line-height:1.5; }
.hv2-easy__pts b { color:var(--ink); font-weight:600; }
.hv2-easy__art { margin:0; border-radius:22px; overflow:hidden; background:#F6F7FB; aspect-ratio:1; max-height:calc(min(100svh, 800px) - var(--hdr, 84px) - 80px); justify-self:center; }
.hv2-easy__art img { display:block; width:100%; height:100%; object-fit:cover; }
.hv2-install__steps { max-width:1000px; margin-inline:auto; }
.hv2-install__art { max-height:min(36vh, 290px); aspect-ratio:1; margin-inline:auto; }

/* The 24-hour electrician */
@media (min-width:1101px) { .hv2-never__grid { grid-template-columns:minmax(0, 6fr) minmax(0, 5fr); } }
.v5.hv2 .hv2-never__copy p { margin-top:14px; font-size:clamp(15.5px, 1.2vw, 18px); line-height:1.6; }
.v5.hv2 .hv2-never__pay { font-weight:600; color:#3649A8 !important; font-size:clamp(17px, 1.4vw, 21px) !important; }
.hv2-log { margin:0; }
.hv2-log__pad { position:relative; padding:20px 22px 16px; border-radius:16px; background:#FFFDF4; border:1px solid #EFE6C4; box-shadow:0 30px 60px -40px rgba(13,23,88,.45); transform:rotate(-1.2deg); background-image:repeating-linear-gradient(#FFFDF4 0 33px, #E8EEF8 33px 34px); }
.hv2-log__pad::before { content:""; position:absolute; left:50%; top:-12px; width:96px; height:22px; transform:translateX(-50%); border-radius:6px; background:#B9C2DA; }
.v5.hv2 .hv2-log__h { display:flex; justify-content:space-between; font-size:13px; color:var(--muted); margin-bottom:6px; }
.hv2-log__h b { color:var(--ink); font-size:15px; }
.hv2-log__h em { font-style:normal; font-variant-numeric:tabular-nums; }
.hv2-log__rows { font-family:'Segoe Print','Bradley Hand','Comic Sans MS',cursive; font-size:14px; color:#22346E; }
.hv2-log__rows li { display:grid; grid-template-columns:86px 78px 1fr auto; gap:8px; height:34px; align-items:center; }
.hv2-log__rows li span:last-child { color:#B3342D; }
.hv2-log__rows.is-tick li:first-child { animation:hv2Row .5s ease; }
@keyframes hv2Row { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.v5.hv2 .hv2-log__more { font-size:13px; color:var(--muted); font-style:italic; margin-top:6px; }
.hv2-log figcaption { margin-top:18px; text-align:center; font-size:15px; color:var(--body); }
.hv2-log figcaption b { display:block; font-size:clamp(30px, 3vw, 42px); color:#B3342D; font-variant-numeric:tabular-nums; }
.hv2-log figcaption span { display:block; font-weight:600; color:#4f7a1c; margin-top:4px; }

/* Hardware FAQ */
.hv2-hwfaq { background:#F6F7FB; }
.hv2-hwfaq__grid { max-width:1200px; display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 6fr); gap:clamp(28px, 4vw, 64px); align-items:center; }
.v5.hv2 .hv2-hwfaq h2 span { display:block; }
.hv2-hwfaq__img { display:block; margin-top:22px; max-width:360px; border-radius:20px; overflow:hidden; background:#fff; }
.hv2-hwfaq__img img { display:block; width:100%; height:auto; }

/* Offer: report only, PDF mock (copied from platform-v2.css .pf-pdf) */
.hv2-offer__grid { align-items:center; }
.hv2-offer__qa { margin-top:24px; border-top:1px solid var(--line); max-width:520px; }
.hv2-offer__qa details { border-bottom:1px solid var(--line); }
.hv2-offer__qa summary { list-style:none; cursor:pointer; padding:14px 30px 14px 0; position:relative; font-weight:600; color:var(--ink); }
.hv2-offer__qa summary::-webkit-details-marker { display:none; }
.hv2-offer__qa summary::after { content:"+"; position:absolute; right:2px; top:50%; transform:translateY(-50%); color:#2f7fb8; font-size:20px; }
.hv2-offer__qa details[open] summary::after { content:"\2013"; }
.v5.hv2 .hv2-offer__qa p { padding:0 0 14px; font-size:15px; }
.hv2-mock { display:inline-block; font-size:11px; line-height:16px; font-weight:700; text-transform:uppercase; padding:1px 8px; border-radius:10px; background:#FFF3DC; color:#8A5A00; }
.hv2-pdf { position:relative; max-width:360px; width:100%; justify-self:center; }
.hv2-pdf__page { position:relative; aspect-ratio:8.5/11; max-height:calc(min(100svh, 800px) - var(--hdr, 84px) - 100px); background:#fff; border-radius:10px; padding:26px 26px 20px; box-shadow:0 40px 80px -36px rgba(13,23,88,.5); transform:rotate(-2.5deg); display:flex; flex-direction:column; color:#0D1758; border:1px solid #E3E7F2; }
.hv2-pdf__page--back { position:absolute; inset:0; transform:rotate(4deg) translate(18px,8px); background:#e9edf7; padding:0; }
.v5.hv2 p.hv2-pdf__top { display:flex; justify-content:space-between; align-items:center; margin-bottom:26px; }
.hv2-pdf__top img { width:96px; height:auto; }
.v5.hv2 p.hv2-pdf__kick { font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#3649A8; }
.v5.hv2 p.hv2-pdf__name { font-size:22px; line-height:1.15; font-weight:700; color:#0D1758; margin:6px 0 14px; }
.v5.hv2 p.hv2-pdf__bar { display:flex; gap:4px; margin-bottom:22px; } .hv2-pdf__bar i { height:4px; flex:1; border-radius:2px; background:#4DAAE8; } .hv2-pdf__bar i:nth-child(2) { background:#98C355; } .hv2-pdf__bar i:nth-child(3) { background:#F7CA50; } .hv2-pdf__bar i:nth-child(4) { background:#DB4B46; }
.v5.hv2 p.hv2-pdf__k { font-size:12px; color:#6B7395; }
.v5.hv2 p.hv2-pdf__v { font-size:34px; line-height:1.1; font-weight:700; color:#B3342D; margin-bottom:18px; }
.hv2-pdf__list { display:grid; gap:10px; }
.hv2-pdf__list li { display:grid; gap:4px; font-size:12px; color:#3A4170; }
.hv2-pdf__list s { height:6px; border-radius:3px; background:linear-gradient(#DB4B46,#DB4B46) 0 0 / calc(var(--w) * 1%) 100% no-repeat,#F1F3F8; }
.hv2-pdf__list li:nth-child(2) s { background:linear-gradient(#F7CA50,#F7CA50) 0 0 / calc(var(--w) * 1%) 100% no-repeat,#F1F3F8; } .hv2-pdf__list li:nth-child(3) s { background:linear-gradient(#4DAAE8,#4DAAE8) 0 0 / calc(var(--w) * 1%) 100% no-repeat,#F1F3F8; }
.v5.hv2 p.hv2-pdf__foot { margin-top:auto; display:flex; align-items:center; gap:8px; font-size:11px; color:#8F96B0; padding-top:12px; border-top:1px solid #E3E7F2; }
.hv2-pdf__foot span { font-weight:700; color:#fff; background:#DB4B46; border-radius:4px; padding:1px 6px; }

@media (max-width:1100px) {
	.hv2-one__grid, .hv2-easy__grid, .hv2-hwfaq__grid { grid-template-columns:1fr; }
	.hv2-one__pic, .hv2-easy__art, .hv2-pdf__page { max-height:none; }
	.hv2-easy__art { max-width:520px; }
	.hv2-hwfaq__img { display:none; }
}
@media (max-width:640px) {
	.hv2-log__rows { font-size:12.5px; }
	.hv2-log__rows li { grid-template-columns:72px 68px 1fr auto; gap:5px; }
	.hv2-pdf { max-width:290px; }
	.hv2-install__art { max-height:none; }
}
@media (prefers-reduced-motion:reduce) {
	html.hv2-js .hv2-stack span { opacity:1 !important; transform:none !important; transition:none !important; }
	.hv2-one__lines path, .hv2-one__glow, .hv2-log__rows li { animation:none !important; }
}
/* r2 fixes */
@media (min-width:1101px) { .hv2-hero__grid { grid-template-columns:minmax(0, 6fr) minmax(0, 6fr); } }
.v5.hv2 .hv2-hero h1.hv2-stack { font-size:clamp(28px, min(2.9vw, 5.6vh), 44px); line-height:1.16; }
.v5.hv2 .hv2-hero h1.hv2-stack span { display:block; color:var(--ink); }
.v5.hv2 .hv2-hero h1.hv2-stack span:nth-child(2) { color:#2f7fb8; }
.v5.hv2 .hv2-hero h1.hv2-stack span:nth-child(3) { color:#4f7a1c; }
.hv2-meet__art { aspect-ratio:16/10; }
.hv2-log__pad { overflow:hidden; }
.hv2-log__rows li { grid-template-columns:minmax(0,86px) minmax(0,78px) minmax(0,1fr) auto; overflow:hidden; white-space:nowrap; }
.hv2-log__rows li span { overflow:hidden; text-overflow:ellipsis; }
@media (max-width:640px) { .hv2-log__rows li { grid-template-columns:minmax(0,70px) minmax(0,64px) minmax(0,1fr) auto; } .hv2-log__pad { transform:none; padding:18px 14px 12px; } }
@media (min-width:1101px) { .hv2-meet { padding-block:28px; } .hv2-meet .hv2-head { margin-bottom:22px; } .hv2-meet__card { padding:16px 20px 18px; gap:8px; } }
.hv2-one__relabel { position:absolute; left:84.2%; top:45.3%; width:12.2%; height:5.6%; display:flex; align-items:center; justify-content:center; background:#fff; color:#1D1D1B; font-weight:600; font-size:clamp(8px, .95vw, 14px); line-height:1; white-space:nowrap; }
