/* Nexergy site — tokens + site theme, flattened for deployment. */

/* --- tokens/fonts.css --- */
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url("Archivo-Variable-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url("Archivo-Variable-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url("HankenGrotesk-Variable-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url("HankenGrotesk-Variable-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("IBMPlexMono-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("IBMPlexMono-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("IBMPlexMono-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD}

/* --- tokens/colors.css --- */
:root{
/* ---- Brand violet (sampled from the Nexergy wordmark: #5F1FBE) ---- */
--violet-50:#f4efff;--violet-100:#e8dcff;--violet-200:#d2bcff;--violet-300:#b393ff;--violet-400:#8f5ff2;
--violet-500:#5f1fbe;--violet-600:#54199f;--violet-700:#451583;--violet-800:#341062;--violet-900:#210a3f;--violet-950:#150627;
/* ---- Solar amber: the sunlight counterpart, used for energy + yield ---- */
--solar-50:#fff8e8;--solar-100:#ffedc4;--solar-200:#ffdb8a;--solar-300:#ffc74d;--solar-400:#ffb020;
--solar-500:#f59300;--solar-600:#cc7500;--solar-700:#9c5900;--solar-800:#6b3d00;--solar-900:#412500;
/* ---- Neutrals: warm-neutral greys, faintly violet in the shadows ---- */
--neutral-0:#ffffff;--neutral-25:#fbfaff;--neutral-50:#f6f5fa;--neutral-100:#eeecf3;--neutral-200:#e0dde8;
--neutral-300:#c7c3d2;--neutral-400:#9d98ab;--neutral-500:#726d80;--neutral-600:#565163;--neutral-700:#3d3948;
--neutral-800:#282531;--neutral-900:#16141c;
/* ---- Semantic hues ---- */
--green-50:#e9f8ef;--green-100:#c9eed8;--green-500:#1a9b57;--green-600:#137a44;--green-700:#0d5c33;
--amber-50:#fff6e5;--amber-100:#ffe6b8;--amber-500:#d98600;--amber-600:#a86800;
--red-50:#fdeceb;--red-100:#fbd2cf;--red-500:#d63a2e;--red-600:#ad2d23;--red-700:#7f1f18;
--blue-50:#eaf2fe;--blue-100:#cddffb;--blue-500:#2a6df0;--blue-600:#1e55c4;

/* ================= SEMANTIC ALIASES ================= */
/* Text */
--text-strong:var(--neutral-900);--text-body:var(--neutral-700);--text-muted:var(--neutral-500);
--text-subtle:var(--neutral-400);--text-inverse:var(--neutral-0);--text-brand:var(--violet-500);
--text-on-brand:var(--neutral-0);--text-on-solar:var(--violet-950);
--text-success:var(--green-700);--text-warning:var(--amber-600);--text-danger:var(--red-600);--text-link:var(--violet-500);--text-link-hover:var(--violet-700);
/* Surfaces */
--surface-page:var(--neutral-25);--surface-card:var(--neutral-0);--surface-sunken:var(--neutral-50);
--surface-raised:var(--neutral-0);--surface-inverse:var(--violet-950);--surface-brand:var(--violet-500);
--surface-brand-subtle:var(--violet-50);--surface-brand-deep:var(--violet-900);
--surface-solar:var(--solar-400);--surface-solar-subtle:var(--solar-50);
--surface-success-subtle:var(--green-50);--surface-warning-subtle:var(--amber-50);--surface-danger-subtle:var(--red-50);--surface-info-subtle:var(--blue-50);
--surface-overlay:color-mix(in oklab,var(--violet-950) 62%,transparent);
/* Borders */
--border-subtle:var(--neutral-100);--border-default:var(--neutral-200);--border-strong:var(--neutral-300);
--border-brand:var(--violet-500);--border-inverse:color-mix(in oklab,var(--neutral-0) 18%,transparent);
--border-focus:var(--violet-400);
/* Interaction */
--brand-hover:var(--violet-600);--brand-press:var(--violet-700);
--solar-hover:var(--solar-500);--solar-press:var(--solar-600);
--ghost-hover:var(--neutral-50);--ghost-press:var(--neutral-100);
--focus-ring:0 0 0 3px color-mix(in oklab,var(--violet-400) 45%,transparent);
/* Data viz: production, consumption, grid, battery */
--data-production:var(--solar-400);--data-consumption:var(--violet-500);
--data-grid:var(--neutral-400);--data-battery:var(--green-500);--data-export:var(--blue-500);
/* Signature gradients — used sparingly, on hero + dark panels only */
--gradient-dusk:linear-gradient(140deg,var(--violet-900) 0%,var(--violet-600) 55%,var(--violet-500) 100%);
--gradient-sun:linear-gradient(100deg,var(--solar-400) 0%,var(--solar-300) 100%);
--gradient-protect:linear-gradient(to top,color-mix(in oklab,var(--violet-950) 88%,transparent),transparent);
}

/* --- tokens/typography.css --- */
:root{
--font-display:"Archivo","Helvetica Neue",Helvetica,sans-serif;
--font-sans:"Hanken Grotesk","Helvetica Neue",Helvetica,sans-serif;
--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
/* Weights */
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
--fw-extrabold:800; /* @kind font */
/* Type scale — 1.25 major third above 18px body, tightened at display sizes */
--fs-display-xl:84px;--fs-display-lg:66px;--fs-display-md:50px;--fs-display-sm:39px;
--fs-heading-lg:31px;--fs-heading-md:25px;--fs-heading-sm:21px;
--fs-body-lg:21px;--fs-body-md:19px;--fs-body-sm:17px;--fs-caption:15px;--fs-micro:12px;
--fs-metric-xl:62px;--fs-metric-lg:42px;--fs-metric-md:29px;
/* Line heights */
--lh-display:1.02; /* @kind font */
--lh-heading:1.18; /* @kind font */
--lh-body:1.55; /* @kind font */
--lh-tight:1.3; /* @kind font */
--lh-metric:1; /* @kind font */
/* Tracking — display type is tightened, micro-labels are wide */
--ls-display:-0.028em; /* @kind font */
--ls-heading:-0.014em; /* @kind font */
--ls-body:0em; /* @kind font */
--ls-label:0.02em; /* @kind font */
--ls-eyebrow:0.12em; /* @kind font */
/* Composed roles */
--type-display-xl:var(--fw-extrabold) var(--fs-display-xl)/var(--lh-display) var(--font-display);
--type-display-lg:var(--fw-extrabold) var(--fs-display-lg)/var(--lh-display) var(--font-display);
--type-display-md:var(--fw-bold) var(--fs-display-md)/var(--lh-display) var(--font-display);
--type-display-sm:var(--fw-bold) var(--fs-display-sm)/var(--lh-heading) var(--font-display);
--type-heading-lg:var(--fw-bold) var(--fs-heading-lg)/var(--lh-heading) var(--font-display);
--type-heading-md:var(--fw-semibold) var(--fs-heading-md)/var(--lh-heading) var(--font-display);
--type-heading-sm:var(--fw-semibold) var(--fs-heading-sm)/var(--lh-tight) var(--font-display);
--type-body-lg:var(--fw-regular) var(--fs-body-lg)/var(--lh-body) var(--font-sans);
--type-body-md:var(--fw-regular) var(--fs-body-md)/var(--lh-body) var(--font-sans);
--type-body-sm:var(--fw-regular) var(--fs-body-sm)/var(--lh-body) var(--font-sans);
--type-label:var(--fw-semibold) var(--fs-body-sm)/var(--lh-tight) var(--font-sans);
--type-caption:var(--fw-regular) var(--fs-caption)/1.45 var(--font-sans);
--type-eyebrow:var(--fw-semibold) var(--fs-micro)/1.2 var(--font-sans);
--type-metric-xl:var(--fw-semibold) var(--fs-metric-xl)/var(--lh-metric) var(--font-mono);
--type-metric-lg:var(--fw-semibold) var(--fs-metric-lg)/var(--lh-metric) var(--font-mono);
--type-metric-md:var(--fw-medium) var(--fs-metric-md)/var(--lh-metric) var(--font-mono);
}

/* --- tokens/presentation.css --- */
/* ===== Presentation / proposal-deck palette =====
   Sampled from the real Nexergy villa proposal decks (Sept 2026). The decks use a
   navy ink + blue/green accents on a pale lavender ground — they do NOT use the
   product violet as ink. Keep these tokens for slides and printed proposals. */
:root{
--navy-950:#0d1233;--navy-900:#141b4d;--navy-700:#252e66;--navy-500:#3b4270;--navy-300:#6a6f95;
--lavender-25:#faf9ff;--lavender-50:#f2f1ff;--lavender-100:#edecf8;--lavender-200:#e6e5f2;
--deck-blue-500:#2563d6;--deck-blue-50:#e3ecfd;
--deck-green-600:#17864a;--deck-green-50:#e8f6ee;

/* semantic */
--slide-ground:var(--lavender-50);
--slide-ink:var(--navy-900);
--slide-ink-soft:var(--navy-500);
--slide-caption:var(--navy-300);
--slide-accent:var(--deck-blue-500);       /* returns, payback, IRR, chips, icons */
--slide-money:var(--deck-green-600);        /* savings, cost, subsidy */
--slide-rule:var(--lavender-200);
--slide-row:#f8f8fc;
--slide-head:var(--lavender-100);
--slide-blob:url("../assets/backgrounds/blob-field.webp"); /* @kind other */
}

/* --- tokens/spacing.css --- */
:root{
/* 4px base, with a 6px half-step for dense control padding */
--space-0:0px;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;
--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--space-12:80px;--space-13:112px;--space-14:160px;
/* Semantic spacing */
--gap-inline:8px;--gap-stack:12px;--gap-card:20px;--gap-grid:24px;--gap-section:80px;--gap-section-lg:112px;
--pad-control-y:10px;--pad-control-x:18px;--pad-card:24px;--pad-card-lg:32px;--pad-panel:32px;
/* Layout */
--container-max:1200px;--container-narrow:720px;--container-wide:1400px;
--gutter-mobile:20px;--gutter-desktop:40px;
--nav-height:72px;--sidebar-width:248px;--sidebar-width-collapsed:72px;
}

/* --- tokens/radius.css --- */
:root{
/* The mark is built from bevelled straight strokes, so radii stay modest — never pill-shaped cards */
--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:999px;
--radius-control:10px;--radius-card:14px;--radius-panel:20px;--radius-media:20px;--radius-chip:999px;
--border-width:1px; /* @kind spacing */
--border-width-strong:2px; /* @kind spacing */
}

/* --- tokens/elevation.css --- */
:root{
/* Shadows are violet-tinted, never neutral black */
--shadow-none:none; /* @kind shadow */
--shadow-xs:0 1px 2px color-mix(in oklab,var(--violet-950) 8%,transparent);
--shadow-sm:0 1px 3px color-mix(in oklab,var(--violet-950) 8%,transparent),0 1px 2px color-mix(in oklab,var(--violet-950) 6%,transparent);
--shadow-md:0 4px 12px color-mix(in oklab,var(--violet-950) 10%,transparent),0 1px 3px color-mix(in oklab,var(--violet-950) 6%,transparent);
--shadow-lg:0 12px 32px color-mix(in oklab,var(--violet-950) 12%,transparent),0 2px 6px color-mix(in oklab,var(--violet-950) 6%,transparent);
--shadow-xl:0 24px 64px color-mix(in oklab,var(--violet-950) 18%,transparent);
--shadow-inset:inset 0 1px 0 color-mix(in oklab,var(--neutral-0) 60%,transparent);
--shadow-brand:0 10px 28px color-mix(in oklab,var(--violet-500) 28%,transparent);
--shadow-solar:0 10px 28px color-mix(in oklab,var(--solar-400) 34%,transparent);
--blur-glass:saturate(1.4) blur(14px); /* @kind other */
}

/* --- tokens/motion.css --- */
:root{
--dur-instant:80ms; /* @kind other */
--dur-fast:140ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:360ms; /* @kind other */
--dur-reveal:640ms; /* @kind other */
--ease-standard:cubic-bezier(.2,.8,.2,1); /* @kind other */
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */
--ease-entrance:cubic-bezier(.22,1.02,.36,1); /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out); /* @kind other */
--transition-surface:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out); /* @kind other */
--press-scale:0.985; /* @kind other */
}

/* --- tokens/base.css --- */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body-md);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;color:var(--text-strong);font-family:var(--font-display);letter-spacing:var(--ls-heading);text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover);text-decoration:underline;text-underline-offset:3px}
button{font:inherit}
::selection{background:var(--violet-100);color:var(--violet-900)}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* --- site theme --- */
/* nexergy.com — shared site theme. Lavender ground, navy ink, violet action. */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--lavender-50);color:var(--navy-900);font-family:var(--font-sans);font-size:var(--fs-body-md);line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover)}
:focus-visible{outline:3px solid color-mix(in oklch,var(--violet-400) 45%,transparent);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter-desktop);width:100%}
.ico{display:block;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex:none}
/* ---- header ---- */
.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--lavender-50) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--lavender-200) 60%,transparent)}
.hdr .in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px var(--gutter-desktop);max-width:var(--container-max);margin:0 auto}
.hdr img{height:22px;width:auto}
.navlinks{display:flex;gap:26px;font:var(--type-label);font-size:var(--fs-body-sm)}
.navlinks a{color:var(--navy-500)}.navlinks a:hover{color:var(--navy-900)}
.navlinks a[aria-current=page]{color:var(--navy-900);box-shadow:inset 0 -2px 0 var(--violet-500)}
/* ---- mobile menu ---- */
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--lavender-200);border-radius:var(--radius-control);background:#fff;color:var(--navy-900)}
.mnav summary .i-menu{width:20px;height:20px}
.mnav-p{position:absolute;right:0;top:52px;background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:12px;display:flex;flex-direction:column;gap:2px;min-width:214px;z-index:50}
.mnav-p a{padding:11px 12px;font:var(--type-label);font-size:var(--fs-body-sm);color:var(--navy-900);border-radius:8px}
.mnav-p a:hover{background:var(--lavender-50);color:var(--navy-900)}
.mnav-p .btn{margin-top:8px;color:var(--text-on-brand)}
.mnav-p .btn:hover{color:var(--text-on-brand)}
@media (max-width:860px){.mnav{display:block}}
/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:var(--type-label);font-size:var(--fs-body-md);padding:14px 24px;border-radius:var(--radius-control);border:1px solid transparent;cursor:pointer;transition:background var(--dur-control,140ms) ease,transform var(--dur-control,140ms) ease,box-shadow 140ms ease;white-space:nowrap;text-align:center}
.btn:active{transform:scale(.985)}
.btn .ico,.btn [class^="i-"]{width:20px;height:20px}
.btn-primary{background:var(--surface-brand);color:var(--text-on-brand)}
.btn-primary:hover{background:var(--brand-hover);color:var(--text-on-brand)}
.btn-ghost{background:transparent;color:var(--navy-900);border-color:var(--lavender-200)}
.btn-ghost:hover{background:#fff;color:var(--navy-900)}
.btn-onnav{padding:10px 18px;font-size:var(--fs-body-sm)}
.btn-lg{padding:17px 30px;font-size:var(--fs-body-lg)}
.btn-block{width:100%}
.btn-white{background:#fff;color:var(--violet-700,#3d1080)}
.btn-white:hover{background:var(--lavender-50);color:var(--violet-700,#3d1080)}
.btn-outline-w{background:transparent;color:#fff;border-color:color-mix(in srgb,#fff 34%,transparent)}
.btn-outline-w:hover{background:color-mix(in srgb,#fff 12%,transparent);color:#fff}
/* ---- type ---- */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--deck-blue-500)}
.eyebrow .ico,.eyebrow [class^="i-"]{width:16px;height:16px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:var(--ls-display);line-height:1.04;margin:0;text-wrap:balance}
.h-hero{line-height:1.02}
.h-hero .l1{display:block;font-size:clamp(42px,7vw,84px);color:var(--navy-900)}
.h-hero .l2{display:block;font-size:clamp(31px,5vw,60px);color:var(--navy-500)}
h2,.h2{font-size:clamp(31px,3.6vw,50px)}
h3,.h3{font-size:clamp(21px,1.8vw,25px);letter-spacing:-.012em}
.lede{font:var(--type-body-lg);color:var(--navy-500);max-width:56ch;text-wrap:pretty}
.body{color:var(--navy-500);text-wrap:pretty}
.cap{font:var(--type-caption);color:var(--navy-300);text-wrap:pretty}
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em;color:var(--navy-900)}
/* ---- bands ---- */
.band{padding:96px 0}
.band-tight{padding:64px 0}
.band-white{background:#fff;border-top:1px solid var(--lavender-200);border-bottom:1px solid var(--lavender-200)}
.band-dark{background:var(--violet-950);color:#fff}
.band-dark h2,.band-dark .num{color:#fff}
.band-dark .lede,.band-dark .body{color:color-mix(in srgb,#fff 74%,transparent)}
.band-dark .cap{color:color-mix(in srgb,#fff 56%,transparent)}
.band-dark .eyebrow{color:var(--solar-400)}
.head{max-width:720px;margin:0 auto 56px;text-align:center}
.head .lede{margin:16px auto 0;text-align:center}
.head-l{max-width:640px;margin-bottom:48px}
/* ---- cards & grids ---- */
.grid{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card-p{padding:32px;border-radius:var(--radius-panel)}
.card-link{transition:transform 140ms ease,box-shadow 140ms ease}
.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.band-dark .card{background:color-mix(in srgb,#fff 8%,transparent);border-color:color-mix(in srgb,#fff 14%,transparent);box-shadow:none;color:#fff}
.glyph{width:46px;height:46px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-brand-subtle,var(--lavender-50));color:var(--violet-500);flex:none}
.glyph .ico,.glyph [class^="i-"]{width:25px;height:25px}
.glyph-solar{background:var(--solar-50);color:var(--solar-800)}
.glyph-blue{background:#e8effb;color:var(--deck-blue-500)}
.glyph-green{background:var(--green-50);color:var(--green-700)}
.band-dark .glyph{background:color-mix(in srgb,#fff 12%,transparent);color:var(--solar-400)}
/* ---- spec row (wide 3-up statement, dark band) ---- */
.specrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:var(--space-9);border-top:1px solid color-mix(in srgb,#fff 18%,transparent)}
.specrow>div{padding:28px 32px 0;border-left:1px solid color-mix(in srgb,#fff 18%,transparent)}
.specrow>div:first-child{padding-left:0;border-left:0}
.specrow>div:last-child{padding-right:0}
.specrow p{font:var(--type-body-lg);color:#fff;margin:12px 0 0;text-wrap:pretty}
@media (max-width:820px){
.specrow{grid-template-columns:minmax(0,1fr);border-top:0}
.specrow>div{padding:24px 0;border-left:0;border-top:1px solid color-mix(in srgb,#fff 18%,transparent)}
.specrow>div:first-child{padding-left:0}
}
/* ---- metric row ---- */
.metrics{display:flex;gap:var(--space-8);flex-wrap:wrap}
.metric .v{font:var(--type-metric-md);font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:inherit}
.metric .k{font:var(--type-caption);color:var(--navy-300);margin-top:2px}
.band-dark .metric .k{color:color-mix(in srgb,#fff 60%,transparent)}
/* ---- forms ---- */
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field label{font:var(--type-label);font-size:var(--fs-caption);color:var(--navy-500)}
.field input,.field select,.field textarea{font-family:var(--font-sans);font-size:var(--fs-body-md);color:var(--navy-900);background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-control);padding:13px 14px;width:100%;appearance:none}
.field input::placeholder{color:var(--navy-300)}
.field select{background-image:url("https://unpkg.com/lucide-static@0.544.0/icons/chevron-down.svg");background-repeat:no-repeat;background-position:right 12px center;background-size:17px;padding-right:38px}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{position:relative;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--lavender-200);background:#fff;border-radius:var(--radius-control);padding:12px 16px;cursor:pointer;font:var(--type-label);font-size:var(--fs-body-sm);color:var(--navy-500)}
.seg input{position:absolute;left:0;top:0;width:0;height:0;opacity:0;pointer-events:none}
.seg input:checked+span{color:var(--violet-500)}
.seg label:has(input:checked){border-color:var(--violet-500);box-shadow:inset 0 0 0 1px var(--violet-500);color:var(--navy-900)}
.consent{display:flex;gap:10px;align-items:flex-start;font:var(--type-caption);color:var(--navy-300)}
.consent input{margin-top:3px;accent-color:var(--violet-500);width:18px;height:18px;flex:none}
/* ---- list ---- */
.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.ticks li{display:flex;gap:11px;align-items:flex-start;color:var(--navy-500)}
.ticks .ico,.ticks [class^="i-"]{width:21px;height:21px;margin-top:4px;color:var(--green-500)}
/* ---- trust strip ---- */
.trust{display:flex;flex-wrap:wrap;gap:14px 34px;align-items:center;justify-content:center;padding:22px 0}
.trust span{display:inline-flex;align-items:center;gap:9px;font:var(--type-label);font-size:var(--fs-caption);color:var(--navy-500)}
.trust .ico,.trust [class^="i-"]{width:20px;height:20px;color:var(--violet-500)}
/* ---- footer ---- */
.foot{background:var(--violet-950);color:color-mix(in srgb,#fff 74%,transparent);padding:72px 0 32px;font-size:var(--fs-body-sm)}
.foot a{color:color-mix(in srgb,#fff 74%,transparent)}.foot a:hover{color:#fff}
.foot .cols{display:grid;grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:40px 24px}
.foot h4{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb,#fff 52%,transparent);font-weight:700;margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot li,.foot a{overflow-wrap:anywhere}
.foot .rule{border-top:1px solid color-mix(in srgb,#fff 14%,transparent);margin-top:48px;padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:color-mix(in srgb,#fff 52%,transparent);font-size:var(--fs-caption)}
/* ---- sticky mobile contact bar ---- */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--lavender-200);box-shadow:0 -8px 24px color-mix(in srgb,var(--violet-950) 10%,transparent);padding:10px 12px;gap:8px}
.mbar .btn{flex:1;padding:14px 10px;font-size:var(--fs-body-sm)}
.mbar .btn-wa{background:#1faa53;color:#fff}
.mbar .btn-call{background:transparent;color:var(--navy-900);border-color:var(--lavender-200)}
/* ---- icon masks (Lucide 0.544.0) ---- */
.i-sun,.i-house,.i-house-plug,.i-battery-charging,.i-utility-pole,.i-arrow-right,.i-check,.i-shield-check,.i-file-text,.i-gauge,.i-wrench,.i-phone,.i-message-circle,.i-calendar-check,.i-ruler,.i-cpu,.i-zap,.i-leaf,.i-star,.i-map-pin,.i-plug-zap,.i-wallet,.i-satellite-dish,.i-mail,.i-clock,.i-badge-check,.i-trending-down,.i-panels-top-left{display:block;width:1em;height:1em;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex:none}
.i-menu{display:block;width:1em;height:1em;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/menu.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/menu.svg)}
.i-sun{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/sun.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/sun.svg)}
.i-house{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/house.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/house.svg)}
.i-house-plug{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/house-plug.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/house-plug.svg)}
.i-battery-charging{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/battery-charging.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/battery-charging.svg)}
.i-utility-pole{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/utility-pole.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/utility-pole.svg)}
.i-arrow-right{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/arrow-right.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/arrow-right.svg)}
.i-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/check.svg)}
.i-shield-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/shield-check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/shield-check.svg)}
.i-file-text{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/file-text.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/file-text.svg)}
.i-gauge{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/gauge.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/gauge.svg)}
.i-wrench{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/wrench.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/wrench.svg)}
.i-phone{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/phone.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/phone.svg)}
.i-message-circle{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/message-circle.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/message-circle.svg)}
.i-calendar-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/calendar-check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/calendar-check.svg)}
.i-ruler{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/ruler.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/ruler.svg)}
.i-cpu{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/cpu.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/cpu.svg)}
.i-zap{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/zap.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/zap.svg)}
.i-leaf{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/leaf.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/leaf.svg)}
.i-star{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/star.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/star.svg)}
.i-map-pin{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/map-pin.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/map-pin.svg)}
.i-plug-zap{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/plug-zap.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/plug-zap.svg)}
.i-wallet{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/wallet.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/wallet.svg)}
.i-satellite-dish{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/satellite-dish.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/satellite-dish.svg)}
.i-mail{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/mail.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/mail.svg)}
.i-clock{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/clock.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/clock.svg)}
.i-badge-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/badge-check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/badge-check.svg)}
.i-trending-down{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/trending-down.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/trending-down.svg)}
.i-panels-top-left{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/panels-top-left.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/panels-top-left.svg)}
/* ---- live flow panel ---- */
.flow{display:grid;grid-template-columns:1.05fr 34px 1.1fr 34px 1.05fr;grid-template-rows:auto 38px auto;margin-top:22px}
.fnode{border:1px solid var(--lavender-200);border-radius:var(--radius-card);background:#fff;padding:11px 12px;display:flex;flex-direction:column;gap:7px;min-width:0}
.fnode .top{display:flex;align-items:center;gap:7px}
.fnode .nm{font:var(--type-label);font-size:var(--fs-caption);color:var(--navy-500);line-height:1.2}
.fnode .val{font-family:var(--font-mono);font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--navy-900);font-variant-numeric:tabular-nums}
.fnode .sub{font:var(--type-caption);font-size:11px;color:var(--navy-300)}
.chip{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex:none}
.chip .ico,.chip [class^="i-"]{width:13px;height:13px}
.wire{position:relative;align-self:center;justify-self:stretch;border-radius:2px}
.wire.h{height:3px;background:var(--lavender-200)}
.wire.v{width:3px;height:100%;background:var(--lavender-200);justify-self:center}
.dots{position:absolute;inset:0;border-radius:2px;opacity:0;transition:opacity .6s ease}
.wire.h .dots{background:repeating-linear-gradient(90deg,currentColor 0 5px,transparent 5px 20px);animation:runX 2s linear infinite}
.wire.v .dots{background:repeating-linear-gradient(180deg,currentColor 0 5px,transparent 5px 20px);animation:runY 2s linear infinite}
@keyframes runX{to{transform:translateX(20px)}}@keyframes runY{to{transform:translateY(20px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.bar{height:4px;border-radius:2px;background:#ece9f6;overflow:hidden}
.bar i{display:block;height:100%;border-radius:2px;background:var(--green-500);transition:width 1s ease}
.livebadge{display:inline-flex;align-items:center;gap:7px;font:var(--type-label);font-size:var(--fs-caption);color:var(--navy-500);border:1px solid var(--lavender-200);border-radius:999px;padding:6px 11px 6px 9px;white-space:nowrap}
.livebadge i{width:7px;height:7px;border-radius:999px;background:var(--solar-400);animation:pulse 2.4s ease-in-out infinite}
.fstat{flex:1;min-width:0}
.fstat .k{font:var(--type-caption);font-size:11px;color:var(--navy-300);text-transform:uppercase;letter-spacing:.06em}
.fstat .v{font-family:var(--font-mono);font-size:17px;font-weight:600;color:var(--navy-900);margin-top:3px;font-variant-numeric:tabular-nums}
@media (max-width:600px){
.flow{grid-template-columns:1fr 28px 1fr;grid-template-rows:auto 30px auto 30px auto}
.flow .n-roof{grid-column:1/-1!important;grid-row:1!important}
.flow .w-solar{grid-column:2!important;grid-row:2!important}
.flow .n-load{grid-column:1/-1!important;grid-row:3!important}
.flow .w-batt{grid-column:2!important;grid-row:4!important;width:3px;height:100%;justify-self:center;background:var(--lavender-200)}
.flow .w-batt .dots{background:repeating-linear-gradient(180deg,currentColor 0 5px,transparent 5px 20px);animation:runY 2s linear infinite}
.flow .n-batt{grid-column:1!important;grid-row:5!important}
.flow .n-grid{grid-column:3!important;grid-row:5!important}
.flow .w-grid{display:none}
}
/* ---- details ---- */
summary::-webkit-details-marker{display:none}
summary::marker{content:""}
details summary .i-arrow-right{transition:transform 180ms ease}
details[open] summary .i-arrow-right{transform:rotate(-90deg)!important}
details summary:hover span:first-child{color:var(--violet-500)}
/* ---- responsive ---- */
@media (max-width:1080px){
.wrap,.hdr .in{padding-left:32px;padding-right:32px}
.band{padding:80px 0}
.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
.navlinks{gap:18px}
}
@media (max-width:860px){
.navlinks{display:none}
.foot .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
.wrap,.hdr .in{padding-left:20px;padding-right:20px}
.band{padding:56px 0}
.band-tight{padding:40px 0}
.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}
.head{margin-bottom:36px;text-align:left}
.head .lede{text-align:left;margin-left:0}
.card{padding:20px}.card-p{padding:22px}
.metrics{gap:24px}
.mbar{display:flex}
body{padding-bottom:74px}
.hdr .in .btn-onnav{display:none}
.trust{justify-content:flex-start;gap:12px 22px}
}
@media (max-width:980px){
.wrap[style*="grid-template-columns"],article[style*="grid-template-columns"],[class*="grid"][style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important;gap:var(--space-9)!important}
article[style*="grid-template-columns"] img{aspect-ratio:16/10!important}
}
@media (max-width:720px){
form[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
[style*="grid-template-columns:64px"]{grid-template-columns:44px minmax(0,1fr)!important;gap:18px!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* --- v2 additions --- */
/* nexergy.com v2 — additions on top of site.css. Homepage rebuild. */

/* nav stays beside the logo far longer; hamburger only on real phones */
@media (min-width:721px){.navlinks{display:flex}.mnav{display:none}}
@media (max-width:1000px){.navlinks{gap:15px;font-size:var(--fs-caption)}.hdr .in{gap:14px}.btn-onnav{padding:9px 15px}}
/* flow panel — every node centred */
.fnode{align-items:center;text-align:center}
.fnode .top{justify-content:center}
.fnode .bar{width:100%}
/* hero metrics — range set as the value, unit in the label */
.metric .v.rng{letter-spacing:-.04em}
/* trust strip — 4 even columns, matched round glyphs */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;justify-content:stretch;align-items:start;padding:24px 0}
.trust span{justify-content:flex-start;align-items:flex-start}
.trust span [class^="i-"]{flex:none;margin-top:1px}
@media (max-width:900px){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.trust{grid-template-columns:minmax(0,1fr)}}
/* stats strip */
.statstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--lavender-200);border-bottom:1px solid var(--lavender-200)}
.statstrip>div{padding:32px 28px;border-left:1px solid var(--lavender-200);min-width:0}
.statstrip>div:first-child{border-left:0;padding-left:0}
.statstrip .sv{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:clamp(30px,3.4vw,42px);letter-spacing:-.03em;color:var(--navy-900);line-height:1}
.statstrip .scred{font-family:var(--font-display);font-weight:800;font-size:clamp(19px,1.8vw,23px);letter-spacing:-.02em;color:var(--navy-900);line-height:1.1}
.statstrip .sk{font:var(--type-caption);color:var(--navy-300);margin-top:9px}
@media (max-width:860px){.statstrip{grid-template-columns:repeat(2,minmax(0,1fr))}.statstrip>div{padding:24px 20px}.statstrip>div:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--lavender-200)}.statstrip>div:nth-child(4){border-top:1px solid var(--lavender-200)}.statstrip>div:first-child{padding-left:0}}
@media (max-width:560px){.statstrip{grid-template-columns:minmax(0,1fr)}.statstrip>div{border-left:0;padding-left:0;border-top:1px solid var(--lavender-200)}.statstrip>div:first-child{border-top:0}}
/* reasons — hairline row (direction A) */
.reasons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.reasons>div{padding:0 24px;border-left:1px solid var(--lavender-200);min-width:0}
.reasons>div:first-child{border-left:0;padding-left:0}
.reasons>div:last-child{padding-right:0}
.reasons h3{font-size:19px;margin-bottom:9px}
.reasons p{font:var(--type-caption);color:var(--navy-500);margin:0;text-wrap:pretty}
.reasons .rn{font-family:var(--font-mono);font-size:12px;color:var(--deck-blue-500);display:block;margin-bottom:14px}
@media (max-width:1000px){.reasons{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 0}.reasons>div{padding:0 20px}.reasons>div:nth-child(odd){border-left:0;padding-left:0}}
@media (max-width:620px){.reasons{grid-template-columns:minmax(0,1fr)}.reasons>div{border-left:0;padding:0}}
/* lead form band */
.leadgrid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:var(--space-11);align-items:start}
.leadform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.leadform .full{grid-column:1/-1}
@media (max-width:980px){.leadgrid{grid-template-columns:minmax(0,1fr);gap:var(--space-9)}}
@media (max-width:560px){.leadform{grid-template-columns:minmax(0,1fr)}}
/* range slider */
.rangewrap{display:flex;flex-direction:column;gap:9px}
.rangetop{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.rangetop .rv{font-family:var(--font-mono);font-weight:600;font-size:21px;color:var(--navy-900);font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;cursor:pointer;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--violet-500) var(--fill,40%),#e6e2f2 var(--fill,40%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:999px;background:#fff;border:2px solid var(--violet-500);box-shadow:var(--shadow-sm);margin-top:-8px}
input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#e6e2f2}
input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--violet-500)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:999px;background:#fff;border:2px solid var(--violet-500)}
.rangeends{display:flex;justify-content:space-between;font:var(--type-caption);color:var(--navy-300)}
/* form success */
.formdone{display:none;flex-direction:column;gap:12px;align-items:flex-start}
form.done .leadform,form.done .consent,form.done .formcta{display:none}
form.done .formdone{display:flex}
/* calculator teaser */
.calcout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--lavender-200);border-radius:var(--radius-panel);background:#fff;overflow:hidden}
.calcout>div{padding:26px 24px;border-left:1px solid var(--lavender-200);text-align:center}
.calcout>div:first-child{border-left:0}
.calcout .cv{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:clamp(26px,3vw,34px);letter-spacing:-.03em;color:var(--navy-900);line-height:1}
.calcout .ck{font:var(--type-caption);color:var(--navy-300);margin-top:8px}
@media (max-width:620px){.calcout{grid-template-columns:minmax(0,1fr)}.calcout>div{border-left:0;border-top:1px solid var(--lavender-200)}.calcout>div:first-child{border-top:0}}
/* assured yield band */
.yieldgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:var(--space-11);align-items:center}
.yieldsteps{display:flex;flex-direction:column;gap:0}
.yieldsteps>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;padding:20px 0;border-top:1px solid color-mix(in srgb,#fff 18%,transparent)}
.yieldsteps>div:last-child{border-bottom:1px solid color-mix(in srgb,#fff 18%,transparent)}
.yieldsteps .sn{font-family:var(--font-mono);font-size:13px;color:var(--solar-400)}
.yieldsteps p{margin:0;color:color-mix(in srgb,#fff 80%,transparent);text-wrap:pretty}
.yieldsteps strong{color:#fff;font-weight:600}
@media (max-width:900px){.yieldgrid{grid-template-columns:minmax(0,1fr);gap:var(--space-9)}}
/* testimonials */
.tcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.tcard{background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:24px;display:flex;flex-direction:column;gap:16px;min-width:0}
.tcard blockquote{margin:0;font:var(--type-body-md);color:var(--navy-900);text-wrap:pretty}
.tcard .who{display:flex;align-items:center;gap:12px;margin-top:auto}
.avatar{width:44px;height:44px;border-radius:999px;flex:none;background:repeating-linear-gradient(135deg,#ece8f7 0 6px,#f6f4fc 6px 12px);border:1px dashed var(--lavender-200);display:grid;place-items:center;font-family:var(--font-mono);font-size:8px;line-height:1.1;color:var(--navy-300);text-align:center;text-transform:uppercase;letter-spacing:.04em;padding:4px}
img.avatar{object-fit:cover;border:1px solid var(--lavender-200);background:var(--lavender-50);padding:0;display:block}
.tcard .nm{font:var(--type-label);font-size:var(--fs-body-sm);color:var(--navy-900)}
.tcard .pl{font:var(--type-caption);font-size:13px;color:var(--navy-300)}
.qm{font-family:var(--font-display);font-weight:800;font-size:38px;line-height:.7;color:var(--lavender-200)}
@media (max-width:1000px){.tcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.tcards{grid-template-columns:minmax(0,1fr)}}
/* comparison table */
.cmp{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);overflow:hidden;font-size:var(--fs-body-sm)}
.cmp th,.cmp td{padding:17px 20px;text-align:left;border-top:1px solid var(--lavender-200)}
.cmp thead th{border-top:0;background:#f1effa;font:var(--type-label);font-size:var(--fs-caption);color:var(--navy-500);text-transform:uppercase;letter-spacing:.08em}
.cmp tbody th{font:var(--type-label);font-size:var(--fs-body-sm);color:var(--navy-900);font-weight:600}
.cmp .col-us{background:var(--lavender-50);text-align:center;width:20%}
.cmp .col-them{text-align:center;width:20%;color:var(--navy-300)}
.cmp thead .col-us{background:#e7defc;color:var(--violet-700,#3d1080)}
.cmp .yes{color:var(--green-600);display:inline-flex;align-items:center;gap:7px;font:var(--type-label);font-size:var(--fs-body-sm)}
.cmp .no{color:var(--navy-300);display:inline-flex;align-items:center;gap:7px;font:var(--type-label);font-size:var(--fs-body-sm)}
.cmp .yes [class^="i-"],.cmp .no [class^="i-"]{width:17px;height:17px}
@media (max-width:720px){.cmp th,.cmp td{padding:13px 12px;font-size:var(--fs-caption)}.cmp .col-us,.cmp .col-them{width:24%}}
.i-x{display:block;width:1em;height:1em;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex:none;-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/x.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/x.svg)}
.i-plus{display:block;width:1em;height:1em;background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex:none;-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/plus.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/plus.svg)}
/* FAQ accordions */
.faqlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;align-content:start}
.faqlist details{border-top:1px solid var(--lavender-200)}
.faqlist details:last-child,.faqlist details:nth-last-child(2){border-bottom:1px solid var(--lavender-200)}
.faqlist summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0;cursor:pointer;font:var(--type-label);font-size:var(--fs-body-md);color:var(--navy-900)}
.faqlist summary .i-plus{width:18px;height:18px;color:var(--violet-500);transition:transform 180ms ease;flex:none}
.faqlist details[open] summary .i-plus{transform:rotate(45deg)}
.faqlist details p{margin:0 0 20px;color:var(--navy-500);max-width:56ch;text-wrap:pretty}
@media (max-width:860px){.faqlist{grid-template-columns:minmax(0,1fr)}.faqlist details:nth-last-child(2){border-bottom:0}}
/* two-node flow (no storage) */
.flow-2{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);grid-template-rows:auto 38px auto;margin-top:22px}
@media (max-width:600px){.flow-2{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);grid-template-rows:auto 30px auto}}
/* flow panel inside a product card */
.prod .flow,.prod .flow-2{margin-top:16px}
.prod .fnode .val{font-size:18px}
/* direction B — tinted reason cards, heavier figures */
.bcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.bcard{background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:22px;display:flex;flex-direction:column;gap:13px;min-width:0}
.bcard h3{font-size:18px}
.bcard p{font:var(--type-caption);color:var(--navy-500);margin:0;text-wrap:pretty}
@media (max-width:1080px){.bcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.bcards{grid-template-columns:minmax(0,1fr)}}
.bstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.bstat{background:#fff;border:1px solid var(--lavender-200);border-radius:var(--radius-card);padding:24px;display:flex;flex-direction:column;gap:10px}
.bstat .sv{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:clamp(28px,3.2vw,38px);letter-spacing:-.03em;line-height:1;color:var(--navy-900)}
.bstat .sk{font:var(--type-caption);color:var(--navy-300)}
@media (max-width:860px){.bstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.bstats{grid-template-columns:minmax(0,1fr)}}
.btn-solar{background:var(--solar-400);color:var(--violet-950)}
.btn-solar:hover{background:var(--solar-500,#f0a010);color:var(--violet-950)}
