/* 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; scroll-margin-top:100px; }
/* 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:not(.path-duration) { 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:center; gap:12px 24px; border-top:1px solid #b9cdc2; padding:18px 0 20px; margin-top:auto; }
.path-next { margin-left:auto; 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-timing-note { display:block; margin-top:12px; color:var(--muted); font-size:.875rem; line-height:1.5; }
.path-outputs-plan { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 40px; }
.path-outputs-plan>li,.path-outputs-plan>li+li { padding:0; border:0; }
.path-details-link { border:0; background:none; color:var(--green); cursor:pointer; }
.path-details-link:focus-visible,.path-next:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
@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) {
  .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; }
  .path-outputs-plan>li,.path-outputs-plan>li+li { padding-inline:0; }
}
@media(max-width:760px) {
  .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:not(.path-duration) { 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) {
  .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-next { align-self:flex-end; }
}
