/* ==========================================================================
   PlugSolarHub light theme (18 October 2026)
   White backgrounds and high-contrast text across every page, for readability.
   Loaded LAST in <head> on every page so it overrides page styles and the dark
   liquid-glass surfaces in psh-design.css. Text colours meet WCAG AA on white
   (body text well above 7:1). The WebGL shader is switched off in site.js.
   ========================================================================== */
:root{
  --bg:#ffffff; --bg-warm:#f6f7f3; --bg-card:#ffffff;
  --tx:#14160f; --tx-body:#26291f; --tx-dim:#43463c; --tx-muted:#55584e;
  --border:#d9ddd2; --border-lt:#e6e9e1;
  --lt-panel:#f3f8f4; --lt-panel-b:#cfe3d6; --lt-ink:#14160f; --lt-text:#26291f;
  --lt-green:#1f4d33; --lt-gold:#7a5c12;
}
html,body{background:#fff!important}
body{color:var(--tx-body)}

/* Shader canvases and the homepage particle canvas are retired */
.psh-fx,.hero-canvas{display:none!important}

/* ---------- Light surfaces: every formerly dark block ---------- */
.psh-hero,.gr-hero,.hero,.news-ticker{
  background:linear-gradient(180deg,#ffffff 0%,#f3f8f4 100%)!important;
  color:var(--lt-text)!important;border-bottom:1px solid var(--lt-panel-b)!important}
.psh-band,.gr-decision,.psh-numbers,.gr-numbers,.psh-cap .psh-cap-inner,.psh-promo,
.page-cta,.blog-cta,.res-cta,.sun-panel,.res-sun,.psh-result-hero,.trust,.city-card,
.callout-dark,.article-cta,.sun-diagram,.psh-dark-section{
  background:var(--lt-panel)!important;color:var(--lt-text)!important;
  border:1px solid var(--lt-panel-b)!important;box-shadow:none!important}
.site-footer{background:#f6f7f3!important;color:var(--lt-text)!important;border-top:1px solid var(--border)!important}
.hero::before,.hero::after,.psh-hero::after,.trust::before,.res-cta::before,
.psh-cap-inner::before{display:none!important}

/* Text inside light surfaces: near-black, no glow */
:is(.psh-hero,.gr-hero,.hero,.news-ticker,.psh-band,.gr-decision,.psh-numbers,.gr-numbers,
.psh-cap-inner,.psh-promo,.page-cta,.blog-cta,.res-cta,.sun-panel,.res-sun,.psh-result-hero,
.trust,.city-card,.site-footer,.callout-dark,.article-cta,.sun-diagram,.psh-dark-section)
 :is(h1,h2,h3,h4,p,li,span,div,strong,b,small,label,figcaption,dt,dd,td,th){
  color:var(--lt-text)!important;text-shadow:none!important}
:is(.psh-hero,.gr-hero,.hero,.psh-band,.gr-decision,.psh-numbers,.gr-numbers,.psh-cap-inner,.psh-promo,
.page-cta,.blog-cta,.res-cta,.sun-panel,.psh-result-hero,.site-footer,.callout-dark,.article-cta,.psh-dark-section)
 :is(h1,h2,h3,h4){color:var(--lt-ink)!important}
:is(.psh-hero,.gr-hero,.hero) h1 em,.hero-headline-v2,.psh-band h2 em{color:var(--lt-green)!important}
.hero-headline-v2 em{color:var(--lt-ink)!important}
:is(.psh-hero,.gr-hero,.hero,.news-ticker,.psh-band,.gr-decision,.psh-numbers,.gr-numbers,.psh-cap-inner,
.psh-promo,.page-cta,.blog-cta,.res-cta,.sun-panel,.res-sun,.trust,.site-footer,.callout-dark,.article-cta,.psh-dark-section)
 a:not([class]){color:var(--lt-green)!important;text-decoration:underline}

/* Accents that were gold-on-dark become dark gold or green on light */
.psh-badge,.gr-badge,.hero-tag-v2,.hero-tag{color:var(--lt-green)!important;background:#e3f1e8!important;border-color:#b9d9c4!important}
.psh-badge .d,.gr-badge .d{background:var(--lt-green)!important;box-shadow:none!important}
.psh-band .k,.gr-decision .k,.psh-cap-kicker{color:var(--lt-gold)!important}
.psh-step,.gr-step{background:#fff!important;border:1px solid var(--lt-panel-b)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.psh-step .n,.gr-step .n{color:var(--lt-gold)!important}
.psh-fig .num,.gr-fig .num,.psh-fig .num small,.gr-fig .num small,.city-card-saving,.city-card-saving .yr,
.trust-item-num,.hero-figure b,.res-sun-val,.psh-rh-n{color:var(--lt-green)!important}
.psh-src,.gr-src,.psh-hero .meta,.gr-hero .meta,.city-card-dno,.trust-item-lbl,.psh-cap-fine,.res-cta-note,.sun-panel-date{color:var(--tx-dim)!important}
.res-sun-stat{background:#fff!important;border:1px solid var(--lt-panel-b)}
.trust-item-icon{color:var(--lt-green)!important;background:#e3f1e8!important;border-color:#b9d9c4!important}

/* Buttons: solid, high contrast */
.page-cta .cta-primary,.blog-cta .cta-primary{background:var(--lt-green)!important;color:#fff!important;border:none!important}
.page-cta .cta-secondary,.blog-cta .cta-secondary{background:#fff!important;color:var(--lt-green)!important;border:2px solid var(--lt-green)!important}
.hero .hero-cta-v2,.psh-cap .psh-cap-form button,.psh-promo .psh-promo-cta,.hero .nav-links a.nav-cta,.nt-tag{background:#e8920a!important;color:#1a1a1a!important}
.res-cta .res-cta-form button{background:var(--lt-green)!important;color:#fff!important}
.res-cta .res-cta-form input,.psh-cap .psh-cap-form input[type=email]{background:#fff!important;color:#14160f!important;border:1px solid #9aa596!important}
.res-cta .res-cta-form input::placeholder{color:#55584e!important}
.res-cta-benefit::before{color:var(--lt-green)!important}

/* Homepage nav sits inside the hero: make it a normal light nav */
.hero .nav,.nav{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--border)!important}
.hero .nav-logo{color:var(--lt-ink)!important}
.hero .nav-logo span,.nav-logo span{color:var(--lt-green)!important}
.hero .nav-links a:not(.nav-cta),.hero .nav-dd-btn,.nav-links a:not(.nav-cta),.nav-dd-btn{color:#26291f!important}
.hero .nav-ham{color:#14160f!important;background:#fff!important;border:1px solid var(--border)!important}

/* Ticker */
.news-ticker{border-bottom:1px solid var(--lt-panel-b)!important}
.news-ticker .nt-item{color:#14160f!important}
.news-ticker .nt-date{color:var(--tx-dim)!important;border-left-color:var(--border)!important}

/* Homepage hero sub text and trust line */
.hero-sub-v2,.hero-sub,.hero-figure,.hero-trust-v2{color:var(--lt-text)!important}
.hero-trust-v2{border-top-color:var(--border)!important}
.hero-figure a{color:var(--lt-green)!important}

/* Footer links */
.site-footer a,.site-footer-links a,.site-footer-copy a{color:#26291f!important}
.site-footer-brand,.site-footer-brand span{color:var(--lt-ink)!important}
.site-footer-brand span{color:var(--lt-green)!important}
.site-footer-social a{background:#fff!important;color:#26291f!important;border:1px solid var(--border)}

/* Body copy that used low-contrast greys */
.faq-a-inner,.bd-card p,.bd-row p,.why-card p,.tool-card p,.sh p{color:#43463c!important}

/* Image credits stay legible on photos */
.bd-credit{color:#fff!important;background:rgba(20,22,19,.72)!important}

/* Cookie banner and floating CTA bar (injected by site.js) */
#cookie-banner{background:#ffffff!important;color:#14160f!important;border-top:2px solid #1f4d33!important;box-shadow:0 -6px 24px rgba(0,0,0,.12)!important}
#cookie-banner .cb-inner a{color:#1f4d33!important}
#cookie-banner .cb-accept{background:#1f4d33!important;color:#fff!important}
#cookie-banner .cb-decline{background:#fff!important;color:#14160f!important;border:1px solid #6f7468!important}
#float-cta{background:#f3f8f4!important;border-top:2px solid #1f4d33!important;box-shadow:0 -6px 24px rgba(0,0,0,.10)!important}
#float-cta .fcta-text,#float-cta .fcta-text strong{color:#14160f!important}
#float-cta .fcta-btn{background:#1f4d33!important;color:#fff!important}
#float-cta .fcta-close{color:#26291f!important}
