/* Bounded composition for the six-stage journey and its shared outcome. */
#approach .journey-pin{display:flex;align-items:center;padding:clamp(24px,4svh,52px) 0;min-height:0}
#approach .journey-content{width:min(1360px,calc(100% - 96px));height:100%;max-height:860px;margin:auto;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:'eyebrow eyebrow' 'steps steps' 'copy visual' 'result result';column-gap:clamp(32px,4vw,72px);row-gap:clamp(18px,3svh,32px);align-content:stretch}
#approach .journey-content>.eyebrow{grid-area:eyebrow;visibility:visible}
#approach .journey-steps{grid-area:steps;gap:8px}
#approach .journey-steps button{padding:10px 18px;font-size:14px;min-height:44px}
#approach .journey-headings{grid-area:copy;width:100%;height:auto;display:grid;align-self:center;text-align:left;z-index:2}
#approach .journey-panel{position:relative!important;inset:auto;grid-area:1/1;padding:0;align-self:center}
#approach .journey-panel h2{font-size:clamp(44px,4vw,76px);line-height:1.08;letter-spacing:-.045em;text-shadow:none;text-wrap:balance}
#approach .journey-panel p{max-width:39ch;margin:22px 0 0;font-size:clamp(17px,1.25vw,20px);line-height:1.65;text-shadow:none;text-wrap:pretty}
#approach .journey-panel p:before{display:none}
#approach .journey-model{grid-area:visual;width:100%;height:100%;min-height:0;max-height:500px;max-width:760px;transform:none;align-self:center}
#approach .journey-map{width:min(980px,63vw);height:60%;left:68%;top:20%}
#approach .journey-sand,#approach .journey-traffic{transform:none;mask-image:linear-gradient(transparent,#000 12%,#000 86%,transparent)}
#approach .journey-result{grid-area:result;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(24px,3vw,48px);padding:clamp(22px,2.5vw,36px);border:1px solid #b9d6d1;border-radius:28px;background:linear-gradient(115deg,#eef9f4,#f4f7ff 72%,#f9fbff);box-shadow:0 12px 34px #2a4a8308,inset 0 1px 0 #fff;position:relative;z-index:3}
#approach .journey-outcome{display:flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap;margin:0;font-size:clamp(32px,2.8vw,44px);line-height:1.1;letter-spacing:-.045em;text-shadow:none}
#approach .journey-outcome .outcome-number{width:34px;height:34px;flex:0 0 34px;margin:0;font-size:13px;background:#fff}
#approach .journey-outcome .outcome-copy{color:var(--blue)}
#approach .journey-outcome>.outcome-halo{inset:-12px;filter:blur(20px)}
#approach .journey-outcomes{display:grid;grid-template-columns:.85fr 1.1fr 1.3fr;align-items:center;width:100%;margin:0;padding:0;gap:0}
#approach .journey-outcomes li{min-height:50px;padding:8px clamp(12px,1.5vw,24px);border:0;border-left:1px solid #c9d8e4;border-radius:0;background:transparent;font-size:clamp(14px,1.05vw,17px);line-height:1.45;font-weight:500;text-wrap:balance}
#approach:not(.scroll-journey) .journey-content{min-height:620px;height:auto}
#approach:not(.scroll-journey) .journey-model{min-height:300px}
@media(max-width:1100px){
 #approach .journey-content{width:calc(100% - 64px);column-gap:28px}
 #approach .journey-steps button{font-size:12px;padding:9px 12px}
 #approach .journey-result{padding:22px;gap:20px}
 #approach .journey-outcome{font-size:32px;gap:8px}
 #approach .journey-outcomes li{font-size:14px;padding:8px 12px}
}
@media(max-width:900px){
 #approach .journey-pin{padding:22px 0}
 #approach .journey-content{width:min(680px,calc(100% - 48px));grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto;grid-template-areas:'eyebrow' 'steps' 'copy' 'visual' 'result';row-gap:16px}
 #approach .journey-headings{text-align:center}
 #approach .journey-panel h2{font-size:clamp(36px,5.8vw,52px)}
 #approach .journey-panel p{max-width:52ch;margin:12px auto 0;font-size:16px;line-height:1.55}
 #approach .journey-steps .step-label{display:none}
 #approach .journey-steps button{width:42px;min-width:42px;height:42px;min-height:42px;padding:0}
 #approach .journey-model{max-width:650px;max-height:370px}
 #approach .journey-map{width:95%;height:45%;left:50%;top:35%}
 #approach .journey-result{grid-template-columns:1fr;gap:14px;padding:18px 20px;border-radius:24px}
 #approach .journey-outcome{font-size:34px}
 #approach .journey-outcomes li:first-child{border-left:0}
 #approach .journey-outcomes li{min-height:38px}
 #approach:not(.scroll-journey) .journey-model{min-height:240px}
}
@media(max-width:540px){
 #approach .journey-pin{padding:18px 0}
 #approach .journey-content{width:calc(100% - 36px);row-gap:12px}
 #approach .journey-content>.eyebrow{font-size:10px;line-height:1.4}
 #approach .journey-steps{gap:7px}
 #approach .journey-steps button{width:40px;min-width:40px;height:40px;min-height:40px}
 #approach .journey-panel h2{font-size:clamp(32px,9.5vw,42px)}
 #approach .journey-panel p{font-size:14px;line-height:1.55;margin-top:10px}
 #approach .journey-result{grid-template-columns:1fr;gap:10px;padding:15px 20px;border-radius:22px}
 #approach .journey-outcome{font-size:30px}
 #approach .journey-outcome .outcome-number{width:28px;height:28px;flex-basis:28px;font-size:11px}
 #approach .journey-outcomes{grid-template-columns:1fr;justify-items:start;width:max-content;max-width:100%;margin:auto}
 #approach .journey-outcomes li{justify-content:start;min-height:26px;padding:3px 0;font-size:13px;border:0;gap:9px}
 #approach .journey-outcomes li:before{content:'';width:5px;height:5px;border-radius:50%;background:#48bf91;flex-shrink:0}
 #approach:not(.scroll-journey) .journey-content{min-height:0}
 #approach:not(.scroll-journey) .journey-model{min-height:190px}
}
@media(max-height:800px) and (min-height:600px){
 #approach .journey-pin{padding-top:14px;padding-bottom:14px}
 #approach .journey-content{row-gap:10px}
 #approach .journey-panel h2{font-size:clamp(32px,3.7vw,52px)}
 #approach .journey-panel p{font-size:15px;margin-top:12px}
 #approach .journey-result{padding:16px 22px}
 #approach .journey-outcome{font-size:32px}
}
@media(max-height:740px) and (max-width:540px){
 #approach .journey-content{row-gap:8px;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:'steps' 'copy' 'visual' 'result'}
 #approach .journey-content>.eyebrow{display:none}
 #approach .journey-panel h2{font-size:32px}
 #approach .journey-panel p{font-size:14px;margin-top:8px}
 #approach .journey-result{padding:12px 18px;gap:7px}
 #approach .journey-outcome{font-size:28px}
}

/* Large, readable stage controls with enough room for every label. */
#approach .journey-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:10px;padding:10px;border:1px solid #cbd9eb;border-radius:28px;background:linear-gradient(120deg,#eff4fc,#f7fafc);box-shadow:inset 0 1px 0 #fff,0 8px 24px #2a4a8306}
#approach .journey-steps button{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:auto;min-width:0;min-height:124px;height:auto;padding:16px 10px;border:1px solid transparent;border-radius:20px;background:transparent;color:#233f70;font-size:24px;font-weight:600;line-height:1.2;box-shadow:none;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
#approach .journey-steps button>span:first-child{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#dce7f7;color:#2a4a83;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;opacity:1;transition:background .2s,color .2s}
#approach .journey-steps .step-label{display:inline;text-transform:capitalize;white-space:nowrap}
#approach .journey-steps button[aria-pressed=true]{background:linear-gradient(135deg,#315b98,#233e70);color:#fff;border-color:#284f88;box-shadow:0 5px 12px #233e7026,inset 0 1px 0 #ffffff24}
#approach .journey-steps button[aria-pressed=true]>span:first-child{background:#68d7ae;color:#153e39;box-shadow:0 0 0 3px #ffffff12}
#approach .journey-steps button[aria-pressed=true]:after{content:'';position:absolute;width:30px;height:3px;left:calc(50% - 15px);bottom:7px;border-radius:3px;background:#68d7ae}
#approach .journey-steps button:focus-visible{outline:3px solid #299e78;outline-offset:3px}
@media(hover:hover){#approach .journey-steps button:not([aria-pressed=true]):hover{background:#fff;border-color:#b9cce4;box-shadow:0 3px 10px #2a4a8310;transform:translateY(-2px)}}
@media(min-width:1800px){
 #approach .journey-steps button{min-height:144px;font-size:26px;gap:14px;padding:20px 12px}
 #approach .journey-steps button>span:first-child{width:50px;height:50px;flex-basis:50px;font-size:24px}
}
@media(max-width:1400px){
 #approach .journey-steps button{font-size:22px;min-height:118px;gap:10px}
}
@media(max-width:1100px){
 #approach .journey-steps{gap:6px;padding:8px;border-radius:24px}
 #approach .journey-steps button{min-height:108px;padding:12px 5px;gap:10px;font-size:18px;border-radius:17px}
 #approach .journey-steps button>span:first-child{width:38px;height:38px;flex-basis:38px;font-size:20px}
}
@media(max-width:900px){
 #approach .journey-steps{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px;padding:7px;border-radius:22px}
 #approach .journey-steps button{flex-direction:row;min-height:64px;padding:10px;gap:9px;font-size:18px;border-radius:15px}
 #approach .journey-steps .step-label{display:inline}
 #approach .journey-steps button>span:first-child{width:32px;height:32px;flex-basis:32px;font-size:18px}
 #approach .journey-steps button[aria-pressed=true]:after{width:24px;left:calc(50% - 12px);height:2px;bottom:4px}
}
@media(max-width:620px){
 #approach .journey-steps button{flex-direction:column;font-size:16px;min-height:80px;gap:6px;padding:8px 4px}
}
@media(max-width:540px){
 #approach .journey-steps{gap:5px;padding:6px;border-radius:20px}
 #approach .journey-steps button{min-height:78px;font-size:15px;border-radius:13px}
 #approach .journey-steps button>span:first-child{width:28px;height:28px;flex-basis:28px;font-size:17px}
}
@media(max-width:360px){
 #approach .journey-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 #approach .journey-steps button{flex-direction:row;min-height:52px;font-size:14px;gap:6px;padding:8px 3px}
 #approach .journey-steps button>span:first-child{width:26px;height:26px;flex-basis:26px;font-size:16px}
}
@media(prefers-reduced-motion:reduce){#approach .journey-steps button,#approach .journey-steps button>span:first-child{transition:none}#approach .journey-steps button:hover{transform:none}}
/* A shared outcome panel, scaled to the navigation above it. */
#approach .journey-result{grid-template-columns:minmax(215px,1fr) minmax(0,3fr);gap:0;padding:10px;border-color:#bdd1e4;border-radius:28px;background:linear-gradient(120deg,#eef7f7,#f4f7fd 70%);box-shadow:0 10px 30px #2a4a8309;isolation:isolate;overflow:hidden}
#approach .journey-outcome{position:relative;display:flex;flex-direction:column;gap:10px;align-self:stretch;justify-content:center;min-height:142px;padding:16px 14px;margin:0;border-radius:20px;background:linear-gradient(135deg,#315b98,#233e70);font-size:38px;line-height:1.1;box-shadow:0 5px 12px #233e701a}
#approach .journey-outcome .outcome-number{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;font-size:22px;letter-spacing:0;background:#68d7ae;color:#153e39;border:0;position:relative;z-index:1}
#approach .journey-outcome .outcome-copy{color:#fff;position:relative;z-index:1}
#approach .journey-outcome .outcome-copy>span{color:#68d7ae}
#approach .journey-outcome>.outcome-halo{display:none}
#approach .journey-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;justify-items:stretch;width:100%;margin:0;padding:0 0 0 10px;gap:0}
#approach .journey-outcomes li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-width:0;min-height:142px;padding:14px 20px;border:0;border-left:1px solid #c7d7e6;border-radius:0;background:none;font-size:22px;line-height:1.25;font-weight:600;text-align:center;color:#233f70;text-wrap:balance}
#approach .journey-outcomes li:first-child{border-left:0}
#approach .journey-outcomes li:before{display:none}
#approach .benefit-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:#e0efed;color:#26765f;box-shadow:inset 0 0 0 1px #d1e6df}
#approach .benefit-icon svg{display:block;width:29px;height:29px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
#approach .benefit-label{max-width:15ch}
#approach .journey-result:after{content:'';position:absolute;bottom:0;left:28px;right:28px;height:3px;border-radius:3px;background:linear-gradient(90deg,#315b98,#48bf91);transform:scaleX(var(--journey-progress,0));transform-origin:left;pointer-events:none}
#approach .journey-steps button:after{content:'';position:absolute;left:18px;bottom:7px;width:calc(100% - 36px);height:3px;border-radius:3px;background:#48bf91;transform:scaleX(var(--stage-progress,0));transform-origin:left;pointer-events:none}
#approach .journey-steps button[aria-pressed=true]:after{left:18px;width:calc(100% - 36px);background:#68d7ae}
@media(min-width:1800px){
 #approach .journey-outcome{font-size:42px;min-height:158px}
 #approach .journey-outcome .outcome-number{width:50px;height:50px;flex-basis:50px;font-size:24px}
 #approach .journey-outcomes li{font-size:24px;min-height:158px;padding:16px 26px}
 #approach .benefit-icon{width:50px;height:50px;flex-basis:50px}
 #approach .benefit-icon svg{width:32px;height:32px}
}
@media(max-width:1100px){
 #approach .journey-result{grid-template-columns:minmax(180px,1fr) minmax(0,3fr);padding:8px;border-radius:24px}
 #approach .journey-outcome{min-height:130px;font-size:32px;gap:9px;border-radius:17px}
 #approach .journey-outcome .outcome-number{width:38px;height:38px;flex-basis:38px;font-size:20px}
 #approach .journey-outcomes li{min-height:130px;padding:10px 12px;font-size:18px;gap:10px}
 #approach .benefit-icon{width:40px;height:40px;flex-basis:40px;border-radius:13px}
 #approach .benefit-icon svg{width:26px;height:26px}
}
@media(max-width:900px){
 #approach .journey-result{grid-template-columns:1fr;gap:8px;padding:8px;border-radius:24px}
 #approach .journey-outcome{flex-direction:row;min-height:58px;padding:10px;gap:12px;font-size:32px}
 #approach .journey-outcome .outcome-number{width:36px;height:36px;flex-basis:36px;font-size:20px}
 #approach .journey-outcomes{padding:0}
 #approach .journey-outcomes li{min-height:94px;padding:7px 10px;font-size:18px;gap:8px;border-left:1px solid #c7d7e6}
 #approach .benefit-icon{width:30px;height:30px;flex-basis:30px;border-radius:10px;background:transparent;box-shadow:none}
 #approach .benefit-icon svg{width:27px;height:27px}
}
@media(max-width:540px){
 #approach .journey-result{gap:6px;padding:6px;border-radius:20px}
 #approach .journey-outcome{min-height:46px;padding:7px;font-size:28px;gap:10px;border-radius:14px}
 #approach .journey-outcome .outcome-number{width:30px;height:30px;flex-basis:30px;font-size:18px}
 #approach .journey-outcomes li{min-height:90px;font-size:15px;padding:4px 6px;gap:6px}
 #approach .benefit-icon{width:25px;height:25px;flex-basis:25px}
 #approach .benefit-icon svg{width:24px;height:24px}
 #approach .journey-steps button:after,#approach .journey-steps button[aria-pressed=true]:after{height:2px;bottom:4px;left:12px;width:calc(100% - 24px)}
}
@media(max-width:360px){
 #approach .journey-outcomes{grid-template-columns:1fr}
 #approach .journey-outcomes li{flex-direction:row;justify-content:flex-start;min-height:29px;padding:2px 10px;font-size:14px;border:0;gap:10px}
 #approach .benefit-label{max-width:none}
 #approach .benefit-icon{width:23px;height:23px;flex-basis:23px}
 #approach .benefit-icon svg{width:21px;height:21px}
}
@media(prefers-reduced-motion:reduce){
 #approach .journey-result:after,#approach .journey-steps button:after{display:none}
}