/* Stage 3: scoped styles; the approved header/hero/Why FINREC remain unchanged. */
.simulator{background:#071d35;color:#fff;padding:96px 24px 52px;overflow:hidden;overflow:clip;scroll-margin-top:18px}
.sim-inner{max-width:1180px;margin:auto}
.sim-heading{text-align:center}
.sim-eyebrow{margin:0 0 14px;color:#73d4e7;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.sim-heading h2{margin:0;font-size:46px;line-height:1.13;letter-spacing:-1.4px}
.sim-heading>p:last-child{max-width:940px;margin:20px auto 0;color:#b9ccda;font-size:18px;line-height:1.7}
.sim-modes{position:relative;display:flex;max-width:650px;margin:40px auto 20px;padding:6px;border:1px solid #344b60;border-radius:40px;background:#182f44;min-width:0}
.sim-modes label{position:relative;flex:1;min-width:0;cursor:pointer}
.sim-modes input{position:absolute;opacity:0;width:1px;height:1px}
.sim-modes span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:30px;font-size:14px;font-weight:700;color:#bdceda;text-align:center}
.sim-modes input:checked+span{background:white;color:#004c97}
.sim-modes input:focus-visible+span{outline:3px solid #b9df4f;outline-offset:3px}
.sim-stage{display:grid;grid-template-columns:minmax(0,1.105fr) minmax(0,1fr);gap:24px;align-items:center;min-height:0}
.sim-portfolio-wrap{min-width:0;grid-column:1;transform:translateX(calc(45.25% + 12px));transition:transform 800ms var(--ease)}
.sim-stage.has-result .sim-portfolio-wrap{transform:none}
.sim-card{border-radius:20px;background:white;color:#071d35;padding:36px 38px;min-width:0}
.sim-portfolio h3{margin:0 0 22px;font-size:22px;line-height:1.25;letter-spacing:-.4px}
.sim-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sim-field{min-width:0}
.sim-field label{display:block;min-height:35px;font-size:12px;font-weight:700;color:#405970;line-height:1.4}
.sim-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid #c5dbea;border-radius:9px;padding:0 14px;background:#fbfdfe;min-height:54px}
.sim-input-wrap:focus-within{outline:3px solid #004c97;outline-offset:2px}
.sim-input-wrap input{width:100%;min-width:0;padding:14px 0;border:0;background:transparent;color:#071d35;font:inherit;font-size:14px;outline:none}
.sim-input-wrap span{flex-shrink:0;font-size:13px;color:#607d96}
.sim-field:has([aria-invalid="true"]) .sim-input-wrap{border-color:#b32730}
.sim-error{min-height:48px;margin:6px 0 4px;color:#a51e29;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.sim-submit{align-self:flex-start;font-size:14px;min-height:49px;padding:14px 24px}
.sim-submit:disabled{opacity:.7;cursor:default}
.sim-nojs{font-size:13px;color:#405970}
.sim-result{grid-column:2;position:relative;overflow:hidden;align-self:center;background:radial-gradient(circle at 100% 0, #e6f5f9 0, #e6f5f9 95px, #f4fafc 96px, #f4fafc 132px, #fff 133px)}
.sim-result-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sim-result h3{margin:0;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#004c97}
.sim-badge{padding:5px 11px;border-radius:20px;background:#e6f3c7;color:#36550b;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.sim-range{position:relative;margin:22px 0 10px;font-size:38px;font-weight:700;line-height:1.18;letter-spacing:-1.3px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.sim-description{margin:0;min-height:44px;color:#58718e;font-size:14px;line-height:1.5}
.sim-potential{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;font-size:12px;color:#4b6680}
.sim-potential strong{font-size:16px;color:#004c97}
.sim-bar{height:10px;border-radius:10px;background:#e5eef3;overflow:hidden;margin-top:8px}
.sim-bar span{display:block;height:100%;background:linear-gradient(90deg,#004c97,#18a7c8,#b9df4f);transform:scaleX(0);transform-origin:left;border-radius:inherit;transition:transform 600ms var(--ease)}
.sim-indicators{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #dce8f0;margin:24px 0 0;padding-top:18px}
.sim-indicators dt{font-size:10px;color:#58718e}
.sim-indicators dd{margin:4px 0 0;font-size:13px;font-weight:700;overflow-wrap:anywhere}
.sim-explanation{margin:18px 0 0;color:#58718e;font-size:11px;line-height:1.5}
.sim-disclaimer{margin:18px auto 0;text-align:center;color:#a5bac8;font-size:11px;line-height:1.7;max-width:1050px}
@keyframes sim-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes sim-right{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
.js .sim-revealing{animation:sim-up 600ms var(--ease) backwards;animation-delay:var(--sim-delay,0ms)}
.js .sim-first-result{animation:sim-right 750ms var(--ease) 100ms backwards}
.js .sim-first-result .sim-indicators>div{animation:sim-up 500ms var(--ease) backwards;animation-delay:500ms}
.js .sim-first-result .sim-indicators>div:nth-child(2){animation-delay:600ms}
.js .sim-first-result .sim-indicators>div:nth-child(3){animation-delay:700ms}
/* Focus cancels an entrance permanently in JS, never through a reversible CSS state. */
@media(max-width:1100px){
 .sim-card{padding:28px 24px}.sim-range{font-size:30px}.sim-fields{gap:10px}.sim-input-wrap{padding:0 9px;gap:5px}.sim-input-wrap span{font-size:11px}.sim-portfolio h3{font-size:20px}
}
@media(max-width:900px){
 .sim-stage{grid-template-columns:1fr;min-height:0;align-content:start;gap:24px}.sim-portfolio-wrap{transform:none;max-width:650px;width:100%;margin:auto}.sim-result{grid-column:1;width:100%;max-width:650px;margin:auto}.sim-heading h2{font-size:38px}.sim-range{font-size:36px}
}
@media(max-width:599px){
 .simulator{padding:56px 20px 40px}.sim-heading h2{font-size:30px;letter-spacing:-.8px}.sim-heading h2 br{display:none}.sim-heading>p:last-child{font-size:15px}.sim-eyebrow{font-size:11px}.sim-modes{margin-top:28px;border-radius:22px}.sim-modes span{font-size:12px;padding:10px 7px;border-radius:17px;min-height:62px}.sim-card{padding:26px 20px}.sim-fields{grid-template-columns:1fr;gap:0}.sim-field label{min-height:0;margin-bottom:7px}.sim-error{min-height:32px;margin:5px 0 3px}.sim-submit{width:100%;padding:13px 10px;font-size:13px}.sim-stage{min-height:0}.sim-range{font-size:30px}.sim-result{min-height:0}.sim-result-top{gap:10px}.sim-indicators{gap:8px}.sim-indicators dd{font-size:12px}.sim-potential{gap:8px}.sim-potential strong{font-size:14px}.sim-disclaimer{font-size:11px}
 .js .sim-first-result{animation-name:sim-up}
}
@media(prefers-reduced-motion:reduce){.simulator *{animation:none!important;transition:none!important}}

/* Reserve the final amount size while its decorative counter changes. */
.sim-range-reserve{visibility:hidden}
.sim-range-counter{position:absolute;top:0;left:0;right:0}

/* One persistent selection surface, translated rather than repainted per label.
   Native radio highlighting remains the fallback when JavaScript is absent. */
.sim-modes.is-sliding::before{content:"";position:absolute;top:6px;bottom:6px;left:6px;width:calc(50% - 6px);border-radius:30px;background:#fff;pointer-events:none;transform:translateX(0);transition:transform 350ms var(--ease)}
.sim-modes.is-sliding.is-white-label::before{transform:translateX(100%)}
.sim-modes.is-sliding label{z-index:1}
.sim-modes.is-sliding input:checked+span{background:transparent}
.sim-modes.is-sliding span{transition:color 250ms var(--ease)}
@media(max-width:599px){.sim-modes.is-sliding::before{border-radius:17px}}
@media(prefers-reduced-motion:reduce){.sim-modes.is-sliding::before{transition:none}}


/* Each card keeps its own content height. No measuring clone or equal-height rule. */
.sim-portfolio-wrap,.sim-result{align-self:center}

/* Compact, equal-height desktop cards through the grid's natural row size.
   No JavaScript measurement or fixed maximum height; long text can still grow. */
@media(min-width:901px){
 .sim-portfolio-wrap,.sim-result{align-self:stretch}
 .sim-submit{white-space:nowrap}
 .sim-portfolio{height:100%;min-height:366px;display:flex;flex-direction:column;justify-content:center}
}

/* Native radios presented as animated segmented controls, with no JS dependency. */
.sim-audience{max-width:470px;margin:0 auto 24px!important}
.sim-segment{border:0;padding:0;min-width:0;margin:0}
.sim-segment-track{position:relative;display:flex;padding:5px;border:1px solid #344b60;border-radius:30px;background:#182f44}
.sim-segment label{position:relative;z-index:1;flex:1;min-width:0;cursor:pointer}
.sim-segment input{position:absolute;opacity:0;width:1px;height:1px}
.sim-segment span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:10px 12px;border-radius:24px;font-size:13px;font-weight:700;color:#bdceda;text-align:center;transition:color 250ms var(--ease)}
.sim-segment small{font-size:11px;font-weight:400}
.sim-segment input:checked+span{background:#fff;color:#004c97}
.sim-segment input:focus-visible+span{outline:3px solid #18a7c8;outline-offset:2px}
.sim-segment.segment-ready .sim-segment-track::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:calc(50% - 5px);border-radius:24px;background:#fff;pointer-events:none;opacity:0;transform:translateX(0);transition:transform 350ms var(--ease),opacity 180ms}
.sim-segment.segment-ready.has-selection .sim-segment-track::before{opacity:1}
.sim-segment.segment-ready.is-second .sim-segment-track::before{transform:translateX(100%)}
.sim-segment.segment-ready input:checked+span{background:transparent}
.sim-modes{margin-bottom:12px}
.sim-followups{margin:0 0 16px}
.sim-question legend{padding:0;margin:0 0 10px;font-size:12px;font-weight:700;line-height:1.5;color:#405970}
.sim-question .sim-segment-track{max-width:360px;border-color:#d4e3eb;background:#edf4f8;border-radius:14px;padding:4px}
.sim-question span{color:#405970;border-radius:10px;font-size:13px;min-height:44px;padding:9px 12px}
.sim-question input:checked+span{color:#071d35;background:#b9df4f}
.sim-question.segment-ready .sim-segment-track::before{left:4px;top:4px;bottom:4px;width:calc(50% - 4px);border-radius:10px;background:#b9df4f;box-shadow:0 3px 9px rgba(6,42,60,.09)}
.sim-choice-error{min-height:17px;margin:4px 0 7px;color:#a51e29;font-size:11px;line-height:1.5}
.sim-white-label .sim-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.js .sim-question-enter{animation:sim-up 350ms var(--ease)}
@media(max-width:599px){
 .sim-audience{margin-bottom:20px!important}
 .sim-audience span{flex-wrap:wrap;gap:2px 5px;font-size:12px;padding:9px 8px}
 .sim-audience small{font-size:10px}
 .sim-white-label .sim-fields{grid-template-columns:1fr}
 .sim-question .sim-segment-track{max-width:none}
 .sim-question span{font-size:12px;padding:9px 6px}
}
@media(prefers-reduced-motion:reduce){.sim-segment-track::before{transition:none!important}}

/* Reduce whitespace only for white-label questions; keep 44px touch targets. */
.sim-white-label .sim-portfolio{padding-top:26px;padding-bottom:26px}
.sim-white-label .sim-portfolio h3{margin-bottom:16px}
.sim-white-label .sim-field label{min-height:0;margin-bottom:7px}
.sim-white-label .sim-error{min-height:31px;margin:4px 0 0}
.sim-white-label .sim-followups{margin-bottom:8px}
.sim-white-label .sim-question legend{margin-bottom:6px}
.sim-white-label .sim-choice-error{margin:2px 0 4px}
.sim-contact{display:flex;flex-direction:column;justify-content:center;height:100%;gap:18px}
.sim-contact-eyebrow{margin:0;color:#004c97;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.sim-contact h3{font-size:27px;line-height:1.25;letter-spacing:-.6px;text-transform:none;color:#071d35}
.sim-contact>p:not(.sim-contact-eyebrow){margin:0;color:#58718e;font-size:14px;line-height:1.65}
.sim-contact .button{align-self:flex-start;font-size:13px;padding:14px 18px;margin-top:4px;white-space:normal}
@media(max-width:599px){.sim-contact h3{font-size:24px}.sim-contact .button{width:100%}}

.sim-intro-ending{white-space:nowrap}
@media(max-width:359px){.sim-intro-ending{white-space:normal}}

/* A stable CSS selector also handles browser-restored radios without waiting for JS. */
@supports selector(:has(input:checked)){
 .sim-modes::before{content:"";position:absolute;top:6px;bottom:6px;left:6px;width:calc(50% - 6px);border-radius:30px;background:#fff;pointer-events:none;transform:translateX(0);transition:transform 350ms var(--ease)}
 .sim-modes label{z-index:1}
 .sim-modes input:checked+span{background:transparent}
 .sim-modes:has(input[value="white_label"]:checked)::before{transform:translateX(100%)}
 .sim-modes:has(input[value="recovery"]:checked)::before{transform:translateX(0)}
 .sim-audience .sim-segment-track::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:calc(50% - 5px);border-radius:24px;background:#fff;pointer-events:none;opacity:1;transform:translateX(0);transition:transform 350ms var(--ease)}
 .sim-audience input:checked+span{background:transparent}
 .sim-audience:has(input[value="b2b"]:checked) .sim-segment-track::before{transform:translateX(100%)}
 .sim-audience:has(input[value="b2c"]:checked) .sim-segment-track::before{transform:translateX(0)}
}
@media(prefers-reduced-motion:reduce){.sim-modes::before,.sim-audience .sim-segment-track::before{transition:none!important}}
