/* One readable type scale for the page and every Roof Studio state. */
:root{--type-body:1rem;--type-copy:1rem;--type-label:.875rem;--type-note:.75rem;--type-button:.9375rem;--type-section:clamp(2rem,3.6vw,3rem);--type-panel:clamp(1.75rem,2.7vw,2.25rem)}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--type-body);line-height:1.65}
p,li{overflow-wrap:break-word}
h1,h2,h3,h4{text-wrap:balance}
h2,.section-heading h2,.energy-head h2,.faq h2,.human h2,.workspace-heading h2{font-size:var(--type-section);line-height:1.13;letter-spacing:-.035em}
h3,.app-copy h3,.packages-top h3,.energy-description h3,.journey-resume h3{font-size:var(--type-panel);line-height:1.15;letter-spacing:-.025em}
h4,.package h4,.demo-form h4{font-size:clamp(1.5rem,2.1vw,1.75rem);line-height:1.2}
.photo-hero h1{font-size:clamp(2.75rem,4.8vw,4rem);line-height:1.08;letter-spacing:-.04em}
.photo-hero h1 em{font-size:inherit;white-space:normal}
.photo-hero .hero-copy>p:not(.eyebrow){font-size:1.125rem;line-height:1.6;max-width:32rem}
.eyebrow,.photo-hero .hero-copy .eyebrow,.start-panel .eyebrow,.app-copy .eyebrow,.package .eyebrow,.consult-summary .eyebrow,.journey-resume .eyebrow{font-size:.75rem;line-height:1.6;letter-spacing:.12em}
.prototype-bar{font-size:.75rem;line-height:1.5;letter-spacing:.05em;min-height:36px;height:auto;padding-block:8px;gap:20px}
.prototype-bar span{font-size:.75rem}
nav,.header-phone{font-size:.9375rem;line-height:1.5}
.button,.start-panel .button,.app-copy .button,.package .button,.completion .button,.journey-resume .button{font-size:var(--type-button);line-height:1.4;min-height:48px;padding:14px 20px;gap:18px;white-space:normal}
.button span{flex-shrink:0}
.text-link,.workspace-heading .text-link,.scan-actions .text-link{font-size:.9375rem;line-height:1.5}
.back,.subtle-button,.start-panel .subtle-button{font-size:.8125rem;line-height:1.6;min-height:36px;display:flex;align-items:center}
label,.start-panel label,.demo-form label,.energy-preferences label{font-size:var(--type-label);line-height:1.5}
input:not([type=range]),select,.start-panel .address-input input,.energy-preferences input,.energy-preferences select{font-size:1rem;line-height:1.5;min-height:48px;height:auto;padding-top:11px;padding-bottom:11px}
.address-input>span{top:7px}
.panel-intro,.start-panel .panel-intro,.app-copy .panel-intro,.packages-top .panel-intro,.energy-description>p:not(.eyebrow),.human-grid>div>p:not(.eyebrow),.journey-resume p:not(.eyebrow){font-size:var(--type-copy);line-height:1.65}
.start-panel h3{font-size:1.875rem;line-height:1.17;letter-spacing:-.025em}
.start-panel .panel-intro{margin:14px 0 20px}
.field-note,.start-panel .field-note,.demo-form .field-note,.small,.reassurance small,.property-card p,.package-price small,.package-price span,.package-footer>span,.consult-summary>p:not(.eyebrow){font-size:var(--type-note);line-height:1.65}
body .human .small,body .completion .field-note{font-size:var(--type-note)!important;line-height:1.65}
.energy-preferences summary{font-size:.875rem;line-height:1.5;gap:12px;min-height:36px}
.energy-preferences summary span{font-size:1.25rem}
.hero-proof{font-size:.875rem;line-height:1.5;flex-wrap:wrap;gap:10px 22px}
.hero-project-link{font-size:.8125rem;line-height:1.6}
.reassurance{font-size:.875rem;line-height:1.6;flex-wrap:wrap;gap:20px}
.reassurance>a{font-size:.9375rem;line-height:1.5}
.app-top,.studio-home .app-top{font-size:.6875rem;line-height:1.6;letter-spacing:.07em;flex-wrap:wrap;gap:8px 12px}
.demo-badge,.studio-home .demo-badge,.app-top .demo-badge{font-size:.6875rem;line-height:1.5;letter-spacing:.05em;padding:4px 8px}
.app-bottom,.studio-home .app-bottom,.app-bottom a{font-size:var(--type-note);line-height:1.6;flex-wrap:wrap}
.stepper{gap:12px}.stepper li{font-size:.8125rem;line-height:1.5;min-width:0;gap:8px}.stepper li:before{font-size:.75rem;width:28px;height:28px}
.property-card strong{font-size:1rem;line-height:1.4}.property-card p{margin-top:7px}
.pin-controls{flex-wrap:wrap}.pin-controls button{font-size:.9375rem;min-width:44px;min-height:44px}
.scan-overlay{font-size:.8125rem;line-height:1.5;flex-wrap:wrap;gap:8px}
.scan-checks li{font-size:.9375rem;line-height:1.5}.scan-checks li:before{flex-shrink:0}
.scan-actions{gap:20px;flex-wrap:wrap}
.design-banner{font-size:.875rem;line-height:1.6;flex-wrap:wrap}.design-banner span{font-size:.75rem}
.roof-legend{font-size:.75rem;line-height:1.6;flex-wrap:wrap;gap:8px 15px}
.map-caption{font-size:.6875rem;line-height:1.4;letter-spacing:.04em;max-width:calc(100% - 24px);white-space:normal}
.map-north,.map-panel-badge{font-size:.75rem;line-height:1.5}
.visual-foot{font-size:.875rem;line-height:1.5;flex-wrap:wrap}.visual-foot small{font-size:.6875rem;line-height:1.5}
.slider-label strong{font-size:1rem}.range-labels{font-size:.75rem;line-height:1.6}
.demo-metrics{flex-wrap:wrap;gap:22px}.demo-metrics strong{font-size:1.75rem;line-height:1.25}.demo-metrics span{font-size:.75rem;line-height:1.5;max-width:11rem}
.demo-summary{font-size:.875rem;line-height:1.5}
.package>p:not(.eyebrow),.demo-form>p,.completion>p:not(.eyebrow){font-size:1rem;line-height:1.65}
.package ul,.consult-summary ul{font-size:.875rem;line-height:1.6}.package li,.consult-summary li{margin-block:12px}
.package-price strong{font-size:2.25rem;line-height:1.35}
.package-tag{font-size:.625rem;line-height:1.5;letter-spacing:.04em;left:14px;right:14px;top:-12px;width:max-content;max-width:calc(100% - 28px)}
.completion h3{font-size:clamp(2rem,3.5vw,2.75rem);line-height:1.15}
.completion-summary span,.review-reasons span{font-size:.8125rem;line-height:1.5}
.segmented button{font-size:.9375rem;line-height:1.4;min-height:44px;padding:10px 20px}
.scene-label{font-size:.6875rem;line-height:1.4;letter-spacing:.04em;padding:5px 9px}
.energy-stage>p{font-size:.75rem;line-height:1.5;left:20px;right:20px;bottom:15px;max-width:32rem}
.energy-list>div>span{font-size:.8125rem;line-height:1.5}.energy-list strong{font-size:1rem;line-height:1.5;font-weight:500}.energy-list p{font-size:.9375rem;line-height:1.6}
.project span{font-size:.8125rem;line-height:1.5;letter-spacing:.12em}.project p{font-size:clamp(2rem,3.4vw,2.75rem);line-height:1.15}.project b{font-size:.9375rem;line-height:1.6}
summary,.faq summary{font-size:1rem;line-height:1.5}summary span{flex-shrink:0}details p{font-size:1rem;line-height:1.65}
.last-cta h2{font-size:clamp(2.5rem,5vw,4rem);line-height:1.1}
footer div{font-size:.9375rem;line-height:1.6;gap:8px}footer p,footer>a{font-size:.75rem;line-height:1.7}
@media(max-width:1100px){header{gap:20px}nav{gap:20px}.photo-layout{gap:34px;grid-template-columns:1.1fr 1fr}.photo-hero{padding-block:48px}.start-panel{padding:25px}.photo-hero h1{font-size:clamp(2.5rem,4.8vw,3.5rem)}}
@media(max-width:800px){nav{gap:15px}.photo-layout{grid-template-columns:1fr 1fr;gap:24px}.photo-hero h1{font-size:2.625rem}.photo-hero .hero-copy>p:not(.eyebrow){font-size:1rem}.start-panel{padding:24px}.start-panel h3{font-size:1.75rem}.studio-home .app-top,.studio-home .app-bottom{padding-inline:24px}.reassurance>span{flex-basis:calc(50% - 10px)}.reassurance>a{flex-basis:100%;border-top:1px solid var(--line);padding-top:16px}.package-tag{font-size:.6875rem}.energy-head{flex-wrap:wrap}.energy-description h3{font-size:2rem}.human h2{font-size:2.5rem}}
@media(max-width:560px){
 :root{--type-section:2rem;--type-panel:1.75rem}
 header{height:auto;min-height:80px;padding-block:14px;gap:12px}.brand img{width:190px;max-width:100%}nav{flex-shrink:0}nav a:first-child{font-size:.8125rem;line-height:1.35;max-width:66px}
 .prototype-bar{font-size:.6875rem;line-height:1.5;padding:8px 18px;gap:15px}.prototype-bar a{font-size:.6875rem}
 .photo-hero{padding:28px 0}.photo-layout{grid-template-columns:1fr;gap:24px}.photo-hero h1{font-size:clamp(2rem,8.4vw,2.375rem);line-height:1.1}.photo-hero h1 em{font-size:inherit;white-space:normal}
 .photo-hero .hero-copy .eyebrow{font-size:.6875rem;line-height:1.5;letter-spacing:.08em;margin-bottom:13px}.photo-hero .hero-copy>p:not(.eyebrow){font-size:1rem;line-height:1.55;margin-top:17px;max-width:none}.hero-proof{font-size:.75rem;line-height:1.5;gap:8px 16px;margin-top:16px}
 .start-panel{padding:22px}.start-panel h3{font-size:1.75rem}.start-panel .eyebrow{display:none}.start-panel .panel-intro{font-size:.9375rem;line-height:1.55;max-width:none;margin:12px 0 17px}
 .start-panel label{font-size:.8125rem}.start-panel .field-note{font-size:.75rem;line-height:1.5;margin-top:9px}.start-panel .button{font-size:.9375rem;min-height:48px;margin-top:15px;padding:13px 17px}.start-panel .subtle-button{font-size:.75rem;line-height:1.5;margin-top:12px;min-height:32px}
 .energy-preferences summary{font-size:.8125rem;min-height:36px}.energy-preferences label{font-size:.8125rem}.energy-preferences select,.energy-preferences input{font-size:1rem}
 .studio-home .app-top{font-size:.6875rem;padding:14px 22px;gap:8px}.studio-home .demo-badge{font-size:.625rem;padding:3px 6px}.studio-home .app-bottom{padding:13px 22px;font-size:.75rem}
 .app-top{padding:15px 18px}.app-copy{padding:26px 22px}.app-copy h3,.packages-top h3{font-size:1.75rem}.app-copy .panel-intro,.packages-top .panel-intro{font-size:1rem;line-height:1.6}.app-copy .eyebrow,.package .eyebrow,.consult-summary .eyebrow{font-size:.6875rem}
 .app-copy .button,.package .button,.completion .button{font-size:.9375rem}.app-bottom,.app-bottom a{font-size:.75rem;line-height:1.6}.app-bottom{padding:15px 18px}
 .stepper{padding:17px 10px;gap:5px}.stepper li{font-size:.6875rem;line-height:1.4;gap:8px;flex:1 1 0}.stepper li:before{font-size:.6875rem;width:26px;height:26px}
 .property-card{padding:15px;gap:12px;align-items:start}.property-card strong{font-size:.9375rem}.property-card p{font-size:.75rem;line-height:1.5}.property-icon{font-size:26px;line-height:1.2}
 .scan-overlay{font-size:.75rem}.scan-checks li{font-size:.9375rem}.scan-actions .text-link{font-size:.875rem}.design-banner{font-size:.8125rem;padding:13px 18px}.design-banner span{font-size:.75rem;line-height:1.5}
 .map-caption{font-size:.625rem;line-height:1.4;letter-spacing:.025em;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:4px 6px}.map-north,.map-panel-badge{font-size:.6875rem}.roof-legend{font-size:.75rem;gap:8px 12px}.demo-metrics{gap:20px}.demo-metrics strong{font-size:1.625rem}.demo-metrics span{font-size:.75rem;max-width:9rem}.range-labels{font-size:.75rem}
 .packages-top{padding:27px 22px 15px}.package{padding:27px 23px}.package h4,.demo-form h4{font-size:1.625rem}.package>p:not(.eyebrow),.demo-form>p{font-size:1rem}.package-price strong{font-size:2.125rem}.package-tag{font-size:.625rem;max-width:calc(100% - 28px)}.package ul,.consult-summary ul{font-size:.875rem}.package-footer{padding-inline:22px}.package-footer>span{font-size:.75rem}
 .demo-form{padding:28px 22px}.demo-form label{font-size:.875rem}.demo-form .field-note{font-size:.75rem}.consult-summary>p:not(.eyebrow){font-size:.875rem}.completion{padding:36px 22px}.completion h3{font-size:2rem}.completion>p:not(.eyebrow){font-size:1rem}.completion-summary span,.review-reasons span{font-size:.8125rem}
 .reassurance{font-size:.8125rem;line-height:1.5;gap:16px}.reassurance>span{flex-basis:100%}.reassurance>a{font-size:.9375rem}.reassurance small{font-size:.75rem}
 .energy-head h2,.section-heading h2,.faq h2,.workspace-heading h2{font-size:2rem}.workspace-heading .text-link{font-size:.875rem}.segmented button{font-size:.9375rem;min-height:44px;padding:10px 20px}
 .energy-description h3{font-size:1.875rem}.energy-description>p:not(.eyebrow){font-size:1rem;line-height:1.65}.energy-list p{font-size:.9375rem}.energy-list strong{font-size:1rem}.energy-list>div>span{font-size:.8125rem}
 .energy-stage{min-height:440px}.scene-label{font-size:.6875rem;line-height:1.4;padding:5px 8px}.energy-stage>p{font-size:.75rem;line-height:1.5;left:15px;right:15px;bottom:12px;max-width:none}.label-car{bottom:72px}.label-home{bottom:122px}.label-battery{bottom:158px}
 .human h2{font-size:2rem}.human-grid>div>p:not(.eyebrow){font-size:1rem}.project span{font-size:.75rem}.project p{font-size:2rem}.project b{font-size:.875rem}.project>div{left:24px;right:24px}.small{font-size:.75rem}
 .faq summary{font-size:1rem}.faq details p{font-size:1rem}.last-cta h2{font-size:2.75rem}footer div{font-size:.9375rem}footer p,footer>a{font-size:.75rem}
 .journey-resume h3{font-size:1.75rem}.journey-resume p:not(.eyebrow){font-size:1rem}.journey-resume .button{font-size:.9375rem}.journey-resume .eyebrow{font-size:.6875rem}
}
@media(max-width:350px){.brand img{width:168px}nav a:first-child{font-size:.75rem;max-width:58px}.photo-hero h1{font-size:2rem}.start-panel{padding-inline:18px}.studio-home .app-top,.studio-home .app-bottom{padding-inline:18px}.studio-home .app-top{gap:6px}.studio-home .demo-badge{font-size:.625rem}.start-panel h3{font-size:1.625rem}.app-copy{padding-inline:18px}.stepper li{font-size:.625rem}.demo-metrics strong{font-size:1.5rem}.energy-stage>p{font-size:.6875rem}.scene-label{font-size:.625rem}.label-solar{left:12px}.label-battery{right:12px}.label-home{left:12px}.label-car{right:12px}}
