/* Each viewport gets a measured envelope; long content can still grow. */
.funnel-shell #funnel{min-height:var(--funnel-reserved-height,0px);display:flex;flex-direction:column;scroll-margin-top:20px}
.funnel .lead-form{display:flex;flex-direction:column;flex:1;min-width:0}
.funnel .funnel-body{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.funnel .funnel-body:not(.contact-body) .choice{justify-content:center}
.funnel .funnel-body:not(.contact-body) .choice-copy strong{font-size:17px}
.funnel .funnel-body:not(.contact-body) .choice-copy small{font-size:13px}
.funnel .selection-summary{margin-bottom:16px;min-height:34px}
.funnel .selection-summary.is-empty{display:none}
.funnel .funnel-art{position:relative;flex:1 1 0;min-height:0;max-height:210px;margin:0;overflow:hidden;pointer-events:none}
.funnel .funnel-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.funnel-measure .funnel-art{display:none}
.funnel .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.funnel .contact-grid .form-label{margin-top:0}
.funnel .text-input{font-size:16px;min-height:48px}
.funnel .contact-body .question{margin:10px 0 0}
.funnel .contact-body .form-label{margin-top:8px}
.funnel .contact-body .consent{margin:12px 0 0;padding:11px;line-height:1.45}
.funnel .contact-body .form-notice{margin:10px 0 0;line-height:1.45}
.funnel .contact-body .choice{min-height:48px}
.funnel .error-slot{min-height:45px;display:flex;align-items:center}
.funnel .form-error{width:100%;margin:8px 0 0;font-size:12px;line-height:1.4;padding:7px 10px}
.funnel .funnel-actions{margin-top:8px;flex-shrink:0}
.funnel .back-button{min-height:44px;min-width:60px}
.funnel .choice:has(input:focus-visible){outline:2px solid #4a4a4a;outline-offset:3px}
.funnel .success-state{margin:auto 0}
.funnel-measure{position:fixed!important;left:-20000px!important;top:0!important;visibility:hidden!important;pointer-events:none!important;min-height:0!important;height:auto!important;contain:layout style;display:block!important}
.funnel-measure .lead-form,.funnel-measure .funnel-body{flex:none!important}
@media(max-width:800px){.funnel h2,.funnel .step-intro,.funnel .selection-summary,.funnel .form-label{text-align:center}.funnel .contact-body .choice{min-height:48px}.funnel .funnel-actions{gap:12px}.funnel .contact-body .consent{text-align:left}.funnel .form-notice{text-align:center}}
@media(max-width:520px){.funnel .contact-grid{grid-template-columns:1fr;gap:4px}.funnel .step-intro{margin-bottom:12px}.funnel .progress{margin-bottom:20px}.funnel .selection-summary{margin-bottom:12px}.funnel .contact-body .form-label{font-size:12px;margin-bottom:4px}.funnel .contact-body .consent{font-size:11px}.funnel .contact-body .form-notice{font-size:11px}.funnel .funnel-body:not(.contact-body) .choice{min-height:110px}.funnel .funnel-body .compact-options .choice{min-height:54px}}
