/* A readable instrument sized around the active questions, not a long sheet.
   JavaScript paginates intact fields. No fixed height or clipped overflow. */
.calc23 { padding-block:40px; overflow-anchor:none; }
.calc23 .calculator-layout { grid-template-columns:minmax(230px,.7fr) minmax(0,2fr); gap:clamp(30px,4vw,64px); align-items:start; }
.calc23 .calc-aside { top:24px; padding-top:8px; }
.calc23 .calc-aside>.eyebrow { font-size:9px; line-height:1.6; margin:0 0 18px; }
.calc23 .calc-aside h2 { font-size:clamp(30px,2.7vw,40px); line-height:1.12; margin:0; }
.calc23 .calc-aside h2 em:after { bottom:-6px; height:2px; }
.calc23 .calc-aside>p:not(.eyebrow) { font-size:12px; line-height:1.65; margin-top:22px; max-width:310px; }
.calc23 .passport19-path { gap:6px; margin-top:20px; padding-block:12px; }
.calc23 .passport19-path span { font-size:10px; line-height:1.5; }
.calc23 .passport19-path b { font-size:16px; margin-bottom:3px; }
.calc23 .live-file { margin-top:22px; }
.calc23 .live-file .file-title { font-size:9px; }
.calc23 .live-file h3 { font-size:20px; line-height:1.3; margin:13px 0; }
.calc23 .live-file dl { margin-top:12px; }
.calc23 .live-file dl>div { font-size:11px; padding-block:8px; gap:12px; }
.calc23 .passport19-basis { font-size:11px; line-height:1.6; margin:13px 0; }
.calc23 .file-completion { font-size:10px; margin-top:12px; }
.calc23 .completion-track { margin-top:7px; }
.calc23 .aside-footnote { font-size:10px!important; margin-top:15px!important; line-height:1.6!important; }
/* v9 gives the document 100px scroll padding (20px below 780px).
   Compensate on this anchor only: the non-sticky header is already offscreen. */
.calc23 .iphone-calculator { max-width:none; padding:20px 26px 16px; border-radius:28px; scroll-margin-top:-84px; }
.calc23 .form-top { font-size:9px; padding-bottom:10px; line-height:1.5; }
.calc23 .form-status { font-size:8px; }
.calc23 .steps-nav { margin:8px 0 0; gap:10px; }
.calc23 .step-indicator { flex-direction:row; align-items:center; gap:8px; padding:5px 2px; min-height:40px; font-size:11px; }
.calc23 .step-indicator b { width:23px; height:23px; flex:0 0 23px; font-size:10px; }
.calc23 .progress { margin:5px 0 0; }
.calc23 .step-caption { font-size:10px; margin:10px 0 0; line-height:1.5; }
.calc23 .ic-intro { padding:8px 0 0; }
.calc23 .ic-intro p { font-size:29px; line-height:1.12; margin:0 0 6px; }
.calc23 .ic-guidance { font-size:11px; line-height:1.5; margin:0 0 12px; max-width:80ch; }
.calc23 .calc23-page-status { font-size:10px; line-height:1.5; color:#e4b77d; margin:0 0 12px; }
.calc23 .form-step { min-height:0; margin:0; padding:0; }
.calc23 .fields-grid,.calc23 .extended-body .fields-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
.calc23 .field { margin:0; }
.calc23 .field label { font-size:12px; font-weight:500; line-height:1.4; min-height:0; margin:0 0 6px; }
.calc23 .field input:not([type=checkbox]),.calc23 .field select,.calc23 .field textarea { font-size:16px; min-height:44px; padding:9px 12px; border-radius:10px; line-height:1.4; }
.calc23 .field textarea { height:72px; min-height:72px; resize:vertical; }
.calc23 .field input::placeholder,.calc23 .field textarea::placeholder { font-size:13px; }
.calc23 .hint,.calc23 .echo,.calc23 .field-error { font-size:11px; line-height:1.45; margin-top:5px; }
.calc23 .echo { min-height:16px; }
.calc23 .echo:empty { display:block; margin-top:0; }
.calc23 .field:not(:has([data-money-input])) .echo { display:none; }
.calc23 .ic-finance-note { font-size:10px; line-height:1.5; margin:0 0 12px; padding-left:10px; }
.calc23 .extended-fields { margin-top:16px; padding-top:12px; border-bottom:0; }
.calc23 .extended-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:12px; }
.calc23 .extended-heading h3 { font-size:12px; line-height:1.4; margin:0; }
.calc23 .extended-heading p { font-size:10px; line-height:1.4; margin:0; }
.calc23 .extended-intro { display:none; }
.calc23 .extended-body { padding:0; }
.calc23 .form-actions { margin-top:16px; gap:12px; flex-wrap:nowrap; }
.calc23 .form-actions .btn { min-height:44px; font-size:13px; padding:10px 20px; border-radius:24px; line-height:1.4; }
.calc23 .form-actions #previous { min-width:84px; width:auto; order:0; }
.calc23 .form-actions #continue,.calc23 .form-actions #calculate { min-width:200px; width:auto; order:1; }
.calc23 .form-note { font-size:10px; line-height:1.5; margin-top:10px; }
.calc23 .draft19-status { padding:6px 0 0; margin:8px 0 0; min-height:32px; font-size:10px; line-height:1.4; align-items:center; }
.calc23 .draft19-status button { min-height:30px; padding:4px 0; }
.calc23 .error-summary { font-size:11px; line-height:1.5; margin:0 0 12px; padding:10px 12px; }
.calc23-page-off,.calc23-page-empty { display:none!important; }
@media(max-width:1050px) {
 .calc23 .calculator-layout { grid-template-columns:minmax(210px,.65fr) minmax(0,1.7fr); gap:26px; }
 .calc23 .iphone-calculator { padding:18px 22px 14px; }
 .calc23 .calc-aside h2 { font-size:31px; }
 .calc23 .fields-grid,.calc23 .extended-body .fields-grid { gap:13px 16px; }
}
@media(max-width:760px) {
 .calc23 { padding-block:30px; }
 .calc23 .calculator-layout { display:block; }
 .calc23 .calc-aside { padding:0 0 22px; }
 .calc23 .calc-aside>.eyebrow { margin-bottom:13px; }
 .calc23 .calc-aside h2 { font-size:31px; max-width:420px; }
 .calc23 .calc-aside h2 br { display:none; }
 .calc23 .calc-aside>p:not(.eyebrow) { font-size:12px; margin-top:20px; max-width:440px; }
 .calc23 .passport19-path { display:none; }
 .calc23 .iphone-calculator { max-width:none; padding:16px 18px 12px; border-radius:24px; scroll-margin-top:-8px; }
 .calc23 .form-top { font-size:8px; padding-bottom:8px; }
 .calc23 .form-status { font-size:7px; }
 .calc23 .steps-nav { gap:5px; margin-top:6px; }
 .calc23 .step-indicator { flex-direction:column; align-items:flex-start; gap:4px; font-size:9px; min-height:50px; padding:3px 0; }
 .calc23 .step-indicator b { width:22px; height:22px; flex-basis:22px; font-size:9px; }
 .calc23 .step-caption { font-size:9px; margin-top:8px; }
 .calc23 .ic-intro { padding-top:7px; }
 .calc23 .ic-intro p { font-size:27px; margin-bottom:6px; }
 .calc23 .ic-guidance { font-size:11px; margin-bottom:10px; line-height:1.45; }
 .calc23 .calc23-page-status { font-size:10px; margin-bottom:12px; }
 .calc23 .fields-grid,.calc23 .extended-body .fields-grid { grid-template-columns:1fr; gap:12px; }
 .calc23 .field label { font-size:12px; margin-bottom:5px; }
 .calc23 .field input:not([type=checkbox]),.calc23 .field select,.calc23 .field textarea { min-height:44px; font-size:16px; }
 .calc23 .hint,.calc23 .echo,.calc23 .field-error { font-size:11px; line-height:1.4; }
 .calc23 .extended-heading { display:block; margin-bottom:10px; }
 .calc23 .extended-heading p { margin-top:3px; }
 .calc23 .extended-fields { margin-top:12px; padding-top:10px; }
 .calc23 .form-actions { margin-top:14px; gap:8px; }
 .calc23 .form-actions .btn { font-size:12px; padding:10px 14px; }
 .calc23 .form-actions #previous { min-width:70px; flex:0 0 auto; }
 .calc23 .form-actions #continue,.calc23 .form-actions #calculate { min-width:0; flex:1; }
 .calc23 .form-note { font-size:9px; line-height:1.45; margin-top:9px; }
 .calc23 .draft19-status { font-size:9px; gap:8px; margin-top:7px; }
 .calc23 .draft19-status>span { max-width:none; }
 .calc23 .draft19-status button { min-height:32px; }
}
@media(max-width:370px) {
 .calc23 .iphone-calculator { padding:13px 14px 10px; border-radius:22px; }
 .calc23 .ic-intro p { font-size:25px; }
 .calc23 .form-actions .btn { font-size:11px; padding-inline:12px; }
}
@media(min-width:761px) and (max-width:780px) { .calc23 .iphone-calculator { scroll-margin-top:-8px; } }
/* Zoom, a long error, or a very short landscape screen may still need native
   scrolling. Never truncate a question or prevent access to a form action. */
html:not(.js) .calc23 .calc23-page-status { display:none; }
