/* Mobile-first form revision. Inherits the existing Rolety colour and type system. */
.assessment .step-help,.assessment .field,.assessment .intent-label,.auth-panel p,
.assessment .field-error,.assessment .form-status,.assessment .consent-label,
.assessment .estimate-details,.assessment .estimate p,.assessment .installation-details summary{font-size:17px;line-height:1.5}
.assessment .field input,.assessment .field select{font-size:17px;min-height:52px;border-radius:8px;padding:12px;min-width:0}
.assessment .field input:disabled{color:#6a736b;background:#e9ece6}
.assessment .field small{font-size:14px;color:#56665a}
.assessment .button{min-height:52px;white-space:normal;border-radius:8px;font-size:17px}
.assessment .back-button{font-size:16px;min-height:48px;padding:10px 0}
.assessment button,.assessment summary{touch-action:manipulation}
.auth-panel{border-radius:12px;padding:28px;box-shadow:0 12px 32px #243a3010}
.auth-panel h3{margin-bottom:12px}.auth-panel p{margin:10px 0 18px}
.auth-panel details{border-top:1px solid #ccd5c9;margin-top:18px}
.auth-panel summary{padding:14px 0;font-size:16px;min-height:48px;cursor:pointer}
.auth-panel .auth-explainer{font-size:16px;color:#58685d}
.form-demo-note{font-size:15px;border-radius:8px}
.assessment-shell{border-radius:12px;overflow:clip;max-width:960px}
.assessment .step-rail{padding:28px 22px}.assessment .step-rail-item{font-size:16px;opacity:.8}
.assessment .step-rail-item.is-active{opacity:1}.form-step legend:focus{outline:none}
.assessment .field-grid{gap:18px}.assessment .step-help{margin:12px 0 24px}
.assessment .window-group{padding:18px;border:1px solid #c4d0bf;border-radius:10px;background:#fafbf7;margin:16px 0}
.window-group-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.window-group h3{font:700 18px/1.3 var(--sans);margin:0}
.group-remove{border:0;background:transparent;text-decoration:underline;color:#49644d;min-height:48px;font-size:16px;padding:6px}
.assessment .dimensions{grid-template-columns:1fr 1fr;gap:12px}
.assessment .counter-field{max-width:140px;margin-bottom:16px}
.assessment .unknown-size{font-size:17px;display:flex;gap:10px;align-items:center;min-height:48px;line-height:1.4;margin:10px 0 0}
.unknown-size input,.consent-label input{width:22px;height:22px;accent-color:#365c3a;flex:none}
.assessment #add-window-group{width:100%;margin-bottom:22px}.assessment .form-status{margin:12px 0;color:#46624b}
.assessment .form-error{color:#963d36}.assessment .estimate{border-radius:10px;padding:22px}
.assessment .estimate-top{flex-direction:column;align-items:flex-start;font-size:17px}
.assessment .estimate-top strong{font-size:clamp(27px,5vw,36px);white-space:normal;overflow-wrap:anywhere;line-height:1.2}
.assessment .estimate-breakdown{font-size:17px;line-height:1.45;grid-template-columns:minmax(0,1fr) auto}.estimate-breakdown dt{overflow-wrap:anywhere}
.estimate-variants{display:grid;gap:8px;border-top:1px solid #b8c7b5;padding-top:14px;margin-top:16px;font-size:17px;line-height:1.4}
.estimate-variants>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.estimate-variants b{white-space:nowrap}
.assessment .estimate-pending{padding:16px;border:1px solid #c7cbb5;border-radius:8px;background:#f8f6ed;font-size:17px;line-height:1.5;margin:16px 0}
.estimate-pending ul{padding-left:20px;margin:8px 0 0}.estimate-pending li+li{margin-top:8px}
.estimate-method{margin-top:16px;border-top:1px solid #c4d0bf}.estimate-method summary{min-height:48px;padding:14px 0;font-size:17px;line-height:1.4;font-weight:700;cursor:pointer;color:#365c3a}
.assessment .estimate-method p{margin:0 0 12px}.estimate-method p b{color:#354b39}
.assessment .estimate-build{padding:18px;margin-top:20px;border:1px solid #bfccb7;border-radius:12px;background:#fafcf7}
.assessment .estimate-build h3{margin:0 0 10px;font:700 20px/1.35 var(--sans);letter-spacing:0;color:#294334}
.assessment .estimate-build>p{margin:0;font-size:17px;line-height:1.55;color:#415747}
.assessment .estimate-build-details{margin-top:14px;border-top:1px solid #d0dac9}
.assessment .estimate-build-details>summary{padding-left:0;padding-right:42px;background:transparent}
.assessment .estimate-build-details>summary::after{right:0}
.assessment .estimate-build-details>:not(summary){margin-inline:0}
.estimate-build-checks{display:grid;gap:16px;margin:16px 0 0}
.estimate-build-checks>div{min-width:0}
.estimate-build-checks dt{font-size:17px;line-height:1.45;font-weight:700;color:#294334}
.estimate-build-checks dd{margin:5px 0 0;font-size:17px;line-height:1.55;color:#415747}
.assessment .estimate-build .estimate-build-limit{margin-top:18px;padding-top:14px;border-top:1px solid #d0dac9;font-size:16px;line-height:1.55;color:#415747}
.assessment .estimate-build .estimate-build-next{margin-top:14px;font-size:16px;line-height:1.55;color:#415747}
@media(max-width:720px){.assessment .estimate-build{padding:16px 14px}.assessment .estimate-build h3{font-size:20px}}
.assessment .intent-section{margin-top:30px;border:1px solid #bbc9b7;border-radius:12px;padding:24px;background:#f6f8f1}
.assessment .intent-section h3{font:700 26px/1.25 var(--sans);letter-spacing:-.025em;color:#243a30;margin:0 0 10px}
.assessment #intent-help{font-size:17px;line-height:1.5;margin:0 0 20px;color:#526457}
.assessment .intent-radio{gap:12px}
.assessment .intent-radio label{position:relative}
.assessment .intent-radio input{width:1px;height:1px;left:16px;top:25px;margin:0}
.assessment .intent-radio .intent-card{position:relative;font-size:18px;line-height:1.4;min-height:88px;padding:17px 16px 17px 48px;border-radius:10px;background:#fff;border:2px solid #ccd5c7}
.intent-radio .intent-card:before{content:'';position:absolute;box-sizing:border-box;left:16px;top:21px;width:20px;height:20px;border:2px solid #70816e;border-radius:50%;background:white}
.assessment .intent-card b{display:block;font-size:18px;line-height:1.4;font-weight:700;color:#243a30}
.assessment .intent-card small{display:block;font-size:17px;line-height:1.45;font-weight:400;color:#526457;margin-top:5px}
.assessment .intent-radio input:checked+.intent-card{border-color:#365c3a;background:#e8efdf;box-shadow:0 0 0 1px #365c3a}
.intent-radio input:checked+.intent-card:before{border:6px solid #365c3a}
.assessment .intent-radio input:focus-visible+.intent-card{outline:3px solid #365c3a;outline-offset:4px}
.assessment #timing-field{min-width:0;margin:26px 0 0;padding:20px;border:1px solid #bbc9b7;border-radius:12px;background:#f6f8f1}
.assessment #timing-field>legend{float:left;width:100%;font:700 23px/1.3 var(--sans);letter-spacing:-.02em;color:#243a30;padding:0;margin:0 0 10px}
.assessment #timing-help{clear:both;margin:0 0 16px;font-size:17px;line-height:1.5;color:#526457}
.timing-choices{display:grid;gap:10px}
.timing-choices label{position:relative;display:block;cursor:pointer}
.assessment .timing-choices input{position:absolute;width:1px;height:1px;left:18px;top:27px;opacity:0;margin:0}
.timing-choices span{position:relative;display:flex;align-items:center;min-height:60px;padding:15px 14px 15px 48px;border:2px solid #ccd5c7;border-radius:10px;background:#fff;color:#243a30;font:700 17px/1.4 var(--sans)}
.timing-choices span:before{content:'';position:absolute;box-sizing:border-box;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:2px solid #70816e;border-radius:50%;background:#fff}
.timing-choices input:checked+span{border-color:#365c3a;background:#e8efdf;box-shadow:0 0 0 1px #365c3a}
.timing-choices input:checked+span:before{border:6px solid #365c3a}
.timing-choices input:focus-visible+span{outline:3px solid #365c3a;outline-offset:3px}
.assessment #timing-field.invalid{border-color:#963d36}
.assessment #timing-error{margin:16px 0 0;font-size:17px;line-height:1.5}
@media(min-width:640px){.timing-choices{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.assessment #timing-field{padding:20px 14px}.assessment #timing-field>legend{font-size:22px}}
@media(max-width:350px){.assessment #timing-field{padding-inline:12px}.timing-choices span{padding-left:42px;padding-right:10px}.timing-choices span:before{left:12px}}
.assessment .photo-upload{border-radius:10px;padding:18px}.assessment .photo-upload b{font-size:18px}
.assessment .photo-upload span{font-size:16px;line-height:1.5}.assessment .photo-upload strong{font-size:17px;min-height:48px;display:flex;align-items:center}
.photos-list{display:grid;gap:12px}.photo-card{display:flex;align-items:center;gap:12px;overflow-wrap:anywhere;margin-top:12px}
.photo-card img{width:64px;height:64px;object-fit:cover;border-radius:6px;flex:none}
.photo-card button{background:transparent;border:0;color:#46624b;text-decoration:underline;min-height:48px;font-size:16px}
.address-summary{padding:12px 14px;border-radius:8px;background:#e9eee5;font-size:17px;overflow-wrap:anywhere}
.assessment #phoneCode{max-width:220px;letter-spacing:.15em;font-size:22px}
.assessment #phone-status,.assessment #submit-status{font-size:17px;line-height:1.5}
.assessment #phone-send:disabled{opacity:1;color:#59665b;background:#e9ede5;border-color:#c8d1c3}
.review-card{border-bottom:1px solid #cbd5c5;padding:18px 0}
.review-card:first-of-type{padding-top:4px}.review-card-head{display:flex;gap:12px;align-items:center;justify-content:space-between}
.review-card h3{font:700 18px/1.4 var(--sans);margin:0}.review-card p{font-size:17px;line-height:1.5;margin:6px 0;overflow-wrap:anywhere}
.review-card .back-button{flex:none}.assessment .consent-label{margin-top:24px;padding:10px 0;cursor:pointer}
.draft-resume{padding:16px;background:#f4f6ee;border:1px solid #cad5c6;border-radius:8px;margin-bottom:20px}
.draft-resume p{font-size:17px;margin:0 0 10px}.draft-resume .button{margin:5px 0}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.reservation-benefit{background:#e9eee5;padding:20px;border-radius:10px;margin:20px 0}.reservation-benefit h4{font-size:21px;line-height:1.35;margin:0 0 8px}.reservation-benefit p{font-size:17px;line-height:1.5}.reservation-benefit .field{font-size:17px}
.assessment .form-step[hidden]{display:none!important}
.quiz-route{display:flex;flex-wrap:wrap;gap:10px 20px;list-style:none;padding:0;margin:20px 0;counter-reset:route;font-size:16px;font-weight:700}
.quiz-route li{counter-increment:route;display:flex;gap:7px;align-items:center}.quiz-route li:before{content:counter(route);display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e4eadc;color:#365c3a;font-size:14px}
#quiz-progress{display:none;width:100%;height:5px;border:0;border-radius:4px;background:#51685b;overflow:hidden;accent-color:#dce5b9}
#quiz-progress::-webkit-progress-bar{background:#51685b}#quiz-progress::-webkit-progress-value{background:#dce5b9}#quiz-progress::-moz-progress-bar{background:#dce5b9}
.measurement-help{border:1px solid #c4d0bf;border-radius:8px;padding:0 14px;margin-bottom:20px}.measurement-help summary{min-height:48px;padding:12px 0;font-size:17px;cursor:pointer;font-weight:700;color:#365c3a}
.measurement-guide{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:16px;padding:4px 0 16px}.measurement-guide svg{width:100%;height:auto;color:#48624c}.measurement-guide text{font:14px sans-serif;fill:currentColor}.measurement-guide p{font-size:16px;line-height:1.5;margin:0}
.photo-limits{display:block;font-size:14px;line-height:1.5;color:#56665a}.photo-card-copy{min-width:0;flex:1}.photo-card-copy span{display:block;font-size:15px}.photo-card-copy small{font-size:14px;color:#56665a}.photo-card button{padding:8px 2px}.photo-upload:focus-within{outline:2px solid #365c3a;outline-offset:3px}
.photo-guide,.photo-order-check{border:1px solid #b8c7b2;border-radius:10px;padding:20px;background:#eef3e5;margin:20px 0}
.assessment .photo-guide h3,.assessment .photo-order-check h3{font:700 22px/1.3 var(--sans);margin:0 0 10px;color:#243a30}
.assessment .photo-guide p,.assessment .photo-order-check p,.assessment .group-photo p,.assessment .photo-before-price{font-size:17px;line-height:1.5;margin:8px 0 16px;color:#526457}
.photo-guide details{border-top:1px solid #bfcbb9}.photo-guide summary{min-height:48px;padding:12px 0;font-size:17px;font-weight:700;color:#365c3a;cursor:pointer}
.assessment .photo-demo{font-size:16px;line-height:1.45;margin:12px 0 0}
.group-photo{border-top:1px solid #c4d0bf;margin-top:20px;padding-top:18px}.group-photo h4{font:700 19px/1.4 var(--sans);margin:0 0 8px;color:#243a30}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.assessment .photo-actions .button{padding:12px 8px;font-size:17px;min-height:52px;line-height:1.4;text-align:center}
.photo-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.assessment .photo-limits{font-size:16px;line-height:1.45}
.assessment .group-photo [data-photo-status]:empty{display:none}.group-photo .photo-card{align-items:flex-start;gap:10px}.group-photo .photo-card img{width:64px;height:64px}
.photo-order-check .field{margin:18px 0 0}.photo-order-check[hidden]{display:none!important}
.assessment .photo-order-check .button{width:100%}
.assessment .group-photo .photo-card-copy span{font-size:17px;line-height:1.4}
@media(max-width:720px){
 #quiz-progress{display:block;margin:10px 0 12px}.quiz-route{gap:8px 12px;font-size:15px}.measurement-guide{grid-template-columns:1fr}.measurement-guide svg{width:190px;justify-self:center}
 .assessment .container{width:calc(100% - 24px)}.assessment .assessment-heading{padding:0 6px}
 .assessment .auth-panel{padding:22px 18px}.assessment #assessment-form{padding:26px 18px 30px}
 .assessment .step-rail{padding:14px 18px;display:block}
 .assessment .step-rail-item{display:none}.assessment .step-rail-item.is-active{display:block;background:transparent;padding:0}
 .assessment .step-rail-item span{display:none}.assessment .step-rail-item b{font-size:19px}
 .assessment .mobile-progress-label{font-size:14px;margin-bottom:4px;display:block}
 .assessment .window-group{padding:16px 12px}.assessment .dimensions{gap:10px}
 .assessment .estimate{padding:18px 14px}.assessment .estimate-breakdown{gap:9px 12px}
 .assessment .intent-section{padding:20px 14px;margin-top:24px}.assessment .intent-section h3{font-size:25px}
 .assessment .form-actions{gap:12px;margin-top:24px}.assessment .form-actions .button{width:100%}
 .assessment .form-step legend{font-size:31px;line-height:1.15}
 .assessment .review-card-head{align-items:flex-start}.assessment .review-card .back-button{padding-top:0}
}
@media(max-width:350px){.assessment .dimensions{grid-template-columns:1fr}.assessment #assessment-form{padding-inline:16px}.assessment .estimate-breakdown{grid-template-columns:1fr;gap:4px}.assessment .estimate-breakdown dd{text-align:left;margin-bottom:10px}.estimate-variants>div{flex-direction:column;gap:3px}.assessment .intent-section{padding-inline:12px}.assessment .intent-radio .intent-card{padding-right:12px;padding-left:42px}.intent-radio .intent-card:before{left:12px}.photo-guide,.photo-order-check{padding:16px 12px}.group-photo .photo-card{flex-wrap:wrap}.group-photo .photo-card button{margin-left:74px}}
@media(prefers-reduced-motion:reduce){.assessment *{scroll-behavior:auto}}

/* Checkout view: a normal page scroll, with the landing content removed from layout. */
.quiz-screen-header,.quiz-return-note{display:none}
body:not(.quiz-mode) #assessment>.container>:not(.quiz-landing-intro){display:none!important}
.quiz-landing-intro{max-width:700px;margin:auto;text-align:center}
.quiz-landing-intro p{font-size:18px;line-height:1.5;margin:20px 0 28px}
.quiz-mode .site-header,.quiz-mode .site-footer,.quiz-mode .mobile-sticky-cta,
.quiz-mode main>section:not(#assessment),.quiz-mode .quiz-landing-intro{display:none!important}
.quiz-mode{background:#f3f4ed}
.quiz-mode #assessment{min-height:100vh;min-height:100svh;padding:0 0 max(32px,env(safe-area-inset-bottom));scroll-margin-top:0}
.quiz-mode #assessment>.container{max-width:960px}
.quiz-mode .quiz-screen-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #ccd5c9}
.quiz-brand{font:700 22px/1.2 var(--sans);letter-spacing:.08em}
.quiz-brand small{display:block;font:400 14px/1.5 var(--sans);letter-spacing:0;margin-top:4px}
.quiz-mode .quiz-return-note{display:block;font-size:15px;line-height:1.5;color:#56665a;margin:12px 0 20px}
.quiz-mode .assessment-heading{margin:24px 0;text-align:left}
.quiz-mode .assessment-heading h2{font-size:clamp(30px,5vw,44px)}
.quiz-mode .assessment-heading p{font-size:17px;line-height:1.5;max-width:640px}
.quiz-mode .form-demo-note{margin:16px 0}
.quiz-mode .assessment-shell,.quiz-mode .auth-panel{margin-top:16px}
.quiz-mode .reservation-demo{margin:16px auto 0;border-radius:12px}
.compare-total{font:700 30px/1.25 var(--serif);overflow-wrap:anywhere}
.reservation-ordinary{border-top:1px solid #ccd5c9;padding-top:16px}
.quiz-mode button:focus-visible,.quiz-mode summary:focus-visible,.quiz-mode a:focus-visible{outline:3px solid #49644d;outline-offset:3px}
@media(max-width:720px){
 .quiz-mode .quiz-screen-header{padding:12px 4px;gap:10px}
 .quiz-mode .quiz-return-note{margin:10px 4px 14px;font-size:15px}
 .quiz-mode .quiz-brand{font-size:20px}.quiz-mode #quiz-close{padding:10px 0;font-size:16px}
 .quiz-mode .assessment-heading{margin:20px 0}
 .quiz-mode .assessment-heading h2{font-size:32px}
 .quiz-mode .reservation-demo{padding:24px 18px}
 .quiz-mode .reservation-actions{flex-direction:column}
 .quiz-mode .reservation-actions .button{width:100%}
}
