/* Shared vertical rhythm. Adjacent light sections share one interval. */
:root{--section-space:72px;--section-inner:32px;--shared-space:36px}
.form-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(100%);white-space:nowrap;pointer-events:none}
form[aria-busy=true] button[type=submit]{opacity:.75;cursor:wait;transform:none}
main>.section{padding-block:var(--section-space)}
main>.scenarios{padding-top:56px;padding-bottom:var(--shared-space)}
main>.cost{padding-block:var(--shared-space)}
main>.comparison{padding-top:0}
main>.service{padding-bottom:var(--shared-space)}
main>.trust{padding-block:var(--shared-space)}
main>.works{padding-top:var(--shared-space)}
.section-heading,.cost-heading,.selection-heading,.trust-experience .trust-heading{margin-bottom:var(--section-inner)}
.section-copy .lead{margin-top:24px}
.section-copy .button,.section-copy .text-button,.installation-copy .button{margin-top:28px}
.business-directions{margin-block:32px 28px}
.installation-process{margin-top:32px}
.installation-copy .lead{margin-top:22px}

/* The calculation follows the customer journey; every step stays visible. */
.calculation-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);border-radius:8px;overflow:hidden;background:#fffdf9}
.calculation-visual{position:relative;min-width:0;background:#e9e1d4}
.calculation-visual img{position:absolute;width:100%;height:100%;object-position:48% center}
.calculation-visual figcaption{position:absolute;inset:auto 22px 22px;width:fit-content;max-width:calc(100% - 44px);font-size:12px;line-height:1.5;padding:9px 12px;border-radius:4px;background:#243021e6;color:var(--cream)}
.calculation-workflow{padding:30px 30px 28px;min-width:0}
.calculation-workflow>h3{font-size:24px;margin-bottom:25px}
.calculation-steps{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.calculation-steps>li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;position:relative}
.calculation-steps>li:not(:last-child):before{content:'';position:absolute;width:1px;left:17px;top:43px;bottom:-15px;background:#d9dfd0}
.calculation-number{position:relative;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ccd5bf;border-radius:50%;font-size:12px;font-weight:600;color:#576c43;background:var(--cream)}
.calculation-free .calculation-number{background:var(--lime);border-color:#bccd87;color:var(--ink)}
.calculation-steps h4{font-size:17px;font-weight:600;line-height:1.4;letter-spacing:-.025em;margin:3px 0 7px}
.calculation-steps p{font-size:14px;line-height:1.65}
.calculation-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;margin-top:12px;border-radius:7px;background:var(--sage)}
.calculation-cta p{font-size:18px;color:var(--ink);line-height:1.5;max-width:550px}
.calculation-cta .button{flex:none}

/* Two installation phases, with readable instructions instead of tabs. */
.renovation-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}
.renovation-stage{display:flex;flex-direction:column;padding:30px 32px;border-radius:8px;min-width:0}
.renovation-preparation{background:var(--sage)}
.renovation-finish{background:#fffdf9;border:1px solid var(--line)}
.renovation-stage-label{display:flex;align-items:center;gap:13px;font-size:13px;line-height:1.5;font-weight:600;color:#4b613d;margin-bottom:21px}
.renovation-stage-label>span{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--forest);color:var(--lime);font-size:12px}
.renovation-stage h3{font-size:27px;line-height:1.2;max-width:400px;text-wrap:initial}
.renovation-stage ul{list-style:none;padding:0;margin:22px 0 24px;display:grid;gap:12px}
.renovation-stage ul>li{position:relative;padding-left:17px;font-size:15px;line-height:1.65;color:#53614c}
.renovation-stage ul>li:before{content:'';position:absolute;left:0;top:.68em;width:5px;height:5px;border-radius:50%;background:#829667}
.renovation-handoff{display:flex;gap:11px;align-items:start;font-size:13px;font-weight:600;line-height:1.6;color:var(--ink);border-top:1px solid #cbd2c1;padding-top:18px;margin-top:auto}
.renovation-handoff svg{width:19px;height:19px;margin-top:1px;color:#566e3e}
.selection-heading>p{margin-top:18px}
.selection-reassurance{margin-top:18px}
.trust-story p{margin-top:12px}
.service-composition{row-gap:24px}
.service-visual{position:relative;min-height:600px}
.service-visual>img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-position:center 20%}
.service-visual figcaption{position:relative;margin-top:auto;z-index:1}
.selection-visual{min-height:0}
.selection-experience .quiz-panel{padding:28px}
.selection-experience .quiz-panel h3{margin-bottom:10px}
.selection-experience .quiz-subtitle{margin-bottom:18px}
.selection-experience .quiz-photo-option>img{height:88px}
.selection-experience .quiz-photo-option>span{min-height:52px}
.selection-experience .quiz-option{min-height:62px}
.selection-experience .quiz-options{gap:12px}

/* The selected answer, progress and destination are always visible. */
.selection-experience .quiz-meta{align-items:center;font-size:12px;min-height:26px;gap:14px}
#quiz-count{font-weight:800;color:var(--forest);font-size:13px}
#quiz-topic{color:#596c43;background:#eef3e1;padding:5px 11px;border-radius:20px;font-size:11px;line-height:1.4;white-space:nowrap}
.selection-experience .quiz-progress{position:relative;overflow:visible;background:none;height:6px;margin:14px 0 24px}
#quiz-progress-fill{display:none}
.selection-experience .quiz-progress>.quiz-progress-segments{display:flex;gap:5px;height:100%;width:100%;background:transparent}
.quiz-progress-segments i{position:relative;flex:1;min-width:0;background:#e5e8dd;border-radius:4px;transition:background .25s,box-shadow .25s}
.quiz-progress-segments i.is-done{background:#758d43}
.quiz-progress-segments i.is-current{background:#cfdfa1;box-shadow:0 0 0 2px #afc97b55}
.quiz-progress-segments i.is-answered{background:#91af50}
.quiz-progress-segments i.is-current:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 3px #b8cc8150;animation:progress-arrive .4s ease-out}
#quiz-step{position:relative;min-height:364px;overflow-anchor:none}
.selection-experience .step-enter{animation:none}
.quiz-panel.is-changing #quiz-step{overflow:hidden;pointer-events:none}
.quiz-panel.is-changing .quiz-actions{pointer-events:none}
.quiz-panel.is-changing .quiz-actions .button{opacity:.8;transform:scale(.985)}
.selection-experience .quiz-option{transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}
.selection-experience .quiz-option:hover{border-color:#78974b;background:#f6f8ef}
.selection-experience .quiz-option:active{transform:scale(.985)}
.selection-experience .quiz-option:has(input:checked){background:#e7efcd;border-color:#5d773f;box-shadow:inset 0 0 0 1px #5d773f}
.selection-experience .quiz-option input{accent-color:#4e6b32;cursor:pointer;transition:transform .2s}
.selection-experience .quiz-option input:checked{transform:scale(1.1)}
.selection-experience .quiz-photo-option:has(input:checked)>img{filter:saturate(1.06)}
.quiz-feedback{display:flex;align-items:center;gap:8px;min-height:42px;font-size:12px;line-height:1.5;margin:10px 0 0;color:#76806b}
.quiz-feedback.has-answer{color:#405a2f;font-weight:600}
.quiz-feedback.has-answer:before{content:"";display:block;flex:none;width:6px;height:6px;border-radius:50%;background:#779a42}
.quiz-feedback[hidden]{display:none}
.selection-experience .validation-message{margin:0;min-height:0;font-size:12px}
.selection-experience .validation-message:empty{display:none}
.selection-experience .validation-message:not(:empty){margin-bottom:12px}
.needs-answer .quiz-option{border-color:#b98661}
.selection-experience .quiz-actions{margin-top:4px;padding-top:16px;align-items:center;gap:16px}
.selection-experience .quiz-actions>.button{flex:0 1 215px;min-height:58px;padding-block:10px;transition:background .2s,transform .18s,opacity .15s}
#quiz-next>span{display:flex;flex-direction:column;text-align:left;line-height:1.2;gap:4px}
#quiz-next small{display:block;font-size:11px;font-weight:400;letter-spacing:0;line-height:1.3;opacity:.8}
#quiz-next.is-ready{background:#d4e78e}
#quiz-next:hover{background:#c7dc75}
#quiz-next:active{transform:scale(.97)}
.back-button:hover{color:#6f8a45}
.back-button:disabled{opacity:.5}
.quiz-panel:has(#quiz-contact-form) #quiz-step{min-height:0}
@keyframes progress-arrive{from{box-shadow:0 0 0 6px #b8cc8170}to{box-shadow:0 0 0 3px #b8cc8150}}

/* Comparing an existing proposal is a separate, concrete conversion. */
.comparison-banner{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:72px;padding:48px 56px;border-radius:10px;background:var(--forest);color:var(--cream);overflow:hidden}
.comparison-banner:before{content:"";position:absolute;right:-100px;top:-120px;width:540px;height:540px;border:1px solid #64724755;border-radius:50%;z-index:-1}
.comparison-banner:after{content:"";position:absolute;right:-35px;bottom:-110px;width:420px;height:420px;border:1px solid #64724755;border-radius:50%;z-index:-1}
.comparison-label{display:block;font-size:11px;line-height:1.5;letter-spacing:.075em;color:#c8d5b4;margin-bottom:15px}
.comparison-copy h2{font-size:clamp(30px,3.2vw,42px);max-width:620px}
.comparison-copy>p{color:#d1d9c8;font-size:17px;line-height:1.65;margin-top:20px;max-width:610px}
.comparison-copy .button{margin-top:26px}
.comparison-note{display:block;font-size:11px;line-height:1.5;color:#b8c4ab;margin-top:13px}
.comparison-paper{background:#f6f4eb;color:var(--forest);padding:25px 24px 20px;border-radius:5px;transform:rotate(5deg);box-shadow:9px 10px 0 #b1c07d,0 16px 24px #101a151a}
.paper-top{display:flex;align-items:center;gap:9px;font-size:10px;color:#6b775c}
.paper-top svg{width:20px;height:20px}
.comparison-paper>strong{display:block;font-size:24px;line-height:1.15;letter-spacing:-.04em;font-weight:800;margin:22px 0 17px}
.paper-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;padding:10px 0;border-bottom:1px solid #d6dccd}
.paper-row svg{width:18px;height:18px;color:#778e49}
.paper-bottom{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#6b775c;padding-top:18px}
.paper-bottom svg{width:16px;height:16px}
.comparison-dialog{width:640px;padding:38px;background:var(--cream);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.comparison-dialog>.comparison-label{color:#708355;margin-bottom:12px;padding-right:38px}
.comparison-dialog h2{font-size:32px;line-height:1.14;max-width:90%}
.comparison-dialog-intro{font-size:14px;line-height:1.65;margin-top:17px}
.comparison-dialog .field{color:var(--forest);margin-top:18px;font-size:13px}
.comparison-dialog .field input,.comparison-dialog .field textarea{color:var(--forest);border-color:#c5cdbb;background:#fffefa}
.comparison-dialog .field input::placeholder,.comparison-dialog .field textarea::placeholder{color:#828b77}
.comparison-dialog .field textarea{min-height:76px}
.comparison-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.proposal-upload{margin-top:15px}
.upload-label{position:relative;display:flex;align-items:center;gap:13px;border:1px dashed #90a771;background:#edf2e2;border-radius:7px;padding:18px;cursor:pointer;transition:background .2s}
.upload-label:hover{background:#e3edcf}
.upload-label:focus-within{outline:3px solid #799548;outline-offset:3px}
.upload-label>svg{flex:none;color:#617c43;width:24px;height:24px}
.upload-label>span{min-width:0}
.upload-label strong{display:block;font-size:13px;line-height:1.5;font-weight:600}
.upload-label small{display:block;font-size:11px;color:#717e62;line-height:1.5;margin-top:4px}
.upload-label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.upload-label.has-file{border-style:solid}
.upload-selection{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;line-height:1.4;color:#4a6635}
.upload-selection[hidden]{display:none}
.upload-selection>span{min-width:0;overflow-wrap:anywhere}
.upload-selection>svg{width:19px;height:19px;flex:none}
.upload-selection button{display:grid;place-items:center;margin-left:auto;flex:none;width:36px;height:36px;border:1px solid #ced8c1;border-radius:50%;background:transparent}
.upload-selection button svg{width:16px;height:16px}
.material-note{font-size:11px;margin-top:10px}
.comparison-dialog .form-message{font-size:12px;color:#9d4329!important;line-height:1.5}
.comparison-dialog form>.button{margin-top:22px;width:100%;font-size:14px}
.comparison-dialog .preview-note{font-size:10px!important;color:#6a785b!important}

@media(max-width:1100px){
  :root{--section-space:64px;--shared-space:32px;--section-inner:28px}
  main>.scenarios{padding-top:48px}.comparison-banner{grid-template-columns:minmax(0,1fr) 235px;gap:46px;padding:40px}.comparison-copy>p{font-size:16px}.comparison-paper{padding:23px 20px}.comparison-paper>strong{font-size:23px}.selection-experience .quiz-panel{padding:26px}.service-visual{min-height:570px}
}
@media(max-width:920px){
  .comparison-banner{grid-template-columns:minmax(0,1fr) 200px;gap:34px;padding:32px}.comparison-paper{padding:22px 17px}.comparison-paper>strong{font-size:21px}.paper-row{font-size:12px}.comparison-copy h2{font-size:32px}.comparison-copy .button{font-size:14px;padding-inline:18px;gap:16px}.selection-experience .quiz-photo-option>span{font-size:12px}.selection-experience .quiz-photo-option>img{height:85px}
}
@media(max-width:780px){
  :root{--section-space:56px;--shared-space:28px}
  main>.scenarios{padding-top:40px}.section-copy .lead{margin-top:20px}.section-copy .button,.section-copy .text-button,.installation-copy .button{margin-top:24px}.service-visual{position:relative;min-height:0}.service-visual>img{position:static;min-height:0;height:310px;object-position:center top}.service-visual figcaption{margin:0}.selection-visual{height:180px;min-height:0}.selection-experience .quiz-panel{padding:26px}.selection-experience .quiz-photo-option>img{height:105px}.selection-experience .quiz-photo-option>span{font-size:14px;min-height:48px}.selection-experience .quiz-option{min-height:60px}#quiz-step{min-height:0}.selection-experience .quiz-actions{margin-top:0}.quiz-feedback{min-height:40px}.trust-story+.trust-story{padding-top:24px}.contact .split{gap:32px}.comparison-copy>p{font-size:15px}.comparison-banner{gap:28px;padding:30px;grid-template-columns:minmax(0,1fr) 190px}.comparison-copy h2{font-size:30px}
}
@media(max-width:640px){
  :root{--section-space:48px;--shared-space:24px;--section-inner:24px}
  main>.scenarios{padding-top:36px}.section-heading>p{margin-top:12px}.section-copy .lead,.installation-copy .lead{margin-top:18px}.business-directions{margin-block:26px}.installation-process{margin-top:28px}.business-top{gap:24px}.service-composition{gap:24px}.service-visual>img{height:310px}.service-visual figcaption{padding:19px 22px}.company-band{margin-top:28px}.work-grid{gap:26px}.contact .split{gap:28px}.selection-heading>p{margin-top:16px}.selection-visual{height:160px}.selection-experience .quiz-panel{padding:22px 20px}.selection-experience .quiz-photo-option>img{height:84px}.selection-experience .quiz-photo-option>span{font-size:12px;min-height:58px}.selection-experience .quiz-option{min-height:54px}.selection-experience .quiz-panel h3{font-size:24px}.selection-experience .quiz-subtitle{font-size:12px;margin-bottom:16px}.selection-experience .quiz-progress{margin-bottom:20px}.quiz-feedback{font-size:11px;min-height:38px;margin-top:8px}.selection-experience .quiz-actions{gap:12px;padding-top:12px}.selection-experience .quiz-actions>.button{flex:1;min-height:54px;gap:14px;padding:10px 16px}.selection-experience .back-button{padding:12px 0}.selection-reassurance{margin-top:16px}.comparison-banner{grid-template-columns:minmax(0,1fr);gap:0;padding:28px 24px;border-radius:8px}.comparison-copy h2{font-size:32px}.comparison-copy>p{font-size:16px;margin-top:18px}.comparison-copy .button{width:100%;margin-top:24px}.comparison-note{text-align:center;font-size:10px}.comparison-paper{display:none}.comparison-banner:before{right:-300px;top:-190px}.comparison-banner:after{right:-310px;bottom:-160px}.comparison-label{font-size:10px;margin-bottom:12px}.comparison-dialog{padding:30px 24px;max-height:92dvh}.comparison-dialog h2{font-size:29px}.comparison-dialog-intro{font-size:13px;margin-top:14px}.comparison-fields{grid-template-columns:minmax(0,1fr);gap:0}.comparison-dialog .field{margin-top:16px}.comparison-dialog form>.button{font-size:13px;gap:14px}.comparison-dialog .dialog-close{width:36px;height:36px;right:10px;top:10px}.upload-label{padding:15px 13px;gap:10px}.upload-label strong{font-size:12px}.upload-label small{font-size:10px}
}
@media(max-width:360px){
  :root{--section-space:40px;--shared-space:20px;--section-inner:22px}
  main>.scenarios{padding-top:32px}.section-heading h2,.comparison-copy h2{font-size:27px}.selection-visual{height:145px}.selection-experience .quiz-panel{padding:20px 16px}.selection-experience .quiz-meta{font-size:11px;gap:8px}#quiz-count{font-size:12px}#quiz-topic{font-size:10px;padding:4px 8px}.selection-experience .quiz-panel h3{font-size:22px}.selection-experience .quiz-photo-option>img{height:100%;min-height:62px}.selection-experience .quiz-photo-option>span{min-height:62px;font-size:12px}.selection-experience .quiz-options{gap:9px}.selection-experience .quiz-actions>.button{padding-inline:12px;gap:9px}.selection-experience .back-button{font-size:12px;gap:4px}.back-button svg{width:16px}#quiz-next small{font-size:10px}.quiz-feedback{font-size:10px;min-height:34px}.service-visual>img{height:260px}.service-visual figcaption{padding:18px;font-size:21px}.comparison-banner{padding:25px 19px}.comparison-copy>p{font-size:15px}.comparison-copy .button{font-size:12px;gap:12px;padding-inline:12px}.comparison-note{font-size:10px}.comparison-dialog{padding:27px 18px}.comparison-dialog h2{font-size:26px}.comparison-dialog>.comparison-label{font-size:9px}.comparison-dialog .field input,.comparison-dialog .field textarea{font-size:14px;padding:12px}.comparison-dialog form>.button{font-size:12px;gap:10px;padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){.quiz-option:active,.quiz-panel.is-changing .quiz-actions .button,#quiz-next:active{transform:none}}

@media(max-width:1100px){
  .calculation-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
  .calculation-workflow{padding:27px 24px}.calculation-steps{gap:20px}.calculation-steps>li{gap:13px}.calculation-steps h4{font-size:16px}
  .renovation-stage{padding:27px}.renovation-stage h3{font-size:25px}
}
@media(max-width:920px){
  .calculation-layout{grid-template-columns:minmax(0,1fr)}
  .calculation-visual img{position:static;aspect-ratio:2.2;height:auto;object-position:center 56%}
  .calculation-workflow{padding:28px}.calculation-workflow>h3{margin-bottom:22px}
  .calculation-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px}
  .calculation-steps>li:not(:last-child):before{display:none}
  .calculation-steps p{font-size:15px}.calculation-steps h4{font-size:17px}
  .calculation-cta p{font-size:16px}.calculation-cta{padding:24px}
  .renovation-stages{gap:16px}.renovation-stage{padding:25px 23px}.renovation-stage h3{font-size:24px}
}
@media(max-width:640px){
  .calculation-visual img{aspect-ratio:1.55}.calculation-visual figcaption{inset:auto 12px 12px;max-width:calc(100% - 24px);padding:7px 10px;font-size:11px}
  .calculation-workflow{padding:25px 22px}.calculation-workflow>h3{font-size:23px;margin-bottom:23px}
  .calculation-steps{grid-template-columns:minmax(0,1fr);gap:23px}.calculation-steps>li{gap:14px}
  .calculation-steps>li:not(:last-child):before{display:block}
  .calculation-steps h4{font-size:17px;margin-top:3px}.calculation-steps p{font-size:15px}
  .calculation-cta{display:block;padding:23px 22px}.calculation-cta p{font-size:17px}.calculation-cta .button{width:100%;margin-top:20px;font-size:14px;gap:14px}
  .renovation-stages{grid-template-columns:minmax(0,1fr);gap:16px}.renovation-stage{padding:25px 24px}
  .renovation-stage-label{margin-bottom:18px;font-size:12px}.renovation-stage h3{font-size:26px;max-width:400px}
  .renovation-stage ul{margin-block:20px;gap:11px}.renovation-handoff{font-size:13px;padding-top:17px}
}
@media(max-width:360px){
  .calculation-visual img{aspect-ratio:1.3}.calculation-visual figcaption{font-size:10px;inset:auto 10px 10px;max-width:calc(100% - 20px);padding:7px 8px}
  .calculation-workflow{padding:23px 17px}.calculation-workflow>h3{font-size:21px}
  .calculation-steps>li{grid-template-columns:29px minmax(0,1fr);gap:10px}.calculation-number{width:29px;height:29px;font-size:10px}
  .calculation-steps>li:not(:last-child):before{left:14px;top:36px;bottom:-16px}.calculation-steps h4{font-size:16px;margin-top:2px}
  .calculation-cta{padding:21px 17px}.calculation-cta p{font-size:16px}.calculation-cta .button{font-size:13px;gap:10px;padding-inline:12px}
  .renovation-stage{padding:23px 18px}.renovation-stage-label{font-size:11px;gap:10px}.renovation-stage h3{font-size:24px}
  .renovation-stage ul>li{padding-left:14px}.renovation-handoff{font-size:12px;gap:9px}
}
