/* Elementor adapter (added for the WordPress build).
   On the live site Elementor's own base stylesheets are not loaded (the plugin removes them),
   and in the editor they sit in a lower cascade layer. The rules below clear anything left on
   Elementor's elements (images are left alone so their width and height attributes still apply), so the brand stylesheet that follows applies exactly as on the static site. */
:where(.e-con, .e-atomic-element, .e-heading-base, .e-paragraph-base, .e-button-base, .e-svg-base,
  .e-form-label-base, .e-form-input-base, .e-form-select-base, .e-form-checkbox-base, .e-form-textarea-base,
  .e-form-submit-button-base, .e-form-success-message-base, .e-form-error-message-base) { all: revert; }
:where(.e-heading-base, .e-paragraph-base) a { all: revert; }

/* Privacy policy.
   Built on the Optima Energy Design System, shared with the launch page (index.html). */
:root {
  --navy: #000035;
  --cyan: #0693e3;
  --purple: #9b51e0;
  --magenta: #ff00ff;

  --bg: #f7f7fb;
  --fg: #111111;
  --ink: #000035;
  --fg-muted: #555566;
  --line: rgba(17, 17, 60, 0.10);
  --line-strong: rgba(17, 17, 60, 0.18);
  --glass: rgba(255, 255, 255, 0.58);
  --glass-strong: rgba(255, 255, 255, 0.82);
  --glass-edge: rgba(255, 255, 255, 0.85);
  --glass-shadow: 0 1px 2px rgba(0, 0, 53, 0.06), 0 10px 24px -14px rgba(0, 0, 53, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.7);
  --btn-shadow: 0 1px 2px rgba(0, 0, 53, 0.18), 0 6px 14px -6px rgba(0, 0, 53, 0.35);
  --header-bg: rgba(247, 247, 251, 0.82);
  --orb-a: rgba(6, 147, 227, 0.20);
  --orb-b: rgba(155, 81, 224, 0.16);
  --orb-c: rgba(255, 0, 255, 0.12);
  --title-grad: linear-gradient(95deg, #0572b8 0%, #7a35c9 50%, #c400c4 100%);
  --btn-grad: linear-gradient(95deg, #0670b0 0%, #8a3fd6 52%, #c000c0 100%);
  --accent-ink: #0569a8;
  --focus: #0569a8;
  --field-border: #8d8da3;
  --c-bur: #8a3fd6;
  --chip: rgba(6, 147, 227, 0.09);
  --ok: #1d7a52;
  --ok-bg: rgba(31, 138, 92, 0.12);
  --bad: #c13438;
  --bad-bg: rgba(193, 52, 56, 0.08);
  --field: rgba(255, 255, 255, 0.85);

  --font-display: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --r-xs: 4px;
  --r-btn: 8px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --gutter: clamp(16px, 4vw, 40px);
  --max: 1200px;
  --head-h: 68px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #03032a; --fg: #f2f2fa; --ink: #ffffff; --fg-muted: #b6b6cc; --line: rgba(255, 255, 255, 0.10); --line-strong: rgba(255, 255, 255, 0.20);
    --glass: rgba(255, 255, 255, 0.055); --glass-strong: rgba(20, 20, 70, 0.78); --glass-edge: rgba(255, 255, 255, 0.14);
    --glass-shadow: 0 1px 2px rgba(0, 0, 0, 0.30), 0 16px 32px -18px rgba(0, 0, 0, 0.70), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    --btn-shadow: 0 1px 2px rgba(0, 0, 0, 0.40), 0 6px 14px -6px rgba(0, 0, 0, 0.70);
    --header-bg: rgba(3, 3, 42, 0.80);
    --orb-a: rgba(6, 147, 227, 0.30); --orb-b: rgba(155, 81, 224, 0.30); --orb-c: rgba(255, 0, 255, 0.20);
    --title-grad: linear-gradient(95deg, #3fb8ff 0%, #c48bff 52%, #ff6bff 100%);
    --accent-ink: #4dbdff; --c-bur: #c48bff; --chip: rgba(6, 147, 227, 0.16); --focus: #4dbdff; --field-border: #6e6e8c;
    --ok: #9ff0cf; --ok-bg: rgba(123, 220, 181, 0.16); --bad: #ff7b80; --bad-bg: rgba(229, 72, 77, 0.14);
    --field: rgba(255, 255, 255, 0.06);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #03032a; --fg: #f2f2fa; --ink: #ffffff; --fg-muted: #b6b6cc; --line: rgba(255, 255, 255, 0.10); --line-strong: rgba(255, 255, 255, 0.20);
  --glass: rgba(255, 255, 255, 0.055); --glass-strong: rgba(20, 20, 70, 0.78); --glass-edge: rgba(255, 255, 255, 0.14);
  --glass-shadow: 0 1px 2px rgba(0, 0, 0, 0.30), 0 16px 32px -18px rgba(0, 0, 0, 0.70), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  --btn-shadow: 0 1px 2px rgba(0, 0, 0, 0.40), 0 6px 14px -6px rgba(0, 0, 0, 0.70);
  --header-bg: rgba(3, 3, 42, 0.80);
  --orb-a: rgba(6, 147, 227, 0.30); --orb-b: rgba(155, 81, 224, 0.30); --orb-c: rgba(255, 0, 255, 0.20);
  --title-grad: linear-gradient(95deg, #3fb8ff 0%, #c48bff 52%, #ff6bff 100%);
  --accent-ink: #4dbdff; --c-bur: #c48bff; --chip: rgba(6, 147, 227, 0.16); --focus: #4dbdff; --field-border: #6e6e8c;
  --ok: #9ff0cf; --ok-bg: rgba(123, 220, 181, 0.16); --bad: #ff7b80; --bad-bg: rgba(229, 72, 77, 0.14);
  --field: rgba(255, 255, 255, 0.06);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 16px); -webkit-font-smoothing: antialiased; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--font-body); font-size: 17px; line-height: 1.6; overflow-x: hidden; caret-color: var(--cyan); }
::selection { background: rgba(6, 147, 227, 0.24); color: inherit; }
img { max-width: 100%; display: block; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: var(--r-xs); }
[id] { scroll-margin-top: calc(var(--head-h) + 24px); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -100px; z-index: 60; padding: 10px 16px; border-radius: var(--r-btn); background: var(--ink); color: var(--bg); font-family: var(--font-display); font-weight: 600; text-decoration: none; }
.skip:focus { top: 12px; }
main:focus { outline: none; }

/* Ambient light field behind every glass pane */
.ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(40vw 40vw at 8% 12%, var(--orb-a), transparent 70%),
    radial-gradient(38vw 38vw at 92% 28%, var(--orb-b), transparent 70%),
    radial-gradient(45vw 45vw at 70% 92%, var(--orb-c), transparent 70%),
    radial-gradient(35vw 35vw at 15% 80%, var(--orb-b), transparent 70%); }

.wrap { max-width: var(--max); margin: 0 auto; padding-inline: var(--gutter); }
h1, h2, h3 { font-family: var(--font-display); margin: 0; text-wrap: balance; color: var(--ink); }
h1 { font-size: clamp(40px, 6.2vw, 80px); line-height: 1.04; letter-spacing: -0.03em; font-weight: 700; }
h2 { font-size: clamp(30px, 3.8vw, 46px); line-height: 1.12; letter-spacing: -0.02em; font-weight: 600; }
h3 { font-size: 20px; line-height: 1.3; font-weight: 600; }
p { margin: 0; text-wrap: pretty; }
.grad { background: var(--title-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
h1.grad { padding-bottom: 0.12em; margin-bottom: -0.12em; }
.lede { font-size: clamp(18px, 1.5vw, 20px); color: var(--fg-muted); max-width: 60ch; }
.muted { color: var(--fg-muted); }
.eyebrow { display: block; font-family: var(--font-display); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: 14px; }
.stack { display: grid; gap: 18px; align-content: start; }

.glass { background: var(--glass); border: 1px solid var(--glass-edge); border-radius: var(--r-lg); box-shadow: var(--glass-shadow);
  backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); }

/* Buttons: squared, Optima gradient for the primary action only */
.btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.btn { white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; cursor: pointer; text-decoration: none;
  font-family: var(--font-display); font-weight: 600; font-size: 16px; line-height: 1; padding: 15px 22px; border-radius: var(--r-btn);
  color: #fff; background: var(--btn-grad); background-size: 140% 100%; background-position: 0 0;
  box-shadow: var(--btn-shadow); transition: background-position 320ms var(--ease), transform 120ms var(--ease); }
.btn:hover { background-position: 100% 0; }
.btn:active { transform: translateY(1px); }
.btn svg { width: 18px; height: 18px; transition: transform 200ms var(--ease); }
.btn:hover svg { transform: translateX(2px); }
.btn.alt { background: var(--glass-strong); color: var(--fg); border: 1px solid var(--line-strong); box-shadow: none; }
.btn.alt:hover { border-color: var(--fg-muted); }
.btn.small { padding: 11px 16px; font-size: 15px; }
@media (max-width: 420px) { .btn { white-space: normal; text-align: center; line-height: 1.25; } }
.tlink { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--accent-ink); text-decoration: none; }
.tlink:hover { text-decoration: underline; text-underline-offset: 4px; }
.tlink svg { width: 16px; height: 16px; }

/* Header: full-width bar */
.top { position: sticky; top: 0; z-index: 40; padding-top: env(safe-area-inset-top, 0px); background: var(--header-bg); border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); transition: box-shadow 240ms var(--ease); }
.top.is-scrolled { box-shadow: 0 8px 24px -16px rgba(0, 0, 0, 0.4); }
.bar { display: flex; align-items: center; gap: clamp(16px, 3vw, 40px); height: var(--head-h); }
.brand { display: flex; align-items: center; flex: none; align-self: stretch; }
.brand img { height: 30px; width: auto; }
.logo-dark { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .logo-dark { display: block; } :root:not([data-theme="light"]) .logo-light { display: none; } }
:root[data-theme="dark"] .logo-dark { display: block; }
:root[data-theme="dark"] .logo-light { display: none; }
.home-link { display: inline-flex; align-items: center; gap: 6px; padding: 8px 4px; margin-right: auto; text-decoration: none; font-family: var(--font-display); font-weight: 500; font-size: 15px; color: var(--fg-muted); white-space: nowrap; transition: color 150ms var(--ease); }
.home-link svg { width: 16px; height: 16px; transition: transform 200ms var(--ease); }
.home-link:hover { color: var(--fg); }
.home-link:hover svg { transform: translateX(-2px); }
.bar .actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.icon-btn { flex: none; width: 42px; height: 42px; display: grid; place-items: center; padding: 0; cursor: pointer; border-radius: var(--r-btn);
  color: var(--fg); background: transparent; border: 1px solid var(--line-strong); transition: background 150ms var(--ease), border-color 150ms var(--ease); }
.icon-btn:hover { background: var(--chip); border-color: var(--fg-muted); }
.icon-btn svg { width: 18px; height: 18px; }
.icon-btn svg[hidden] { display: none; }
@media (max-width: 520px) { :root { --head-h: 60px; } .bar { gap: 12px; } .brand img { height: 24px; } .bar .actions { gap: 8px; } .icon-btn { width: 40px; height: 40px; } .bar .btn.small { padding: 10px 13px; font-size: 14px; } .home-link { font-size: 14px; } }
@media (max-width: 400px) { .home-link span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .home-link svg { width: 18px; height: 18px; } }
@media (max-width: 340px) { .bar .actions .btn.small { display: none; } }

section { padding-block: clamp(56px, 8vw, 104px); }
.head { display: grid; gap: 16px; max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.head .eyebrow { margin-bottom: -2px; }
.hero { padding-block: clamp(48px, 7vw, 96px) clamp(32px, 5vw, 56px); }
.hero .eyebrow { margin-bottom: 18px; }

/* Forms */
form { display: grid; gap: 14px; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
@media (max-width: 560px) { .row2 { grid-template-columns: 1fr; } }
.field { display: grid; gap: 7px; min-width: 0; }
.field label { font-family: var(--font-display); font-size: 14px; font-weight: 500; }
.field label i, .check i { font-style: normal; color: var(--accent-ink); }
.field label small { font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--fg-muted); }
input, select, textarea { width: 100%; font: inherit; font-size: 16px; color: var(--fg); background: var(--field); border: 1px solid var(--field-border); border-radius: var(--r-btn); padding: 13px 14px; transition: border-color 200ms var(--ease), box-shadow 200ms var(--ease); }
textarea { min-height: 116px; resize: vertical; line-height: 1.5; }
input:hover, select:hover, textarea:hover { border-color: var(--fg-muted); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--focus); box-shadow: 0 0 0 3px rgba(6, 147, 227, 0.25); }
input::placeholder, textarea::placeholder { color: var(--fg-muted); opacity: 1; }
input[aria-invalid="true"], select[aria-invalid="true"] { border-color: var(--bad); border-width: 2px; padding: 12px 13px; }
.field-err { display: flex; gap: 6px; align-items: flex-start; font-size: 14px; color: var(--bad); }
.field-err svg { flex: none; width: 16px; height: 16px; margin-top: 2px; }
.field-err[hidden] { display: none; }
.check { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 15px; color: var(--fg-muted); cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 2px 0 0; padding: 0; accent-color: var(--c-bur); }
.check input[aria-invalid="true"] { outline: 2px solid var(--bad); outline-offset: 2px; }
.checkf { display: grid; gap: 7px; }
.checkf .field-err { padding-left: 34px; }
.note { font-size: 14px; color: var(--fg-muted); }
.note a { color: var(--accent-ink); text-underline-offset: 3px; }
.msg { padding: 14px 16px; border-radius: var(--r-btn); font-size: 15px; background: var(--ok-bg); color: var(--fg); }
.msg[hidden] { display: none; }

/* Footer: plain, on the page background */
footer { margin-top: clamp(24px, 4vw, 48px); border-top: 1px solid var(--line); }
.foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px; padding-block: 28px 40px; font-size: 14px; color: var(--fg-muted); }
.foot img { height: 30px; width: auto; }
.foot .links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.foot a { text-decoration: none; color: var(--fg); }
.foot a:hover { text-decoration: underline; text-underline-offset: 4px; }

@media (hover: none), (max-width: 760px) { .glass { -webkit-backdrop-filter: none; backdrop-filter: none; } }
@media (forced-colors: active) { .btn { border: 1px solid ButtonText; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } html { scroll-behavior: auto; } }
/* Sign the letter */
.sign-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); grid-template-areas: "intro form" "asks form"; gap: clamp(28px, 4vw, 40px) clamp(28px, 5vw, 72px); align-items: start; }
.sign-intro { grid-area: intro; display: grid; gap: 20px; }
.sign-intro .eyebrow { margin-bottom: -2px; }
.sign-intro h1 { font-size: clamp(40px, 5.4vw, 68px); }
.sign-form { grid-area: form; padding: clamp(22px, 3.4vw, 40px); }
.sign-form h2 { font-size: clamp(22px, 2.2vw, 26px); letter-spacing: -0.01em; margin-bottom: 6px; }
.sign-form .note.req { margin-top: -4px; margin-bottom: 4px; }
.sign-form .checks-group { display: grid; gap: 14px; padding: 6px 0 4px; }
.asks-panel { grid-area: asks; padding: clamp(22px, 3vw, 30px); }
.asks-panel h2 { font-size: 20px; letter-spacing: 0; line-height: 1.3; margin-bottom: 8px; }
.ask-points { list-style: none; margin: 0; padding: 0; display: grid; }
.ask-points li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.5; }
.ask-points li:last-child { border-bottom: 0; padding-bottom: 0; }
.tick { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--ok-bg); color: var(--ok); }
.tick svg { width: 15px; height: 15px; }
.asks-panel .tlink { margin-top: 16px; font-size: 15px; }
@media (max-width: 900px) {
  .sign-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "form" "asks"; }
}
.policy { max-width: 72ch; }
.policy .lede { margin-top: 20px; }
.policy .updated { margin-top: 10px; font-size: 14px; color: var(--fg-muted); }
.policy h2 { font-size: clamp(20px, 2vw, 24px); margin: 2em 0 0.6em; }
.policy p { font-size: 17px; line-height: 1.7; }
.policy p + p { margin-top: 0.9em; }
.policy ul, .policy ol { margin: 0.6em 0 0.9em; padding-left: 1.4em; font-size: 17px; line-height: 1.7; }
.policy li + li { margin-top: 0.3em; }
.policy p b { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
.policy a { color: var(--accent-ink); text-underline-offset: 3px; }
.policy .cookie-settings.inline { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.policy code { font-size: 0.9em; padding: 1px 6px; border-radius: var(--r-xs); background: var(--chip); }

/* Cookie consent */
.consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 460px; padding: 18px 20px; display: grid; gap: 12px;
  border-radius: var(--r-md); background: var(--glass-strong); border: 1px solid var(--line-strong); box-shadow: 0 16px 40px -16px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); font-size: 15px; line-height: 1.5; color: var(--fg); }
.consent[hidden] { display: none; }
.consent b { font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--ink); }
.consent p { margin: 0; color: var(--fg-muted); }
.consent a { color: var(--accent-ink); text-underline-offset: 3px; }
.consent .btns { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-settings { padding: 0; border: 0; background: none; font: inherit; color: var(--fg); cursor: pointer; }
.cookie-settings:hover { text-decoration: underline; text-underline-offset: 4px; }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Elementor adapter: page wrappers and native form messages */
.elementor-location-header, .elementor-location-footer { display: contents; }
.e-form-success-message-base, .e-form-error-message-base { display: none; }
form.form-state-success .e-form-success-message-base, form.form-state-error .e-form-error-message-base { display: block; }
