/* Consistent planner layout, loaded after the earlier visual layers. */
body.planner-editorial{--planner-space:1.25rem;--planner-line:#dce5e1;--planner-ink:#173840}
.planner-editorial .planner-main{box-sizing:border-box;padding:1.75rem 1.25rem 3rem;overflow-x:clip}
.planner-editorial .planner-main *{box-sizing:border-box}
.planner-editorial .planner-hero{width:100%;max-width:850px;min-height:0!important;padding:1rem .5rem 1.25rem!important;margin:0 auto 1rem!important;text-align:center}
.planner-editorial .planner-badge{margin:0 auto .75rem;text-align:center}
.planner-editorial .planner-title{margin:0 auto .75rem;line-height:1.3;overflow-wrap:break-word;text-wrap:balance}
.planner-editorial .planner-subtitle{max-width:620px;margin:0 auto 1rem;line-height:1.75;text-wrap:pretty}
.planner-editorial .planner-trust-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1.25rem;padding:.75rem 0 0;margin:0 auto;border-top:1px solid #294054}
.planner-editorial .trust-badge{margin:0;line-height:1.6}
.planner-editorial .planner-steps{max-width:860px;width:100%;margin:.25rem auto .75rem!important;padding:.25rem 0!important;gap:.25rem;align-items:center;overflow:visible;mask-image:none!important;-webkit-mask-image:none!important}
.planner-editorial .planner-step{flex:1 1 0;min-width:0;min-height:48px;padding:.25rem;gap:.4rem;line-height:1.4}
.planner-editorial .step-label{font-size:.85rem;line-height:1.4;white-space:normal}
.planner-editorial .step-track-line{flex:0 1 22px;align-self:center;margin:0;background:#40566a}
.planner-editorial .step-num{flex-shrink:0}
.planner-editorial .planner-progress{flex:none;max-width:860px;width:100%;height:3px;margin:0 auto .5rem!important;overflow:hidden;border-radius:4px}
.planner-editorial .planner-progress-label{position:static;transform:none;max-width:860px;width:100%;margin:0 auto 1.25rem!important;padding:0;line-height:1.6;opacity:1;color:#c7d6df;font-size:.85rem!important;letter-spacing:0;text-align:center}
.planner-editorial .planner-panel{min-width:0;max-width:100%;scroll-margin-top:5rem}
.planner-editorial .journey-guide{padding:.5rem 0 1.25rem;margin:0;max-width:760px}
.planner-editorial .journey-guide h2{font-size:clamp(1.5rem,3vw,2rem);margin:.4rem 0;line-height:1.4;text-wrap:balance}
.planner-editorial .journey-guide p{font-size:1rem;line-height:1.7}
.planner-editorial .planner-panel .calc-card{padding:2rem!important;border-radius:14px!important;min-width:0;max-width:100%;text-align:start}
.planner-editorial .planner-panel .calc-title{margin-top:0;margin-bottom:.65rem;text-wrap:balance;overflow-wrap:break-word}
.planner-editorial .planner-panel .calc-desc{line-height:1.75;margin-bottom:1.5rem}
.planner-editorial .calc-inputs,.planner-editorial .calc-input-group{min-width:0}
.planner-editorial .calc-input-group label{line-height:1.6;margin-bottom:.4rem}
.planner-editorial input[type=number],.planner-editorial input[type=text],.planner-editorial select{min-width:0;max-width:100%;min-height:46px;font-size:16px!important}
.planner-editorial input[type=number]{font-variant-numeric:tabular-nums}
.planner-editorial button{touch-action:manipulation}
.planner-editorial button:focus-visible,.planner-editorial a:focus-visible,.planner-editorial summary:focus-visible{outline:3px solid #a38d4f;outline-offset:3px}
.planner-editorial .planner-nav-btns{border-top:1px solid var(--planner-line);margin-top:1.75rem;padding-top:1.25rem;gap:.75rem;align-items:stretch}
.planner-editorial .planner-nav-btns button{min-height:48px;height:auto;white-space:normal;line-height:1.5;border-radius:8px!important;padding:.75rem 1.25rem}
.planner-editorial .planner-next:disabled{opacity:.55;cursor:not-allowed}
.planner-editorial .retirement-policy,.planner-editorial .retirement-budget,.planner-editorial .goals-simple,.planner-editorial .property-plan,.planner-editorial #goals-advanced{margin-block:1.25rem;border-radius:12px;padding:1.25rem}
.planner-editorial .retirement-budget{border:1px solid #c8dcd2;background:#f2f7f4;color:#173840}
.planner-editorial .retirement-budget h3{font-size:1.2rem;margin:0 0 .75rem}
.planner-editorial .retirement-budget p{line-height:1.75;color:#49606a}
.planner-editorial .retirement-budget input{width:100%;max-width:220px}
.planner-editorial .retirement-policy>summary,.planner-editorial .property-plan>summary,.planner-editorial .nrs-story-card>summary{cursor:pointer;min-height:44px;align-content:center;font-weight:700;line-height:1.6}
.planner-editorial .nrs-snap-sub{display:block;line-height:1.6;margin-top:.5rem;font-size:.85rem;color:#49616a}
.planner-editorial .retirement-policy p,.planner-editorial .goals-simple p{margin-block:.65rem;line-height:1.75}
.planner-editorial .goals-simple-choices button{border-radius:8px;min-height:48px;text-align:center;line-height:1.5}
.planner-editorial .goal-quick-grid{gap:1rem}
.planner-editorial .planner-results-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.planner-editorial .planner-results-nav a{flex:1 1 130px;min-height:44px;padding:.7rem;text-align:center;line-height:1.5}
.planner-editorial #planner-review{padding:1rem 1.25rem;margin-bottom:1.5rem}
.planner-editorial #planner-review summary{min-height:44px;line-height:1.6;display:list-item}
.planner-editorial .freedom-card{margin:0 0 1.5rem;padding:1.75rem}
.planner-editorial .freedom-age{line-height:1.3;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.planner-editorial .freedom-metrics strong,.planner-editorial .chart-year-summary strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.5}
.planner-editorial .freedom-card details summary{padding:.5rem 0;line-height:1.6}
.planner-editorial .freedom-table-wrap{overscroll-behavior-inline:contain;border-radius:8px}
.planner-editorial .freedom-card th{background:#e6efea;font-weight:500;line-height:1.6}
.planner-editorial .freedom-card td{line-height:1.6}
.planner-editorial .nrs-screen{margin-bottom:1.5rem;padding-bottom:1.5rem}
.planner-editorial .nrs-screen--hero .results-screen-title{color:#49616a;letter-spacing:0;line-height:1.6}
.planner-editorial .nrs-section-title{line-height:1.5;overflow-wrap:break-word}
.planner-editorial .nrs-snap-grid,.planner-editorial .chart-year-summary{gap:.75rem}
.planner-editorial .nrs-snap-card{min-width:0;padding:1.1rem;border:1px solid var(--planner-line);border-radius:10px}
.planner-editorial .nrs-hero-sentence,.planner-editorial .nrs-section-sub{line-height:1.8}
.planner-editorial .planner-journey-wrap--hero{margin:0 0 1.5rem!important;padding:1rem!important;border:1px solid var(--planner-line);border-radius:12px;background:#fff;min-width:0}
.planner-editorial .chart-header-row{gap:.75rem;flex-wrap:wrap}
.planner-editorial .chart-actions{gap:.5rem;flex-shrink:0}
.planner-editorial .chart-action-btn{min-height:44px;min-width:44px;line-height:1.4}
.planner-editorial .planner-return-results{margin:0 0 1rem;min-height:44px;line-height:1.5;padding:.6rem 1rem}
.planner-editorial #finit-cookie-banner{padding:12px 18px!important;max-height:40dvh;overflow-y:auto;border-top:1px solid #40566a}
.planner-editorial #finit-cookie-banner p{font-size:.875rem!important;line-height:1.6!important;margin:0 0 .65rem!important}
.planner-editorial #finit-cookie-banner button{min-height:44px;font-size:.9rem!important;line-height:1.4;padding:.6rem 1rem!important;border-radius:8px!important}
@media(min-width:1024px){.planner-editorial .planner-panel:not(#step-6){max-width:860px}.planner-editorial #step-6{max-width:1280px;width:100%}.planner-editorial #step-6 .nrs-card.calc-card{gap:1.5rem;padding:2rem!important}}
@media(max-width:767px){
 .planner-editorial .calc-page-header{position:relative!important;top:auto!important;padding:.7rem 1rem;min-height:58px;gap:.5rem}
 .planner-editorial .planner-main,.planner-editorial .planner-main.has-sticky-visible{padding:1rem .875rem 2rem!important}
 .planner-editorial .planner-hero{padding:.25rem 0 .75rem!important;margin-bottom:.75rem!important}
 .planner-editorial .planner-title{font-size:clamp(1.7rem,7vw,2.15rem);margin-bottom:.6rem}
 .planner-editorial .planner-badge{font-size:.8rem;margin-bottom:.5rem}
 .planner-editorial .planner-subtitle{font-size:.95rem;line-height:1.7;margin-bottom:.75rem}
 .planner-editorial .planner-trust-badges{padding-top:.6rem;gap:.25rem .8rem}
 .planner-editorial .trust-badge{font-size:.8rem!important}
 .planner-editorial .planner-panel .calc-card{padding:1.25rem!important;border-radius:12px!important}
 .planner-editorial .planner-steps{margin-bottom:.5rem!important;justify-content:space-between}
 .planner-editorial .step-track-line{display:none!important}
 .planner-editorial .step-label{display:none!important}
 .planner-editorial .step-num{width:32px!important;height:32px!important;min-width:32px!important;border-width:1px}
 .planner-editorial .planner-progress-label{margin-bottom:1rem!important;font-size:.8rem!important}
 .planner-editorial .journey-guide{padding:.4rem 0 1rem}
 .planner-editorial .journey-guide>span{font-size:.8rem}
 .planner-editorial .journey-guide h2{font-size:1.5rem}
 .planner-editorial .journey-guide p{font-size:.925rem}
 .planner-editorial .planner-panel .calc-title{font-size:1.3rem}
 .planner-editorial .planner-panel .calc-desc{font-size:.95rem;margin-bottom:1rem}
 .planner-editorial .planner-nav-btns{flex-direction:column;gap:.65rem;margin-top:1.5rem;padding-top:1rem}
 .planner-editorial .planner-nav-btns button{width:100%}
 .planner-editorial .planner-nav-btns .planner-next{order:-1}
 .planner-editorial #step-3 .planner-nav-btns,.planner-editorial #step-4 .planner-nav-btns,.planner-editorial #step-5 .planner-nav-btns{padding-bottom:0!important}
 .planner-editorial .planner-sticky-summary{display:none!important}
 .planner-editorial .retirement-policy,.planner-editorial .goals-simple,.planner-editorial .property-plan,.planner-editorial #goals-advanced{padding:1rem}
 .planner-editorial .goal-quick-grid{grid-template-columns:1fr}
 .planner-editorial .goal-quick-actions button{flex:1 1 100%}
 .planner-editorial .freedom-card{padding:1.2rem}
 .planner-editorial .freedom-age{font-size:2rem}
 .planner-editorial .freedom-metrics{grid-template-columns:1fr}
 .planner-editorial .freedom-metrics strong{font-size:1.35rem}
 .planner-editorial .freedom-card p{font-size:.925rem}
 .planner-editorial .nrs-screen--hero{padding-block:1rem!important}
 .planner-editorial .nrs-hero-pct{font-size:2.75rem}
 .planner-editorial .planner-results-nav a{flex-basis:calc(50% - .5rem);font-size:.875rem}
 .planner-editorial .chart-header-row{align-items:flex-start;flex-direction:column}
 .planner-editorial .chart-actions{align-self:stretch;justify-content:flex-end}
 .planner-editorial .chart-year-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .planner-editorial .chart-year-summary strong{font-size:1.1rem}
 .planner-editorial .planner-journey-wrap--hero{padding:.75rem!important}
 .planner-editorial #finit-cookie-banner{padding:10px 14px max(10px,env(safe-area-inset-bottom))!important}
 .planner-editorial #finit-cookie-banner p{font-size:.8rem!important;line-height:1.5!important}
 .planner-editorial #finit-wa-btn{bottom:calc(1rem + env(safe-area-inset-bottom))!important}
}
@media(prefers-reduced-motion:reduce){.planner-editorial *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Keep helper text and inactive steps readable on their actual surfaces. */
.planner-editorial .planner-name-hint,.planner-editorial .input-hint,.planner-editorial .step1-section-desc-sm,.planner-editorial .nrs-section-sub,.planner-editorial .nrs-hero-sentence,.planner-editorial .nrs-hero-label{opacity:1!important;color:#52616a!important}
.planner-editorial .planner-step:not(.active):not(.completed) .step-num{opacity:1!important;color:#d3dfe7!important;border-color:#587082!important;background:#12314a!important}
.planner-editorial .planner-step.active .step-num{opacity:1!important;background:#c4ae6a!important;color:#071e36!important;border-color:#c4ae6a!important}
.planner-editorial .planner-step.completed .step-num{opacity:1!important;color:#d8eee7!important;border-color:#65a995!important}
.planner-editorial .planner-main [id],.planner-editorial .planner-main details{scroll-margin-top:5rem}
@media(max-width:767px){.planner-editorial .planner-main [id],.planner-editorial .planner-main details{scroll-margin-top:1rem}}
/* One guide per step, without repeated commentary above the form. */
.planner-editorial .step-echo,.planner-editorial .micro-ack-area{display:none!important}
@media(max-width:767px){
 .planner-editorial .retirement-vision-card{display:flex;flex-direction:column;align-items:stretch;gap:1rem;padding:1rem;min-width:0}
 .planner-editorial .retirement-vision-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0;width:100%;gap:.5rem}
 .planner-editorial .retirement-vision-input-row{display:flex;flex-wrap:nowrap;width:auto;max-width:100%;min-width:0;align-self:flex-start}
 .planner-editorial #pl-retire-age-visible{flex:0 1 72px;width:72px;min-width:48px}
 .planner-editorial .retirement-vision-input-row button{flex:0 0 44px;min-width:44px;min-height:44px}
}
.planner-editorial .aha-toast,.planner-editorial .step-momentum{display:none!important}
.planner-editorial .planner-resume-banner{max-width:860px;width:100%;padding:1rem;margin:0 auto 1rem;border:1px solid #35556b;border-radius:12px;background:#102f45;box-shadow:none;gap:.75rem}
.planner-editorial .planner-resume-banner p{font-size:.9rem;line-height:1.6;margin:0;color:#d4e2e7}
.planner-editorial .planner-data-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.planner-editorial .planner-data-btn,.planner-editorial .planner-clear-btn{min-height:44px;border:1px solid #688393;border-radius:7px;font:inherit;font-size:.85rem;padding:.5rem .75rem;background:#16394d;color:#edf5f3;box-shadow:none}
@media(max-width:767px){
 .planner-editorial .planner-mobile-cta{position:static!important;inset:auto!important;max-width:100%;width:100%;margin:1.5rem 0 0;padding:1rem;z-index:auto;backdrop-filter:none;-webkit-backdrop-filter:none}
 .planner-editorial #finit-wa-btn{display:none!important}
 .planner-editorial .planner-resume-banner{padding:.875rem;gap:.5rem}
 .planner-editorial .planner-resume-banner p{font-size:.825rem}
}

/* Closing copy — shown once, at the top of the results step. */
.planner-editorial .nrs-closing-copy{max-width:640px;margin:0 auto 1.5rem;text-align:center}
.planner-editorial .nrs-closing-line{margin:0 0 .35rem;line-height:1.6;color:var(--planner-ink,#173840)}
.planner-editorial .nrs-closing-line--main{font-size:1.25rem;font-weight:800;color:var(--planner-ink,#173840);margin-bottom:.4rem}
.planner-editorial .nrs-closing-line:not(.nrs-closing-line--main){font-size:.95rem;color:#51707a}

/* 4%-withdrawal coverage figure — always paired with an assumption disclaimer,
   never shown as a bare number (see spec: estimate, not a retirement guarantee). */
.planner-editorial .nrs-hero-disclaimer{display:block;font-size:.78rem;line-height:1.5;color:#7c8f94;margin-top:.5rem}

/* Reduced motion: the closing copy and disclaimer never animate in; they are
   plain text available immediately regardless of motion preference. */
@media (prefers-reduced-motion: reduce){
 .planner-editorial .nrs-closing-copy,.planner-editorial .nrs-hero-disclaimer{animation:none!important;transition:none!important}
}

.planner-editorial .planner-reveal[hidden] { display: none; }
.planner-editorial .planner-reveal {
  padding: clamp(2.5rem, 8vw, 6rem) 1.25rem;
  margin-bottom: 1.75rem;
  border-radius: 14px;
  text-align: center;
  color: #f4faf8;
  background: radial-gradient(ellipse at 50% 75%, #164c52, #102538 72%);
}
.planner-reveal h2 { margin: 0; font-size: clamp(1rem, 3vw, 1.35rem); color: inherit; }
.planner-reveal .planner-reveal-age {
  margin: .7rem 0;
  font-size: clamp(2rem, 8vw, 5.25rem);
  font-weight: 800;
  line-height: 1.18;
  text-wrap: balance;
  color: #f4da97;
}
.planner-reveal p { margin: .75rem auto; max-width: 36rem; line-height: 1.7; }
.planner-reveal a {
  display: inline-block;
  margin-top: 1rem;
  padding: .8rem 1rem;
  border: 1px solid #87b8ae;
  border-radius: 8px;
  color: inherit;
}
#planner-life-timeline { scroll-margin-top: 5rem; }
@media (prefers-reduced-motion: no-preference) {
  .planner-panel.active .planner-reveal:not([hidden]) .planner-reveal-age {
    animation: planner-age-reveal 500ms ease-out both;
  }
}
@keyframes planner-age-reveal {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
