/* Overview composition only; shared tokens, typography and actions remain authoritative. */
/* A non-scrolling overflow:hidden body traps CSS sticky below the viewport. */
body.page-id-5:not(.menu-open):not(.consent-open) { overflow-x: clip; overflow-y: visible; }
html:has(body.page-id-5:is(.menu-open,.consent-open)) { overflow: hidden; }
.kb-services-current { --kb-services-header: 76px; --kb-services-nav-height: 60px; padding-top: 76px; background: #fff; }
.kb-services-current :is(h1,h2,h3,p,dd,a) { overflow-wrap: break-word; }
.kb-services-current .kb-services-hero { border-bottom: 1px solid var(--kb-divider); }
.kb-services-current .kb-services-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 48px; }
.kb-services-current .kb-services-hero { padding-bottom: 28px; }
.kb-services-current .kb-services-hero__visual { position: relative; min-width: 0; width: 100%; max-width: 640px; justify-self: end; margin: 0; }
.kb-services-current .kb-services-dimensional-image { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.kb-services-current .kb-services-process-label { position: absolute; z-index: 1; max-width: 160px; padding: 7px 10px; border: 1px solid var(--kb-divider); border-radius: 4px; background: #fff; box-shadow: 0 3px 12px rgb(15 46 82 / 7%); color: var(--navy); font-size: 13px; font-weight: 600; line-height: 1.4; }
.kb-services-current .kb-services-process-label--input { left: 0; bottom: 18%; }
.kb-services-current .kb-services-process-label--processing { left: 54%; top: 2%; transform: translateX(-50%); }
.kb-services-current .kb-services-process-label--output { right: 0; bottom: 1%; }
.kb-services-current .kb-services-entry-note { margin-top: 24px; margin-bottom: 0; color: #405166; font-size: 15px; line-height: 1.6; }
.kb-services-current .kb-services-nav { position: sticky; top: var(--kb-services-header); z-index: 40; background: #fff; border-bottom: 1px solid var(--kb-divider); }
.kb-services-current .kb-services-nav.is-stuck { box-shadow: 0 4px 10px rgb(15 46 82 / 6%); }
/* Cached text-only anchors remain readable during a generation transition. */
.kb-services-current .kb-services-nav:not(.kb-services-nav--numbered) ul { display: flex; gap: 32px; list-style: none; margin: 0; padding: 0; overflow-x: auto; }
.kb-services-current .kb-services-nav:not(.kb-services-nav--numbered) a { display: flex; align-items: center; min-height: 60px; padding: 12px 2px; color: var(--navy); text-decoration: none; font-size: 16px; font-weight: 600; white-space: nowrap; }
.kb-services-current .kb-services-nav__inner { display: flex; align-items: center; gap: 10px; }
.kb-services-current .kb-services-nav--numbered ul { display: flex; flex: 1; min-width: 0; align-items: stretch; gap: 12px; list-style: none; margin: 0; padding: 10px 0; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.kb-services-current .kb-services-nav--numbered li { flex: 1 0 190px; min-width: 0; }
.kb-services-current .kb-services-nav--numbered a { --step-progress: 0; position: relative; display: grid; grid-template-columns: 28px minmax(0,1fr) 14px; align-items: center; gap: 10px; min-height: 58px; height: 100%; padding: 10px 12px; border: 1px solid var(--kb-divider); border-radius: 4px; background: #fff; color: var(--navy); text-decoration: none; font-size: 15px; font-weight: 600; line-height: 1.35; }
.kb-services-current .kb-services-nav__number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 4px; color: var(--kb-component-accent); background: var(--kb-component-tint); font-size: 13px; font-weight: 700; }
.kb-services-current .kb-services-nav--numbered a > .button-icon { width: 14px; height: 14px; color: var(--kb-component-accent); transform: rotate(90deg); }
.kb-services-current .kb-services-nav--numbered a > .button-icon svg { width: 14px; height: 14px; }
.kb-services-current .kb-services-nav--numbered a::after { content: ''; position: absolute; height: 3px; left: 0; right: 0; bottom: 0; background: var(--kb-component-accent); transform: scaleX(var(--step-progress)); transform-origin: left; }
.kb-services-current .kb-services-nav--numbered a:is(:hover,[aria-current="location"]) { border-color: var(--kb-component-accent); background: var(--kb-component-tint); }
.kb-services-current .kb-services-nav--numbered a[aria-current="location"] .kb-services-nav__label { text-decoration: underline; text-underline-offset: 4px; }
.kb-services-current .kb-services-nav--numbered a:focus-visible { outline-offset: -3px; }
.kb-services-current .kb-services-nav__scroll { flex: 0 0 32px; display: grid; place-items: center; width: 32px; height: 44px; padding: 0; color: var(--kb-action-blue); background: #fff; border: 1px solid var(--kb-divider); border-radius: 4px; cursor: pointer; }
.kb-services-current .kb-services-nav__scroll[hidden] { display: none; }
.kb-services-current .kb-services-nav__scroll:disabled { color: #6b7785; opacity: .45; cursor: default; }
.kb-services-current .kb-services-nav__scroll:focus-visible { outline: 2px solid var(--kb-action-blue); outline-offset: 2px; }
.kb-services-current .kb-services-nav__scroll--prev > .button-icon { transform: rotate(180deg); }
.kb-services-current .kb-services-nav__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--kb-action-blue); transform: scaleX(var(--services-progress,0)); transform-origin: left; }
.kb-services-current .kb-services-hero h1 { max-width: none; margin: 0 0 24px; }
.kb-services-current .kb-services-lead { font-size: 17px; line-height: 1.65; color: #405166; margin: 0 0 28px; }
.kb-services-current .component-tone--navy { --kb-component-accent: var(--navy); --kb-component-tint: #edf2f7; }
.kb-services-current .kb-services-row { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 64px; align-items: center; }
.kb-services-current .kb-services-row--reverse .kb-services-media { grid-column: 2; grid-row: 1; }
.kb-services-current .kb-services-row--reverse .kb-services-copy { grid-column: 1; grid-row: 1; }
.kb-services-current .kb-services-media { overflow: hidden; border-radius: var(--kb-card-radius); background: transparent; }
.kb-services-current .kb-services-media img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 833; object-fit: contain; }
.kb-services-current .kb-services-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.kb-services-current .kb-services-heading .component-step-number { background: var(--kb-component-tint); color: var(--kb-component-accent); }
.kb-services-current .kb-services-heading h2 { max-width: none; margin: 0; }
.kb-services-current .kb-services-heading h2 a { color: var(--navy); text-decoration: none; }
.kb-services-current .kb-services-heading h2 a:is(:hover,:focus-visible) { color: var(--kb-action-blue-hover); text-decoration: underline; text-underline-offset: 4px; }
.kb-services-current .kb-services-situation { margin: 0 0 20px; color: #405166; font-size: 17px; line-height: 1.65; }
.kb-services-current .kb-services-details { display: grid; gap: 16px; margin: 0 0 12px; }
.kb-services-current .kb-services-details dt { margin-bottom: 6px; font-size: 14px; line-height: 1.5; font-weight: 600; color: var(--navy); }
.kb-services-current .kb-services-details dd { margin: 0; font-size: 16px; line-height: 1.65; color: #405166; }
.kb-services-current .kb-services-outcome { padding-top: 16px; border-top: 1px solid #d4dfef; }
.kb-services-current .kb-services-outcome dt { color: var(--kb-accent-green); }
.kb-services-current .kb-services-detail-button { margin-top: 12px; background: #fff; border-color: var(--kb-action-blue); color: var(--kb-action-blue); }
.kb-services-current .kb-services-case { background: #fff; }
.kb-services-current .kb-services-case__grid { display: block; }
.kb-services-current .kb-services-case h2 { max-width: none; margin: 0 0 28px; }
.kb-services-current .kb-services-case article { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: 0 40px; align-items: center; }
.kb-services-current .kb-services-case article > .component-eyebrow { grid-column: 1 / -1; justify-self: start; }
.kb-services-current .kb-services-case h3 { grid-column: 1 / -1; margin: 0 0 28px; }
.kb-services-current .kb-services-case__copy { min-width: 0; }
.kb-services-current .kb-services-case__copy p { margin: 0 0 20px; font-size: 16px; line-height: 1.65; color: #405166; }
.kb-services-current .kb-services-case__path { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; list-style: none; padding: 0; margin: 0; }
.kb-services-current .kb-services-case__path li { position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0; color: var(--navy); font-size: 14px; line-height: 1.5; font-weight: 600; }
.kb-services-current .kb-services-case__scene { position: relative; display: block; width: 100%; max-width: 260px; margin-inline: auto; }
.kb-services-current .kb-services-case__label { text-align: center; }
.kb-services-current .kb-services-case__arrow { position: absolute; right: -22px; top: 35%; width: 20px; color: #718096; }
.kb-services-current .kb-services-capability-icon > .home-icon { display: contents; color: inherit; }
.kb-services-current .kb-services-capability-icon svg { display: block; width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.kb-services-current .kb-services-additional { background: #f8fafc; }
.kb-services-current .kb-section-head { max-width: none; }
.kb-services-current .kb-services-specialized-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-bottom: 32px; }
.kb-services-current .kb-services-extra-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.kb-services-current .kb-services-extra-card .component-meaning-icon { margin-bottom: 20px; background: var(--kb-component-tint); color: var(--kb-component-accent); }
.kb-services-current .component-meaning-icon > .home-icon { display: contents; color: inherit; }
.kb-services-current .kb-services-extra-card h3 { margin: 0 0 12px; }
.kb-services-current .kb-services-extra-card p { flex: 1; margin: 0 0 24px; color: #405166; }
.kb-services-current .kb-services-extra-card .button { margin-top: auto; }
.kb-services-current .kb-services-capabilities { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 32px; list-style: none; padding: 0; margin: 0; }
.kb-services-current .kb-services-capabilities li { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 16px; border-top: 1px solid var(--kb-divider); padding-block: 24px; }
.kb-services-current .kb-services-capability-icon { color: var(--kb-action-blue); }
.kb-services-current .kb-services-capabilities h3 { margin: 0 0 12px; }
.kb-services-current .kb-services-capabilities p { margin: 0; font-size: 16px; line-height: 1.65; color: #405166; }
.kb-services-current .kb-services-additional__action { margin-top: 16px; }
.kb-services-current a:focus-visible { outline: 2px solid var(--kb-action-blue); outline-offset: 4px; }
.kb-services-current .button-label { white-space: normal; text-align: center; }
.kb-design-page.kb-services-current [id] { scroll-margin-top: calc(var(--kb-services-header) + var(--kb-services-nav-height) + 20px); }
@media (min-width: 1101px) {
  .kb-services-current .kb-services-case h2,
  .kb-services-current .kb-services-case h3 { text-align: center; }
  .kb-services-current .kb-services-case article > .component-eyebrow { justify-self: center; }
}
@media (max-width: 1100px) {
  .kb-services-current .kb-services-hero__grid { grid-template-columns: minmax(0,1.2fr) minmax(260px,.8fr); gap: 32px; }
  .kb-services-current .kb-services-row,
  .kb-services-current .kb-services-case__grid { gap: 32px; }
  .kb-services-current .kb-services-case article { grid-template-columns: 1fr; }
  .kb-services-current .kb-services-case__path { margin-bottom: 28px; }
  .kb-services-current .kb-services-specialized-grid { grid-template-columns: 1fr; }
  .kb-services-current .kb-services-extra-card { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 0 20px; align-items: start; }
  .kb-services-current .kb-services-extra-card .component-meaning-icon { grid-column: 1; grid-row: 1 / 3; margin: 0; }
  .kb-services-current .kb-services-extra-card h3 { grid-column: 2; }
  .kb-services-current .kb-services-extra-card p { grid-column: 2; margin-bottom: 0; }
  .kb-services-current .kb-services-extra-card .button { grid-column: 3; grid-row: 1 / 3; align-self: center; }
}
@media (max-width: 900px) {
  .kb-services-current .kb-services-nav__inner { gap: 6px; }
  .kb-services-current .kb-services-nav--numbered ul { gap: 6px; padding-block: 6px; scrollbar-width: none; }
  .kb-services-current .kb-services-nav--numbered ul::-webkit-scrollbar { display: none; }
  .kb-services-current .kb-services-nav--numbered li { flex: 0 0 auto; }
  .kb-services-current .kb-services-nav--numbered a { grid-template-columns: 22px minmax(0,1fr); gap: 6px; min-height: 44px; padding: 6px 8px; font-size: 14px; }
  .kb-services-current .kb-services-nav__number { width: 22px; height: 22px; font-size: 12px; }
  .kb-services-current .kb-services-nav__label { white-space: nowrap; }
  .kb-services-current .kb-services-nav--numbered a > .button-icon { display: none; }
  .kb-services-current .kb-services-hero__grid,
  .kb-services-current .kb-services-row,
  .kb-services-current .kb-services-case__grid { grid-template-columns: 1fr; }
  .kb-services-current .kb-services-case article { grid-template-columns: 1fr; }
  .kb-services-current .kb-services-case__path { margin-bottom: 24px; }
  .kb-services-current .kb-services-row--reverse .kb-services-media,
  .kb-services-current .kb-services-row--reverse .kb-services-copy { grid-column: auto; grid-row: auto; }
  .kb-services-current .kb-services-media { max-width: 600px; width: 100%; margin-inline: auto; }
  .kb-services-current .kb-services-hero__visual { max-width: 600px; justify-self: center; }
}
@media (max-width: 767px) { .kb-services-current { --kb-services-header: 69px; --kb-services-nav-height: 54px; padding-top: 69px; } }
@media (max-width: 720px) {
  .kb-services-current .kb-services-hero__grid { gap: 28px; }
  .kb-services-current .kb-services-hero h1 { margin-bottom: 20px; }
  .kb-services-current .kb-services-lead { font-size: 16px; margin-bottom: 24px; }
  .kb-services-current .kb-services-row { gap: 24px; }
  .kb-services-current .kb-services-heading { gap: 12px; }
  .kb-services-current .kb-services-situation { font-size: 16px; }
  .kb-services-current .kb-services-specialized-grid,
  .kb-services-current .kb-services-capabilities { grid-template-columns: 1fr; }
  .kb-services-current .kb-services-extra-card { display: flex; }
  .kb-services-current .kb-services-extra-card .component-meaning-icon { margin-bottom: 16px; }
  .kb-services-current .kb-services-extra-card p { margin-bottom: 24px; }
  .kb-services-current .kb-services-case__path { gap: 20px; }
  .kb-services-current .kb-services-case__path li { font-size: 14px; }
  .kb-services-current .button { width: 100%; }
}
@media (max-width: 480px) {
  .kb-services-current .kb-services-case__path { grid-template-columns: 1fr; gap: 12px; }
  .kb-services-current .kb-services-case__path li { align-items: center; gap: 4px; font-size: 14px; }
  .kb-services-current .kb-services-case__scene { max-width: 260px; }
  .kb-services-current .kb-services-case__arrow { position: static; align-self: center; margin-top: 8px; transform: rotate(90deg); }
}
@media (max-width: 480px) {
  .kb-services-current .kb-services-process-label { font-size: 12px; padding: 5px 7px; max-width: 145px; }
  .kb-services-current .kb-services-process-label--processing { left: 55%; top: 0; }
}
