/* Additions for reviews, fixed-price promise, configuration and consent. */
.premium-addition{line-height:1.65;letter-spacing:.005em}
.premium-addition h2{font-size:clamp(2rem,4.6vw,4rem);line-height:1.16;letter-spacing:-.018em;margin:16px 0 24px;overflow-wrap:break-word}
.premium-addition h3{font-size:1.3rem;line-height:1.4;letter-spacing:0}
.premium-addition p{font-size:1rem;line-height:1.75}
.promise-panel{padding:clamp(24px,5vw,64px);border:1px solid #62477f;border-radius:28px;background:linear-gradient(115deg,#1c132a,#101017);display:grid;grid-template-columns:80px 1fr;gap:30px}
.promise-icon{width:72px;height:72px;color:#c99cff;fill:none;stroke:currentColor;stroke-width:1.5}
.promise-panel p{max-width:760px;color:#d3cedc}
.review-placeholder{border:1px solid #d6d1df;border-radius:24px;padding:32px;background:#fff;color:#17151b;margin:30px 0}
.review-placeholder p{max-width:720px;color:#514b5b}
.review-source{font-weight:700;color:#604184}
.review-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.review-card{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;background:#fff;border:1px solid #d6d1df;border-radius:24px;padding:28px;color:#17151b;min-width:0}
.review-card p{white-space:pre-wrap;overflow-wrap:anywhere}
.review-stars{color:#875d00;letter-spacing:.16em}
.review-controls{display:flex;gap:12px;margin:20px 0}
.review-controls button{border:1px solid #6e5b89;border-radius:50%;width:48px;height:48px;background:transparent;color:inherit;cursor:pointer}
.funding-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:36px 0}
.funding-card{padding:30px;border:1px solid #3d304c;background:#15121c;border-radius:24px}
.funding-card strong{display:block;font-size:clamp(2.4rem,5vw,4rem);color:#d1a7ff;line-height:1.3;margin:22px 0}
.funding-note{color:#d4cedd;max-width:900px}
.funding-source{display:inline-block;font-size:.9rem;color:#d1a7ff;text-decoration:underline;margin:12px 0}
.dimension-note{border-top:1px solid #3d304c;padding-top:20px;font-weight:650;line-height:1.8}
.pv-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;margin-top:40px}
.pv-preview{position:sticky;top:100px;padding:28px;background:radial-gradient(ellipse at top,#282030,#111015 70%);border:1px solid #393040;border-radius:28px;color:#faf8ff;min-width:0}
.roof-model{display:block;width:100%;height:auto;overflow:visible;margin:20px 0}
.roof-panel{fill:#08090b;stroke:#61636c;stroke-width:.6;animation:panel-arrive .38s ease-out both;transform-box:fill-box;transform-origin:center}
@keyframes panel-arrive{from{opacity:0;transform:translate(20px,-45px) scale(.88)}to{opacity:1;transform:translate(0,0) scale(1)}}
.pv-preview .diagram-note{font-size:.875rem;color:#c3bdce;line-height:1.65}
.energy-diagram{border-top:1px solid #403649;padding-top:24px;display:grid;grid-template-columns:1fr 1.2fr;gap:22px;margin-top:22px}
.inverter-box{border:1px solid #a48bbe;border-radius:12px;padding:20px 12px;background:#33283d;text-align:center;font-size:.9rem}
.battery-stack{display:grid;gap:6px;align-content:start}
.battery-module{border:1px solid #7d708b;border-radius:5px;background:#24212b;padding:8px 10px;font-size:.875rem;animation:panel-arrive .3s ease-out}
.pv-controls{background:#fff;color:#17131f;border:1px solid #d7d1df;border-radius:28px;padding:clamp(20px,3vw,36px);min-width:0}
.pv-controls fieldset{border:0;padding:0;margin:0 0 30px;min-width:0}
.pv-controls legend{font-weight:750;font-size:1.1rem;margin-bottom:15px}
.module-control{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:12px}
.module-control button{width:48px;height:48px;border:1px solid #77658b;background:#fff;color:#19131f;border-radius:50%;cursor:pointer;font-size:1.5rem}
.module-control button:disabled{opacity:.4;cursor:default}
.module-control output{text-align:center;font-size:1.5rem;font-weight:750}
.pv-controls input[type=range]{width:100%;accent-color:#7440a9;margin:24px 0 8px;min-height:32px}
.range-labels{display:flex;justify-content:space-between;font-size:.875rem;color:#615969}
.pv-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pv-option{display:flex;align-items:center;gap:10px;cursor:pointer;border:1px solid #b4aabb;border-radius:13px;padding:14px 12px;line-height:1.5;font-size:1rem}
.pv-option:has(input:checked){border-color:#73429f;background:#f1e8fc;box-shadow:inset 0 0 0 1px #73429f}
.pv-option input{accent-color:#7440a9;width:18px;height:18px;flex-shrink:0}
.pv-option small{display:block;font-size:.875rem;color:#615969}
.pv-controls .recommendation{font-size:.95rem;color:#5f3488;margin-bottom:12px;font-weight:650}
.pv-controls .technical-note{font-size:.9rem;color:#5f566b}
.pv-summary{border-top:1px solid #d5ccdf;padding-top:20px;margin-top:24px}
.pv-summary dl{margin:0 0 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;font-size:1rem}
.pv-summary dd{margin:0;font-weight:750;text-align:right}
.pv-summary .btn{width:100%;text-align:center}
.larger-system{padding:24px 0 0;color:#d0c8da;font-size:1rem;line-height:1.8}
.legal-links{max-width:1200px;margin:0 auto;padding:0 24px 32px;display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;line-height:1.7;color:#d8d2e0}
.legal-links a,.legal-links button{text-decoration:underline;text-underline-offset:4px}
.legal-links button{background:none;border:0;padding:0;color:inherit;cursor:pointer}
.legal-links a:hover,.legal-links button:hover{color:#ddbfff}
.legal-page{padding:150px 24px 80px;max-width:920px;margin:auto;line-height:1.8;color:#efedf4;min-height:65vh;overflow-wrap:anywhere}
.legal-page h1{font-size:clamp(2rem,6vw,3.5rem);line-height:1.2;letter-spacing:-.015em}
.legal-page a{text-decoration:underline}
.legal-page dt{font-weight:700;margin-top:20px}.legal-page dd{margin:4px 0}
.consent-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;margin:auto;padding:clamp(20px,4vw,36px);border:1px solid #756083;border-radius:22px;background:#16121e;color:#f5f1f9;line-height:1.65;box-shadow:0 24px 90px #0008;font-size:1rem}
.consent-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}
.consent-dialog h2{font-size:1.6rem;line-height:1.3;letter-spacing:0;margin:0 0 18px}
.consent-dialog p{color:#d6cede;font-size:.95rem}
.consent-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0 18px}
.consent-actions button,.consent-save{border:1px solid #af8fcd;background:#2b2137;color:#fff;border-radius:12px;padding:13px 12px;min-height:52px;cursor:pointer;font-size:.95rem;font-weight:650;line-height:1.4}
.consent-actions button:hover,.consent-save:hover{background:#463154}
.consent-dialog a{color:#dac0ff;text-decoration:underline}
.consent-links{display:flex;flex-wrap:wrap;gap:16px;font-size:.875rem}
.consent-category{display:flex;align-items:flex-start;gap:12px;padding:15px 0;border-bottom:1px solid #403447;cursor:pointer}
.consent-category input{accent-color:#b67cea;width:22px;height:22px;flex-shrink:0;margin-top:4px}
.consent-category small{display:block;font-size:.875rem;color:#c6bdce;line-height:1.6;margin-top:3px}
.consent-save{width:100%;margin:20px 0}
.map-consent{display:grid;place-content:center;text-align:center;min-height:300px;padding:30px;color:#eee7f6;background:#16121e;line-height:1.7}
.map-consent button{margin:15px auto;background:#352543;color:#fff;cursor:pointer}
:where(button,a,input,select,textarea):focus-visible{outline:3px solid #bd8aff;outline-offset:4px}
[hidden]{display:none!important}
.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}
.map{height:auto;min-height:360px}.map iframe{height:360px}
.funding-card h3{overflow-wrap:anywhere}
/* Readability repairs only; existing spacing and sections remain intact. */
.hero:not(.hero-home) h1{letter-spacing:-.025em;line-height:1.1;overflow-wrap:break-word}
.title{letter-spacing:-.025em;line-height:1.13;overflow-wrap:break-word}
.brand{min-width:0}.brand span{font-size:.88rem;line-height:1.4;max-width:205px}
@media(max-width:950px){.pv-layout{grid-template-columns:1fr}.pv-preview{position:static}.roof-model{max-width:560px;margin:20px auto}.funding-cards{grid-template-columns:1fr}.review-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:600px){.promise-panel{grid-template-columns:1fr;gap:12px}.review-card{flex-basis:100%}.consent-actions{grid-template-columns:1fr}.pv-preview{padding:20px}.energy-diagram{gap:12px}.pv-summary dl{font-size:.95rem}.brand span{max-width:155px;font-size:.8rem}.hero:not(.hero-home) h1{font-size:clamp(2.25rem,9vw,3.5rem)}.review-placeholder{padding:24px}.pv-option{font-size:.95rem}.premium-addition h2{font-size:2rem}}

/* Premium Google reviews */
.reviews-section{position:relative;overflow:hidden;background:radial-gradient(circle at 96% 10%,rgba(67,92,255,.22),transparent 34%),radial-gradient(circle at 4% 88%,rgba(139,64,255,.18),transparent 30%),#07070b;color:#f7f7fa}
.reviews-section:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-145px;height:240px;border-radius:50%;border-top:1px solid rgba(111,83,255,.7);box-shadow:0 -14px 70px rgba(89,49,232,.18);pointer-events:none}
.reviews-section .wrap{position:relative;z-index:1}.reviews-section>.wrap>h2{font-size:clamp(2.8rem,6vw,5.4rem);line-height:1.02;letter-spacing:-.045em;margin:16px 0 18px}.reviews-intro{max-width:720px;color:#b7b7c4;margin:0 0 46px}
.reviews-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px;align-items:stretch}.reviews-summary{border:1px solid rgba(129,104,255,.42);border-radius:25px;padding:30px;background:linear-gradient(145deg,rgba(30,23,51,.9),rgba(12,12,18,.9));display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 28px 70px rgba(0,0,0,.22)}
.google-wordmark{font-size:2.35rem;font-weight:750;letter-spacing:-.05em;background:linear-gradient(90deg,#78a5ff,#ff685e 35%,#ffd04d 58%,#57d98f 78%,#7ca1ff);-webkit-background-clip:text;background-clip:text;color:transparent;margin:6px 0 2px}.reviews-summary>strong{font-size:1.25rem;font-weight:650}.summary-stars{font-size:1.9rem;letter-spacing:.08em;color:#ffc400;margin:20px 0}.summary-line{width:100%;height:1px;background:linear-gradient(90deg,rgba(151,108,255,.75),transparent);margin:0 0 20px}.reviews-summary p{color:#b7b7c4;font-size:.97rem;line-height:1.65;margin:0 0 24px}.reviews-button{font-size:.88rem;padding:13px 16px;margin-top:auto;text-align:center;width:100%}
.reviews-slider{min-width:0;display:flex;flex-direction:column}.reviews-section .review-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 1px 12px}.reviews-section .review-track::-webkit-scrollbar{display:none}.reviews-section .review-card{flex:0 0 calc((100% - 28px)/3);scroll-snap-align:start;background:linear-gradient(155deg,rgba(21,21,31,.97),rgba(11,11,17,.98));border:1px solid rgba(126,113,164,.42);border-radius:22px;padding:24px;color:#f7f7fa;min-width:0;box-shadow:0 22px 50px rgba(0,0,0,.2)}
.review-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.review-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 44px;background:linear-gradient(145deg,#536cff,#b454dc);color:#fff;font-weight:750}.reviews-section .review-card h3{font-size:1.04rem;line-height:1.25;margin:0 0 4px;color:#fff}.review-redaction{display:inline-block;color:#777786;letter-spacing:-.13em;font-size:.7em;filter:blur(.6px);user-select:none}.reviews-section .review-source{font-size:.77rem;font-weight:600;color:#aaa8b7}.review-meta{display:flex;align-items:center;gap:11px;margin-bottom:18px}.reviews-section .review-stars{color:#ffc400;font-size:1.08rem;letter-spacing:.08em;white-space:nowrap}.review-date{font-size:.8rem;color:#aaa8b7}.reviews-section .review-card>p{font-size:.95rem;line-height:1.6;color:#d0cfda;margin:0;white-space:pre-line;overflow-wrap:anywhere}
.reviews-section .review-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:16px 0 0}.reviews-section .review-controls button{width:42px;height:42px;color:#fff;border-color:rgba(129,104,255,.45);background:rgba(16,15,25,.8);font-size:1.25rem;transition:.25s}.reviews-section .review-controls button:hover{border-color:#a66cf0;background:#211732;transform:translateY(-2px)}.review-dots{display:flex;gap:8px;margin-right:auto}.review-dots span{width:8px;height:8px;border-radius:50%;background:#343442;transition:.25s}.review-dots span.active{background:#a85cff;box-shadow:0 0 12px rgba(168,92,255,.7)}
@media(max-width:950px){.reviews-layout{grid-template-columns:220px minmax(0,1fr)}.reviews-section .review-card{flex-basis:calc((100% - 14px)/2)}}
@media(max-width:700px){.reviews-layout{grid-template-columns:1fr}.reviews-summary{align-items:center;text-align:center}.reviews-summary p{max-width:420px}.reviews-button{width:auto}.summary-line{max-width:280px}.reviews-intro{margin-bottom:30px}}
@media(max-width:600px){.reviews-section .review-card{flex-basis:100%}.reviews-section>.wrap>h2{font-size:2.65rem}.reviews-section .review-card{padding:22px}.reviews-section .review-controls{justify-content:center}.review-dots{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.roof-panel,.battery-module{animation:none}}
