:root { --navy:#102a30; --navy-deep:#0a1f24; --green:#a8dc65; --green-deep:#305e46; --cream:#f5f0e6; --paper:#fbfaf6; --sand:#e7ddc9; --terracotta:#d87851; --ink:#142b30; --muted:#617076; --line:rgba(20,43,48,.16); }
* { box-sizing:border-box; }
html { min-height:100%; scroll-behavior:auto; scroll-padding-top:24px; -webkit-text-size-adjust:100%; }
body { min-height:100%; width:100%; margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; line-height:1.5; -webkit-font-smoothing:antialiased; }
main { min-width:0; max-width:100%; }
h1,h2,h3,p,ul { margin:0; }
ul { padding:0; }
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
svg { flex:0 0 auto; }

.site-header { position:relative; z-index:20; min-height:82px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(24px,5vw,76px); border-bottom:1px solid var(--line); background:var(--paper); }
.full-site-header { grid-template-columns:auto minmax(0,1fr); gap:clamp(24px,3vw,52px); }
.full-site-header .main-nav { min-width:0; justify-content:flex-end; gap:clamp(12px,1.45vw,25px); font-size:12px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; }
.full-site-header .main-nav::-webkit-scrollbar { display:none; }
.main-nav a[aria-current="page"] { color:var(--green-deep); }
.brand-lockup { display:inline-flex; align-items:center; gap:11px; font-size:20px; font-weight:800; letter-spacing:-.04em; }
.brand-image { width:42px; height:42px; object-fit:contain; }
.main-nav { display:flex; gap:clamp(18px,2.5vw,38px); font-size:13px; font-weight:700; color:#385057; }
.main-nav a { position:relative; padding:32px 0; }
.main-nav a::after { content:""; position:absolute; left:0; bottom:21px; width:0; height:2px; background:var(--terracotta); }
.main-nav a:hover::after,.main-nav a:focus-visible::after { width:100%; }
.header-cta { justify-self:end; display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800; }
.logo-link:focus-visible,.main-nav a:focus-visible,.header-cta:focus-visible,.back-to-top:focus-visible { outline:3px solid var(--terracotta); outline-offset:4px; }

.back-to-top { position:fixed; right:22px; bottom:22px; z-index:70; min-height:46px; padding:0 17px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid rgba(255,255,255,.18); border-radius:24px 4px 24px 24px; background:var(--navy); color:white; font-size:12px; font-weight:900; }
.back-to-top:hover { background:var(--green-deep); }

.hero { min-height:700px; display:grid; grid-template-columns:1.04fr .96fr; overflow:hidden; background:var(--cream); }
.hero-copy { padding:clamp(76px,9vw,130px) clamp(32px,7vw,110px); align-self:center; }
.eyebrow,.section-kicker { text-transform:uppercase; font-size:11px; font-weight:800; letter-spacing:.18em; }
.eyebrow { display:flex; align-items:center; gap:10px; color:var(--green-deep); }
.eyebrow span { width:28px; height:2px; background:var(--terracotta); }
.hero h1 { margin:26px 0 28px; max-width:720px; font-size:clamp(53px,6.6vw,96px); line-height:.91; letter-spacing:-.065em; font-weight:750; }
.hero h1 em { color:var(--green-deep); font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.hero-intro { max-width:610px; color:var(--muted); font-size:clamp(17px,1.6vw,21px); line-height:1.6; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.button { min-height:52px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center; gap:12px; border-radius:2px 18px 18px 18px; font-size:13px; font-weight:800; }
.button--primary { background:var(--navy); color:white; }
.text-link { font-size:13px; font-weight:800; border-bottom:1px solid currentColor; padding-bottom:4px; }

.hero-visual { position:relative; min-height:620px; display:grid; place-items:center; background:var(--navy); overflow:hidden; }
.hero-visual::before { content:""; position:absolute; inset:9%; background:radial-gradient(circle at 50% 45%,rgba(168,220,101,.20),transparent 58%); }
.orbit { position:absolute; border:1px solid rgba(255,255,255,.14); border-radius:50%; }
.orbit--one { width:68%; aspect-ratio:1; }
.orbit--two { width:94%; aspect-ratio:1; border-style:dashed; }
.house-diagram { width:55%; max-width:380px; position:relative; z-index:2; }
.roof-line { height:145px; width:100%; border:4px solid var(--green); border-bottom:0; transform:skewY(-24deg) rotate(-1deg); transform-origin:100% 100%; border-radius:12px 12px 0 0; }
.house-body { height:230px; margin-top:-3px; border:4px solid var(--green); background:rgba(255,255,255,.04); display:grid; place-items:center; position:relative; }
.window-grid { width:80px; height:80px; display:grid; grid-template-columns:1fr 1fr; gap:5px; transform:translateY(-12px); }
.window-grid span { border:2px solid white; background:rgba(168,220,101,.12); }
.energy-line { position:absolute; left:9%; right:9%; bottom:30px; height:2px; background:rgba(255,255,255,.36); display:flex; justify-content:space-between; align-items:center; }
.energy-line span,.energy-line i { width:11px; height:11px; border-radius:50%; background:var(--terracotta); border:2px solid var(--navy); }
.energy-line i { background:var(--green); }
.metric-card { position:absolute; z-index:4; min-width:126px; padding:14px 16px; color:white; background:#16363d; border:1px solid rgba(255,255,255,.18); border-radius:3px 18px 18px 18px; display:grid; grid-template-columns:26px 1fr; align-items:center; font-size:11px; }
.metric-card svg { color:var(--green); grid-row:span 2; }
.metric-card span { color:rgba(255,255,255,.55); }
.metric-card strong { font-size:14px; }
.metric-card--energy { left:8%; top:20%; }.metric-card--comfort { right:7%; top:44%; }.metric-card--open { left:12%; bottom:11%; }

.manifesto,.automation { padding:clamp(86px,10vw,145px) clamp(28px,8vw,124px); }
.section-kicker { color:var(--terracotta); margin:0 0 28px; }
.manifesto-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:start; }
.manifesto-grid h2,.section-heading h2,.automation h2,.coming-card h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(40px,5.1vw,70px); line-height:1.02; letter-spacing:-.045em; }
.manifesto-grid>div { font-size:17px; line-height:1.75; color:var(--muted); }
.manifesto-grid>div p:first-child { margin-top:0; color:var(--ink); font-size:21px; }
.values-row { margin-top:76px; padding-top:34px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); gap:5%; }
.values-row article { display:grid; grid-template-columns:34px 1fr; column-gap:8px; }
.values-row svg { color:var(--green-deep); }.values-row span { font-weight:800; }
.values-row p { grid-column:2; margin:8px 0 0; font-size:13px; line-height:1.55; color:var(--muted); }

.section-dark { background:var(--navy-deep); color:white; padding:clamp(88px,10vw,145px) clamp(28px,8vw,124px); }
.section-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:10%; align-items:end; }
.section-kicker--light { color:var(--green); }
.section-heading>p { margin:0 0 4px; color:rgba(255,255,255,.62); font-size:17px; line-height:1.7; }
.steps-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:76px; border-top:1px solid rgba(255,255,255,.18); }
.step-card { position:relative; padding:34px 28px 10px 0; border-right:1px solid rgba(255,255,255,.16); min-height:310px; }
.step-card:not(:first-child) { padding-left:28px; }.step-card:last-child { border-right:0; }
.step-number { position:absolute; right:24px; top:34px; font-size:11px; color:rgba(255,255,255,.4); }
.step-icon { color:var(--green); margin-bottom:46px; }.step-icon svg { width:29px; height:29px; }
.step-card h3 { font-size:18px; margin:0 0 16px; }.step-card p { color:rgba(255,255,255,.57); font-size:14px; line-height:1.7; }
.disclaimer { margin:36px 0 0; color:rgba(255,255,255,.38); font-size:11px; }

.automation { display:grid; grid-template-columns:.9fr 1.1fr; gap:10%; align-items:center; background:var(--paper); }
.automation .lead { font-size:18px; line-height:1.7; color:var(--muted); max-width:600px; }
.automation ul { list-style:none; padding:0; margin:32px 0 0; display:grid; gap:14px; }
.automation li { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:700; }
.automation li svg { color:var(--green-deep); background:#deefcf; border-radius:50%; padding:2px; }
.ha-panel { background:var(--cream); border:1px solid #e1d9ca; padding:clamp(28px,4vw,54px); border-radius:4px 42px 42px 42px; }
.ha-panel-top { display:flex; align-items:center; gap:16px; }.ha-logo { width:50px; height:50px; display:grid; place-items:center; border-radius:50%; background:var(--navy); color:var(--green); }
.ha-panel h3 { margin:3px 0 0; font-size:24px; letter-spacing:-.03em; }.ha-panel small { color:var(--muted); }
.open-badge,.status-badge { margin-left:auto; border:1px solid var(--line); border-radius:20px; padding:7px 11px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; }
.ha-panel>p { margin:28px 0; line-height:1.7; color:var(--muted); }
.dashboard-demo { background:white; border:1px solid var(--line); border-radius:14px; padding:20px; }
.demo-head { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:14px; font-weight:800; }.demo-head small { color:var(--green-deep); }
.demo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:18px; }
.demo-grid>div { min-height:112px; padding:16px; border-radius:10px; background:#f1f2ed; display:flex; flex-direction:column; gap:7px; }
.demo-grid svg { color:var(--green-deep); }.demo-grid strong { margin-top:auto; font-size:18px; }.demo-grid span { font-size:10px; color:var(--muted); }
.independence-note { display:block; margin-top:18px; font-size:10px; line-height:1.5; }

.coming-grid { display:grid; grid-template-columns:1fr 1fr; }.coming-card { min-height:560px; padding:clamp(60px,7vw,105px); display:flex; flex-direction:column; }
.coming-card--green { background:var(--green); }.coming-card--sand { background:var(--sand); }
.coming-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:auto; }.coming-top svg { width:34px; height:34px; }
.coming-card .section-kicker { margin-top:80px; color:var(--ink); opacity:.65; }.coming-card h2 { font-size:clamp(38px,4.3vw,62px); }
.coming-card>p:not(.section-kicker) { max-width:560px; line-height:1.7; color:rgba(20,43,48,.7); }
.construction-line { margin-top:34px; height:3px; background:rgba(20,43,48,.15); overflow:hidden; }.construction-line span { display:block; width:36%; height:100%; background:var(--ink); }
.resource-strip { padding:64px clamp(28px,8vw,124px); display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:24px; background:var(--paper); }
.resource-strip h2 { margin:0; font:400 clamp(30px,3.2vw,46px)/1.05 Georgia,serif; letter-spacing:-.04em; }
.resource-strip>a { padding:26px; border:1px solid var(--line); background:white; display:flex; flex-direction:column; gap:14px; border-radius:4px 24px 24px 24px; }
.resource-strip>a span { color:var(--muted); font-size:13px; line-height:1.55; display:flex; align-items:center; gap:8px; }

/* Pages ressources : rendu statique, sans effets coûteux. */
.subpage { min-height:100vh; background:var(--paper); }
.subpage-header { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px clamp(22px,6vw,88px); border-bottom:1px solid var(--line); background:var(--paper); }
.subpage-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:18px; color:var(--muted); font-size:12px; font-weight:800; }
.subpage-nav a[aria-current="page"] { color:var(--green-deep); }
.guide-hero { padding:clamp(68px,9vw,124px) clamp(24px,8vw,124px); background:var(--cream); }
.guide-hero--dark { background:var(--navy-deep); color:white; }
.guide-hero-inner { max-width:1120px; }
.guide-badge { display:inline-block; margin:0 0 22px; padding:8px 12px; border:1px solid currentColor; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.78; }
.guide-hero h1 { margin:0; max-width:980px; font:400 clamp(48px,7vw,90px)/.98 Georgia,serif; letter-spacing:-.055em; }
.guide-hero p { max-width:790px; margin:28px 0 0; font-size:clamp(17px,1.8vw,21px); line-height:1.65; color:var(--muted); }
.guide-hero--dark p { color:rgba(255,255,255,.7); }
.guide-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.guide-section { padding:clamp(66px,8vw,112px) clamp(24px,8vw,124px); }
.guide-section--cream { background:var(--cream); }.guide-section--dark { background:var(--navy-deep); color:white; }.guide-section--alert { background:#572f2a; color:white; }
.guide-wrap { max-width:1180px; margin:0 auto; }
.guide-heading { display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; align-items:start; margin-bottom:44px; }
.guide-heading h2 { margin:0; font:400 clamp(35px,4.5vw,59px)/1.02 Georgia,serif; letter-spacing:-.045em; }
.guide-heading p { margin:0; color:var(--muted); line-height:1.7; }
.guide-section--dark .guide-heading p,.guide-section--alert .guide-heading p { color:rgba(255,255,255,.68); }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.info-card { padding:26px; border:1px solid var(--line); border-radius:4px 24px 24px 24px; background:white; }
.info-card--green { background:#e3f2d3; }.info-card--sand { background:var(--sand); }.info-card--dark { background:#14343b; color:white; border-color:rgba(255,255,255,.16); }
.info-card svg { color:var(--green-deep); }.info-card--dark svg { color:var(--green); }
.info-card h3 { margin:18px 0 10px; font-size:19px; }.info-card p { color:var(--muted); line-height:1.65; font-size:14px; }
.info-card--dark p { color:rgba(255,255,255,.63); }
.check-list { list-style:none; margin:18px 0 0; padding:0; display:grid; gap:11px; }
.check-list li { display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.55; }
.check-list svg { margin-top:2px; width:15px; height:15px; }
.chain { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:14px; align-items:stretch; margin-top:22px; }
.chain-step { min-height:142px; padding:23px; background:white; color:var(--ink); border:1px solid var(--line); border-radius:4px 22px 22px 22px; }
.chain-step small { display:block; color:var(--terracotta); font-weight:800; text-transform:uppercase; letter-spacing:.09em; }.chain-step strong { display:block; margin-top:10px; font-size:17px; }.chain-step p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.chain-arrow { align-self:center; color:var(--green); }
.technical-note { margin-top:20px; padding:18px 20px; border-left:4px solid var(--terracotta); background:rgba(255,255,255,.08); font-size:13px; line-height:1.65; }
.runtime-table { width:100%; border-collapse:collapse; background:white; border:1px solid var(--line); }
.runtime-table th,.runtime-table td { padding:16px; text-align:left; border-bottom:1px solid var(--line); font-size:13px; }.runtime-table th { color:var(--muted); text-transform:uppercase; font-size:10px; letter-spacing:.09em; }.runtime-table tr:last-child td { border-bottom:0; }
.formula { margin:0 0 24px; padding:20px; background:#e3f2d3; border-radius:4px 20px 20px 20px; font-weight:800; }
.source-list { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.source-list a { display:flex; justify-content:space-between; gap:14px; padding:17px 18px; border:1px solid var(--line); background:white; font-size:13px; font-weight:800; }.source-list a span { color:var(--terracotta); }
.page-note { margin-top:26px; color:var(--muted); font-size:12px; line-height:1.6; }

/* Schémas techniques statiques */
.system-profile { margin:0 0 24px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.system-profile>div { padding:18px 20px; border-left:4px solid var(--green-deep); background:white; }
.system-profile small { display:block; color:var(--terracotta); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.system-profile strong { display:block; margin-top:7px; font-size:17px; }.system-profile span { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.wiring-figure { margin:42px 0 0; padding:clamp(24px,3vw,38px); border:1px solid var(--line); border-radius:4px 30px 30px 30px; background:white; }
.wiring-figure figcaption { display:flex; flex-wrap:wrap; align-items:center; gap:11px; margin-bottom:28px; }
.wiring-figure figcaption span { padding:6px 9px; border-radius:999px; background:var(--terracotta); color:white; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.wiring-figure figcaption strong { font-size:17px; }
.wiring-figure--dark { background:#102e35; border-color:rgba(255,255,255,.18); }
.wiring-figure--dark figcaption strong { color:white; }
.wiring-path { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:12px; }
.wiring-node { min-width:0; padding:22px; border:1px solid var(--line); border-radius:3px 20px 20px 20px; background:#f4f1e9; color:var(--ink); }
.wiring-node--source { background:#e4f2d5; }.wiring-node--load { background:#f2dfd2; }
.wiring-node svg { width:25px; height:25px; margin-bottom:18px; color:var(--green-deep); }
.wiring-node small { display:block; color:var(--terracotta); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.wiring-node strong { display:block; margin-top:7px; font-size:16px; line-height:1.3; }
.wiring-node p { margin-top:8px; color:var(--muted); font-size:11px; line-height:1.5; }
.wire-arrow { min-width:82px; align-self:center; display:flex; flex-direction:column; align-items:center; gap:5px; color:var(--green-deep); }
.wire-arrow b { font-size:28px; line-height:1; }.wire-arrow small { max-width:88px; color:var(--muted); font-size:9px; font-weight:800; line-height:1.25; text-align:center; text-transform:uppercase; }
.wiring-figure--dark .wire-arrow b { color:var(--green); }.wiring-figure--dark .wire-arrow small { color:rgba(255,255,255,.52); }
.isolation-bar,.diagram-output { margin-top:18px; padding:15px 18px; display:flex; align-items:center; justify-content:center; gap:9px; border:1px dashed #ad4c3c; background:#fff2ee; color:#6b2b22; font-size:12px; line-height:1.5; text-align:center; }
.isolation-bar svg { width:18px; height:18px; }.isolation-bar span { color:#764d47; }
.diagram-output { border-color:rgba(168,220,101,.46); background:rgba(168,220,101,.1); color:white; }.diagram-output svg { color:var(--green); }
.implementation-block { margin-top:52px; display:grid; grid-template-columns:.42fr 1fr; gap:6%; align-items:start; }
.implementation-heading h3 { margin:0; font:400 clamp(30px,3.6vw,47px)/1.05 Georgia,serif; letter-spacing:-.04em; }
.implementation-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.implementation-steps li { padding:20px; display:grid; grid-template-columns:34px 1fr; gap:10px; background:#14343b; border:1px solid rgba(255,255,255,.14); border-radius:3px 18px 18px 18px; }
.implementation-steps li>span { color:var(--green); font-size:10px; font-weight:900; }.implementation-steps strong { display:block; font-size:14px; }.implementation-steps p { margin-top:7px; color:rgba(255,255,255,.58); font-size:11px; line-height:1.55; }
.vigilance-grid { margin-top:22px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.vigilance-grid article { padding:20px; border-top:3px solid var(--terracotta); background:#f7ece6; color:var(--ink); }
.vigilance-grid svg { color:var(--terracotta); }.vigilance-grid strong { display:block; margin-top:14px; font-size:14px; }.vigilance-grid p { margin-top:7px; color:var(--muted); font-size:11px; line-height:1.55; }
.wiring-figure--compact { margin-bottom:28px; }
.operation-block { margin-top:42px; display:grid; grid-template-columns:.42fr 1fr; gap:6%; align-items:start; }
.operation-block h3 { margin:0; font:400 clamp(29px,3.3vw,44px)/1.05 Georgia,serif; letter-spacing:-.04em; }
.operation-timeline { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.operation-timeline li { min-height:100px; padding:17px; display:grid; grid-template-columns:28px 1fr; gap:9px; background:white; border:1px solid var(--line); }
.operation-timeline li>span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:var(--navy); color:white; font-size:10px; font-weight:900; }
.operation-timeline p { color:var(--muted); font-size:12px; line-height:1.55; }
.dual-input-path { display:grid; grid-template-columns:minmax(0,1.25fr) auto minmax(0,.9fr) auto minmax(0,1fr); align-items:stretch; gap:12px; }
.source-stack { display:grid; gap:10px; }
.source-stack>div { padding:17px; display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; border:1px solid var(--line); border-radius:3px 18px 18px 18px; background:#f4f1e9; color:var(--ink); }
.source-stack>div:first-child { background:#e4f2d5; }.source-stack>div:last-child { background:#f2dfd2; }
.source-stack svg { width:24px; height:24px; color:var(--green-deep); }.source-stack small { display:block; color:var(--terracotta); font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.source-stack strong { display:block; margin-top:5px; font-size:14px; line-height:1.3; }.source-stack p { margin-top:5px; color:var(--muted); font-size:10px; line-height:1.45; }
.nsp-benefits { margin-top:20px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.nsp-benefits article { padding:19px; border-top:3px solid var(--green); background:#14343b; }
.nsp-benefits svg { color:var(--green); }.nsp-benefits strong { display:block; margin-top:13px; font-size:14px; }.nsp-benefits p { margin-top:7px; color:rgba(255,255,255,.58); font-size:11px; line-height:1.55; }

footer { min-height:170px; padding:44px clamp(28px,8vw,124px); background:var(--navy-deep); color:white; display:grid; grid-template-columns:1fr auto auto; gap:60px; align-items:center; }
footer>div p,footer>p { color:rgba(255,255,255,.46); font-size:11px; } footer a { font-size:12px; font-weight:800; }

/* Guide des avantages associatifs */
.benefits-page { background:var(--paper); }
.benefits-hero { padding:clamp(76px,9vw,132px) clamp(28px,8vw,124px); background:var(--cream); display:grid; grid-template-columns:1.25fr .75fr; gap:8%; align-items:end; }
.benefits-hero h1 { margin:25px 0 28px; max-width:1000px; font-size:clamp(48px,6.2vw,88px); line-height:.94; letter-spacing:-.06em; }
.benefits-hero h1 em { color:var(--green-deep); font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.benefits-hero>div>p:not(.eyebrow) { max-width:780px; color:var(--muted); font-size:19px; line-height:1.7; }
.benefits-meta { margin-top:30px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; color:var(--green-deep); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.benefits-meta span { width:4px; height:4px; border-radius:50%; background:var(--terracotta); }
.eligibility-note { padding:26px; background:var(--navy); color:white; border-radius:3px 30px 30px 30px; display:flex; align-items:flex-start; gap:16px; }
.eligibility-note svg { color:var(--green); }
.eligibility-note strong { font-size:15px; line-height:1.45; }.eligibility-note p { margin:9px 0 0; color:rgba(255,255,255,.62); font-size:12px; line-height:1.65; }
.benefits-summary { padding:clamp(76px,9vw,120px) clamp(28px,8vw,124px); display:grid; grid-template-columns:1fr .38fr; gap:7%; background:white; }
.benefits-summary h2,.offer-section h2,.benefits-caution h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(38px,4.5vw,62px); line-height:1.02; font-weight:400; letter-spacing:-.045em; }
.summary-steps { margin-top:54px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.summary-steps article { padding:24px 24px 26px; background:#f2f0e8; border-top:3px solid var(--green-deep); }
.summary-steps span { font-size:11px; font-weight:800; color:var(--terracotta); }.summary-steps h3 { margin:18px 0 11px; font-size:17px; }.summary-steps p { margin:0; font-size:13px; color:var(--muted); line-height:1.65; }
.document-card { padding:32px; background:var(--navy-deep); color:white; border-radius:4px 36px 36px 36px; align-self:start; }
.document-card>svg { color:var(--green); }.document-card h3 { margin:20px 0 24px; font-size:23px; }.document-card ul { list-style:none; padding:0; margin:0; display:grid; gap:14px; }
.document-card li { display:flex; align-items:flex-start; gap:10px; color:rgba(255,255,255,.72); font-size:12px; line-height:1.5; }.document-card li svg { color:var(--green); margin-top:1px; }
.benefits-jump { padding:0 clamp(28px,8vw,124px) 52px; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; background:white; }
.benefits-jump a { padding:17px 18px; border:1px solid var(--line); display:flex; align-items:center; gap:10px; font-size:12px; font-weight:800; transition:.2s; }
.benefits-jump a:hover { background:var(--navy); color:white; transform:translateY(-2px); }
.offer-section { scroll-margin-top:20px; padding:clamp(78px,9vw,120px) clamp(28px,8vw,124px); }
.offer-section:nth-of-type(even) { background:#f0eee6; }
.offer-section-heading { display:grid; grid-template-columns:1fr .75fr; gap:10%; align-items:end; }
.offer-section-heading .section-kicker { display:flex; align-items:center; gap:8px; }
.offer-section-heading>p { margin:0; color:var(--muted); font-size:15px; line-height:1.7; }
.offer-grid { margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.offer-card { min-height:325px; padding:28px; display:flex; flex-direction:column; background:white; border:1px solid var(--line); border-radius:2px 24px 24px 24px; }
.offer-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.offer-card h3 { margin:5px 0 0; font-size:20px; letter-spacing:-.03em; }.offer-card-top span { max-width:48%; padding:7px 9px; border-radius:18px; background:#deefcf; color:var(--green-deep); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; text-align:center; }
.offer-card>p { color:var(--muted); font-size:14px; line-height:1.65; }
.offer-condition { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); display:flex; align-items:flex-start; gap:9px; }.offer-condition svg { color:var(--green-deep); margin-top:1px; }.offer-condition small { color:#6d797c; font-size:10px; line-height:1.55; }
.offer-card>a { margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--green-deep); font-size:12px; font-weight:900; }
.offer-card>a:hover { text-decoration:underline; }
.benefits-caution { padding:clamp(78px,9vw,120px) clamp(28px,8vw,124px); background:var(--sand); display:grid; grid-template-columns:.7fr 1.3fr; gap:8%; }
.caution-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px 34px; }
.caution-grid article { border-top:1px solid rgba(20,43,48,.25); padding-top:20px; }.caution-grid svg { color:var(--terracotta); }.caution-grid h3 { margin:14px 0 8px; font-size:16px; }.caution-grid p { margin:0; color:rgba(20,43,48,.65); font-size:12px; line-height:1.6; }
.method-note { padding:28px clamp(28px,8vw,124px); background:var(--navy); color:white; display:flex; gap:15px; align-items:flex-start; }.method-note svg { color:var(--green); }.method-note p { margin:0; max-width:1200px; color:rgba(255,255,255,.62); font-size:11px; line-height:1.65; }.method-note strong { color:white; }

@media (max-width:980px) {
  html { scroll-padding-top:20px; }
  .site-header { height:auto; min-height:82px; grid-template-columns:1fr auto; padding-top:10px; }.main-nav { grid-column:1/-1; width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; gap:24px; }.main-nav::-webkit-scrollbar { display:none; }.main-nav a { flex:0 0 auto; padding:13px 0 16px; white-space:nowrap; }.main-nav a::after { bottom:8px; }.hero { grid-template-columns:1fr; }.hero-copy { padding-top:82px; padding-bottom:82px; }.hero-visual { min-height:590px; }
  .manifesto-grid,.section-heading,.automation { grid-template-columns:1fr; gap:44px; }.steps-grid { grid-template-columns:1fr 1fr; }.step-card:nth-child(2) { border-right:0; }.step-card:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.16); }
  .coming-grid,.resource-strip { grid-template-columns:1fr; } footer { grid-template-columns:1fr; gap:14px; }
  .benefits-hero,.benefits-summary,.offer-section-heading,.benefits-caution { grid-template-columns:1fr; gap:44px; }.summary-steps,.offer-grid { grid-template-columns:1fr 1fr; }.benefits-jump { grid-template-columns:1fr 1fr; }
  .guide-heading { grid-template-columns:1fr; gap:20px; }.card-grid,.offer-grid { grid-template-columns:1fr 1fr; }.chain { grid-template-columns:1fr; }.chain-arrow { transform:rotate(90deg); justify-self:center; }.source-list { grid-template-columns:1fr; }
  .wiring-path { grid-template-columns:1fr; }.wire-arrow { min-width:0; transform:rotate(90deg); justify-self:center; }.wire-arrow small { display:none; }
  .implementation-block,.operation-block { grid-template-columns:1fr; gap:28px; }.vigilance-grid,.nsp-benefits { grid-template-columns:1fr 1fr; }
  .dual-input-path { grid-template-columns:1fr; }.system-profile { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  html { scroll-padding-top:16px; }
  .site-header { min-height:72px; padding:9px 20px 0; }.main-nav { gap:19px; font-size:11px; }.main-nav a { padding:11px 0 14px; }.header-cta { font-size:0; }.header-cta svg { width:22px; height:22px; }.brand-lockup { font-size:18px; }
  .hero { min-height:auto; }.hero-copy { padding:64px 24px 70px; }.hero h1 { font-size:52px; }.hero-actions { align-items:flex-start; flex-direction:column; }.hero-visual { min-height:470px; }
  .house-diagram { width:52%; }.roof-line { height:105px; }.house-body { height:170px; }.metric-card { transform:scale(.82); }.metric-card--energy { left:1%; top:16%; }.metric-card--comfort { right:-2%; }.metric-card--open { left:3%; }
  .manifesto,.automation,.section-dark { padding:76px 24px; }.manifesto-grid h2,.section-heading h2,.automation h2,.coming-card h2 { font-size:42px; }.values-row { grid-template-columns:1fr; gap:28px; }
  .steps-grid { grid-template-columns:1fr; }.step-card,.step-card:not(:first-child) { padding:28px 10px; border-right:0; border-top:1px solid rgba(255,255,255,.16); min-height:250px; }.step-icon { margin-bottom:28px; }
  .ha-panel { padding:24px; border-radius:3px 28px 28px 28px; }.open-badge { display:none; }.demo-grid { grid-template-columns:1fr; }.demo-grid>div { min-height:95px; }.coming-card { min-height:540px; padding:58px 24px; } footer { padding:44px 24px; }
  .benefits-hero { padding:64px 24px 72px; }.benefits-hero h1 { font-size:48px; }.benefits-hero>div>p:not(.eyebrow) { font-size:16px; }.benefits-summary,.offer-section,.benefits-caution { padding:72px 24px; }.summary-steps,.offer-grid,.benefits-jump,.caution-grid { grid-template-columns:1fr; }.benefits-jump { padding:0 24px 48px; }.offer-card { min-height:300px; }.method-note { padding:28px 24px; }
  .back-to-top { right:14px; bottom:14px; width:46px; padding:0; border-radius:50%; }.back-to-top span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .subpage-header { align-items:flex-start; flex-direction:column; }.subpage-nav { justify-content:flex-start; }.guide-hero h1 { font-size:46px; }.card-grid,.offer-grid { grid-template-columns:1fr; }.runtime-table { display:block; overflow-x:auto; }.guide-section { padding-left:20px; padding-right:20px; }
  .implementation-steps,.vigilance-grid,.operation-timeline,.nsp-benefits { grid-template-columns:1fr; }.wiring-figure { padding:21px; }.wiring-node { padding:19px; }.isolation-bar,.diagram-output { align-items:flex-start; text-align:left; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
