/* Stellar Upgrades — shared stylesheet (Part 3). Built on css/stellar-tokens.css: the brand tokens below, then every
   rule that is identical on at least 40 pages, in the order the pages use them. Each rule is scoped with a zero-specificity
   :where(html[data-s~="n"]) prefix and applies only on pages whose <html data-s> lists n, so it cannot reach a page that never had it. */

/* brand tokens, from css/stellar-tokens.css (variables only; the element styles there are adopted page by page in Part 4). */
:root {
  /* Colour — light (paper) */
  --surface: #fbfaf7;  /* Page background. Warm off-white on light; near-black green on ink sections and the sticky header. */
  --surface-2: #f1efe9;  /* Alternate section background (class .soft), input wells, pills at rest. */
  --card: #ffffff;  /* Cards, tiles, quote card. On ink sections a card stays white and carries light-theme text. */
  --card-translucent: #ffffff;  /* Fact cards and warranty cards on ink sections: a faint lift, not a white card. */
  --text: #141c18;  /* Headings and body. 14.5:1 on surface. */
  --text-2: #4a544f;  /* Secondary copy, lead paragraphs, captions. 7:1 on surface. */
  --mute: #767f79;  /* Labels, notes, fine print. Never below 13px. */
  --line: rgba(20,28,24,0.11);  /* Hairlines: card borders, ledger rows, dividers. Borders, not shadows, separate content. */
  --line-strong: #141c18;  /* The one strong rule above a ledger or total. */
  --brass: #8c7442;  /* The accent. Eyebrow labels, spec-sheet arrows, the selected-state keyline, the signature rule. Small areas only; never a fill for buttons or large blocks. */
  --brass-deep: #6f5c33;  /* Pending-state banner and the selected production bar. Darkest brass. */
  --logo-gold: #c9a84c;  /* The A in the wordmark only. Not a UI colour. */
  --green: #1f6e4d;  /* Money kept, owning line on the rent-vs-own chart, credits, battery and home flows in the simulator. */
  --red: #9e3f33;  /* What renting costs: the 30-year rent total, renting line on the chart. The only warm signal colour. */
  --sun: #e9cf7a;  /* Solar flow dots and the sun in the simulator only. */
  --grid-flow: #cfd8d3;  /* Grid flow dots in the simulator. */
  --chart-production: #8c7442;  /* Production bars in the monthly chart. */
  --chart-usage: #2b3a33;  /* Usage bars in the monthly chart. */
  --button: #0e1613;  /* Primary button fill. Ink on light, ivory on ink. Never brass. */
  --button-text: #f3f1ea;  /* Text on the primary button. */

  /* Type */
  --font-display: "Inter Tight", Inter, system-ui, sans-serif;
  --font-sans: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-script: Caveat, cursive;

  --display-1-size: 82px;
  --display-1-line: 1.04;
  --display-1-weight: 600;
  --display-1-tracking: -0.03em;
  --display-2-size: 58px;
  --display-2-line: 1.04;
  --display-2-weight: 600;
  --display-2-tracking: -0.03em;
  --display-3-size: 28px;
  --display-3-line: 1.1;
  --display-3-weight: 600;
  --display-3-tracking: -0.02em;
  --number-hero-size: 112px;
  --number-hero-line: 0.95;
  --number-hero-weight: 600;
  --number-hero-tracking: -0.05em;
  --number-lg-size: 40px;
  --number-lg-line: 1.05;
  --number-lg-weight: 600;
  --number-lg-tracking: -0.04em;
  --number-md-size: 28px;
  --number-md-line: 1.05;
  --number-md-weight: 600;
  --number-md-tracking: -0.03em;
  --number-sm-size: 24px;
  --number-sm-line: 1.05;
  --number-sm-weight: 600;
  --number-sm-tracking: -0.03em;
  --lead-size: 20px;
  --lead-line: 1.5;
  --lead-weight: 400;
  --lead-tracking: -0.01em;
  --body-size: 17px;
  --body-line: 1.6;
  --body-weight: 400;
  --body-sm-size: 15px;
  --body-sm-line: 1.5;
  --body-sm-weight: 400;
  --label-size: 12px;
  --label-line: 1.4;
  --label-weight: 600;
  --label-tracking: 0.12em;
  --eyebrow-size: 12px;
  --eyebrow-line: 1.4;
  --eyebrow-weight: 600;
  --eyebrow-tracking: 0.14em;
  --note-size: 14px;
  --note-line: 1.55;
  --note-weight: 400;
  --fine-size: 13px;
  --fine-line: 1.6;
  --fine-weight: 400;
  --button-size: 16px;
  --button-line: 1.2;
  --button-weight: 600;
  --signature-size: 34px;
  --signature-line: 1;
  --signature-weight: 500;

  /* Spacing */
  --space-1: 4px;  /* Hairline gaps. */
  --space-2: 8px;  /* Between label and value; between pills. */
  --space-3: 12px;  /* Ledger row padding; gap inside stacked copy. */
  --space-4: 16px;  /* Card grid gap; side gutter on phones. */
  --space-5: 24px;  /* Card padding; side gutter on desktop. */
  --space-6: 36px;  /* Gap below a section heading block. */
  --space-7: 56px;  /* Gap between a hero and its key row; two-column gap. */
  --space-8: 76px;  /* Section vertical padding on desktop (52px on phones). */
  --content-width: 1180px;  /* Max width of .wrap, centred. */

  /* Radius */
  --radius-sm: 10px;  /* Segmented-control segments, inner chips. */
  --radius-md: 16px;  /* Tiles, inputs, small cards (--r). */
  --radius-lg: 24px;  /* Cards, charts, the simulator frame, the quote card (--r2). */
  --radius-pill: 999px;  /* Buttons, mode pills, tags. */

  /* Shadow */
  --shadow-card: 0 1px 2px rgba(20,28,24,0.04), 0 20px 50px rgba(20,28,24,0.09);  /* Selected cards, charts, the hero frame. Soft and low; most cards use a hairline border and no shadow. */
  --shadow-float: 0 30px 60px rgba(0,0,0,0.35);  /* A white card sitting on an ink section (quote card, decision card). */
  --shadow-sim: 0 40px 90px rgba(0,0,0,0.45);  /* The simulator frame only. */
}
.ink {
  /* Colour — ink (dark sections, sticky header) */
  --surface: #0e1613;
  --surface-2: #16211c;
  --card: #ffffff;
  --card-translucent: rgba(255,255,255,0.04);
  --text: #f3f1ea;
  --text-2: #a9b1ab;
  --mute: #a9b1ab;
  --line: rgba(255,255,255,0.11);
  --line-strong: #f3f1ea;
  --brass: #c9b283;
  --brass-deep: #6f5c33;
  --logo-gold: #c9a84c;
  --green: #5fb48c;
  --red: #e0a79e;
  --sun: #e9cf7a;
  --grid-flow: #cfd8d3;
  --chart-production: #c9b283;
  --chart-usage: #2b3a33;
  --button: #f3f1ea;
  --button-text: #0e1613;
}

/* shared rules */
:where(html[data-s~="0"]) *,:where(html[data-s~="0"]) *::before,:where(html[data-s~="0"]) *::after{margin:0;padding:0;box-sizing:border-box}:where(html[data-s~="1"]):root{--bg:#fbfaf7;--bg2:#f1efe9;--gold:#6f5c33;--goldL:#8c7442;--goldD:#6f5c33;--glow:rgba(140,116,66,0.12);--red:#9e3f33;--green:#1f6e4d;--t:#141c18;--td:#4a544f;--tdd:#4a544f;--b:rgba(20,28,24,0.11);--bG:rgba(140,116,66,0.18);--r:14px}html:where([data-s~="2"]){scroll-behavior:smooth}:where(html[data-s~="3"]) body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--t);overflow-x:hidden;-webkit-font-smoothing:antialiased;line-height:1.6}:where(html[data-s~="4"]) img{display:block;max-width:100%;height:auto}:where(html[data-s~="5"]) a{text-decoration:none;color:inherit}:where(html[data-s~="6"]) .scroll-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--goldL));z-index:10001;width:0%}:where(html[data-s~="7"]) nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:78px;display:flex;align-items:center;justify-content:center;padding:0 clamp(24px,4vw,64px);background:rgba(250,250,248,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--b)}:where(html[data-s~="8"]) .ni{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1400px}:where(html[data-s~="9"]) .n-logo{display:flex;align-items:center;flex-shrink:0}:where(html[data-s~="10"]) .n-logo svg{height:48px;width:auto}
@media(max-width:640px){:where(html[data-s~="11"]) .n-logo svg{height:40px}}
:where(html[data-s~="12"]) .n-links{display:flex;align-items:center;gap:4px;margin:0 auto}:where(html[data-s~="13"]) .n-links a{font-size:13px;font-weight:500;color:var(--td);padding:8px 16px;border-radius:60px;transition:all .25s;white-space:nowrap}:where(html[data-s~="14"]) .n-links a:hover{color:var(--t);background:rgba(240,232,216,.04)}:where(html[data-s~="15"]) .n-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}:where(html[data-s~="16"]) .n-phone{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--tdd);padding:7px 12px;border-radius:60px;transition:all .25s;white-space:nowrap}:where(html[data-s~="17"]) .n-phone:hover{color:var(--t);background:rgba(240,232,216,.04)}:where(html[data-s~="18"]) .n-phone svg{width:13px;height:13px;flex-shrink:0}:where(html[data-s~="19"]) .n-cta{padding:10px 24px;border-radius:60px;font-size:13px;font-weight:700;background:#0e1613;color:#f3f1ea;transition:all .3s;display:inline-block;letter-spacing:.02em;white-space:nowrap}:where(html[data-s~="20"]) .n-cta:hover{transform:translateY(-1px);box-shadow:0 4px 20px var(--glow)}:where(html[data-s~="21"]) .n-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;width:40px;height:40px;position:relative}:where(html[data-s~="22"]) .n-toggle span{display:block;width:18px;height:1.5px;background:var(--t);position:absolute;left:50%;transform:translateX(-50%);transition:all .3s}:where(html[data-s~="23"]) .n-toggle span:nth-child(1){top:13px}:where(html[data-s~="24"]) .n-toggle span:nth-child(2){top:19px}:where(html[data-s~="25"]) .n-toggle span:nth-child(3){top:25px}:where(html[data-s~="26"]) .n-toggle.open span:nth-child(1){top:19px;transform:translateX(-50%) rotate(45deg)}:where(html[data-s~="27"]) .n-toggle.open span:nth-child(2){opacity:0}:where(html[data-s~="28"]) .n-toggle.open span:nth-child(3){top:19px;transform:translateX(-50%) rotate(-45deg)}:where(html[data-s~="29"]) .mob-menu{display:none;position:fixed;top:78px;left:0;right:0;bottom:0;background:#fbfaf7;z-index:999;padding:32px 24px;flex-direction:column;overflow-y:auto}:where(html[data-s~="30"]) .mob-menu.open{display:flex}:where(html[data-s~="31"]) .mob-menu a{font-size:20px;font-weight:700;color:var(--t);padding:18px 0;border-bottom:1px solid var(--b)}:where(html[data-s~="32"]) .mob-menu .mg{color:var(--gold);border-bottom:none;margin-top:12px}
@media(max-width:1100px){:where(html[data-s~="33"]) .n-phone{display:none!important;white-space:nowrap}}
@media(max-width:768px){:where(html[data-s~="34"]) .n-links{display:none!important}:where(html[data-s~="35"]) .n-toggle{display:block}:where(html[data-s~="36"]) .n-cta{display:none!important}}
:where(html[data-s~="37"]) .sec{padding:clamp(56px,7vw,100px) clamp(24px,5vw,80px)}:where(html[data-s~="38"]) .sec-i{max-width:1200px;margin:0 auto}:where(html[data-s~="39"]) .btn{background:#0e1613;color:#f3f1ea;padding:16px 34px;border-radius:60px;font-family:inherit;font-size:14px;font-weight:700;border:none;cursor:pointer;transition:all .35s;box-shadow:none;display:inline-block}:where(html[data-s~="40"]) .tag{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:flex;align-items:center;gap:8px}:where(html[data-s~="41"]) .btn:hover{transform:translateY(-2px);box-shadow:none}:where(html[data-s~="42"]) .tag::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}:where(html[data-s~="43"]) .tag-c{justify-content:center}:where(html[data-s~="44"]) .stitle{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:clamp(26px,3.2vw,44px);letter-spacing:-0.02em;line-height:1.1;margin-bottom:14px;font-weight:600}:where(html[data-s~="45"]) .stitle-c{text-align:center}:where(html[data-s~="46"]) .btn-g{color:var(--td);font-size:14px;font-weight:500;padding:16px 4px;transition:color .25s}:where(html[data-s~="47"]) .btn-g:hover{color:var(--t)}:where(html[data-s~="48"]) .rv{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}:where(html[data-s~="49"]) .rv.v{opacity:1;transform:translateY(0)}:where(html[data-s~="50"]) .rv-d1{transition-delay:.08s}:where(html[data-s~="51"]) .rv-d2{transition-delay:.16s}:where(html[data-s~="52"]) [style*="animation"]{transform:translateY(28px)}:where(html[data-s~="53"]) .a-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(140,116,66,.06),transparent 55%)}:where(html[data-s~="54"]) .a-hero h1 em{font-style:italic;background:none,var(--goldL));-webkit-background-clip:text;}:where(html[data-s~="55"]) .a-hero-stars{color:var(--gold);font-size:14px;letter-spacing:1px}:where(html[data-s~="56"]) .a-hero-proof-text{font-size:13px;color:var(--td);font-weight:500}:where(html[data-s~="57"]) .a-hero-proof-text strong{color:var(--t);font-weight:700}
@media(max-width:768px){:where(html[data-s~="58"]) .a-hero{padding-top:100px}}
:where(html[data-s~="59"]) .a-hero{padding:120px clamp(24px,5vw,80px) 0;text-align:center;position:relative;overflow:hidden}:where(html[data-s~="60"]) .trust{background:var(--bg2);border-top:1px solid var(--b);border-bottom:1px solid var(--b);padding:18px clamp(24px,5vw,80px)}:where(html[data-s~="61"]) .trust-inner{display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,40px);flex-wrap:wrap;max-width:1200px;margin:0 auto}:where(html[data-s~="62"]) .a-hero h1{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:clamp(30px,4.5vw,52px);letter-spacing:-0.02em;line-height:1.08;margin-bottom:12px;position:relative;opacity:0;animation:fu .7s .3s forwards;font-weight:600}:where(html[data-s~="63"]) .trust-item{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--td);white-space:nowrap}:where(html[data-s~="64"]) .trust-stars{color:var(--gold);font-size:14px;letter-spacing:1px}:where(html[data-s~="65"]) .a-hero-sub{font-size:15px;color:var(--td);font-weight:300;position:relative;max-width:560px;margin:0 auto 24px;line-height:1.7;opacity:0;animation:fu .7s .4s forwards}:where(html[data-s~="66"]) .trust-sep{width:1px;height:18px;background:var(--b)}:where(html[data-s~="67"]) .a-hero-proof{display:flex;align-items:center;justify-content:center;gap:12px;opacity:0;animation:fu .7s .5s forwards}
@media(max-width:768px){:where(html[data-s~="68"]) .trust-sep{display:none}:where(html[data-s~="69"]) .trust-inner{gap:10px}:where(html[data-s~="70"]) .trust-item{font-size:13px}}
:where(html[data-s~="71"]) .a-svc-card{background:rgba(240,232,216,.02);border:1px solid var(--b);border-radius:var(--r);padding:24px;text-align:center;transition:all .4s}:where(html[data-s~="72"]) .a-svc-card:hover{border-color:var(--bG);transform:translateY(-3px)}:where(html[data-s~="73"]) .a-info{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:28px}:where(html[data-s~="74"]) .a-svc-icon{font-size:28px;margin-bottom:10px}:where(html[data-s~="75"]) .a-info-card{background:rgba(240,232,216,.02);border:1px solid var(--b);border-radius:var(--r);padding:22px;text-align:center;transition:all .4s}:where(html[data-s~="76"]) .a-svc-card h4{font-weight:700;font-size:15px;margin-bottom:4px}:where(html[data-s~="77"]) .a-info-card:hover{border-color:var(--bG);transform:translateY(-2px)}:where(html[data-s~="78"]) .a-svc-card p{font-size:13px;color:var(--td);font-weight:300;line-height:1.6;margin-bottom:12px}:where(html[data-s~="79"]) .a-info-icon{font-size:24px;margin-bottom:8px}:where(html[data-s~="80"]) .a-svc-link{font-size:13px;font-weight:700;color:var(--gold)}:where(html[data-s~="81"]) .a-info-card h4{font-weight:700;font-size:14px;margin-bottom:3px}
@media(max-width:768px){:where(html[data-s~="82"]) .a-svc{grid-template-columns:1fr}}
:where(html[data-s~="83"]) .a-info-card p{font-size:13px;color:var(--td);font-weight:300;line-height:1.5}
@media(max-width:768px){:where(html[data-s~="84"]) .a-info{grid-template-columns:1fr}}
:where(html[data-s~="85"]) .a-form-wrap::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(140,116,66,.06),transparent 60%);pointer-events:none}:where(html[data-s~="86"]) .a-svc{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}:where(html[data-s~="87"]) .a-form-title{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:22px;text-align:center;margin-bottom:4px;position:relative;font-weight:600;letter-spacing:-0.02em}:where(html[data-s~="88"]) .a-form-sub{font-size:13px;color:var(--td);text-align:center;margin-bottom:24px;font-weight:300;position:relative}:where(html[data-s~="89"]) .a-form{display:grid;gap:12px;position:relative}:where(html[data-s~="90"]) .a-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}:where(html[data-s~="91"]) .a-input{padding:14px 16px;border:1px solid var(--b);border-radius:10px;font-family:inherit;font-size:16px;background:rgba(240,232,216,.03);color:var(--t);transition:all .25s;width:100%}:where(html[data-s~="92"]) .a-input::placeholder{color:var(--tdd)}:where(html[data-s~="93"]) .b-back{font-size:13px;color:var(--tdd);font-weight:500;margin-bottom:24px;display:inline-block;opacity:0;animation:fu .5s .2s forwards}:where(html[data-s~="94"]) .a-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--glow)}:where(html[data-s~="95"]) .b-back:hover{color:var(--gold)}:where(html[data-s~="96"]) .a-submit{width:100%;padding:16px;border-radius:60px;background:#0e1613;color:#f3f1ea;font-family:inherit;font-size:15px;font-weight:700;border:none;cursor:pointer;transition:all .3s;box-shadow:none;margin-top:4px;position:relative}:where(html[data-s~="97"]) .b-tag{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;opacity:0;animation:fu .5s .3s forwards}:where(html[data-s~="98"]) .a-form-wrap{background:var(--bg2);border:1px solid var(--bG);border-radius:20px;padding:clamp(28px,4vw,40px);max-width:560px;margin:0 auto;position:relative;overflow:hidden}:where(html[data-s~="99"]) .a-submit:hover{transform:translateY(-1px);box-shadow:0 8px 28px rgba(140,116,66,.3)}:where(html[data-s~="100"]) .b-hero h1{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:clamp(28px,4vw,44px);letter-spacing:-0.02em;line-height:1.12;margin-bottom:14px;opacity:0;animation:fu .6s .35s forwards;font-weight:600}:where(html[data-s~="101"]) .a-dis{font-size:13px;color:var(--tdd);text-align:center;margin-top:8px;position:relative}:where(html[data-s~="102"]) .b-meta{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--tdd);font-weight:500;opacity:0;animation:fu .5s .4s forwards}:where(html[data-s~="103"]) .a-status{font-size:13px;text-align:center;margin-top:6px;position:relative}:where(html[data-s~="104"]) .b-meta-sep{width:3px;height:3px;border-radius:50%;background:var(--tdd)}:where(html[data-s~="105"]) .a-success{display:none;text-align:center;padding:24px 0;position:relative}:where(html[data-s~="106"]) .b-article p{font-size:16px;color:var(--td);line-height:1.85;margin-bottom:18px;font-weight:300}:where(html[data-s~="107"]) .a-success h4{font-size:20px;font-weight:700;color:var(--gold);margin-bottom:6px}:where(html[data-s~="108"]) .b-article h2{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:clamp(20px,2.5vw,28px);margin:36px 0 14px;letter-spacing:-0.02em;color:var(--t);font-weight:600}:where(html[data-s~="109"]) .a-success p{font-size:14px;color:var(--td)}:where(html[data-s~="110"]) .b-article strong{color:var(--t);font-weight:700}
@media(max-width:768px){:where(html[data-s~="111"]) .a-row{grid-template-columns:1fr}}
:where(html[data-s~="112"]) .b-article a{color:var(--gold);font-weight:700}:where(html[data-s~="113"]) .faq-l{margin-top:24px;max-width:720px}:where(html[data-s~="114"]) .b-article a:hover{text-decoration:underline}:where(html[data-s~="115"]) .faq-i{border-bottom:1px solid var(--b)}:where(html[data-s~="116"]) .faq-q{width:100%;background:none;border:none;padding:18px 0;font-family:inherit;font-size:14px;font-weight:700;color:var(--t);text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px}:where(html[data-s~="117"]) .faq-q:hover{color:var(--gold)}:where(html[data-s~="118"]) .faq-ic{width:22px;height:22px;flex-shrink:0;border-radius:50%;border:1px solid var(--b);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--td);transition:all .35s}:where(html[data-s~="119"]) .b-table{overflow-x:auto;margin:18px 0 24px;border-radius:12px;border:1px solid var(--b)}:where(html[data-s~="120"]) .b-tldr{background:linear-gradient(180deg,rgba(140,116,66,0.06),rgba(140,116,66,0.02));border-left:3px solid var(--gold);border-radius:8px;padding:20px 24px;margin:0 0 28px;font-size:16px;color:var(--t);line-height:1.7;font-weight:400}:where(html[data-s~="121"]) .b-table table{width:100%;border-collapse:collapse;font-size:13px}:where(html[data-s~="122"]) .faq-i.open .faq-ic{background:var(--gold);color:var(--bg);border-color:var(--gold);transform:rotate(45deg)}:where(html[data-s~="123"]) .b-tldr strong{color:var(--t);font-weight:700}:where(html[data-s~="124"]) .faq-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,1,.3,1)}:where(html[data-s~="125"]) .b-table th{background:rgba(140,116,66,.06);font-weight:700;text-align:left;padding:12px 16px;border-bottom:1px solid var(--b);color:var(--t);font-size:13px;text-transform:uppercase;letter-spacing:.04em}:where(html[data-s~="126"]) .faq-i.open .faq-a{max-height:600px}:where(html[data-s~="127"]) .b-table td{padding:10px 16px;border-bottom:1px solid var(--b);color:var(--td);font-weight:300}:where(html[data-s~="128"]) .faq-a-in{padding-bottom:18px;font-size:13.5px;color:var(--td);line-height:1.8;font-weight:300}:where(html[data-s~="129"]) .b-table tr:last-child td{border-bottom:none}:where(html[data-s~="130"]) .faq-a-in a{color:var(--gold);font-weight:700}:where(html[data-s~="131"]) .b-cta-box{background:var(--bg2);border:1px solid var(--bG);border-radius:16px;padding:32px;text-align:center}:where(html[data-s~="132"]) .b-cta-box h3{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:22px;margin-bottom:6px;font-weight:600;letter-spacing:-0.02em}:where(html[data-s~="133"]) .cta-sec::before{content:'';position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(140,116,66,.06),transparent 60%);pointer-events:none}:where(html[data-s~="134"]) .b-cta-box p{font-size:13px;color:var(--td);margin-bottom:18px;font-weight:300}:where(html[data-s~="135"]) .cta-sec h2{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:clamp(26px,3.5vw,44px);letter-spacing:-0.02em;margin-bottom:10px;line-height:1.1;position:relative;font-weight:600}:where(html[data-s~="136"]) footer{background:var(--bg2);color:var(--td);padding:clamp(40px,5vw,64px) clamp(24px,5vw,80px) 28px;border-top:1px solid var(--b)}:where(html[data-s~="137"]) .cta-sec p{font-size:15px;color:rgba(243,241,234,.7);margin-bottom:28px;font-weight:300;position:relative}:where(html[data-s~="138"]) .ft-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(20px,3vw,48px);padding-bottom:40px;border-bottom:1px solid var(--b)}:where(html[data-s~="139"]) .cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}:where(html[data-s~="140"]) .ft-brand h3{font-family:"Inter Tight",Inter,system-ui,sans-serif;font-size:18px;color:var(--t);margin-bottom:10px;font-weight:600;letter-spacing:-0.02em}:where(html[data-s~="141"]) .cta-sec .btn{background:var(--goldD,#6f5c33);color:#0e1613}:where(html[data-s~="142"]) .ft-brand p{font-size:13px;color:#4a544f;line-height:1.7;margin-bottom:16px;max-width:280px}:where(html[data-s~="143"]) .cta-sec .btn-g{color:rgba(243,241,234,.6)}:where(html[data-s~="144"]) .ft-brand a{display:block;color:#4a544f;font-size:13px;margin-bottom:6px;font-weight:500;transition:color .2s}:where(html[data-s~="145"]) .cta-sec .btn-g:hover{color:#f3f1ea}:where(html[data-s~="146"]) .ft-brand a:hover{color:var(--goldD,#6f5c33)}:where(html[data-s~="147"]) .ft-col h4{font-size:13px;font-weight:700;color:#4a544f;text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px}:where(html[data-s~="148"]) .ft-col a{display:block;font-size:13px;color:#4a544f;margin-bottom:10px;transition:color .2s}:where(html[data-s~="149"]) .cta-sec{padding:clamp(56px,7vw,100px) clamp(24px,5vw,80px);text-align:center;position:relative;overflow:hidden;background:#0e1613;color:#f3f1ea}:where(html[data-s~="150"]) .ft-col a:hover{color:var(--goldD,#6f5c33)}:where(html[data-s~="151"]) .ft-bot{display:flex;justify-content:space-between;align-items:center;padding-top:20px;font-size:13px;color:#4a544f}:where(html[data-s~="152"]) .ft-soc{display:flex;gap:14px}:where(html[data-s~="153"]) .ft-soc a{color:#4a544f;transition:color .2s}:where(html[data-s~="154"]) .ft-soc a:hover{color:var(--gold)}
@media(max-width:768px){:where(html[data-s~="155"]) .ft-top{grid-template-columns:1fr 1fr}:where(html[data-s~="156"]) .ft-bot{flex-direction:column;gap:10px;text-align:center}}
@media(max-width:480px){:where(html[data-s~="157"]) .ft-top{grid-template-columns:1fr}:where(html[data-s~="158"]) .mob-cta a{min-height:48px}}
@media(max-width:768px){:where(html[data-s~="159"]) .b-hero{padding-top:100px}}
@media(max-width:480px){:where(html[data-s~="160"]) .b-table table{font-size:13px}:where(html[data-s~="161"]) .grev-card{width:260px;padding:14px}:where(html[data-s~="162"]) .b-table th,:where(html[data-s~="162"]) .b-table td{padding:8px 10px}:where(html[data-s~="163"]) .grev-card p{font-size:13px;line-height:1.6}:where(html[data-s~="164"]) .b-article{padding:0 16px 60px}:where(html[data-s~="165"]) .b-hero{padding-left:16px;padding-right:16px}:where(html[data-s~="166"]) .b-cta{padding:0 16px 60px}}
:where(html[data-s~="167"]) .mob-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:998;background:rgba(250,250,248,.95);backdrop-filter:blur(12px);border-top:1px solid var(--b);padding:12px 16px;gap:10px}:where(html[data-s~="168"]) .mob-cta a{flex:1;text-align:center;padding:14px 8px;border-radius:60px;font-weight:700;font-size:14px;font-family:inherit}:where(html[data-s~="169"]) .mob-cta-call{background:transparent;border:2px solid var(--gold);color:var(--gold)}:where(html[data-s~="170"]) .mob-cta-quote{background:#f3f1ea;color:#0e1613;border:2px solid transparent}
@media(max-width:768px){:where(html[data-s~="171"]) .mob-cta{display:flex}:where(html[data-s~="172"]) body{padding-bottom:72px}:where(html[data-s~="173"]) footer{padding-bottom:80px}}
:where(html[data-s~="174"]) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(html[data-s~="175"]) .ndrop{position:relative;display:inline-block}:where(html[data-s~="176"]) .ndrop>a::after{content:'';display:inline-block;margin-left:6px;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;vertical-align:middle}:where(html[data-s~="177"]) .ndrop:hover::before{content:'';position:absolute;top:100%;left:-16px;right:-16px;height:18px}:where(html[data-s~="178"]) .ndrop-panel{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);background:#FDFCFA;border:1px solid rgba(20,28,24,0.11);border-radius:16px;box-shadow:0 30px 70px -18px rgba(15,26,15,.35);padding:10px;min-width:330px;z-index:1002;display:none;text-align:left}:where(html[data-s~="179"]) .ndrop:hover .ndrop-panel,:where(html[data-s~="179"]) .ndrop:focus-within .ndrop-panel{display:block}:where(html[data-s~="180"]) .ndrop-panel::before{content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#FDFCFA;border-left:1px solid rgba(20,28,24,0.11);border-top:1px solid rgba(20,28,24,0.11)}:where(html[data-s~="181"]) .n-links .ndrop-item{display:block;padding:11px 14px;border-radius:11px;transition:.15s;font-size:13px}:where(html[data-s~="182"]) .n-links .ndrop-item:hover{background:rgba(140,116,66,.09)}:where(html[data-s~="183"]) .ndrop-name{font-size:13.5px;font-weight:700;color:#141c18;display:block;line-height:1.4}:where(html[data-s~="184"]) .ndrop-sub{font-size:13px;color:#4a544f;font-weight:400;margin-top:2px;display:block;line-height:1.45}:where(html[data-s~="185"]) .n-links .ndrop-foot{display:block;margin-top:6px;padding:11px 14px 8px;border-top:1px solid rgba(20,28,24,0.11);font-size:13px;font-weight:700;color:var(--goldD,#6f5c33)}:where(html[data-s~="186"]) .grev-badge svg{width:22px;height:22px;flex-shrink:0}:where(html[data-s~="187"]) .grev-stars{color:#F4B400;letter-spacing:1px}:where(html[data-s~="188"]) .grev-track{position:relative;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}:where(html[data-s~="189"]) .grev-slide{display:flex;gap:16px;width:max-content;animation:grevScroll 60s linear infinite}:where(html[data-s~="190"]) .grev-slide:hover{animation-play-state:paused}:where(html[data-s~="191"]) .grev-card{flex-shrink:0;width:320px;background:#fff;border:1px solid rgba(20,28,24,0.11);border-radius:12px;padding:20px;text-align:left;box-shadow:0 1px 4px rgba(0,0,0,.04)}:where(html[data-s~="192"]) .grev-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}:where(html[data-s~="193"]) .grev-name{font-size:13px;font-weight:700;color:var(--t)}:where(html[data-s~="194"]) .grev-card-stars{font-size:13px;color:#F4B400;letter-spacing:1px}:where(html[data-s~="195"]) .grev-card p{font-size:13px;color:#4a544f;line-height:1.65;font-weight:400}:where(html[data-s~="196"]) .su-near{max-width:1100px;margin:0 auto;padding:32px 24px 8px;font-size:14px;line-height:1.75}:where(html[data-s~="197"]) .su-near p{margin:0 0 14px}:where(html[data-s~="198"]) .su-near strong{display:block;font-size:13px;letter-spacing:.02em;margin-bottom:2px}:where(html[data-s~="199"]) .su-near a{color:inherit;text-decoration:underline;text-underline-offset:3px}:where(html[data-s~="200"]) .su-near span[aria-current]{font-weight:700}:where(html[data-s~="201"]) /* dark sections carry the ink theme; light cards inside them keep the paper theme */:is(.cta-sec){--t:#f3f1ea;--td:#a9b1ab;--tdd:#a9b1ab;--b:rgba(255,255,255,0.11);--gold:#c9b283;--goldL:#c9b283;--goldD:#c9b283;--glow:rgba(201,178,131,0.12);--bG:rgba(201,178,131,0.25);--green:#5fb48c;--grn:#5fb48c;--red:#e0a79e;--button:#f3f1ea;--button-text:#0e1613}:where(html[data-s~="202"]) :is(.cta-sec) .btn{background:var(--button);color:var(--button-text)}

/* Header menu. The bar needs about 1320px for all seven items, so Projects leaves the bar below that (it stays in
   the phone menu and the footer). From 1240px down (iPads in landscape included; raised from 1140px when the links grew to 15px), the bar gives way to the same menu button
   phones use: before this, the links ran off the edge of the screen between 769px and 1100px. */
@media (max-width:1320px){.n-links a.n-proj{display:none}}
@media (max-width:1240px){nav .n-links{display:none!important}.n-toggle{display:block!important}}

/* Header strip, easy to read and use (PJ, 13 November 2026). Brand kit values: text #141c18, surface #fbfaf7,
   line rgba(20,28,24,.11), brass-deep #6f5c33, button #0e1613. Links were 13px in the second grey, the two menus sat
   a few pixels off the line, and on the home page and /solar the strip was see-through over the sky photo. */
.ni .n-links{align-items:center}
.ni .n-links .ndrop{display:inline-flex;align-items:center}
.ni .n-links>a,.ni .n-links .ndrop>a{font-size:15px!important;font-weight:600!important;line-height:1.2!important;padding:10px 13px!important;color:#141c18!important;border-radius:60px}
.ni .n-links>a[href="/book"]{color:#6f5c33!important}
.ni .n-links>a:hover,.ni .n-links .ndrop>a:hover{background:#f1efe9!important}
.ni .n-links>a.active,.ni .n-links .ndrop>a.active{box-shadow:inset 0 -2px 0 #141c18;border-radius:0}
.ni .n-phone{font-size:15px!important;font-weight:600!important;color:#141c18!important}
.ni .n-phone svg{width:15px!important;height:15px!important}
.ni .n-cta{white-space:nowrap!important;font-size:15px!important;font-weight:600!important;padding:11px 22px!important;opacity:1!important;pointer-events:auto!important;letter-spacing:0!important}
/* The menu button: bigger, darker, and outlined so it reads as a button on tablets and phones. */
.n-toggle{width:46px!important;height:46px!important;border:1px solid rgba(20,28,24,.18)!important;border-radius:14px!important}
.n-toggle span{width:22px!important;height:2px!important;background:#141c18!important}
.n-toggle span:nth-child(1){top:14px!important}.n-toggle span:nth-child(2){top:21px!important}.n-toggle span:nth-child(3){top:28px!important}
.n-toggle.open span:nth-child(1),.n-toggle.open span:nth-child(3){top:21px!important}
/* The phone and tablet menu scrolls on its own and the page underneath stays still. Its links never squash, and the
   bottom dock and chat greeting, which sat on top of the menu's last links, step aside while it is open. */
#mm{top:78px!important;bottom:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(40px + env(safe-area-inset-bottom))!important}
#mm>*{flex-shrink:0}
html:has(#mm.open),html:has(#mm.open) body{overflow:hidden!important}
html:has(#mm.open) .su-mbar,html:has(#mm.open) .sc-peek,html:has(#mm.open) .sc-bubble,html:has(#mm.open) .mob-cta{display:none!important}
.ni~.n-toggle,.ni .n-toggle{margin-left:12px}

/* Show the whole picture (PJ, 13 November 2026): no product, person or install cut off at any screen size.
   Product shots, app screens and package pictures sit whole on the soft paper colour; install and crew photos take
   their own shape instead of being cut to fit a fixed box. Full-screen hero backgrounds are left as they are. */
html body :is(.shot,.photo,.pk-img,.gen-card,.part figure) img{object-fit:contain!important;object-position:center!important;background:#f1efe9}
html body .opt .photo{aspect-ratio:4/3!important}
html body :is(.pshot,.pshot.sq,.pshot.tall) img{aspect-ratio:auto!important;height:auto!important;object-fit:contain!important}
html body :is(.proj-tile,.tf-img,.pattg-img,.chain-img){height:auto!important;min-height:0!important;aspect-ratio:auto!important}
html body :is(.proj-tile,.tf-img,.pattg-img,.chain-img) img{position:static!important;height:auto!important;object-fit:contain!important}
html body .about-hero-media-frame img{height:auto!important;max-height:min(72vh,720px);width:auto!important;max-width:100%;margin:0 auto;object-fit:contain!important}
html body .bh-fig img{aspect-ratio:auto!important;object-fit:contain!important}
html body .bat-x img{object-fit:contain!important;background:#f1efe9}
html body .proj-bento{grid-auto-rows:auto!important;align-items:start}
html body .chap figure{aspect-ratio:auto!important}
html body .chap figure img{height:auto!important;object-fit:contain!important}
html body .gi img{aspect-ratio:auto!important;object-fit:contain!important}
