* { box-sizing:border-box; }
body { margin:0; padding:24px; background:#f5f5f3; color:#25252b; font:16px/1.6 Arial,Helvetica,sans-serif; }
.wizard-card { width:100%; max-width:640px; margin:0 auto; padding:32px; background:#fff; border:1px solid #d4d4d8; border-radius:12px; }
h1,h2 { line-height:1.25; overflow-wrap:anywhere; }
h1 { margin:24px 0; font-size:1.8rem; }
h2 { margin:0 0 20px; font-size:1.3rem; }
p { margin:0 0 20px; }
.demo-notice { padding-bottom:16px; border-bottom:1px solid #d4d4d8; color:#51515c; font-size:.875rem; }
label { display:block; margin:20px 0 8px; font-weight:600; }
.form-control { display:block; width:100%; min-height:48px; padding:10px 12px; border:1px solid #767680; border-radius:6px; background:#fff; color:#25252b; font:inherit; }
.field-hint { color:#51515c; font-size:.875rem; margin:6px 0; }
.field-hint:empty,.field-error:empty { display:none; }
.field-error { color:#a61b1b; font-size:.875rem; margin:6px 0 20px; }
[aria-invalid="true"] { border-color:#a61b1b; border-width:2px; }
.navigation { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.btn { min-height:44px; padding:12px 20px; border:1px solid #b52b29; border-radius:6px; background:#b52b29; color:#fff; font:600 1rem/1.4 Arial,Helvetica,sans-serif; cursor:pointer; }
.btn-secondary { color:#25252b; background:#fff; border-color:#767680; }
.btn:hover { filter:brightness(.95); }
:focus-visible { outline:3px solid #1b4f91; outline-offset:4px; }
h2:focus { outline:2px solid #1b4f91; outline-offset:5px; }
.result-details { margin:0 0 24px; }
.result-details dt { color:#51515c; }
.result-details dd { margin:0 0 16px; font-weight:600; }
.result-details .payment { font-size:2rem; color:#b52b29; overflow-wrap:anywhere; }
.assumptions { color:#51515c; font-size:.9rem; }
.demo-footer { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:32px; border-top:1px solid #d4d4d8; padding-top:20px; font-size:.875rem; }
a { color:#234f80; text-decoration:underline; text-underline-offset:3px; }
.demo-footer a { padding:6px 0; }
@media(max-width:480px) { body { padding:12px; }.wizard-card { padding:20px; }.navigation .btn { width:100%; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto; } }
