.planner-page{background:var(--paper)}
.planner-hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:46rem;background:var(--ink);color:#fff}
.planner-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,8rem) clamp(1.2rem,6vw,6.5rem)}
.planner-hero-copy .eyebrow{color:var(--accent-2)}
.planner-hero-copy h1{max-width:11ch;font-size:clamp(3.4rem,6.7vw,7rem);margin-bottom:1.6rem}
.planner-hero-copy .lede{color:rgba(255,255,255,.78)}
.planner-hero-copy .button{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.planner-hero-note{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:2rem;color:rgba(255,255,255,.68);font-size:.82rem}
.planner-hero-note span{display:inline-flex;align-items:center;min-height:2rem;padding:.35rem .75rem;border:1px solid rgba(255,255,255,.2);border-radius:999px}
.planner-hero-media{position:relative;overflow:hidden;min-height:38rem}
.planner-hero-media img{width:100%;height:100%;object-fit:cover}
.planner-hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,23,20,.5),transparent 55%),linear-gradient(0deg,rgba(22,23,20,.3),transparent 45%)}
.planner-section{padding-top:clamp(4.5rem,7vw,7rem)}
.planner-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,8rem);margin-bottom:3rem}
.planner-intro h2{max-width:10ch}
.planner-intro-copy{max-width:48rem;font-size:1.05rem}
.planner-intro-copy strong{font-weight:800}
.planner-app{max-width:78rem;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:2rem;box-shadow:var(--shadow);overflow:hidden}
.planner-app-header{padding:1.4rem 1.5rem 1.2rem;border-bottom:1px solid var(--line);background:rgba(231,223,210,.55)}
.planner-app-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.planner-app-header-top strong{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.planner-app-header-top span{font-size:.8rem;color:rgba(22,23,20,.62)}
.planner-progress{display:grid;grid-template-columns:repeat(9,1fr);gap:.4rem;list-style:none;padding:0;margin:0}
.planner-progress-step{display:flex;flex-direction:column;gap:.25rem;min-width:0;color:rgba(22,23,20,.48)}
.planner-progress-step span{display:grid;place-items:center;width:1.7rem;height:1.7rem;border:1px solid currentColor;border-radius:50%;font-family:var(--serif);font-size:.85rem}
.planner-progress-step strong{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planner-progress-step.is-current{color:var(--accent)}
.planner-progress-step.is-current span{background:var(--accent);border-color:var(--accent);color:#fff}
.planner-progress-step.is-complete{color:var(--sage)}
.planner-progress-step.is-complete span{background:var(--sage);border-color:var(--sage);color:#fff}
.planner-form{margin:0}
.planner-stage{padding:clamp(2rem,5vw,4.5rem)}
.planner-step-fieldset{border:0;padding:0;margin:0}
.planner-step-fieldset h2,.planner-review h2,.planner-result h2{font-size:clamp(2.5rem,4.7vw,4.7rem);max-width:12ch;margin-bottom:1.2rem;scroll-margin-top:2rem}
.planner-step-intro,.planner-result-lede{max-width:47rem;font-size:1.05rem;color:rgba(22,23,20,.7);margin-bottom:2.3rem}
.planner-choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.planner-choice-card,.planner-goal-card{position:relative;display:block;cursor:pointer}
.planner-choice-card input,.planner-goal-card input{position:absolute;opacity:0;pointer-events:none}
.planner-choice-card span,.planner-goal-card span{display:flex;flex-direction:column;gap:.45rem;height:100%;padding:1.2rem;border:1px solid var(--line);border-radius:1rem;background:var(--paper);transition:border-color .18s,transform .18s,background .18s,box-shadow .18s}
.planner-choice-card span{min-height:9rem}
.planner-choice-card strong,.planner-goal-card strong{font-size:.95rem;line-height:1.3}
.planner-choice-card small,.planner-goal-card small{font-size:.78rem;line-height:1.45;color:rgba(22,23,20,.65)}
.planner-choice-card:hover span,.planner-goal-card:hover span{transform:translateY(-2px);border-color:rgba(139,87,42,.55)}
.planner-choice-card input:focus-visible+span,.planner-goal-card input:focus-visible+span{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px var(--ink)}
.planner-choice-card input:checked+span,.planner-goal-card input:checked+span{background:#fff;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.planner-choice-card input:checked+span:before,.planner-goal-card input:checked+span:before{content:"Selected";align-self:flex-start;padding:.22rem .45rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.planner-goal-block{margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--line)}
.planner-goal-block h3{font-family:var(--serif);font-size:1.8rem;font-weight:400}
.planner-goal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.planner-goal-card span{min-height:12rem;background:#fff}
.planner-prompt{padding:1rem 1.2rem;margin:1.5rem 0 0;border-left:3px solid var(--accent);background:var(--paper);color:rgba(22,23,20,.7)}
.planner-size-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;max-width:47rem}
.planner-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
.planner-field{display:flex;flex-direction:column;gap:.45rem}
.planner-field label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.planner-field select,.planner-field input{width:100%;min-height:3.35rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.65rem;background:rgba(243,238,229,.55);font:inherit;color:var(--ink)}
.planner-field select:hover,.planner-field input:hover{border-color:rgba(22,23,20,.35)}
.planner-help{margin:0 0 .2rem;font-size:.8rem;line-height:1.5;color:rgba(22,23,20,.62)}
.planner-unknown{display:flex;align-items:center;gap:.65rem;min-height:3.35rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:.65rem;background:var(--paper);font-weight:700;cursor:pointer}
.planner-unknown input{width:1.2rem;height:1.2rem}
.planner-reference-card{max-width:52rem;margin-top:1.8rem;padding:1.2rem 1.3rem;border-radius:1rem;background:var(--paper-2);border:1px solid var(--line)}
.planner-reference-card span,.planner-review-scenario span,.planner-result-grid span,.planner-range-block>span{display:block;margin-bottom:.35rem;color:var(--accent);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.planner-reference-card strong{font-family:var(--serif);font-size:1.45rem;font-weight:400}
.planner-reference-card p{margin:.5rem 0 0;color:rgba(22,23,20,.68)}
.planner-errors{display:none;margin:0;padding:1rem 1.5rem;background:#f5d9d2;color:#6f2619;font-weight:700}
.planner-errors.is-visible{display:block}
.planner-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.planner-status.is-error{position:static;width:auto;height:auto;margin:0;padding:1rem 1.5rem;overflow:visible;clip:auto;white-space:normal;background:#f5d9d2;color:#6f2619}
.planner-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem clamp(2rem,5vw,4.5rem);border-top:1px solid var(--line);background:rgba(243,238,229,.5)}
.planner-nav-spacer{flex:1}
.planner-back{min-height:48px;padding:.7rem 1rem;border:0;background:transparent;text-decoration:underline;text-underline-offset:.3rem;font:inherit;font-weight:800;cursor:pointer}
.planner-next{min-width:11rem}
.planner-review-scenario{padding:1.4rem;margin-bottom:1.5rem;border-radius:1rem;background:var(--ink);color:#fff}
.planner-review-scenario span{color:var(--accent-2)}
.planner-review-scenario strong{display:block;font-family:var(--serif);font-size:2rem;font-weight:400}
.planner-review-scenario p{max-width:50rem;margin:.5rem 0 0;color:rgba(255,255,255,.72)}
.planner-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.planner-review-grid>section{padding:1.2rem;border:1px solid var(--line);border-radius:1rem}
.planner-review-grid h3{margin-bottom:1rem}
.planner-review-grid dl{margin:0}
.planner-review-grid dl div{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.65rem 0;border-top:1px solid var(--line)}
.planner-review-grid dt{font-size:.78rem;color:rgba(22,23,20,.62)}
.planner-review-grid dd{margin:0;text-align:right;font-weight:700;font-size:.84rem}
.planner-review-note{margin:1.5rem 0 0;color:rgba(22,23,20,.68)}
.planner-result{max-width:66rem}
.planner-range-block{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.5rem 0 1.2rem;margin:1rem 0 0;border-top:1px solid var(--line)}
.planner-range-block strong{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,7vw,6rem);line-height:1;color:var(--ink)}
.planner-range-block small{font-size:.78rem;color:rgba(22,23,20,.6)}
.planner-price-notice{margin:.8rem 0 2rem;padding:1.1rem 1.2rem;border-left:4px solid var(--accent);background:#f8f1e7}
.planner-price-notice strong{display:block;margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--accent)}
.planner-price-notice p{margin:0;max-width:56rem;font-size:.9rem;color:rgba(22,23,20,.74)}
.planner-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:2rem 0}
.planner-result-grid section{padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:rgba(243,238,229,.46)}
.planner-result-grid h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;margin:.25rem 0 .65rem;text-transform:none}
.planner-result-grid p{font-size:.86rem;margin:0;color:rgba(22,23,20,.68)}
.planner-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.planner-result-section{padding:1.4rem;margin:1rem 0;border-radius:1rem;background:var(--paper)}
.planner-result-section h3{margin-bottom:.8rem}
.planner-result-section ul,.planner-consult-reasons ul{margin:0;padding-left:1.2rem}
.planner-result-section li,.planner-consult-reasons li{margin:.45rem 0}
.planner-warning-section{background:#f8efd7}
.planner-consult-reasons{padding:1.4rem;margin:1.5rem 0 2rem;border:1px solid rgba(139,87,42,.35);border-radius:1rem;background:#f8efd7}
.planner-consult-reasons h3{margin-bottom:.8rem}
.planner-details{margin:1.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.planner-details summary{padding:1rem 0;font-weight:800;cursor:pointer}
.planner-details p{max-width:55rem;color:rgba(22,23,20,.7)}
.planner-overlap-note{font-size:.82rem;font-weight:700;color:var(--accent)}
.planner-result-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.planner-button-secondary{background:#fff;color:var(--ink)}
.planner-button-secondary:hover{color:#fff}
.planner-text-button{min-height:46px;padding:.7rem .5rem;border:0;background:transparent;text-decoration:underline;text-underline-offset:.3rem;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.planner-version-note{margin:1.5rem 0 0;font-size:.72rem;color:rgba(22,23,20,.5)}
.planner-explainer{background:var(--paper-2)}
.planner-explainer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.planner-explainer-grid article{padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:rgba(255,255,255,.42)}
.planner-explainer-grid span{display:block;margin-bottom:.6rem;font-family:var(--serif);font-size:2rem;color:var(--accent)}
.planner-explainer-grid h3{margin-bottom:.6rem}
.planner-explainer-grid p{margin:0;color:rgba(22,23,20,.68)}
@media(max-width:1000px){
  .planner-choice-grid{grid-template-columns:repeat(2,1fr)}
  .planner-goal-grid{grid-template-columns:1fr 1fr}
  .planner-progress-step strong{display:none}
  .planner-result-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .planner-hero{grid-template-columns:1fr;min-height:0}
  .planner-hero-copy{padding:4.5rem 1.2rem}
  .planner-hero-copy h1{font-size:clamp(3.1rem,15vw,5.2rem)}
  .planner-hero-media{min-height:24rem}
  .planner-intro{grid-template-columns:1fr;gap:1rem}
  .planner-app{border-radius:1.2rem;margin-left:-.2rem;margin-right:-.2rem}
  .planner-app-header{padding:1rem}
  .planner-progress{gap:.25rem}
  .planner-progress-step{align-items:center}
  .planner-progress-step span{width:1.45rem;height:1.45rem;font-size:.72rem}
  .planner-stage{padding:2rem 1.1rem 2.4rem}
  .planner-step-fieldset h2,.planner-review h2,.planner-result h2{font-size:clamp(2.35rem,11vw,3.7rem)}
  .planner-choice-grid,.planner-goal-grid,.planner-field-grid,.planner-review-grid,.planner-detail-grid,.planner-explainer-grid{grid-template-columns:1fr}
  .planner-choice-card span{min-height:0}
  .planner-goal-card span{min-height:0}
  .planner-size-layout{grid-template-columns:1fr;align-items:stretch}
  .planner-nav{padding:1rem 1.1rem;position:sticky;bottom:0;z-index:4;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}
  .planner-next{flex:1;min-width:0}
  .planner-back{padding-left:0}
  .planner-review-grid dl div{grid-template-columns:1fr;gap:.2rem}
  .planner-review-grid dd{text-align:left}
  .planner-range-block strong{font-size:clamp(2.7rem,13vw,4.4rem)}
}
@media(prefers-reduced-motion:reduce){
  .planner-choice-card span,.planner-goal-card span{transition:none}
}
