/* Homepage / ad landing page. Signature element: the £7,500 scheme voucher. */
.hg {
  --hg-forest:#0f3b33; --hg-deep:#0a2a24; --hg-ink:#15241f; --hg-mute:#56645e;
  --hg-mint:#dcefe4; --hg-sun:#f3b23c; --hg-sun-deep:#c98a12; --hg-fog:#f2f6f3; --hg-paper:#fff;
  color:var(--hg-ink);
}
.hg h1, .hg h2, .hg h3, .hg-voucher strong, .hg-step-n, .hg-monogram { font-family:"Bricolage Grotesque", "Figtree", Arial, sans-serif; }
.hg h2 { margin:0 0 18px; color:var(--hg-forest); font-size:clamp(28px, 3.4vw, 40px); font-weight:750; line-height:1.08; letter-spacing:-0.015em; }
.hg h3 { margin:0 0 4px; font-size:19px; font-weight:700; color:var(--hg-forest); }
.hg p { line-height:1.6; }
.hg a { color:inherit; }
.hg section { max-width:1180px; margin-left:auto; margin-right:auto; }
.public-page:has(.hg) { overflow-x:clip; }
.hg-founder-copy p + p { margin-top:12px; }

/* ------------------------------------------------ hero (full bleed) */
.hg-hero {
  display:grid; grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr); gap:48px; align-items:center;
  max-width:none !important; width:100vw; margin-left:calc(50% - 50vw) !important;
  padding:56px max(24px, calc(50vw - 590px)) 72px; background:var(--hg-forest); color:#fff;
}
.hg-hello { display:inline-block; margin:0 0 14px; padding:6px 12px; border-radius:999px; background:#ffffff1a; color:var(--hg-mint); font-size:14px; font-weight:600; }
.hg-hero h1 { margin:0 0 16px; max-width:12ch; font-size:clamp(40px, 5.6vw, 72px); font-weight:800; line-height:0.98; letter-spacing:-0.025em; color:#fff; }
.hg-amount { white-space:nowrap; }
.hg-lead { max-width:52ch; margin:0 0 26px; color:#d6e6dd; font-size:18px; }
.hg-solar { margin:14px 0 0; color:#b9d2c6; font-size:14px; }
.hg-solar a { color:#fff; font-weight:600; text-underline-offset:3px; }

/* check form */
.hg-check { max-width:540px; padding:22px; border-radius:20px; background:var(--hg-paper); color:var(--hg-ink); box-shadow:0 24px 60px -24px #00000066; }
.hg-check fieldset { margin:0; padding:0; border:0; }
.hg-check legend, .hg-pc { display:block; margin:0 0 10px; font-size:15px; font-weight:700; color:var(--hg-forest); }
.hg-pills { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.hg-pills label { position:relative; cursor:pointer; }
.hg-pills input { position:absolute; opacity:0; inset:0; margin:0; }
.hg-pills span { display:block; padding:11px 16px; border:1.5px solid #cfdcd5; border-radius:12px; font-size:15px; font-weight:600; transition:background .15s, border-color .15s; }
.hg-pills input:checked + span { border-color:var(--hg-forest); background:var(--hg-mint); color:var(--hg-forest); }
.hg-pills input:focus-visible + span { outline:3px solid var(--hg-sun); outline-offset:2px; }
.hg-rent-note { margin:-8px 0 16px; padding:10px 12px; border-radius:10px; background:#fff5e0; color:#7a5510; font-size:14px; }
.hg-pc-row { display:flex; gap:8px; }
.hg-pc-row input { flex:1 1 auto; min-width:0; height:54px; padding:0 16px; border:1.5px solid #cfdcd5; border-radius:12px; font:inherit; font-size:17px; text-transform:uppercase; color:var(--hg-ink); }
.hg-pc-row input::placeholder { text-transform:none; color:#93a29b; }
.hg-pc-row input:focus { outline:3px solid var(--hg-sun); outline-offset:1px; border-color:var(--hg-forest); }
.hg-go { display:inline-flex; align-items:center; gap:8px; height:54px; padding:0 22px; border:0; border-radius:12px; background:var(--hg-sun); color:var(--hg-deep); font:inherit; font-size:17px; font-weight:800; cursor:pointer; white-space:nowrap; }
.hg-go:hover { background:#f6c25e; }
.hg-go:focus-visible { outline:3px solid var(--hg-forest); outline-offset:2px; }
.hg-small { display:flex; align-items:center; gap:6px; margin:12px 0 0; color:var(--hg-mute); font-size:13.5px; }

/* hero art: house photo + voucher */
.hg-hero-art { position:relative; }
.hg-house { display:block; width:100%; height:auto; aspect-ratio:4 / 3.4; object-fit:cover; border-radius:24px; }
.hg-voucher {
  position:absolute; left:-36px; bottom:-34px; display:flex; width:min(380px, 88%);
  border-radius:16px; background:var(--hg-sun); color:var(--hg-deep); box-shadow:0 22px 40px -18px #000000aa;
  transform:rotate(-4deg); animation:hg-drop .7s cubic-bezier(.2,.9,.3,1.25) .25s both;
}
.hg-voucher-main { flex:1; padding:18px 18px 16px 22px; }
.hg-voucher-kicker { display:block; font-size:12.5px; font-weight:700; letter-spacing:.01em; }
.hg-voucher strong { display:block; margin:2px 0; font-size:56px; font-weight:800; line-height:1; letter-spacing:-0.03em; font-variant-numeric:lining-nums; }
.hg-voucher-sub { font-size:14px; font-weight:600; }
.hg-voucher-stub {
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:118px; padding:14px 12px;
  border-left:2px dashed #0a2a2466; text-align:center; font-size:12.5px; font-weight:700; line-height:1.25;
}
.hg-voucher-stub::before, .hg-voucher-stub::after { content:""; position:absolute; left:-11px; width:20px; height:20px; border-radius:50%; background:var(--hg-forest); }
.hg-voucher-stub::before { top:-10px; }
.hg-voucher-stub::after { bottom:-10px; }
@keyframes hg-drop { from { opacity:0; transform:translateY(-24px) rotate(-12deg); } to { opacity:1; transform:rotate(-4deg); } }

/* ------------------------------------------------ facts */
.hg-facts { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; padding:56px 0 28px; }
.hg-facts > div { display:flex; flex-direction:column; gap:10px; }
.hg-facts .ic { color:var(--hg-forest); }
.hg-facts p { margin:0; color:var(--hg-mute); font-size:15px; }
.hg-facts b { display:block; color:var(--hg-ink); font-size:16px; }

/* ------------------------------------------------ founder */
.hg-founder { display:grid; grid-template-columns:minmax(220px, 360px) 1fr; gap:48px; align-items:center; margin-top:40px !important; padding:40px; border-radius:28px; background:var(--hg-fog); }
.hg-founder-photo { position:relative; }
.hg-founder-photo img, .hg-monogram { display:block; width:100%; aspect-ratio:7 / 8; object-fit:cover; border-radius:22px; }
.hg-monogram { display:grid; place-items:center; background:var(--hg-forest); color:var(--hg-sun); font-size:140px; font-weight:800; }
.hg-handle { position:absolute; left:14px; bottom:14px; display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; background:#fff; color:var(--hg-ink) !important; font-size:13.5px; font-weight:700; text-decoration:none; box-shadow:0 6px 18px -8px #0006; }
.hg-founder-copy p { max-width:58ch; color:#33433d; font-size:17px; }
.hg-founder-copy h2 { font-size:clamp(32px, 4vw, 48px); }
.hg-link { display:inline-flex; margin-top:6px; padding:12px 20px; border-radius:12px; background:var(--hg-forest); color:#fff !important; font-weight:700; text-decoration:none; }
.hg-link:focus-visible { outline:3px solid var(--hg-sun); outline-offset:2px; }

/* ------------------------------------------------ qualify */
.hg-qualify { padding:72px 0 8px; }
.hg-qualify-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; }
.hg-qualify ul { margin:0; padding:24px; list-style:none; border-radius:20px; }
.hg-yes { background:var(--hg-mint); }
.hg-no { border:1.5px solid #e1e7e3; }
.hg-qualify li { display:flex; gap:12px; padding:9px 0; font-size:16px; line-height:1.45; }
.hg-yes .ic { flex:none; color:var(--hg-forest); margin-top:2px; }
.hg-no .ic { flex:none; color:#a35b4a; margin-top:2px; }
.hg-no li { color:var(--hg-mute); }

/* ------------------------------------------------ steps (a real sequence) */
.hg-steps { padding:72px 0 8px; }
.hg-steps ol { display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; margin:0; padding:0; list-style:none; counter-reset:none; }
.hg-steps li { display:flex; gap:16px; align-items:flex-start; }
.hg-step-n { flex:none; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--hg-forest); color:var(--hg-sun); font-size:20px; font-weight:800; }
.hg-steps p { margin:0; color:var(--hg-mute); font-size:15.5px; }

/* ------------------------------------------------ FAQ */
.hg-faq { max-width:820px !important; padding:72px 0 8px; }
.hg-faq details { border-bottom:1px solid #e1e7e3; }
.hg-faq summary { position:relative; padding:18px 40px 18px 0; cursor:pointer; list-style:none; font-size:18px; font-weight:700; color:var(--hg-forest); }
.hg-faq summary::-webkit-details-marker { display:none; }
.hg-faq summary::after { content:""; position:absolute; right:6px; top:50%; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-70%) rotate(45deg); transition:transform .2s; }
.hg-faq details[open] summary::after { transform:translateY(-30%) rotate(-135deg); }
.hg-faq summary:focus-visible { outline:3px solid var(--hg-sun); outline-offset:2px; border-radius:6px; }
.hg-faq details p { margin:0 0 18px; color:#33433d; font-size:16px; }
.hg-faq a { color:var(--hg-forest); font-weight:600; }

/* ------------------------------------------------ final CTA (full bleed) */
.hg-final {
  display:grid; grid-template-columns:1fr minmax(0, 540px); gap:40px; align-items:center;
  max-width:none !important; width:100vw; margin:80px 0 0 calc(50% - 50vw) !important;
  padding:64px max(24px, calc(50vw - 590px)); background:var(--hg-deep); color:#fff;
}
.hg-final h2 { color:#fff; font-size:clamp(32px, 4vw, 52px); }
.hg-final > div p { margin:0; color:#b9d2c6; font-size:18px; }
.hg-call { grid-column:1 / -1; margin:0; color:#b9d2c6; font-size:15px; }
.hg-call a { display:inline-flex; align-items:center; gap:6px; color:#fff; font-weight:700; text-underline-offset:3px; }
.hg + .site-disclaimer, .hg .site-disclaimer { margin-top:28px; }

/* ------------------------------------------------ small screens */
@media (max-width: 900px) {
  .hg > section:not(.hg-hero):not(.hg-final) { padding-left:20px; padding-right:20px; }
  .hg > .hg-founder { margin-left:16px !important; margin-right:16px !important; }
  .hg-hero { grid-template-columns:1fr; gap:40px; padding-top:32px; padding-bottom:64px; }
  .hg-hero h1 { max-width:none; }
  .hg-hero-art { margin:0 0 20px 16px; }
  .hg-voucher { left:-16px; bottom:-28px; }
  .hg-facts { grid-template-columns:1fr 1fr; gap:22px; padding-top:44px; }
  .hg-founder { grid-template-columns:1fr; gap:24px; padding:22px; }
  .hg-founder-photo { max-width:260px; }
  .hg-qualify-grid, .hg-steps ol { grid-template-columns:1fr; }
  .hg-final { grid-template-columns:1fr; gap:24px; }
}
@media (max-width: 560px) {
  .hg-check { padding:18px; }
  .hg-pc-row { flex-direction:column; }
  .hg-pc-row input { flex:none; width:100%; }
  .hg-go { justify-content:center; }
  .hg-voucher strong { font-size:44px; }
  .hg-voucher-stub { width:96px; }
  .hg-facts { grid-template-columns:1fr; }
  .hg-lead { font-size:16.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .hg-voucher { animation:none; }
  .hg-faq summary::after, .hg-pills span { transition:none; }
}

/* ------------------------------------------------ talk to us band */
.hg-talk { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:8px; padding:28px 32px; border-radius:24px; background:var(--hg-mint); }
.hg-talk h2 { margin:0 0 6px; font-size:clamp(24px, 2.6vw, 32px); }
.hg-talk p { margin:0; color:var(--hg-ink); }
.hg-talk-actions { display:flex; align-items:center; gap:22px; flex:none; }
.hg-talk .hg-go { display:inline-flex; align-items:center; gap:10px; }
.hg-talk-phone { display:inline-flex; align-items:center; gap:10px; color:var(--hg-forest) !important; font-weight:750; font-size:20px; text-decoration:none; }
.hg-talk-phone small { display:block; font-size:12px; font-weight:600; color:var(--hg-mute); }
@media (max-width: 900px) {
  .hg .hg-talk { flex-direction:column; align-items:stretch; margin-left:20px; margin-right:20px; padding:22px; }
  .hg-talk-actions { flex-direction:column; align-items:stretch; gap:14px; }
  .hg-talk .hg-go { justify-content:center; }
  .hg-talk-phone { justify-content:center; padding:12px; border:2px solid var(--hg-forest); border-radius:999px; font-size:18px; }
  .hg-talk-phone small { display:none; }
}
.hg-trust { display:flex; flex-wrap:wrap; gap:8px 16px; margin:12px 0 0; padding:0; list-style:none; font-size:13px; font-weight:600; color:var(--hg-forest); }
.hg-trust li { display:inline-flex; align-items:center; gap:6px; }
.hg-talk { align-items:stretch; }
.hg-talk-copy { flex:1; align-self:center; }
.hg-talk-kicker { display:inline-flex; align-items:center; gap:6px; margin-bottom:8px; color:var(--hg-forest); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.hg-talk-or { margin-top:12px !important; font-weight:600; }
.hg-talk-or a { display:inline-flex; align-items:center; gap:6px; color:var(--hg-forest); font-weight:750; font-size:18px; text-decoration:none; }
.hg-talk-form { flex:0 0 360px; display:flex; flex-direction:column; gap:6px; padding:20px; border-radius:18px; background:#fff; box-shadow:0 10px 30px #0f3b3314; }
.hg-talk-form label { font-size:13px; font-weight:700; color:var(--hg-forest); }
.hg-talk-form input[type=text], .hg-talk-form input:not([type]), .hg-talk-form input[type=tel] { height:48px; padding:0 14px; border:1px solid #d6e0da; border-radius:12px; font:inherit; font-size:16px; margin-bottom:6px; }
.hg-talk-form .hg-talk-consent { display:flex; gap:8px; align-items:flex-start; margin:4px 0 8px; font-size:12px; font-weight:500; color:var(--hg-mute); }
.hg-talk-form .hg-talk-consent input { margin-top:2px; width:18px; height:18px; flex:none; }
.hg-talk-form .hg-go { justify-content:center; display:inline-flex; align-items:center; gap:10px; }
.hg-callnow { display:inline-flex; align-items:center; gap:8px; margin-top:16px; padding:12px 18px; border:2px solid #ffffff59; border-radius:999px; color:#fff !important; font-weight:700; text-decoration:none; }
.hg-callnow:hover { background:#ffffff14; }
.hg-callnow + .hg-solar { margin-top:14px; }
@media (max-width: 900px) {
  .hg-talk-form { flex-basis:auto; }
  .hg-callnow { width:100%; justify-content:center; }
}

/* ------------------------------------------------ "Speak to us now" (talk first) */
.hg-speak { max-width:540px; margin:0 0 6px; }
.hg-speak-btn { display:flex; align-items:center; gap:16px; width:100%; padding:16px 22px 16px 16px; border:0; border-radius:20px; background:var(--hg-sun); color:var(--hg-deep);
  font:inherit; text-align:left; cursor:pointer; box-shadow:0 18px 40px -18px #000000aa; transition:transform .15s ease, background .15s ease; }
.hg-speak-btn:hover { background:#f6c25e; transform:translateY(-1px); }
.hg-speak-btn:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.hg-speak-btn b { display:block; font-family:"Bricolage Grotesque", "Figtree", Arial, sans-serif; font-size:clamp(22px, 2.6vw, 28px); font-weight:800; line-height:1.1; }
.hg-speak-btn small { display:block; margin-top:3px; font-size:14px; font-weight:600; color:#3b3215; }
.hg-speak-mic { position:relative; flex:none; display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:var(--hg-forest); color:var(--hg-sun); }
.hg-speak-mic::after { content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid var(--hg-forest); opacity:.35; animation:hg-ring 2.2s ease-out infinite; }
@keyframes hg-ring { 0% { transform:scale(.9); opacity:.5; } 100% { transform:scale(1.25); opacity:0; } }
@media (prefers-reduced-motion: reduce) { .hg-speak-mic::after { animation:none; } }
.hg-speak-how { display:flex; gap:8px; align-items:flex-start; margin:12px 2px 0; color:#d6e6dd; font-size:14px; line-height:1.5 !important; }
.hg-speak-how .ic { flex:none; margin-top:3px; color:var(--hg-mint); }
.hg-or { display:flex; align-items:center; gap:12px; max-width:540px; margin:18px 0 12px; color:#b9d2c6; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.hg-or::before, .hg-or::after { content:''; flex:1; height:1px; background:#ffffff2e; }
.hg-talk-ai { background:var(--hg-forest); color:#fff; }
.hg-talk-ai h2, .hg-talk-ai .hg-talk-kicker { color:#fff; }
.hg-talk-ai .hg-talk-kicker { color:var(--hg-sun); }
.hg-talk-points { margin:0; padding:0; list-style:none; display:grid; gap:8px; }
.hg-talk-points li { display:flex; gap:10px; align-items:flex-start; color:#d6e6dd; }
.hg-talk-points .ic { flex:none; margin-top:4px; color:var(--hg-sun); }
.hg-talk-ai .hg-talk-actions { flex-direction:column; align-items:stretch; gap:12px; flex:0 0 340px; align-self:center; }
.hg-speak-go { justify-content:center; height:60px; font-size:19px; }
.hg-callback-alt summary { cursor:pointer; color:#d6e6dd; font-size:14px; font-weight:700; text-align:center; list-style:none; text-decoration:underline; text-underline-offset:3px; }
.hg-callback-alt summary::-webkit-details-marker { display:none; }
.hg-callback-alt[open] summary { margin-bottom:10px; }
.hg-callback-alt .hg-talk-form { flex-basis:auto; }
@media (max-width: 900px) {
  .hg .hg-talk-ai .hg-talk-actions { flex-basis:auto; }
  .hg-speak-btn { padding:14px 16px 14px 12px; }
  .hg-speak-mic { width:50px; height:50px; }
}
.hg-talk-sub { margin:-8px 0 12px !important; color:#d6e6dd; }
.hg-topics { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px; }
.hg-topics span { padding:5px 11px; border-radius:999px; background:#ffffff1a; color:var(--hg-mint); font-size:12.5px; font-weight:700; }
.hg .hg-talk-ai p.hg-talk-sub { color:#d6e6dd; }

/* the assistant "says hello" before they tap: typing dots, then the line; and the button pulses */
.hg-bubble { position:relative; display:inline-block; max-width:420px; margin:0 0 12px; padding:12px 16px; border-radius:18px 18px 18px 6px; background:#fff; color:var(--hg-deep);
  font-size:15px; line-height:1.45; box-shadow:0 6px 20px rgba(0,0,0,.18); }
.hg-bubble p { margin:0; opacity:0; max-height:0; overflow:hidden; animation:hg-bubble-in .35s ease-out 1.1s forwards; }
.hg-bubble-dots { display:inline-flex; gap:5px; padding:4px 2px; animation:hg-bubble-out .01s linear 1.1s forwards; }
.hg-bubble-dots i { width:7px; height:7px; border-radius:50%; background:var(--hg-forest); opacity:.35; animation:hg-dot 1s infinite; }
.hg-bubble-dots i:nth-child(2) { animation-delay:.15s; } .hg-bubble-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes hg-dot { 0%, 60%, 100% { opacity:.25; transform:translateY(0); } 30% { opacity:.9; transform:translateY(-3px); } }
@keyframes hg-bubble-in { to { opacity:1; max-height:200px; } }
@keyframes hg-bubble-out { to { display:none; width:0; height:0; padding:0; overflow:hidden; } }
.hg-speak-btn { animation:hg-btn-pulse 2s ease-in-out 1.6s infinite; }
@keyframes hg-btn-pulse { 0%, 100% { box-shadow:0 0 0 0 rgba(246,194,94,.75); } 50% { box-shadow:0 0 0 14px rgba(246,194,94,0); } }
@media (prefers-reduced-motion: reduce) { .hg-speak-btn, .hg-bubble-dots i { animation:none; } .hg-bubble p { opacity:1; max-height:none; animation:none; } .hg-bubble-dots { display:none; } }

/* installers: join our network */
.hg-installers { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin:28px 0; padding:26px 28px; border-radius:24px;
  background:var(--hg-deep); color:#fff; }
.hg-installers h2 { margin:8px 0 6px; font-size:clamp(22px, 3.4vw, 30px); line-height:1.15; color:#fff; }
.hg-installers h2 em { color:var(--hg-sun); font-style:normal; }
.hg-installers p { margin:0; max-width:620px; color:rgba(255,255,255,.82); line-height:1.5; }
.hg-installers-kicker { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--hg-sun); }
.hg-installers-btn { display:inline-flex; align-items:center; gap:8px; padding:14px 22px; border-radius:14px; background:var(--hg-sun); color:var(--hg-deep); font-weight:800; text-decoration:none; white-space:nowrap; }
.hg-installers-btn:hover { filter:brightness(1.05); }
