/* Roadmap: four visible outputs, then the terms and one next action. */
.roadmap-plan { border-top:1px solid var(--line); padding-block:78px 68px; }
/* Plan details share the How it works container and its section-end spacing. */
.engagement-path .roadmap-plan { margin-top:var(--space-section); padding-block:var(--space-group) 0; }
.plan-heading h2 { font-size:clamp(38px,4.2vw,58px); margin-top:18px; }
.plan-heading>p:last-child { font-size:18px; line-height:1.7; margin-top:18px; max-width:970px; }
.plan-list-label { font-size:16px; font-weight:800; color:var(--ink); margin-top:36px; }
.plan-outputs { list-style:none; padding:0; margin:8px 0 28px; }
.plan-outputs li { display:grid; grid-template-columns:45px minmax(0,.85fr) minmax(0,1.2fr); gap:24px; padding:25px 0; border-bottom:1px solid #aebfb5; align-items:start; }
.plan-outputs li:last-child { border:0; }
.plan-output-number { align-self:stretch; position:relative; padding-top:3px; color:#668076; font-size:15px; font-weight:700; line-height:1.6; }
.plan-outputs h3 { font-size:25px; line-height:1.3; letter-spacing:-.035em; }
.plan-outputs p { font-size:17px; line-height:1.65; }
.plan-termbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:25px; padding:var(--card-inset); border-radius:8px; background:var(--green); color:white; }
.plan-termbar>div+div { border-left:1px solid #709588; padding-left:27px; }
.plan-termbar>.plan-action { grid-column:1/-1; border:0; padding:0; }
.plan-term-value { font-size:32px; font-weight:800; line-height:1.25; color:white; letter-spacing:-.045em; }
.plan-term-label { font-size:14px; color:#c6dace; line-height:1.5; margin-top:5px; }
.plan-action .button { display:grid; grid-template-columns:24px minmax(0,1fr) 24px; width:100%; max-width:none; min-height:56px; font-size:15px; padding:16px 20px; gap:12px; text-align:center; }
.plan-action .button>.plan-action-label { grid-column:2; font:inherit; line-height:1.5; }
.plan-action svg { grid-column:3; fill:none; stroke:currentColor; stroke-width:1.4; width:24px; height:24px; flex:none; }
.plan-fee-levels { border-block:1px solid var(--line); margin-top:20px; }
.plan-fee-levels>summary { display:flex; align-items:center; flex-wrap:wrap; gap:18px 25px; padding:18px 8px; min-height:60px; font-size:14px; font-weight:800; line-height:1.5; }
.plan-fee-levels>summary>span:first-child { display:flex; align-items:center; gap:15px; }
.plan-fee-levels>summary svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; transition:transform .2s; }
.plan-fee-levels[open]>summary svg { transform:rotate(180deg); }
.plan-fee-hint { padding-left:25px; border-left:1px solid var(--line); color:var(--muted); font-weight:400; }
.plan-fee-body { border-top:1px solid var(--line); padding:24px 8px 25px; }
.plan-fee-body fieldset { max-width:820px; min-width:0; margin:0; padding:0; border:0; }
.plan-fee-body legend { font-size:14px; font-weight:700; margin-bottom:14px; padding:0; }
.plan-level-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.plan-level-grid label { display:flex; align-items:center; gap:14px; padding:16px; border:1px solid #b0c5b8; border-radius:6px; cursor:pointer; }
.plan-level-grid label:has(input:checked) { border-color:var(--green); background:var(--sage); }
.plan-level-grid label:hover { border-color:var(--green); }
.plan-level-grid input,.plan-unsure input { width:17px; height:17px; flex:none; margin:0; accent-color:var(--green); }
.plan-level-grid small { display:block; font-size:14px; line-height:1.5; }
.plan-level-grid strong { display:block; font-size:27px; line-height:1.4; letter-spacing:-.035em; }
.plan-unsure { display:flex; align-items:center; gap:10px; width:fit-content; min-height:44px; margin-top:10px; font-size:14px; cursor:pointer; }
.plan-scope-note { font-size:13px; line-height:1.6; margin-top:5px; }

/* A route selects information. Its marker does not indicate completed work. */
.engagement-path { background:var(--sage); padding-block:69px 72px; }
.path-heading { text-align:center; }
.path-heading h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(37px,4vw,57px); font-weight:600; line-height:1.14; letter-spacing:-.035em; margin-top:20px; }
.path-heading>p:last-child { font-size:18px; line-height:1.7; max-width:1000px; margin:20px auto 0; }
.path-explorer { --path-index:0; }
/* One selection surface follows the tab grid; no detached progress marker. */
.path-steps { --step-gap:6px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--step-gap); position:relative; margin:43px 0 24px; padding:6px; isolation:isolate; border-radius:22px; background:#cbded3; box-shadow:inset 0 0 0 1px #0a3b3210; }
.path-selection { position:absolute; left:6px; top:6px; bottom:6px; width:calc((100% - 12px - 2 * var(--step-gap))/3); border-radius:16px; background:var(--paper); box-shadow:0 2px 7px #0a3b3214,0 0 0 1px #0a3b320b; transform:translateX(calc(var(--path-index) * (100% + var(--step-gap)))); transition:transform 320ms cubic-bezier(.22,1,.36,1); pointer-events:none; z-index:-1; }
.path-step { position:relative; display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-width:0; min-height:88px; padding:14px; text-align:left; background:transparent; border:0; border-radius:16px; color:var(--green); transition:color 180ms ease; }
.path-step-number { display:flex; align-items:center; justify-content:center; flex:none; width:36px; height:36px; border-radius:50%; border:1px solid #7b9f8f; background:transparent; font-family:var(--font); font-size:14px; font-weight:600; line-height:1; transition:background 180ms ease,border-color 180ms ease; }
.path-step-copy { min-width:0; }
.path-step-copy strong { display:block; font-family:var(--font); font-size:25px; font-weight:750; line-height:1.15; }
.path-step-copy>span { display:block; font-size:14px; line-height:1.4; margin-top:4px; }
.path-step:hover:not([aria-selected=true]) .path-step-number { background:#ffffff50; border-color:var(--green); }
.path-step[aria-selected=true] .path-step-number { background:var(--gold); border-color:var(--gold); }
.path-step:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.path-panel { padding:32px 37px 0; background:var(--paper); border:1px solid #8fb4a3; border-radius:12px; display:flex; flex-direction:column; min-height:407px; }
.path-panel-head { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; align-items:start; min-height:130px; padding-block:8px 26px; }
.path-kicker { color:var(--green); font-size:12px; font-weight:800; letter-spacing:.13em; line-height:1.5; text-transform:uppercase; }
.path-title { font-family:Georgia,'Times New Roman',serif; font-size:clamp(36px,3.65vw,51px); font-weight:600; line-height:1.13; letter-spacing:-.035em; margin-top:16px; }
.path-phase-summary { border-left:1px solid #b9cdc2; padding-left:31px; }
.path-duration { color:var(--green); font-size:29px; font-weight:800; line-height:1.25; letter-spacing:-.035em; }
.path-phase-summary>p:last-child { font-size:16px; line-height:1.65; margin-top:10px; }
.path-result-group { border-top:1px solid #b9cdc2; padding-block:25px 27px; }
.path-output-label { font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; line-height:1.5; color:var(--green); }
.path-outputs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:22px 0 0; padding:0; }
.path-outputs>li { padding-right:28px; }
.path-outputs>li+li { padding-left:28px; border-left:1px solid #b9cdc2; }
.path-outputs>li:last-child { padding-right:0; }
.path-outputs h4 { font-size:21px; line-height:1.3; letter-spacing:-.025em; }
.path-outputs p { font-size:16px; line-height:1.6; margin-top:8px; }
.path-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:12px 24px; border-top:1px solid #b9cdc2; padding:18px 0 20px; margin-top:auto; }
.path-fees { min-width:0; }
.path-fees>summary { display:inline-flex; gap:14px; align-items:center; min-height:48px; font-size:14px; font-weight:700; line-height:1.5; }
.path-fees>summary>.expand-icon { margin-left:0; }
.path-fees>div { min-width:245px; max-width:430px; padding:14px 17px; margin-top:3px; background:var(--sage); border:1px solid #c1d4c6; border-radius:5px; }
.path-fees>div>p { font-size:12px; line-height:1.5; margin-bottom:8px; }
.path-fees dl>div { display:flex; align-items:baseline; justify-content:space-between; gap:25px; padding:5px 0; font-size:14px; line-height:1.5; }
.path-fees dt { color:var(--muted); }
.path-fees dd { font-weight:800; color:var(--green); }
.path-next { display:inline-flex; align-items:center; justify-content:space-between; gap:18px; min-height:48px; max-width:100%; padding:12px 23px; border:1px solid var(--green); border-radius:28px; background:var(--green); color:white; font-size:14px; font-weight:700; line-height:1.5; transition:background .2s; }
.path-next:hover { background:#1a5749; }
.path-next svg { width:23px; height:23px; flex:none; fill:none; stroke:currentColor; stroke-width:1.4; transition:transform .2s; }
.path-next:hover svg { transform:translateX(3px); }
.path-next.path-return svg { transform:rotate(90deg); }
@media(prefers-reduced-motion:no-preference) {
  .path-panel.is-changing .path-panel-head,.path-panel.is-changing .path-result-group { animation:path-content-in 200ms ease-out both; }
}
@keyframes path-content-in { from { opacity:.4; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1050px) {
  .plan-outputs li { grid-template-columns:35px minmax(0,.9fr) minmax(0,1.1fr); gap:20px; }
  .plan-outputs h3 { font-size:23px; }
  .plan-outputs p { font-size:16px; }
  .path-step { gap:10px; padding-inline:12px; }
  .path-step-number { width:34px; height:34px; font-size:14px; }
  .path-step-copy strong { font-size:26px; }
  .path-step-copy>span { font-size:13px; }
  .path-panel { padding-inline:29px; }
  .path-panel-head { gap:29px; }
  .path-title { font-size:39px; }
  .path-phase-summary { padding-left:26px; }
  .path-outputs h4 { font-size:19px; }
  .path-outputs>li { padding-right:20px; }
  .path-outputs>li+li { padding-left:20px; }
}
@media(max-width:760px) {
  .roadmap-plan { padding-block:56px 50px; }
  .plan-heading h2 { font-size:38px; }
  .plan-heading>p:last-child { font-size:16px; }
  .plan-list-label { margin-top:28px; font-size:15px; }
  .plan-outputs li { grid-template-columns:32px minmax(0,1fr); gap:8px 16px; padding-block:23px; }
  .plan-output-number { grid-row:1/3; }
  .plan-outputs h3 { font-size:23px; }
  .plan-outputs p { grid-column:2; }
  .plan-termbar { gap:22px; padding:23px; }
  .plan-term-value { font-size:28px; }
  .plan-term-label { font-size:13px; }
  .plan-termbar>div+div { padding-left:22px; }
  .plan-action .button { max-width:none; }
  .plan-fee-hint { border:0; padding-left:0; }
  .plan-level-grid label { padding:12px; gap:10px; }
  .plan-level-grid strong { font-size:24px; }
  .engagement-path { padding-block:53px 49px; }
  .path-heading h2 { font-size:38px; margin-top:16px; }
  .path-heading>p:last-child { font-size:16px; margin-top:17px; }
  .path-steps { margin-top:30px; }
  .path-step { flex-direction:column; align-items:center; justify-content:flex-start; text-align:center; min-height:126px; padding:12px 6px; gap:9px; border-radius:16px; }
  .path-step-number { width:32px; height:32px; font-size:14px; }
  .path-step-copy strong { font-size:25px; }
  .path-step-copy>span { font-size:13px; margin-top:5px; }
  .path-panel { min-height:0; padding:27px 25px 0; }
  .path-panel-head { grid-template-columns:1fr; gap:22px; padding-top:0; padding-bottom:25px; }
  .path-title { font-size:38px; margin-top:12px; }
  .path-kicker { font-size:11px; }
  .path-phase-summary { border:0; padding:0; }
  .path-duration { font-size:24px; }
  .path-phase-summary>p:last-child { margin-top:8px; font-size:16px; }
  .path-result-group { padding-block:24px 4px; }
  .path-output-label { font-size:11px; }
  .path-outputs { grid-template-columns:1fr; gap:0; margin-top:5px; }
  .path-outputs>li,.path-outputs>li+li { padding:19px 0; border-left:0; border-bottom:1px solid #d2dfd7; }
  .path-outputs>li:last-child { border-bottom:0; }
  .path-outputs h4 { font-size:21px; }
  .path-outputs p { font-size:16px; margin-top:5px; }
  .path-footer { padding-block:15px 19px; gap:12px; }
  .path-next { padding-inline:18px; }
}
@media(max-width:450px) {
  .plan-heading h2 { font-size:35px; }
  .plan-termbar { gap:19px; padding:21px; }
  .plan-term-value { font-size:25px; }
  .plan-term-label { font-size:12px; }
  .plan-termbar>div+div { padding-left:17px; }
  .plan-action .button { font-size:14px; padding-inline:15px; }
  .plan-fee-levels>summary { gap:9px; padding-inline:0; }
  .plan-fee-hint { flex-basis:100%; font-size:13px; }
  .plan-fee-body { padding-inline:0; }
  .plan-level-grid { grid-template-columns:1fr; gap:9px; }
  .plan-level-grid label>span { display:flex; flex:1; align-items:center; justify-content:space-between; gap:15px; }
  .plan-level-grid strong { font-size:22px; }
  .path-heading h2 { font-size:35px; }
  .path-step-copy strong { font-size:23px; }
  .path-step-copy>span { font-size:12px; }
  .path-panel { padding-inline:21px; }
  .path-title { font-size:34px; }
  .path-footer { flex-direction:column; }
  .path-fees { width:100%; }
  .path-fees>div { min-width:0; width:100%; }
  .path-next { align-self:flex-end; }
}
