/* Each selector is scoped; all per-instance values live on this section. */
.ksp-u-process-steps{position:relative;isolation:isolate;display:block;width:100%;min-width:0;margin:0;padding:var(--ksp-top,76px) 24px var(--ksp-bottom,76px);background:var(--ksp-bg,#fff);color:var(--ksp-text,#1b1c1f);font-family:var(--ksp-font,"Libre Franklin",Arial,Helvetica,sans-serif);font-size:16px;line-height:1.65;text-align:left;overflow-wrap:anywhere;}
.ksp-u-process-steps,.ksp-u-process-steps *,.ksp-u-process-steps *::before,.ksp-u-process-steps *::after{box-sizing:border-box;}
.ksp-u-process-steps .ksp-u-process-steps__inner{width:100%;max-width:var(--ksp-width,1240px);margin:0 auto;min-width:0;}
.ksp-u-process-steps .ksp-u-process-steps__anchor{position:absolute;top:0;left:0;scroll-margin-top:110px;}
.ksp-u-process-steps .ksp-u-process-steps__head{max-width:870px;margin:0 0 32px;text-align:var(--ksp-align,left);}
.ksp-u-process-steps[style*="--ksp-align:center"] .ksp-u-process-steps__head{margin-left:auto;margin-right:auto;}
.ksp-u-process-steps .ksp-u-process-steps__eyebrow{margin:0 0 13px;padding:0;color:var(--ksp-accent);font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.17em;text-transform:uppercase;}
.ksp-u-process-steps .ksp-u-process-steps__heading{margin:0;padding:0;color:var(--ksp-heading);font-family:inherit;font-size:clamp(30px,3.35vw,var(--ksp-size,42px));font-weight:800;line-height:1.12;letter-spacing:-.035em;text-transform:none;text-wrap:balance;}
.ksp-u-process-steps .ksp-u-process-steps__intro{max-width:800px;margin-top:19px;font-size:17px;}
.ksp-u-process-steps .ksp-u-process-steps__rich{color:var(--ksp-text);font-family:inherit;line-height:1.7;}
.ksp-u-process-steps .ksp-u-process-steps__rich p{margin:0 0 14px;padding:0;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;}
.ksp-u-process-steps .ksp-u-process-steps__rich p:last-child{margin-bottom:0;}
.ksp-u-process-steps .ksp-u-process-steps__rich ul,.ksp-u-process-steps .ksp-u-process-steps__rich ol{margin:14px 0 0;padding:0 0 0 21px;}
.ksp-u-process-steps .ksp-u-process-steps__rich li{margin:6px 0;padding:0;color:inherit;line-height:1.65;}
.ksp-u-process-steps .ksp-u-process-steps__rich strong{color:var(--ksp-heading);font-weight:700;}
.ksp-u-process-steps a:not(.ksp-u-process-steps__button){color:var(--ksp-link);text-decoration:underline;text-underline-offset:3px;}
.ksp-u-process-steps a:not(.ksp-u-process-steps__button):hover{text-decoration-thickness:2px;}
.ksp-u-process-steps .ksp-u-process-steps__grid{display:grid;grid-template-columns:repeat(var(--ksp-columns,3),minmax(0,1fr));gap:20px;}
.ksp-u-process-steps .ksp-u-process-steps__card{min-width:0;padding:28px;border:1px solid var(--ksp-line);border-radius:var(--ksp-radius,14px);background:var(--ksp-surface);}
.ksp-u-process-steps .ksp-u-process-steps__card-title{margin:0 0 13px;padding:0;font-family:inherit;font-size:21px;font-weight:800;line-height:1.28;letter-spacing:-.025em;text-transform:none;color:var(--ksp-heading);}
.ksp-u-process-steps .ksp-u-process-steps__icon{display:grid;place-items:center;width:48px;height:48px;margin:0 0 20px;border:1px solid var(--ksp-line);border-radius:11px;color:var(--ksp-accent);}
.ksp-u-process-steps .ksp-u-process-steps__icon svg{display:block;width:30px;height:30px;}
.ksp-u-process-steps .ksp-u-process-steps__actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:27px;}
.ksp-u-process-steps a.ksp-u-process-steps__button{display:inline-flex;align-items:center;justify-content:center;gap:20px;max-width:100%;min-height:54px;margin:0;padding:15px 24px;border:1px solid transparent;border-radius:7px;background:var(--ksp-button,#1179e2);color:var(--ksp-button-text,#fff);font-family:inherit;font-size:15px;font-weight:700;line-height:1.35;text-decoration:none;text-align:center;letter-spacing:0;text-transform:none;white-space:normal;transition:filter .15s ease,transform .15s ease;}
.ksp-u-process-steps a.ksp-u-process-steps__button:hover{filter:brightness(.92);transform:translateY(-1px);color:var(--ksp-button-text,#fff);}
.ksp-u-process-steps a.ksp-u-process-steps__button--secondary{background:transparent;border-color:var(--ksp-line);color:var(--ksp-heading);}
.ksp-u-process-steps a.ksp-u-process-steps__button--secondary:hover{color:var(--ksp-heading);}
.ksp-u-process-steps a:focus-visible,.ksp-u-process-steps button:focus-visible,.ksp-u-process-steps summary:focus-visible,.ksp-u-process-steps [tabindex]:focus-visible{outline:3px solid var(--ksp-accent);outline-offset:4px;}
.ksp-u-process-steps .ksp-u-process-steps__split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:58px;}
.ksp-u-process-steps .ksp-u-process-steps__image{display:block;max-width:100%;width:100%;height:auto;object-fit:cover;border-radius:var(--ksp-radius,14px);}
.ksp-u-process-steps .ksp-u-process-steps__caption{margin:12px 0 0;font-size:13px;line-height:1.6;color:var(--ksp-text);}
.ksp-u-process-steps .ksp-u-process-steps__note{margin:22px 0 0;font-size:14px;line-height:1.6;}
.ksp-u-process-steps .ksp-u-process-steps__callout{border-left:3px solid var(--ksp-accent);padding:18px 0 18px 22px;}
.ksp-u-process-steps .ksp-u-process-steps__number{display:block;margin-bottom:18px;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--ksp-accent);}
@media(max-width:980px){.ksp-u-process-steps .ksp-u-process-steps__grid{grid-template-columns:repeat(2,minmax(0,1fr));}.ksp-u-process-steps .ksp-u-process-steps__split{gap:30px;}.ksp-u-process-steps .ksp-u-process-steps__card{padding:24px;}}
@media(max-width:760px){.ksp-u-process-steps{padding:var(--ksp-top-mobile,48px) 20px var(--ksp-bottom-mobile,48px);}.ksp-u-process-steps .ksp-u-process-steps__heading{font-size:var(--ksp-size-mobile,34px);}.ksp-u-process-steps .ksp-u-process-steps__head{margin-bottom:26px;}.ksp-u-process-steps .ksp-u-process-steps__intro{font-size:16px;}.ksp-u-process-steps .ksp-u-process-steps__split{grid-template-columns:minmax(0,1fr);gap:30px;}.ksp-u-process-steps .ksp-u-process-steps__card-title{font-size:20px;}}
@media(max-width:560px){.ksp-u-process-steps .ksp-u-process-steps__grid{grid-template-columns:minmax(0,1fr);gap:14px;}.ksp-u-process-steps .ksp-u-process-steps__actions{align-items:stretch;flex-direction:column;}.ksp-u-process-steps a.ksp-u-process-steps__button{width:100%;}.ksp-u-process-steps .ksp-u-process-steps__card{padding:23px;}}
@media(prefers-reduced-motion:reduce){.ksp-u-process-steps a.ksp-u-process-steps__button{transition:none;transform:none;}}

.ksp-u-process-steps .ksp-u-process-steps__steps{list-style:none;margin:0;padding:0;}.ksp-u-process-steps .ksp-u-process-steps__steps>li{margin:0;list-style:none;}.ksp-u-process-steps .ksp-u-process-steps__number{font-size:31px;letter-spacing:-.04em;line-height:1;}
.ksp-u-process-steps .ksp-u-process-steps__split.ksp-u-process-steps__split--single{grid-template-columns:minmax(0,1fr);max-width:950px;}

/* --- KSP page-recipe polish (shared tokens, scoped to this module) --- */
.ksp-u-process-steps {font-size:16px;line-height:1.68;}
.ksp-u-process-steps .ksp-u-process-steps__heading{font-weight:700;letter-spacing:-.025em;line-height:1.16;}
.ksp-u-process-steps .ksp-u-process-steps__intro{max-width:68ch;font-size:17px;line-height:1.7;}
.ksp-u-process-steps .ksp-u-process-steps__rich p{margin:0 0 15px;max-width:68ch;}
.ksp-u-process-steps .ksp-u-process-steps__rich li{max-width:64ch;}
.ksp-u-process-steps .ksp-u-process-steps__caption,.ksp-u-process-steps .ksp-u-process-steps__note,.ksp-u-process-steps .ksp-u-process-steps__cta-note{color:#4b4f58;}
.ksp-u-process-steps .ksp-u-process-steps__card-title{font-weight:700;letter-spacing:-.018em;}
.ksp-u-process-steps a.ksp-u-process-steps__button{min-height:56px;padding:15px 24px;border-radius:6px;gap:12px;font-size:19px;font-weight:700;letter-spacing:-.014em;box-shadow:none;transform:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease;}
.ksp-u-process-steps a.ksp-u-process-steps__button:hover{filter:none;transform:none;box-shadow:none;background:var(--ksp-button,#1179e2);color:var(--ksp-button-text,#fff);}
.ksp-u-process-steps a.ksp-u-process-steps__button--secondary:hover{background:transparent;color:var(--ksp-heading,#2d378e);}
@media(max-width:560px){.ksp-u-process-steps a.ksp-u-process-steps__button{min-height:52px;padding:14px 20px;}}

/* --- Wraparound route ---------------------------------------------------
   One continuous rail threads every step and every row reads left-to-right.
   HubL balances rows (5 -> 3+2) and flags row breaks. At a break the row-end
   card (is-*-end) bends the rail down the right gutter to the middle of the
   row gap; the next row's first card (is-*-start) carries it back left and
   drops it into its node, like a line of text wrapping. is-lg-* applies on
   desktop, is-md-* on tablet (2 per row). Phones use a vertical rail. */
.ksp-u-process-steps{--ps-rail:var(--ksp-line,#c9cacd);--ps-node:40px;--ps-row-gap:84px;--ps-turn:22px;--ps-bend:16px;--ps-stagger:110ms;--ps-wrap:900ms;}
@supports (color:color-mix(in srgb,red 50%,blue)){.ksp-u-process-steps{--ps-rail:color-mix(in srgb,var(--ksp-heading,#2d378e) 34%,transparent);}}
.ksp-u-process-steps .ksp-u-process-steps__grid{grid-template-columns:repeat(var(--ksp-columns,4),minmax(0,1fr));gap:var(--ps-row-gap) 0;padding-top:calc(var(--ps-node) / 2);border:0;}
.ksp-u-process-steps .ksp-u-process-steps__card{--ps-row:0;--t:calc(var(--i) * var(--ps-stagger) + var(--ps-row) * var(--ps-wrap));position:relative;min-width:0;padding:calc(var(--ps-node) / 2 + 22px) 36px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none;}
.ksp-u-process-steps .ksp-u-process-steps__card::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--ps-rail);}
.ksp-u-process-steps .ksp-u-process-steps__card.is-first::before{left:calc(var(--ps-node) / 2);}
.ksp-u-process-steps .ksp-u-process-steps__card.is-last::before{right:auto;width:calc(var(--ps-node) / 2);}
.ksp-u-process-steps .ksp-u-process-steps__card.is-first.is-last::before{display:none;}
.ksp-u-process-steps .ksp-u-process-steps__card::after{content:none;position:absolute;pointer-events:none;border:0 solid var(--ps-rail);}
.ksp-u-process-steps .ksp-u-process-steps__number{position:absolute;top:calc(var(--ps-node) / -2);left:0;z-index:1;display:grid;place-items:center;width:var(--ps-node);height:var(--ps-node);margin:0;border-radius:50%;background:var(--ksp-heading,#2d378e);box-shadow:0 0 0 6px var(--ksp-bg,#ededed);color:var(--ksp-bg,#fff);font-size:14px;font-weight:700;letter-spacing:.01em;line-height:1;font-variant-numeric:tabular-nums;transition:background-color .2s ease;}
.ksp-u-process-steps .ksp-u-process-steps__card.is-last .ksp-u-process-steps__number{background:var(--ksp-accent,#1179e2);color:var(--ksp-button-text,#fff);box-shadow:0 0 0 6px var(--ksp-bg,#ededed),0 0 0 8px var(--ksp-accent,#1179e2);}
.ksp-u-process-steps .ksp-u-process-steps__card:hover .ksp-u-process-steps__number{background:var(--ksp-accent,#1179e2);color:var(--ksp-button-text,#fff);}
.ksp-u-process-steps .ksp-u-process-steps__card-title{margin:0 0 10px;font-size:19px;line-height:1.28;}
.ksp-u-process-steps .ksp-u-process-steps__rich{font-size:15.5px;line-height:1.62;}

@media(min-width:981px){
  .ksp-u-process-steps .ksp-u-process-steps__card{--ps-row:var(--lr,0);--ps-cols:var(--ksp-columns,4);}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-lg-end::after{content:"";top:-1px;right:calc(-1 * var(--ps-turn));bottom:calc(var(--ps-row-gap) / -2 - 1px);width:var(--ps-turn);border-width:2px 2px 2px 0;border-radius:0 var(--ps-turn) var(--ps-turn) 0;}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-lg-start::after{content:"";top:calc(var(--ps-row-gap) / -2 - 1px);left:calc(var(--ps-node) / 2 - 1px);width:calc(var(--ps-cols) * 100% - var(--ps-node) / 2 + 1px);height:calc(var(--ps-row-gap) / 2 - var(--ps-node) / 2 + 4px);border-width:2px 0 0 2px;border-radius:var(--ps-bend) 0 0 0;}
}
@media(min-width:561px) and (max-width:980px){
  .ksp-u-process-steps{--ps-row-gap:72px;--ps-turn:18px;--ps-bend:12px;}
  .ksp-u-process-steps .ksp-u-process-steps__grid{grid-template-columns:repeat(var(--ksp-columns-md,2),minmax(0,1fr));}
  .ksp-u-process-steps .ksp-u-process-steps__card{--ps-row:var(--mr,0);--ps-cols:var(--ksp-columns-md,2);padding-right:30px;}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-md-end::after{content:"";top:-1px;right:calc(-1 * var(--ps-turn));bottom:calc(var(--ps-row-gap) / -2 - 1px);width:var(--ps-turn);border-width:2px 2px 2px 0;border-radius:0 var(--ps-turn) var(--ps-turn) 0;}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-md-start::after{content:"";top:calc(var(--ps-row-gap) / -2 - 1px);left:calc(var(--ps-node) / 2 - 1px);width:calc(var(--ps-cols) * 100% - var(--ps-node) / 2 + 1px);height:calc(var(--ps-row-gap) / 2 - var(--ps-node) / 2 + 4px);border-width:2px 0 0 2px;border-radius:var(--ps-bend) 0 0 0;}
}
@media(max-width:560px){
  .ksp-u-process-steps{--ps-node:36px;}
  .ksp-u-process-steps .ksp-u-process-steps__grid{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0;}
  .ksp-u-process-steps .ksp-u-process-steps__card{padding:6px 0 30px calc(var(--ps-node) + 18px);}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-last{padding-bottom:0;}
  .ksp-u-process-steps .ksp-u-process-steps__card::before,.ksp-u-process-steps .ksp-u-process-steps__card.is-first::before{top:calc(var(--ps-node) / 2);bottom:0;left:calc(var(--ps-node) / 2 - 1px);right:auto;width:2px;height:auto;}
  .ksp-u-process-steps .ksp-u-process-steps__card.is-last::before{display:none;}
  .ksp-u-process-steps .ksp-u-process-steps__number{top:0;font-size:13px;}
}

/* Route draws itself once, in reading order: each row's rail, then the bend
   down the gutter, the sweep back left, the drop into the next node. Wrapped
   rows wait --ps-wrap so the connector lands before their first node pops.
   module.js arms this only for lists still below the fold, so no-JS,
   reduced-motion and above-fold renders stay static. */
@media(prefers-reduced-motion:no-preference){
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card::before{transform:scaleX(0);transform-origin:left center;transition:transform .5s cubic-bezier(.4,0,.2,1) var(--t);}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card::after{clip-path:inset(0 0 100% 0);transition:clip-path .3s linear calc(var(--t) + 450ms);}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card.is-lg-start::after,.ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card.is-md-start::after{clip-path:inset(0 0 0 100%);transition:clip-path .38s cubic-bezier(.3,0,.3,1) calc(var(--t) - 280ms);}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__number{opacity:0;transform:scale(.4);transition:transform .45s cubic-bezier(.2,.9,.3,1.35) var(--t),opacity .25s ease var(--t),background-color .2s ease;}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card-title,.ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card > .ksp-u-process-steps__rich{opacity:0;transform:translateY(10px);transition:opacity .45s ease calc(var(--t) + 120ms),transform .45s ease calc(var(--t) + 120ms);}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card::before{transform:none;}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card::after,.ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card.is-lg-start::after,.ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card.is-md-start::after{clip-path:inset(0);}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__number{opacity:1;transform:none;}
  .ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card-title,.ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card > .ksp-u-process-steps__rich{opacity:1;transform:none;}
  @media(max-width:560px){
    .ksp-u-process-steps .ksp-u-process-steps__steps.is-armed .ksp-u-process-steps__card::before{transform:scaleY(0);transform-origin:center top;}
    .ksp-u-process-steps .ksp-u-process-steps__steps.is-on .ksp-u-process-steps__card::before{transform:none;}
  }
}
