/* Rev33: one task per screen, paired equity estimates and income screening. */
body.compact-flow{background:#102b39;color:#173441;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.compact-flow .preview-bar{height:auto;min-height:25px;padding:6px 12px;font-size:10px;line-height:1.3;text-align:center;background:#e9eee5;color:#43564b;letter-spacing:.03em}
.compact-flow .question-first-hero{min-height:calc(100svh - 25px);padding:14px 12px 100px!important}
.compact-flow .hero-inner.wrap{display:block;width:100%;max-width:480px;margin:auto;padding:0!important}
.compact-flow .hero-question{width:100%;max-width:none;margin:0!important}
.compact-flow .inquiry-panel{width:100%;max-width:none;padding:0!important;border:0;border-radius:22px;background:#fcfcf7;overflow:visible;box-shadow:0 14px 48px #06172133}
.compact-flow .dialog-head,.compact-flow .progress-label,.compact-flow .progress{display:none!important}
.compact-flow #form-content{padding:25px 22px 23px!important;min-height:450px}
.compact-flow #form-content h2{font-family:inherit!important;font-size:29px!important;font-weight:780!important;line-height:1.13!important;letter-spacing:-1px!important;color:#173441;margin:0 0 18px!important;outline:none}
.compact-flow .flow-welcome{display:grid;grid-template-columns:1fr 145px;align-items:center;margin:-9px 0 0}
.compact-flow .flow-welcome p{font-size:20px;font-weight:650;line-height:1.25;margin:0 0 3px}
.compact-flow .flow-welcome strong{font-size:35px;line-height:1.03;font-weight:800;color:#55743f;letter-spacing:-1px}
.compact-flow .flow-welcome img{width:145px;height:149px;object-fit:contain}
.compact-flow .flow-tagline{font-size:13px;text-align:center;margin:5px -6px 0;white-space:nowrap}
.compact-flow .flow-divider{height:1px;background:#dce2d6;margin:20px 0}
.compact-flow .flow-icon{width:45px;height:45px;display:grid;place-items:center;background:#edf2e5;border-radius:13px;color:#567541;margin-bottom:18px}
.flow-icon svg{width:26px;height:26px}
.compact-flow .flow-sub{font-size:16px;line-height:1.5;color:#53665f;margin:-5px 0 20px}
.compact-flow .flow-help{font-size:12px;line-height:1.5;color:#5c6b63;margin:11px 0 0}
.compact-flow .flow-assurance{margin:22px 0 0;font-size:12px;color:#58724a;text-align:center}
.flow-options{display:grid;gap:10px}.flow-options.grid{grid-template-columns:1fr 1fr;gap:10px}
.compact-flow .flow-option{appearance:none;display:flex;align-items:center;gap:12px;background:white;color:#173441;border:1px solid #cbd4c7;border-radius:12px;min-height:60px;padding:14px;font:650 16px/1.25 inherit;text-align:left;cursor:pointer;touch-action:manipulation;width:100%}
.compact-flow button.flow-option{font-family:inherit;font-size:16px;font-weight:650;line-height:1.25}
.flow-option span{flex:1}.flow-option svg{width:26px;height:26px;flex:none;color:#617e4c}.flow-option i{height:18px;width:18px;border:1px solid #a7b59f;background:white;border-radius:50%;flex:none}
.flow-option[aria-pressed=true],.flow-option:has(input:checked){background:#eaf1de!important;border-color:#66814f!important;box-shadow:inset 0 0 0 1px #66814f}
.flow-option[aria-pressed=true] i{border:5px solid #66814f}.flow-options.grid .flow-option{min-height:64px;justify-content:center;text-align:center;padding:12px 8px}.flow-options.grid .flow-option i{display:none}
.compact-flow button:focus-visible,.compact-flow a:focus-visible,.compact-flow input:focus-visible{outline:3px solid #427db4;outline-offset:3px}
.compact-flow .flow-question{font-size:21px;line-height:1.3;margin:0 0 22px;font-weight:650;letter-spacing:-.4px}
.compact-flow .flow-field{margin:19px 0 0}.compact-flow .flow-field:first-child{margin-top:0}
.compact-flow .flow-field>label,.flow-search-label{display:block;font-size:17px;font-weight:750;line-height:1.3;margin:0 0 9px;color:#173441}
.compact-flow .flow-field p{font-size:12px;line-height:1.45;color:#5a6b62;margin:7px 0 0}
.flow-money{position:relative}.flow-money>span{position:absolute;left:16px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:22px;color:#5a6c62}
.compact-flow .flow-field input:not([type=checkbox]),.compact-flow #state-search{display:block;width:100%;box-sizing:border-box;background:white;border:1px solid #a7b5a4;border-radius:10px;padding:14px;font:500 19px/1.35 inherit;font-family:inherit;font-size:19px;min-height:57px;color:#173441;appearance:none}
.compact-flow .flow-money input{padding-left:39px!important}.flow-field input:disabled{background:#eef0e9!important;color:#6b7b69!important}
.compact-flow .flow-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;font-weight:550;margin:13px 0 0;min-height:35px;cursor:pointer}
.compact-flow input[type=checkbox],.compact-flow input[type=radio]{appearance:auto;width:20px;height:20px;flex:none;margin:1px 0 0;accent-color:#587b40}
.compact-flow .flow-next{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:55px;padding:15px 18px;background:#edf3e5;border:1px solid #c6d2bc;border-radius:12px;color:#173441;font-family:inherit;font-size:17px;font-weight:650;cursor:pointer;margin-top:14px}
.compact-flow .flow-next:hover{background:#e5eedb;border-color:#91a77e}
.compact-flow .flow-next:active{background:#dce8ce}
.compact-flow .flow-next span{color:#617e4c}
.compact-flow #flow-error{font-size:14px;line-height:1.4;color:#a53e2e;margin:8px 0;min-height:0}.compact-flow #flow-error:empty{display:none}
.compact-flow .flow-feedback{background:#eaf1df;color:#476238;border-radius:10px;padding:13px 14px;font-size:14px;line-height:1.45;font-weight:650;margin:0 0 22px}
.flow-dock{position:fixed;z-index:30;bottom:0;left:0;right:0;padding:12px max(18px,calc((100vw - 440px)/2)) calc(12px + env(safe-area-inset-bottom));display:flex;gap:18px;align-items:center;background:#fcfcf7f5;border-top:1px solid #dbe2d5;backdrop-filter:blur(12px)}
.flow-back{width:38px;height:38px;flex:none;border:1px solid #d4ddcb;background:#f3f5ed;border-radius:50%;font-size:23px;color:#173441;cursor:pointer}.flow-back:disabled{opacity:.3;cursor:default}
.flow-stages{display:flex;gap:8px;width:100%;max-width:390px}.flow-stage{flex:1;min-width:0;font-size:11px;color:#6e7d71;font-weight:600}.flow-stage i{display:block;height:4px;background:#e0e6da;border-radius:5px;margin-top:7px}.flow-stage.active{color:#395c2f}.flow-stage.active i{background:#5a7a44}.flow-stage.complete i{background:#a3b88d}
.compact-flow .flow-states{max-height:310px;overflow:auto;margin-top:12px;overscroll-behavior:contain;border:1px solid #d7dfd1;border-radius:12px;background:white}.flow-states button{display:flex;justify-content:space-between;width:100%;min-height:49px;border:0;border-bottom:1px solid #e7ebe2;background:white;padding:13px 15px;color:#173441;font-family:inherit;font-size:16px;text-align:left;cursor:pointer}.flow-states button:hover{background:#edf3e5}.flow-states small{color:#75836a;font-size:12px}
.compact-flow .flow-radios{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.flow-radios label{display:flex;gap:8px;align-items:center;border:1px solid #ced7c8;border-radius:9px;padding:12px 9px;min-height:52px;font-size:14px;line-height:1.3;background:white}.flow-radios label:has(input:checked){background:#eaf1de;border-color:#688351}.compact-flow fieldset{border:0;padding:0;margin:0 0 22px}.compact-flow legend{font-size:18px;font-weight:700;line-height:1.3}
.flow-review{padding:22px 16px;background:#eff3e7;border:1px solid #d1ddc4;border-radius:15px;margin:24px 0;text-align:center}.flow-review h3{font-size:19px;line-height:1.3;margin:15px 0 8px}.flow-review p{font-size:14px;line-height:1.5;margin:0;color:#56684d}.flow-spinner{display:block;margin:0 auto;width:38px;height:38px;border:3px solid #d4dfc8;border-top-color:#587a41;border-radius:50%;animation:flow-spin 1s linear infinite}.flow-meter{background:#d4dfc8;height:7px;border-radius:9px;overflow:hidden;margin:24px 0 10px}.flow-meter span{display:block;height:100%;width:0;background:#587a41;transition:width .35s ease}.flow-review .flow-review-count{font-size:12px}
.flow-text{display:block;background:none;border:0;padding:12px 0;color:#274839;text-decoration:underline;font:inherit;cursor:pointer}.flow-eyebrow{font-size:11px;letter-spacing:.14em;font-weight:750;color:#5b7946;margin:0 0 16px}.flow-call{display:block;font-size:15px;font-weight:650;color:#173441;margin:20px 0}.flow-fine{font-size:11px;line-height:1.5;color:#69766a;margin:16px 0}.compact-flow #contact-form{margin-top:22px}
@keyframes flow-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.flow-spinner{animation:none}.flow-meter span{transition:none}}
@media(max-width:360px){.compact-flow #form-content{padding:21px 18px!important}.compact-flow .flow-welcome{grid-template-columns:1fr 125px}.compact-flow .flow-welcome img{width:125px;height:125px}.compact-flow .flow-welcome strong{font-size:31px}.compact-flow #form-content h2{font-size:26px!important}.compact-flow .flow-options.grid .flow-option{min-height:56px}.compact-flow .flow-tagline{font-size:12px}}
.flow-stage.active i{background:linear-gradient(to right,#5a7a44 var(--section-progress),#dce5d4 var(--section-progress))}
@media(max-height:720px){
 .compact-flow .question-first-hero{padding-top:10px!important}
 .compact-flow #form-content{padding:18px 20px!important;min-height:0}
 .compact-flow .flow-welcome{grid-template-columns:1fr 112px;margin-top:-5px}
 .compact-flow .flow-welcome img{width:112px;height:110px}
 .compact-flow .flow-welcome p{font-size:17px}
 .compact-flow .flow-welcome strong{font-size:30px}
 .compact-flow .flow-tagline{margin-top:2px;font-size:12px}
 .compact-flow .flow-divider{margin:15px 0}
 .compact-flow #form-content h2{font-size:26px!important;margin-bottom:16px!important}
 .compact-flow .flow-options.grid .flow-option{min-height:51px}
 .compact-flow .flow-options{gap:8px}
 .compact-flow .flow-option{min-height:53px}
 .compact-flow .flow-icon{width:36px;height:36px;margin-bottom:13px}
 .compact-flow .flow-assurance{margin-top:12px;font-size:11px}
 .compact-flow .flow-field{margin-top:15px}
 .compact-flow .flow-states{max-height:240px}
}
.compact-flow .source-grid{grid-template-columns:1fr 1fr}
.compact-flow .source-grid .source-choice{font-size:14px;min-height:66px;padding:12px 9px;gap:7px;line-height:1.3}
.compact-flow .source-grid .source-choice:last-child{grid-column:1 / -1;min-height:49px}
.compact-flow .flow-panel:has(.flow-welcome) .flow-assurance{margin-top:9px}
@media(max-height:650px){.compact-flow .flow-panel:has(.flow-welcome) .flow-assurance{display:none}}
@media(max-height:720px){
 .compact-flow #form-content:has(.source-grid) .flow-icon{display:none}
 .compact-flow #form-content:has(.source-grid) .flow-feedback{padding:10px 12px;margin-bottom:15px;font-size:13px}
 .compact-flow #form-content:has(.source-grid) .flow-sub{margin-bottom:10px}
}

/* Rev34: visible back navigation and optional post-contact details. */
.flow-back{width:auto;min-width:74px;height:44px;padding:0 10px;border-radius:10px;font:700 14px/1 system-ui;white-space:nowrap}
.flow-dock{gap:12px}.flow-stages{gap:6px}.flow-stage{font-size:10px}
.flow-optional-progress{display:grid;gap:4px;font-size:12px}.flow-optional-progress span{font-size:11px;color:#61705e}
.compact-flow .flow-change-state{display:block;width:100%;min-height:52px;border:1px solid #8c9f80;border-radius:11px;background:white;color:#173441;font:650 17px system-ui;margin-top:12px;cursor:pointer}

/* Rev36: contact fields take priority over promotional content. */
.compact-flow #form-content:has(#contact-form) .flow-eyebrow{margin:0 0 10px}
.compact-flow #form-content:has(#contact-form) h2{margin-bottom:12px!important}
.compact-flow #form-content:has(#contact-form) .flow-sub{font-size:15px;line-height:1.45;margin:0 0 18px}
.compact-flow #form-content:has(#contact-form) #contact-form{margin-top:0}

/* Rev37: actual preliminary program checks, presented in sequence. */
.compact-flow #form-content:has(.program-review) .flow-icon{display:none}
.compact-flow #form-content:has(.program-review) .flow-eyebrow{font-size:10px;letter-spacing:1.2px;margin:0 0 12px}
.compact-flow #form-content:has(.program-review) .flow-sub{font-size:13px;line-height:1.4;margin-bottom:12px}
.compact-flow .program-review{text-align:left;padding:16px;margin:12px 0;background:#edf2e5;border:1px solid #cad6bb;border-radius:16px}
.review-status{display:flex;align-items:center;justify-content:space-between;color:#526e3d;font-size:14px;font-weight:750;margin-bottom:14px}
.compact-flow .review-status .flow-spinner{width:23px;height:23px;margin:0;border-width:3px}
.compact-flow .program-review h3{font-size:18px;line-height:1.3;margin:0 0 7px}
.compact-flow .program-review #review-detail{font-size:13px;line-height:1.4;min-height:37px;margin:0 0 14px}
.compact-flow .program-review .flow-meter{margin:0 0 12px;height:7px}
.program-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #d3ddc9;opacity:.6}
.program-row strong{font-size:15px}.program-row small{display:block;font-size:11px;margin-top:4px;color:#52605b}
.program-status{font-size:11px;white-space:nowrap;font-weight:700;color:#52605b}
.program-row.checking,.program-row.checked{opacity:1}.program-row.checking .program-status{color:#315d42}
.program-row.checking .program-status::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#66844c;margin-right:5px;animation:review-pulse .85s ease-in-out infinite alternate}
.compact-flow #replay-review{display:block;margin:12px 0}
@keyframes review-pulse{to{opacity:.25}}
@media(prefers-reduced-motion:reduce){.program-row.checking .program-status::before{animation:none}.flow-meter span{transition:none}}

/* Rev38: visual state confirmation, with all 50 states plus DC. */
.state-confirm{text-align:center;padding:8px 0 0}
.compact-flow #form-content .state-confirm-title{margin:0 0 22px!important}
.state-intro{display:block;font-size:23px;font-weight:650;letter-spacing:-.5px;line-height:1.25}
.state-outline{display:block;width:208px;max-width:100%;height:133px;object-fit:contain;margin:8px auto 6px;filter:drop-shadow(0 5px 8px #5e78451a)}
.state-name{display:block;font-size:35px;line-height:1.1;letter-spacing:-1px;font-weight:780;overflow-wrap:break-word}
.compact-flow .state-confirm .flow-next{margin:0;justify-content:center;position:relative;font-size:16px;font-weight:650;color:#173441;background:#edf3e5;border:1px solid #c6d2bc;box-shadow:none;border-radius:12px}
.compact-flow .state-confirm .flow-next:hover{background:#e5eedb;border-color:#91a77e}
.compact-flow .state-confirm .flow-next:active{background:#dce8ce}
.state-confirm .flow-next span{position:absolute;right:18px;color:#617e4c}
.state-change-link{display:block;margin:9px auto 0;padding:12px 24px;min-height:48px;background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;font:650 15px/1.4 system-ui;color:#52694a;cursor:pointer}
.state-change-link:focus-visible{outline:2px solid #52694a;outline-offset:2px;border-radius:8px}
@media(max-height:650px){.state-outline{height:112px;margin-top:6px}.state-name{font-size:31px}.compact-flow #form-content .state-confirm-title{margin-bottom:22px!important}}

/* Rev41: one clear history question and four large answer ranges. */
.compact-flow .history-period{font-size:12px;line-height:1.4;font-weight:750;letter-spacing:1.1px;color:#60764d;margin:0 0 20px}
.compact-flow #form-content .payment-history h2{font-size:27px!important;line-height:1.2!important;margin-bottom:12px!important}
.payment-history h2 span{display:block;color:#526e3d}
.compact-flow .history-scope{font-size:14px;line-height:1.45;color:#53665f;margin:0 0 24px}
.compact-flow .payment-history .flow-options .flow-option{min-height:56px;padding:14px 16px;font-size:16px;background:#f4f7ee;border-color:#cbd5c1}

/* Mobile questionnaire: a continuous surface down to anchored navigation. */
@media(max-width:600px){
 body.compact-flow{background:#fcfcf7}
 .compact-flow .question-first-hero{background:#fcfcf7;min-height:calc(100svh - 25px);padding:0 0 calc(67px + env(safe-area-inset-bottom))!important}
 .compact-flow .question-first-hero>picture,.compact-flow .question-first-hero>.hero-shade{display:none}
 .compact-flow .hero-inner.wrap{max-width:none}
 .compact-flow .inquiry-panel{border-radius:0;box-shadow:none}
 .compact-flow #form-content{box-sizing:border-box;min-height:calc(100svh - 93px - env(safe-area-inset-bottom));padding:26px 24px!important}
 .compact-flow .flow-dock{background:#fcfcf7;backdrop-filter:none}
}

/* Keep all program checks in the flow without a six-row mobile list. */
.program-row[hidden]{display:none}
.program-row>div{min-width:0}
.program-status{flex-shrink:0}
.compact-flow .review-count{font-size:11px;color:#52605b;margin:0 0 4px}

.compact-flow .program-review{padding:12px}
.compact-flow .program-review .review-status{margin-bottom:8px}
.compact-flow .program-review h3{font-size:17px;min-height:44px;margin-bottom:4px}
.compact-flow .program-review #review-detail{min-height:19px;margin-bottom:10px}
.compact-flow .program-review .program-row{padding:7px 0;min-height:54px}
.compact-flow .program-review .program-row strong{font-size:14px}
.compact-flow .program-review .program-row small{margin-top:2px}

/* Rev44: named Clear Choice connection before contact details. */
.connection-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #cbd8bd;border-radius:12px;background:#edf3e6;margin:0 0 12px}
.connection-card img{width:42px;height:42px;flex:none}
.connection-card span{display:block;font-size:10px;font-weight:650;color:#58724b;margin-bottom:3px}
.connection-card strong{display:block;font-size:19px;line-height:1.1;color:#173441;letter-spacing:-.4px}
.connection-card small{display:block;font-size:12px;color:#52665c;margin-top:3px}
#review-connection{min-height:162px;padding-top:15px}
#review-connection[hidden],.program-rows[hidden],#review-count[hidden]{display:none}
.compact-flow #form-content:has(#contact-form) .flow-sub{font-size:14px;line-height:1.4;margin:0 0 14px}

/* Rev45: continuous review motion with stable geometry and a crossfade handoff. */
.compact-flow .program-review{--program-row-height:58px;padding:12px;overflow:hidden}
.compact-flow .program-review .review-copy{height:84px}
.compact-flow .program-review h3{height:44px;min-height:0;margin:0 0 4px}
.compact-flow .program-review #review-detail{height:36px;min-height:0;margin:0;line-height:1.35}
.compact-flow .program-review .flow-meter{margin:6px 0 8px}
.compact-flow .program-review .flow-meter span{transition:width 1.05s linear}
.review-body{position:relative;height:calc(22px + 3 * var(--program-row-height))}
.review-programs{position:absolute;inset:0;transition:opacity .45s ease,transform .45s ease;opacity:1;transform:translateY(0)}
.compact-flow .review-count{height:22px;margin:0}
.program-window{height:calc(3 * var(--program-row-height));overflow:hidden}
.program-rows{transform:translateY(calc(-1 * var(--row-index,0) * var(--program-row-height)));transition:transform .55s cubic-bezier(.22,.68,.2,1)}
.compact-flow .program-review .program-row{box-sizing:border-box;height:var(--program-row-height);min-height:0;transition:opacity .35s ease,background-color .35s ease;border-radius:5px}
.program-row.checking{background:#e5eddc}
.program-row .program-status{max-width:88px;white-space:normal;text-align:right;line-height:1.25}
.program-status{transition:color .3s ease}
#review-connection{position:absolute;inset:0;min-height:0;padding-top:30px;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .45s ease,transform .45s cubic-bezier(.22,.68,.2,1)}
#review-connection .connection-card{margin:0;background:#f7faf1}
.compact-flow #review-connection .connection-next{font-size:12px;text-align:center;margin:14px 0 0;color:#586b50}
.is-connecting .review-programs{opacity:0;transform:translateY(-8px);pointer-events:none}
.is-connecting #review-connection{opacity:1;transform:translateY(0);pointer-events:auto}
#form-content.review-exit{animation:review-out .24s ease forwards}
#form-content.result-enter{animation:result-in .4s cubic-bezier(.22,.68,.2,1) both}
@keyframes review-out{to{opacity:0;transform:translateY(-4px)}}
@keyframes result-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:360px){.compact-flow .program-review{--program-row-height:76px}.compact-flow .program-review .review-copy{height:102px}.compact-flow .program-review h3{height:50px;font-size:16px}}
@media(prefers-reduced-motion:reduce){
 .program-rows,.review-programs,#review-connection,.program-row,.program-status,.compact-flow .program-review .flow-meter span{transition:none}
 #form-content.review-exit,#form-content.result-enter{animation:none}
}

.compact-flow .program-review .review-status{margin-bottom:6px}
.compact-flow .program-review .flow-spinner{width:20px;height:20px}

.program-window{mask-image:linear-gradient(to bottom,transparent,#000 6px,#000 calc(100% - 6px),transparent)}

/* Rev46: preparation phase before revealing the designated contact. */
#broker-preparation{position:absolute;inset:0;padding:16px 0 0;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .45s ease,transform .45s ease}
.is-preparing .review-programs{opacity:0;transform:translateY(-8px);pointer-events:none}
.is-preparing #broker-preparation{opacity:1;transform:translateY(0)}
.compact-flow #broker-preparation .broker-phase-label{font-size:10px;letter-spacing:.8px;font-weight:750;margin:0 0 10px;color:#5b754b}
.broker-detail{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #d1dcc5;min-height:48px;box-sizing:border-box}
.broker-detail span{font-size:13px;color:#52665c}
.broker-detail strong{font-size:15px;color:#173441;text-align:right}
.compact-flow #broker-preparation-note{font-size:12px;line-height:1.4;margin:12px 0 0;color:#586b50}
@media(prefers-reduced-motion:reduce){#broker-preparation{transition:none}}

/* Keep navigation visually distinct from answer cards. */
.compact-flow .flow-next.flow-advance{width:auto;min-width:126px;min-height:50px;margin-left:auto;gap:25px;padding:13px 18px}

/* Highlight only preliminary matches, not every reviewed program. */
.program-row.program-match .program-status{background:#dcebcf;color:#315b2b;border:1px solid #aac194;border-radius:20px;padding:5px 8px;white-space:normal;text-align:center;font-weight:750}

.program-row.program-needs-info .program-status{background:#fbefda;color:#78521e;border:1px solid #e5cfa8;border-radius:12px;padding:5px 8px;text-align:center}
.program-row.program-outside .program-status{color:#6b746e;font-weight:600}

/* Clear Choice reveal: a distinct connection moment with restrained motion. */
.connection-card,#review-connection .connection-card{position:relative;background:linear-gradient(120deg,#173441,#254f4a);border:1px solid #52745a;border-left:4px solid #bad58b;box-shadow:0 7px 18px #17344118;padding:15px 13px;gap:10px}
.connection-card img{width:44px;height:44px;border:1px solid #ffffff35;border-radius:12px}
.connection-card>div{flex:1;min-width:0}
.connection-card span{color:#d6e8bd;font-size:10px}
.connection-card strong{color:#fff;font-size:21px}
.connection-card small{color:#e0e9e2}
.connection-check{display:grid;place-items:center;flex:none;width:25px;height:25px;border-radius:50%;background:#d4e7ac;color:#284827;font-style:normal;font-weight:800;font-size:16px}
.is-connecting #review-connection .connection-card{animation:connection-reveal .48s cubic-bezier(.2,.75,.25,1) both}
@keyframes connection-reveal{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.is-connecting #review-connection .connection-card{animation:none}}

/* Neutral review surface gives status colors clear contrast. */
.compact-flow .program-review{background:#fff;border-color:#d6ddd1}
.program-row.checking{background:#f2f4ef}
.program-row.program-match .program-status{background:#35623e;color:#fff;border-color:#35623e}

/* Official brand, centered and shown in its original colors. */
.connection-card,#review-connection .connection-card{display:block;padding:0;overflow:hidden;border:1px solid #52745a;border-radius:12px;background:#fff;text-align:center}
.connection-card .connection-label{position:relative;background:linear-gradient(120deg,#173441,#254f4a);padding:8px 34px}
.connection-card .connection-label span{margin:0;color:#e2eccf;font-size:11px;line-height:16px}
.connection-card .connection-check{position:absolute;right:10px;top:7px;width:19px;height:19px;font-size:12px}
.connection-card .connection-brand{padding:10px 16px;background:#fff}
.connection-card img.connection-logo{display:block;width:168px;max-width:100%;height:auto;margin:0 auto;border:0;border-radius:0;object-fit:contain}
#review-connection{padding-top:9px}
.compact-flow #review-connection .connection-next{margin-top:10px}
.equal-housing{display:flex;justify-content:center;align-items:center;gap:9px;margin:18px 0 0;color:#52605b;font-size:11px;line-height:1.3}
.equal-housing img{display:block;width:44px;height:auto;flex:none}

/* Question navigation stays together; the fixed dock only reports progress. */
.flow-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}
.compact-flow .flow-navigation .flow-advance{margin:0 0 0 auto}
.flow-navigation .flow-back{min-height:50px;height:auto;min-width:100px;padding:13px 16px;font:650 16px/1.6 inherit;font-family:inherit;font-size:16px;line-height:1.6;border-radius:12px}
.flow-dock{justify-content:center}

.no-options-reason{padding:18px;border:1px solid #d8d5c9;background:#f4f2e9;border-radius:12px;margin:20px 0 12px}
.no-options-reason h3{font-size:16px;line-height:1.3;margin:0 0 9px;color:#173441}
.no-options-reason p{font-size:15px;line-height:1.5;margin:0;color:#53635c}
.compact-flow #review-no-options{margin-top:24px;font-size:15px}

/* Rev57: compact branded contact panel with an intentional call alternative. */
.connection-card .connection-brand{padding:8px 16px 10px}
.connection-card img.connection-logo{width:148px}
.connection-card .equal-housing{display:flex;align-items:center;justify-content:center;gap:6px;margin:3px 0 0}
.connection-card .equal-housing img{width:20px;height:20px;border:0;border-radius:0;flex:none}
.connection-card .equal-housing span{font-size:10px;line-height:1.2;color:#53635c}
.compact-flow #form-content:has(#contact-form) h2{font-size:26px!important;line-height:1.15!important;margin-bottom:14px!important}
.compact-flow #contact-form .flow-field{margin-top:13px}
.compact-flow #contact-form .flow-field:first-child{margin-top:0}
.compact-flow #contact-form .flow-field>label{font-size:14px;margin-bottom:6px}
.compact-flow #contact-form .flow-field input{min-height:50px;font-size:17px;padding:12px}
.compact-flow #contact-form .flow-check{font-size:12px;gap:9px;margin-top:13px;min-height:0}
.compact-flow #contact-form .flow-help{font-size:11px;margin-top:8px}
.compact-flow #contact-form .flow-next{margin-top:14px;min-height:50px;font-size:16px;padding:12px 15px}
.contact-call{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:16px 0;border-top:1px solid #dce2d6;border-bottom:1px solid #dce2d6}
.contact-call>div{display:grid;gap:4px}
.contact-call span{font-size:12px;color:#5c6b63}
.contact-call strong{font-size:15px;font-weight:650;white-space:nowrap}
.contact-call-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 12px;border:1px solid #b4c3ab;border-radius:10px;color:#244738;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap;background:#f2f5ed}
.contact-call-button svg{width:17px;height:17px}
.contact-call-button:hover{background:#e5eedb}
.contact-disclosure{margin-top:15px;color:#66736a;font-size:11px;line-height:1.5}
.contact-disclosure summary{cursor:pointer;min-height:32px;align-content:center}
.contact-disclosure .flow-fine{margin:6px 0 10px}
.contact-tools{display:flex;justify-content:space-between;gap:12px}
.contact-tools .flow-text{font-size:11px;color:#66736a;padding:9px 0;min-height:40px}
.compact-flow #form-content:has(#contact-form) .flow-navigation{margin-top:8px}
.compact-flow .contact-disclosure{padding:0;border:0;margin:10px 0 0;background:none}
.compact-flow .contact-disclosure summary{display:list-item;list-style:disclosure-closed;font-size:12px;font-weight:500;line-height:1.4;padding:10px 0;border:0;min-height:40px}
.compact-flow .contact-disclosure[open] summary{list-style:disclosure-open}
.compact-flow .contact-disclosure summary::after{content:none}

/* Rev58: quiet lender identity, balanced marks and a shorter contact introduction. */
.connection-card,#review-connection .connection-card{border:1px solid #d4ddd0;border-radius:12px;background:#fff;box-shadow:none;overflow:hidden;margin-bottom:14px}
.connection-card .connection-label{background:#f2f5ee;border-bottom:1px solid #e6ebe1;padding:7px 30px;text-align:center;line-height:16px}
.connection-card .connection-label span{color:#4e6842;font-size:10px;line-height:16px;font-weight:650;letter-spacing:.04em}
.connection-card .connection-check{right:12px;top:7px;width:16px;height:16px;background:none;color:#537348;font-size:14px}
.connection-card .connection-brand{display:grid;grid-template-columns:minmax(0,1fr) 66px;align-items:center;gap:12px;padding:10px 14px}
.connection-card img.connection-logo{width:158px;max-width:100%;height:auto;margin:0 auto}
.connection-card .equal-housing{display:flex;flex-direction:column;justify-content:center;gap:5px;margin:0;padding-left:12px;border-left:1px solid #e4e8e0;min-height:54px}
.connection-card .equal-housing img{width:22px;height:22px;border:0;border-radius:0}
.connection-card .equal-housing span{font-size:8px;line-height:1.25;font-weight:400;letter-spacing:0;color:#626d66;text-align:center;white-space:nowrap}
.compact-flow #form-content:has(#contact-form){padding-top:20px!important}
.compact-flow #form-content:has(#contact-form) .flow-eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:8px}
.compact-flow #form-content:has(#contact-form) h2{font-size:27px!important;line-height:1.12!important;margin-bottom:16px!important}
.compact-flow #form-content:has(#contact-form) .flow-sub{font-size:14px;line-height:1.45;margin:0 0 18px}
.compact-flow #contact-form .flow-field>label{font-size:14px;font-weight:650}
.compact-flow #contact-form .flow-field input{border-color:#bec9b7;background:#fff;border-radius:10px}
.compact-flow #contact-form .flow-check{font-weight:450;line-height:1.4}
.compact-flow #contact-form .flow-next{font-weight:700;background:#e7efdc;border-color:#a9bf96;min-height:52px}
.compact-flow #contact-form .flow-next:hover{background:#dce9cc}
@media(max-width:350px){.connection-card .connection-brand{grid-template-columns:minmax(0,1fr) 60px;gap:8px;padding:10px}.connection-card img.connection-logo{width:145px}.connection-card .equal-housing{padding-left:8px}}


/* Rev63: a completed conversation, with one clear next action. */
body.confirmation-page .flow-dock{display:none}
.compact-flow.confirmation-page .question-first-hero{padding-bottom:0!important}
.compact-flow.confirmation-page #form-content{min-height:calc(100svh - 25px);display:flex;flex-direction:column;justify-content:center;padding:30px 24px 20px!important}
.call-confirmation{text-align:center;width:100%;max-width:360px;margin:0 auto}
.confirmation-seal{width:58px;height:58px;border:1px solid #cddbc3;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:#e9f1e0;color:#496e3c;box-shadow:0 0 0 7px #f3f6ed}
.confirmation-seal svg{width:32px;height:32px}
.compact-flow .call-confirmation .flow-eyebrow{font-size:9px;letter-spacing:.16em;margin:0 0 14px;color:#65765e}
.compact-flow .call-confirmation h2{font-size:28px!important;line-height:1.14!important;letter-spacing:-.035em!important;margin:0 0 14px!important}
.call-confirmation h2 span{color:#527541}
.compact-flow .call-confirmation .flow-sub{font-size:14px;line-height:1.5;margin:0;color:#5b6d65}
.compact-flow #form-content .call-confirmation .contact-call{display:flex;flex-direction:column;gap:0;border:0;border-top:1px solid #dbe3d5;border-radius:0;background:none;margin:28px 0 0;padding:23px 0 0}
.call-confirmation .contact-call h3{font-family:inherit;font-size:20px;line-height:1.25;font-weight:750;letter-spacing:-.025em;margin:0 0 15px;color:#173441}
.compact-flow .call-confirmation .contact-call-button{width:100%;min-height:52px;padding:14px 18px;background:#315c45;border:1px solid #315c45;color:#fff;font-size:16px;border-radius:12px;box-shadow:0 4px 10px #25463216}
.compact-flow .call-confirmation .contact-call-button:hover{background:#244b36}
.call-confirmation .contact-call .call-number{font-size:13px;font-weight:500;color:#546a5d;margin-top:10px;letter-spacing:.025em}
.compact-flow .call-confirmation .submission-preview{font-size:10px;line-height:1.45;margin:24px 0 0;color:#778077}
.compact-flow.confirmation-page .flow-navigation{justify-content:center;margin:10px 0 0}
.compact-flow.confirmation-page .flow-navigation .flow-back{background:none;border:0;min-height:44px;padding:8px 12px;font-size:12px;font-weight:500;color:#53695e;text-decoration:underline;text-underline-offset:3px;box-shadow:none}
.compact-flow #phone-hint{font-size:11px;margin:5px 0 0}
@media(min-width:700px){.compact-flow.confirmation-page #form-content{min-height:590px;padding:38px 36px 26px!important}}
@media(max-height:600px){.compact-flow.confirmation-page #form-content{padding-top:22px!important}.confirmation-seal{width:44px;height:44px;margin-bottom:12px}.compact-flow #form-content .call-confirmation .contact-call{margin-top:20px;padding-top:18px}}

/* Contact connection choices, 2026-10-23 */
.compact-flow #contact-form .intake-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.compact-flow #contact-form .contact-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.compact-flow #contact-form .contact-choice-action {
  appearance: none;
  display: flex;
  min-width: 0;
  min-height: 116px;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 20px 22px;
  border: 2px solid #adc5a9;
  border-radius: 16px;
  background: #f8fbf5;
  color: #173440;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
  transition: background .15s, border-color .15s, transform .15s;
}

.compact-flow #contact-form .contact-choice-action:hover {
  background: #eaf3e5;
  border-color: #547d4a;
  transform: translateY(-1px);
}

.compact-flow #contact-form .contact-choice-action:focus-visible {
  outline: 3px solid #7daa70;
  outline-offset: 3px;
}

.compact-flow #contact-form .contact-choice-action:disabled {
  opacity: .65;
  cursor: wait;
  transform: none;
}

.compact-flow #contact-form .contact-choice-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  font-size: 18px;
  font-weight: 750;
  line-height: 1.25;
}

.compact-flow #contact-form .contact-choice-title span {
  flex: none;
  color: #527748;
  font-size: 24px;
}

.compact-flow #contact-form .contact-choice-phone {
  flex: none;
  width: 23px;
  height: 23px;
  color: #527748;
}

.compact-flow #contact-form .contact-choice-detail {
  color: #54665a;
  font-size: 14px;
  line-height: 1.35;
}

.compact-flow #contact-form #contact-call-submit .contact-choice-detail {
  color: #1d513d;
  font-size: 16px;
  font-weight: 700;
}

@media (max-width: 600px) {
  .compact-flow #contact-form .contact-actions {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .compact-flow #contact-form .contact-choice-action {
    min-height: 92px;
    padding: 16px 18px;
  }

  .compact-flow #contact-form .contact-choice-title {
    font-size: 17px;
  }
}

/* Contact step refinement: one clear decision per row at every width. */
.compact-flow .question-first-hero:has(#contact-form) {
  background: #e8ede8;
}

.compact-flow .question-first-hero:has(#contact-form) .hero-photo,
.compact-flow .question-first-hero:has(#contact-form) .hero-shade {
  display: none;
}

.compact-flow #form-content:has(#contact-form) {
  padding-top: 24px !important;
  padding-bottom: 28px !important;
}

.compact-flow #form-content:has(#contact-form) h2 {
  margin-bottom: 18px !important;
}

.compact-flow #form-content:has(#contact-form) .connection-card {
  margin-bottom: 16px;
  border-radius: 14px;
}

.compact-flow #form-content:has(#contact-form) .connection-card .connection-brand {
  grid-template-columns: minmax(0, 1fr) 72px;
  gap: 14px;
  padding: 9px 16px;
}

.compact-flow #form-content:has(#contact-form) .connection-card img.connection-logo {
  width: 136px;
}

.compact-flow #form-content:has(#contact-form) .flow-sub {
  margin-bottom: 21px;
  max-width: 42ch;
  font-size: 13.5px;
  line-height: 1.5;
}

.compact-flow #contact-form .flow-field {
  margin-top: 17px;
}

.compact-flow #contact-form .flow-field > label {
  margin-bottom: 7px;
  font-size: 13px;
  font-weight: 700;
}

.compact-flow #contact-form .flow-field input:not([type=checkbox]) {
  min-height: 52px;
  padding: 12px 15px;
  font-size: 16px;
  border-radius: 11px;
}

.compact-flow #contact-form #phone-hint {
  margin-top: 6px;
  font-size: 11px;
}

.compact-flow #contact-form .contact-choice-label {
  margin: 25px 0 11px;
  font-size: 16px;
  line-height: 1.25;
}

.compact-flow #contact-form .contact-actions {
  grid-template-columns: 1fr;
  gap: 10px;
}

.compact-flow #contact-form .contact-choice-action {
  min-height: 78px;
  gap: 4px;
  padding: 15px 18px;
  border: 1px solid #c6d5be;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 2px 8px #1734400a;
}

.compact-flow #contact-form #contact-call-submit {
  border-color: #79a278;
  background: #e9f2e5;
}

.compact-flow #contact-form .contact-choice-action:hover {
  background: #edf5e9;
  border-color: #527d54;
  box-shadow: 0 5px 14px #17344017;
}

.compact-flow #contact-form .contact-choice-title {
  font-size: 16px;
  line-height: 1.25;
  letter-spacing: -.15px;
}

.compact-flow #contact-form .contact-choice-title span {
  font-size: 21px;
}

.compact-flow #contact-form .contact-choice-phone {
  width: 21px;
  height: 21px;
}

.compact-flow #contact-form #contact-call-submit .contact-choice-detail {
  font-size: 14px;
  line-height: 1.3;
}

@media (max-width: 600px) {
  .compact-flow #form-content:has(#contact-form) {
    padding-top: 20px !important;
  }

  .compact-flow #contact-form .contact-choice-action {
    min-height: 76px;
    padding: 14px 16px;
  }
}

/* Contact composition: a calm review beside a focused next-step form. */
@media (min-width: 720px) {
  .compact-flow .hero-inner.wrap:has(#contact-form) {
    max-width: 920px;
  }

  .compact-flow #form-content:has(#contact-form) {
    padding: 34px 36px 30px !important;
  }

  .compact-flow .contact-layout {
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    align-items: start;
    gap: 40px;
  }

  .compact-flow #contact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
  }

  .compact-flow #contact-form .contact-form-heading,
  .compact-flow #contact-form .contact-choice-label,
  .compact-flow #contact-form #flow-error,
  .compact-flow #contact-form .contact-actions,
  .compact-flow #contact-form .contact-terms {
    grid-column: 1 / -1;
  }

  .compact-flow #contact-form .flow-field {
    min-width: 0;
    margin-top: 0;
  }
}

.compact-flow .question-first-hero:has(#contact-form) {
  background: radial-gradient(circle at 20% 20%, #f4f6ef, #e7ede7 70%);
}

.compact-flow #form-content:has(#contact-form) .flow-eyebrow {
  margin: 5px 0 16px;
  color: #50703e;
  font-size: 11px;
  letter-spacing: .16em;
}

.compact-flow #form-content:has(#contact-form) h2 {
  max-width: 13ch;
  margin: 0 0 28px !important;
  font-size: clamp(30px, 3vw, 39px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
}

.compact-flow #form-content:has(#contact-form) .connection-card {
  margin: 0 0 20px;
  border: 1px solid #d3dfcf;
  border-radius: 16px;
  box-shadow: 0 8px 22px #1734400b;
}

.compact-flow #form-content:has(#contact-form) .connection-label {
  padding: 9px 18px;
  background: #f1f6ed;
  text-align: left;
}

.compact-flow #form-content:has(#contact-form) .connection-label span {
  font-size: 11px;
  letter-spacing: .06em;
}

.compact-flow #form-content:has(#contact-form) .connection-brand {
  grid-template-columns: minmax(0, 1fr) 72px;
  padding: 15px 17px;
}

.compact-flow #form-content:has(#contact-form) .connection-logo {
  width: 180px;
}

.compact-flow #form-content:has(#contact-form) .flow-sub {
  max-width: 36ch;
  margin: 0;
  color: #53655d;
  font-size: 14px;
  line-height: 1.55;
}

.compact-flow #contact-form {
  min-width: 0;
  padding: 24px;
  border: 1px solid #dde5d8;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px #1734400d;
}

.compact-flow #contact-form .contact-form-heading,
.compact-flow #contact-form .contact-choice-label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #173440;
  font-size: 17px;
  font-weight: 750;
  line-height: 1.25;
}

.compact-flow #contact-form .contact-form-heading {
  margin: 0 0 18px;
}

.compact-flow #contact-form .contact-choice-label {
  margin: 25px 0 12px;
}

.compact-flow #contact-form .contact-form-heading span,
.compact-flow #contact-form .contact-choice-label span {
  display: grid;
  flex: none;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: #edf3e8;
  color: #3f683f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
}

.compact-flow #contact-form .flow-field > label {
  color: #385047;
  font-size: 13px;
}

.compact-flow #contact-form .contact-choice-action {
  min-height: 73px;
  box-shadow: none;
}

.compact-flow #contact-form #contact-call-submit {
  border-color: #1d513d;
  background: #1d513d;
  color: #fff;
  box-shadow: 0 8px 18px #1d513d24;
}

.compact-flow #contact-form #contact-call-submit:hover {
  border-color: #143d2e;
  background: #143d2e;
}

.compact-flow #contact-form #contact-call-submit .contact-choice-detail,
.compact-flow #contact-form #contact-call-submit .contact-choice-phone {
  color: #e1f0d7;
}

.compact-flow #contact-form #contact-request-submit:hover {
  background: #f2f7ee;
}

.compact-flow #contact-form .contact-terms {
  margin-top: 21px;
  padding-top: 16px;
}

.compact-flow #form-content:has(#contact-form) .contact-disclosure,
.compact-flow #form-content:has(#contact-form) .contact-tools {
  max-width: 850px;
}

@media (max-width: 719px) {
  .compact-flow #form-content:has(#contact-form) {
    padding: 24px 22px 26px !important;
  }

  .compact-flow #form-content:has(#contact-form) h2 {
    max-width: 17ch;
    margin-bottom: 18px !important;
    font-size: 30px !important;
  }

  .compact-flow #form-content:has(#contact-form) .connection-card {
    margin-bottom: 16px;
  }

  .compact-flow #form-content:has(#contact-form) .connection-brand {
    padding: 10px 14px;
  }

  .compact-flow #form-content:has(#contact-form) .connection-logo {
    width: 150px;
  }

  .compact-flow #form-content:has(#contact-form) .flow-sub {
    margin-bottom: 20px;
    font-size: 13px;
  }

  .compact-flow #contact-form {
    padding: 19px 0 0;
    border: 0;
    border-top: 1px solid #dce4d8;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .compact-flow #contact-form .contact-choice-action {
    min-height: 75px;
  }
}
