.tool-hero{max-width:1120px;margin:auto;padding:22px 24px 18px}.tool-hero h1{max-width:850px;font-size:clamp(1.85rem,3vw,2.7rem);margin:.16em 0}.tool-hero .lede{font-size:1rem;line-height:1.45;max-width:850px;margin:.4em 0}.calculator-shell{max-width:1120px;margin:0 auto 38px;padding:0 24px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:16px;align-items:stretch}.calculator-form,.result-panel{background:#fff;border:1px solid rgba(13,27,94,.12);border-radius:12px;padding:20px 22px;box-shadow:0 12px 32px -22px rgba(13,27,94,.35)}.form-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.form-title>span{display:none}.form-title h2,.form-title p{margin:0}.form-title h2{font-size:1.35rem}.form-title p{color:var(--muted);font-size:.8rem}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 12px}label,legend{font-size:.76rem;font-weight:700;color:var(--navy);letter-spacing:.01em}input,select{width:100%;height:40px;margin-top:4px;padding:8px 10px;border:1px solid rgba(13,27,94,.2);border-radius:6px;background:#fff;color:var(--ink);font:500 .86rem 'DM Sans',sans-serif}input::placeholder{color:#8d94a9;opacity:1}input:focus,select:focus{outline:3px solid rgba(43,92,230,.12);border-color:#2b5ce6}fieldset{border:0;padding:11px 0 4px;margin:7px 0}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;margin-top:4px}.check{display:flex;gap:7px;align-items:flex-start;margin:3px 0;color:var(--ink);font-size:.76rem;font-weight:500;line-height:1.3}.check input{width:auto;height:auto;margin-top:2px}.calculate{width:100%;border:0;cursor:pointer;font:700 .9rem 'DM Sans',sans-serif;padding:10px 16px;margin-top:8px}.result-panel{background:#fff;color:var(--ink);border-top:4px solid var(--orange);position:relative;min-height:100%;display:flex;flex-direction:column;justify-content:center}.result-panel h2,.result-panel h3{color:var(--navy)}.result-empty{max-width:370px}.result-empty p{color:var(--muted);font-size:.9rem}.result-empty>span,.result-kicker{font:500 10px/1.4 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-deep)}.result-number{font-size:clamp(2.2rem,4vw,3.4rem);font-weight:700;color:var(--navy);letter-spacing:-.04em;line-height:1;margin:.1em 0}.result-range{color:var(--muted);font-size:.86rem;margin:0 0 10px}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.result-stats div{background:#f5f7fc;border:1px solid rgba(13,27,94,.07);padding:9px 10px;border-radius:7px}.result-stats b{display:block;color:var(--navy);font-size:1.05rem}.result-stats span{font-size:.7rem;color:var(--muted)}.assumptions{font-size:.72rem;line-height:1.4;color:var(--muted);margin:8px 0}.next-step{margin-top:12px;padding:12px 14px;background:#fdf4ef;border-left:3px solid var(--orange);border-radius:6px}.next-step strong{display:block;color:var(--navy);font-size:.94rem}.next-step span{display:block;color:var(--muted);font-size:.76rem}.lead-box{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.lead-box h3{font-size:1.05rem;margin:0}.lead-box>p{margin:3px 0 10px;color:var(--muted);font-size:.76rem}.lead-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px}.lead-box label{color:var(--navy);font-size:.7rem}.lead-box input{height:36px;background:#fff;margin-top:3px;font-size:.8rem}.lead-box .wide{grid-column:1/-1}.lead-box .button{width:100%;margin-top:9px;border:0;cursor:pointer;padding:10px}.privacy{font-size:.66rem!important;color:var(--muted)!important;text-align:center}.method{display:grid;grid-template-columns:1.3fr .8fr;gap:34px}.embedded .site-header,.embedded footer,.embedded .breadcrumbs,.embedded .method{display:none}.embedded .tool-hero{padding-top:14px}.embedded .calculator-shell{margin-bottom:16px}.partner-note{font-size:.74rem;color:var(--muted)}
@media(min-width:801px) and (min-height:650px){.calculator-shell{min-height:calc(100vh - 242px)}}
@media(max-width:900px){.field-grid{grid-template-columns:1fr 1fr}.calculator-shell{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.calculator-shell,.method{grid-template-columns:1fr}.result-panel{min-height:250px}.field-grid{grid-template-columns:1fr 1fr}.tool-hero{padding-top:18px}}
@media(max-width:520px){.tool-hero,.calculator-shell{padding-left:16px;padding-right:16px}.calculator-form,.result-panel{padding:18px}.field-grid,.lead-fields,.check-grid{grid-template-columns:1fr}.lead-box .wide{grid-column:auto}}
.gotcha{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.consent-check{display:flex;gap:8px;align-items:flex-start;margin-top:9px;color:var(--muted)!important;font-weight:500!important;line-height:1.35}.consent-check input{width:auto;height:auto;margin:3px 0 0;flex:0 0 auto}.consent-check span{font-size:.68rem}.submit-status{min-height:1em;color:#b42318!important;font-size:.74rem!important;text-align:center}.lead-success{padding:18px;background:#eef8f1;border:1px solid #b8dfc3;border-radius:8px}.lead-success strong,.lead-success span{display:block}.lead-success strong{color:#126b35}.lead-success span{font-size:.8rem;color:var(--muted);margin-top:4px}.season-chart{margin:12px 0 9px;padding:13px 14px 11px;background:#f7f8fc;border:1px solid rgba(13,27,94,.09);border-radius:8px}.season-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:5px}.season-chart-head div{display:flex;flex-direction:column}.season-chart-head strong{font-size:.8rem;color:var(--navy)}.season-chart-head span{font-size:.62rem;color:var(--muted)}.season-chart-head em{font:500 .54rem/1.3 'JetBrains Mono',monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--orange-deep);font-style:normal;white-space:nowrap}.season-curve{display:block;width:100%;height:auto;max-height:190px}.chart-grid path{fill:none;stroke:#d8deea;stroke-width:1}.temp-labels text,.month-labels text{fill:#7c869e;font:600 10px 'DM Sans',sans-serif}.month-labels text{text-anchor:middle;font-size:9px}.season-area{fill:url(#solarSeasonFill);opacity:0;animation:areaFade 1.1s .5s ease-out forwards}.curve{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;animation:drawCurve 1.8s cubic-bezier(.3,.8,.2,1) forwards}.curve.solar-cover{stroke:#f05a24}.curve.solar-open{stroke:#f5a623;animation-delay:.15s}.curve.unheated-cover{stroke:#2b5ce6;animation-delay:.3s}.curve.unheated-open{stroke:#8d98ad;stroke-dasharray:8 6;animation:drawDashed 1.8s .45s ease-out forwards}.curve-legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:2px}.curve-legend span{display:flex;align-items:center;gap:6px;font-size:.6rem;color:var(--muted)}.key{display:block;width:17px;height:3px;border-radius:9px}.key.solar-cover{background:#f05a24}.key.solar-open{background:#f5a623}.key.unheated-cover{background:#2b5ce6}.key.unheated-open{background:repeating-linear-gradient(90deg,#8d98ad 0 5px,transparent 5px 8px)}.season-chart>p{margin:7px 0 0;font-size:.59rem;line-height:1.35;color:var(--muted)}@keyframes drawCurve{to{stroke-dashoffset:0}}@keyframes drawDashed{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}@keyframes areaFade{to{opacity:1}}@media(prefers-reduced-motion:reduce){.season-area,.curve{animation:none;opacity:1;stroke-dashoffset:0}}
.calculator-form{display:flex;flex-direction:column}.system-preview{margin:auto 0 0;padding-top:18px;border-top:1px solid var(--line)}.preview-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}.preview-heading strong{font-size:.78rem;color:var(--navy)}.preview-heading span{font:500 .54rem/1.3 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-deep)}.system-preview svg{display:block;width:100%;height:auto;max-height:190px}.system-preview figcaption{font-size:.65rem;line-height:1.35;color:var(--muted);margin-top:2px}.ground-line,.roof-line{fill:none;stroke:#9da7bb;stroke-width:2}.house-fill{fill:#f3eee8;stroke:#d9d2c9;stroke-width:1}.roof-panels path,.dhw-collector path{fill:#173178;stroke:#2b5ce6;stroke-width:1.5}.dhw-collector path+path{fill:none;stroke:#85a3f4;stroke-width:1}.pipe{fill:none;stroke-width:4;stroke-linecap:round}.hot-flow{stroke:#f05a24}.cool-flow{stroke:#2b84c6}.pool-body rect{fill:url(#poolWater);stroke:#267e96;stroke-width:1.5}.pool-body path{fill:none;stroke:rgba(255,255,255,.75);stroke-width:2}.tank rect{fill:#eef2fa;stroke:#53658e;stroke-width:2}.tank ellipse{fill:#f8f9fc;stroke:#53658e;stroke-width:2}.tank path{fill:none;stroke:#b7c1d5;stroke-width:1}.hot-out,.shower{fill:none;stroke:#f05a24;stroke-width:3;stroke-linecap:round}.flow-dot.hot-dot{fill:#ff7645}.flow-dot.cool-dot{fill:#2b84c6}.preview-labels text{fill:#5a6280;font:600 11px 'DM Sans',sans-serif;text-anchor:middle}@media(max-width:800px){.system-preview{margin-top:18px}.system-preview svg{max-height:165px}}@media(prefers-reduced-motion:reduce){.flow-dot{display:none}}.installed-system{overflow:hidden}.system-render{display:block;width:100%;height:auto;max-height:250px;object-fit:contain;object-position:center;background:#fff;margin:5px 0 2px}@media(max-width:800px){.system-render{max-height:220px}}.system-render-stage{position:relative;width:100%;margin:5px 0 2px}.system-render-stage .system-render{margin:0}.pool-flow-overlay{position:absolute;inset:0;width:100%;height:100%;max-height:none!important;display:block;pointer-events:none;overflow:visible}.flow-base{fill:none;stroke-width:3;opacity:.12;stroke-linecap:round}.flow-pulse,.return-pulse,.supply-pulse{fill:none;stroke-width:4;stroke-linecap:round;stroke-dasharray:5 55;animation:systemFlow 3.2s linear infinite;filter:drop-shadow(0 0 2px rgba(255,255,255,.72));will-change:stroke-dashoffset}.cold{stroke:#20a7e0}.warming{stroke:url(#warmingFlow)}.hot{stroke:#f05a24}.collector-flow .warming.flow-pulse{animation-duration:3.6s}.return-pulse{animation-duration:3.4s}.supply-pulse{animation-duration:2.8s}.pool-water-motion path{fill:none;stroke:rgba(255,255,255,.38);stroke-width:2;stroke-linecap:round;stroke-dasharray:32 96;animation:poolGlint 8s linear infinite;will-change:stroke-dashoffset}.pool-water-motion path+path{animation-delay:-2.4s;opacity:.72}@keyframes systemFlow{to{stroke-dashoffset:-60}}@keyframes poolGlint{to{stroke-dashoffset:-128}}@media(prefers-reduced-motion:reduce){.flow-pulse,.return-pulse,.supply-pulse,.pool-water-motion path{animation:none}}