/* /services/integration-modernization/ only. Every rule scoped to body.im-page.
   Wide content wraps or stacks; no overflow:hidden is used to hide it. */

body.im-page .im-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 88px); align-items: end; margin-bottom: clamp(28px, 3.5vw, 46px); }
body.im-page .im-head > * { min-width: 0; }
body.im-page .im-head .ws-lead { max-width: 54ch; }
body.im-page .im-tag { display: inline-flex; padding: 5px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ws-navy); background: var(--ws-card); border: 1px solid rgba(24,70,132,.25); }
body.im-page .im-tag.dark { color: #DCE7F8; background: rgba(157,189,240,.1); border-color: rgba(157,189,240,.35); }
body.im-page .im-zoom { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 8px; }
body.im-page .im-zoom img { display: block; width: 100%; height: auto; border-radius: 8px; transition: transform .45s var(--ws-ease); }
body.im-page .im-zoom:hover img { transform: translateY(-3px); }
body.im-page .im-zoom:focus-visible { outline: 2px solid var(--ws-navy); outline-offset: 4px; }
body.im-page .ws-dark .im-zoom:focus-visible { outline-color: #9DBDF0; }

/* 1 hero */
body.im-page .im-hero { padding: clamp(32px, 4vw, 56px) 0 clamp(40px, 5vw, 68px); }
body.im-page .im-hero-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(28px, 4.5vw, 72px); align-items: center; margin-top: 20px; }
body.im-page .im-hero-grid > * { min-width: 0; }
body.im-page .im-hero .ws-h1 { font-size: clamp(36px, 4.3vw, 62px); line-height: 1.03; }
body.im-page .im-hero .ws-lead { margin-top: 20px; max-width: 50ch; }
body.im-page .im-hero .ws-btns { margin-top: 28px; }
body.im-page .im-keep { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ws-line); }
body.im-page .im-keep li { padding: 12px 12px 0 0; display: grid; gap: 2px; min-width: 0; }
body.im-page .im-keep li + li { padding-left: 14px; border-left: 1px solid var(--ws-line); }
body.im-page .im-keep b { font-size: 17px; color: var(--ws-navy); }
body.im-page .im-keep span { font-size: 13.5px; color: var(--ws-text-2); line-height: 1.35; }
body.im-page .im-hero-fig { margin: 0; }
body.im-page .im-hero-fig img { filter: drop-shadow(0 22px 34px rgba(11,22,40,.16)); }
body.im-page .im-hero-fig figcaption { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin-top: 14px; font-size: 13.5px; line-height: 1.45; color: var(--ws-muted); }

/* 2 problem */
body.im-page .im-problem { padding-top: clamp(48px, 6vw, 84px); padding-bottom: clamp(48px, 6vw, 84px); }
body.im-page .im-prob-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
body.im-page .im-prob-grid > * { min-width: 0; }
body.im-page .im-prob-left .ws-lead { margin-top: 18px; }
body.im-page .im-photo { position: relative; margin: 26px 0 0; border-radius: 14px; }
body.im-page .im-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 38%; border-radius: 14px; }
body.im-page .im-illus { position: absolute; left: 12px; bottom: 12px; padding: 4px 9px; border-radius: 4px; background: rgba(11,22,40,.66); color: #EDF2FA; font-size: 11.5px; font-weight: 500; }
body.im-page .im-callout { margin-top: 18px; padding: 18px 20px; border-left: 3px solid var(--ws-navy); background: var(--ws-ice); border-radius: 0 12px 12px 0; }
body.im-page .im-callout-k { font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ws-navy); }
body.im-page .im-callout h3 { margin-top: 6px; font-size: 18px; line-height: 1.3; color: var(--ws-ink); }
body.im-page .im-callout p { margin-top: 6px; font-size: 15px; line-height: 1.55; color: var(--ws-text-2); }
body.im-page .im-sits { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--ws-line); }
body.im-page .im-sits li { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--ws-line); }
body.im-page .im-sit-n { grid-row: span 3; width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; font-weight: 600; color: var(--ws-navy); border: 1.5px solid rgba(24,70,132,.35); }
body.im-page .im-sits h3 { font-size: 19px; line-height: 1.3; color: var(--ws-ink); }
body.im-page .im-sit-p { margin-top: 6px; font-size: 15.5px; line-height: 1.55; color: var(--ws-text-2); }
body.im-page .im-sit-a { margin-top: 10px; font-size: 15px; line-height: 1.5; color: var(--ws-ink); }
body.im-page .im-sit-a b { color: var(--ws-navy); font-weight: 600; }

/* 3 before / after scenario */
body.im-page .im-static { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 32px; padding: 22px; border: 1px solid var(--ws-line); border-radius: 14px; background: var(--ws-card); }
body.im-page .im-static[hidden] { display: none; }
body.im-page .im-static h3 { font-size: 17px; color: var(--ws-ink); margin-bottom: 6px; }
body.im-page .im-static p { font-size: 15px; line-height: 1.6; color: var(--ws-text-2); }
body.im-page .im-static-note { grid-column: 1 / -1; font-size: 13.5px !important; color: var(--ws-muted) !important; }
body.im-page .im-app { padding: clamp(16px, 2.4vw, 28px); border-radius: 18px; background: #FBFAF7; border: 1px solid rgba(24,70,132,.2); box-shadow: 0 30px 60px -44px rgba(11,22,40,.5); }
body.im-page .im-app[hidden] { display: none; }
body.im-page .im-app-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; }
body.im-page .im-app-label { font-family: inherit; letter-spacing: normal; text-transform: none; font-size: 13px; line-height: 1.45; color: var(--ws-text-2); min-width: 0; flex: 1 1 260px; }
body.im-page .im-app-label b { color: var(--ws-navy); font-weight: 600; }
body.im-page .im-seg { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: 12px; background: var(--ws-ice); border: 1px solid rgba(24,70,132,.18); flex: 0 1 420px; min-width: 0; }
body.im-page .im-seg button { min-height: 44px; padding: 8px 14px; border: 0; border-radius: 9px; background: transparent; font: inherit; font-size: 14.5px; font-weight: 600; line-height: 1.2; color: var(--ws-text-2); cursor: pointer; white-space: normal; transition: background .25s, color .25s; }
body.im-page .im-seg button[aria-pressed="true"] { background: var(--ws-navy); color: #fff; box-shadow: 0 6px 14px -8px rgba(24,70,132,.7); }
body.im-page .im-seg button[aria-pressed="true"]::before { content: "\2713\00a0"; }
body.im-page .im-seg button:focus-visible, body.im-page .im-btn:focus-visible { outline: 2px solid var(--ws-navy); outline-offset: 2px; }
body.im-page .im-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0 0 0 0); white-space: nowrap; }
body.im-page .im-app-title { margin: 18px 0 14px; font-size: clamp(18px, 1.8vw, 22px); letter-spacing: -.02em; color: var(--ws-ink); }

body.im-page .im-board { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, .95fr) 28px minmax(0, 1.25fr); gap: 10px; align-items: center; }
body.im-page .im-board > * { min-width: 0; }
body.im-page .im-flow-mark { display: grid; place-items: center; font-size: 22px; font-weight: 600; color: var(--ws-navy); }
body.im-page .im-app[data-view="before"] .im-flow-mark { color: #9A5B00; }
body.im-page .im-targets { display: grid; gap: 10px; min-width: 0; }
body.im-page .im-sys { padding: 14px 16px; border-radius: 12px; background: #fff; border: 1px solid var(--ws-line); display: grid; gap: 8px; min-width: 0; transition: border-color .3s; }
body.im-page .im-sys h4 { font-size: 15.5px; color: var(--ws-ink); }
body.im-page .im-sys-items { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
body.im-page .im-sys-items li { padding: 3px 8px; border-radius: 6px; background: #F2F4F7; font-size: 12.5px; color: var(--ws-text-2); }
body.im-page .im-sys-id, body.im-page .im-sys-st { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; font-size: 12.5px; color: var(--ws-muted); }
body.im-page .im-sys-id code { font: 500 12.5px ui-monospace, Menlo, monospace; color: var(--ws-navy); overflow-wrap: anywhere; }
body.im-page .im-sys-id.warn code { color: #8A5200; }
body.im-page .im-sys-id.warn::after { content: "\2260"; font-weight: 700; color: #8A5200; }
body.im-page .im-sys-st b { color: var(--ws-ink); font-weight: 600; font-size: 13px; overflow-wrap: anywhere; }
body.im-page .im-gap { padding: 16px; border-radius: 12px; border: 1.5px dashed #C9A15F; background: #FFF8EC; text-align: center; }
body.im-page .im-gap h4 { font-size: 14.5px; color: #7A4E00; }
body.im-page .im-gap p { margin-top: 4px; font-size: 13px; line-height: 1.4; color: #6B5023; }
body.im-page .im-layer { padding: 16px; border-radius: 12px; background: var(--ws-navy); color: #fff; animation: imIn .4s var(--ws-ease); }
body.im-page .im-layer h4 { font-size: 15px; }
body.im-page .im-layer ul { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
body.im-page .im-layer li { padding: 3px 8px; border-radius: 6px; background: rgba(255,255,255,.12); font-size: 12px; color: #E6EEFA; }
body.im-page .im-layer.active { box-shadow: 0 0 0 3px rgba(157,189,240,.6); }
@keyframes imIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

body.im-page .im-lower { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(18px, 3vw, 36px); margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ws-line); }
body.im-page .im-lower > * { min-width: 0; }
body.im-page .im-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
body.im-page .im-link { display: grid; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--ws-line); }
body.im-page .im-link.manual { border-style: dashed; border-color: #D8B06A; }
body.im-page .im-link-path { font-size: 13.5px; color: var(--ws-ink); overflow-wrap: anywhere; }
body.im-page .im-link-arrow { color: var(--ws-navy); font-weight: 600; }
body.im-page .im-link.manual .im-link-arrow { color: #8A5200; }
body.im-page .im-link-text { font-size: 13.5px; color: var(--ws-text-2); line-height: 1.45; }
body.im-page .im-note { margin-top: 10px; font-size: 13.5px; line-height: 1.5; color: var(--ws-muted); }
body.im-page .im-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
body.im-page .im-steps li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 9px; font-size: 14px; color: var(--ws-text-2); background: #fff; border: 1px solid var(--ws-line); }
body.im-page .im-step-n { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 600; border: 1.5px solid currentColor; color: var(--ws-navy); }
body.im-page .im-step-l { min-width: 0; }
body.im-page .im-step-s { font-size: 12px; font-weight: 600; color: var(--ws-muted); text-align: right; }
body.im-page .im-steps li.st-done { color: var(--ws-ink); }
body.im-page .im-steps li.st-done .im-step-n { background: var(--ws-navy); color: #fff; border-color: var(--ws-navy); }
body.im-page .im-steps li.st-done .im-step-s { color: #1C6B3F; }
body.im-page .im-steps li.st-current { border-color: var(--ws-navy); box-shadow: inset 3px 0 0 var(--ws-navy); color: var(--ws-ink); }
body.im-page .im-steps li.st-current .im-step-s { color: var(--ws-navy); }
body.im-page .im-steps li.st-held { border-color: #C77A00; background: #FFF6E6; color: #5E3C00; }
body.im-page .im-steps li.st-held .im-step-n, body.im-page .im-steps li.st-held .im-step-s { color: #8A5200; }
body.im-page .im-issues li { grid-template-columns: 26px minmax(0, 1fr); border-style: dashed; border-color: #D8B06A; background: #FFFBF3; color: #5E3C00; }
body.im-page .im-issues .im-step-n { color: #8A5200; }
body.im-page .im-ctrls { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
body.im-page .im-ctrls[hidden], body.im-page .im-btn[hidden], body.im-page .im-mon[hidden] { display: none; }
body.im-page .im-btn { min-height: 44px; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--ws-line); background: #fff; color: var(--ws-ink); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; max-width: 100%; white-space: normal; text-align: left; }
body.im-page .im-btn-main { background: var(--ws-navy); border-color: var(--ws-navy); color: #fff; }
body.im-page .im-btn[aria-pressed="true"] { border-color: #C77A00; background: #FFF6E6; color: #5E3C00; }
body.im-page .im-btn-warn { border-color: #C77A00; color: #5E3C00; background: #FFE9C2; }
body.im-page .im-btn-quiet { background: transparent; }
body.im-page .im-btn[aria-disabled="true"] { background: #E3E8EF; border-color: #E3E8EF; color: #4A5872; cursor: not-allowed; }
body.im-page .im-err { min-height: 1.4em; margin-top: 8px; font-size: 13.5px; color: #7A4E00; }
body.im-page .im-mon { margin-top: 8px; padding: 12px 14px; border-radius: 10px; background: #0F1F38; color: #DCE7F8; font: 12.5px/1.55 ui-monospace, Menlo, monospace; display: grid; gap: 4px; }
body.im-page .im-mon-t { font: 600 11px/1.4 inherit; font-family: inherit; letter-spacing: .12em; text-transform: uppercase; color: #9DBDF0; }
body.im-page .im-mon-l { overflow-wrap: anywhere; }
body.im-page .im-mon-l.idle { color: #9AA9C0; }
body.im-page .im-mon-k { display: inline-block; min-width: 52px; font-weight: 700; color: #8FD4AC; }
body.im-page .im-mon-l.error .im-mon-k { color: #FFC56B; }
body.im-page .im-disc { margin-top: 16px; font-size: 13px; color: var(--ws-muted); }

/* 4 capabilities */
body.im-page .im-cap-major { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 32px); }
body.im-page .im-cap { padding-top: 18px; border-top: 2px solid var(--ws-navy); display: grid; gap: 10px; align-content: start; min-width: 0; }
body.im-page .im-cap-n { font: 500 13px ui-monospace, Menlo, monospace; color: var(--ws-navy); }
body.im-page .im-cap h3 { font-size: clamp(20px, 1.9vw, 24px); line-height: 1.2; letter-spacing: -.02em; color: var(--ws-ink); }
body.im-page .im-cap p { font-size: 15.5px; line-height: 1.6; color: var(--ws-text-2); }
body.im-page .im-cap .im-cap-x { font-size: 13.5px; line-height: 1.55; color: var(--ws-navy); }
body.im-page .im-cap-minor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: clamp(28px, 3.5vw, 44px); border: 1px solid var(--ws-line); border-radius: 14px; background: var(--ws-card); }
body.im-page .im-cap-minor article { padding: 20px 22px; min-width: 0; }
body.im-page .im-cap-minor article + article { border-left: 1px solid var(--ws-line); }
body.im-page .im-cap-minor h3 { font-size: 17px; color: var(--ws-ink); margin-bottom: 6px; }
body.im-page .im-cap-minor p { font-size: 14.5px; line-height: 1.55; color: var(--ws-text-2); }
body.im-page .im-systems { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 56px); align-items: center; margin-top: clamp(32px, 4vw, 52px); padding: clamp(20px, 3vw, 32px); border-radius: 16px; background: var(--ws-ice); }
body.im-page .im-systems > * { min-width: 0; }
body.im-page .im-systems h3 { font-size: 19px; line-height: 1.3; color: var(--ws-ink); }
body.im-page .im-systems p { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--ws-text-2); }
body.im-page .im-sys-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.im-page .im-sys-list li { padding: 9px 14px; border-radius: 10px; background: #fff; border: 1px solid rgba(24,70,132,.2); font-size: 14px; font-weight: 500; color: var(--ws-ink); }

/* 5 engineering (dark) */
body.im-page .im-arch { margin: 0; padding: clamp(18px, 3vw, 32px); border: 1px solid var(--ws-line-dark); border-radius: 16px; background: rgba(157,189,240,.04); }
body.im-page .im-arch-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 110px) minmax(0, 1.15fr) minmax(0, 110px) minmax(0, 1fr); gap: 12px; align-items: stretch; }
body.im-page .im-arch-cols > * { min-width: 0; }
body.im-page .im-arch-col { padding: 16px; border-radius: 12px; border: 1px solid rgba(157,189,240,.3); }
body.im-page .im-arch-col.core { background: #1F4F92; border-color: rgba(157,189,240,.5); }
body.im-page .im-arch-col h3 { font-size: 15px; color: #fff; margin-bottom: 10px; }
body.im-page .im-arch-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
body.im-page .im-arch-col li { padding: 7px 10px; border-radius: 7px; background: rgba(255,255,255,.07); font-size: 13.5px; line-height: 1.35; color: #E6EEFA; }
body.im-page .im-arch-arrow { align-self: center; display: grid; gap: 4px; justify-items: center; text-align: center; font-size: 12.5px; line-height: 1.4; color: var(--ws-on-dark-2); }
body.im-page .im-arch-arrow > span:first-child { font-size: 24px; color: #9DBDF0; }
body.im-page .im-arch-cross { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; padding: 12px 14px; border-radius: 10px; border: 1px dashed rgba(157,189,240,.45); }
body.im-page .im-arch-cross b { color: #fff; font-size: 13.5px; margin-right: 6px; }
body.im-page .im-arch-cross span { padding: 5px 10px; border-radius: 999px; background: rgba(157,189,240,.12); font-size: 13px; color: #DCE7F8; }
body.im-page .im-arch figcaption { margin-top: 14px; font-size: 13px; color: var(--ws-on-dark-2); }
body.im-page .im-pat { margin-top: clamp(36px, 4.5vw, 56px); }
body.im-page .im-pat h3, body.im-page .im-assure > h3, body.im-page .im-work-head h3 { color: #fff; }
body.im-page .im-pat dl { margin: 18px 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
body.im-page .im-pat dl > div { padding: 14px; border-radius: 10px; background: rgba(255,255,255,.04); border: 1px solid var(--ws-line-dark); min-width: 0; }
body.im-page .im-pat dt { font-size: 15px; font-weight: 600; color: #fff; }
body.im-page .im-pat dd { margin: 6px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--ws-on-dark-2); }
body.im-page .im-assure { margin-top: clamp(36px, 4.5vw, 56px); }
body.im-page .im-as-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; margin-top: 18px; }
body.im-page .im-as-grid article { padding-top: 14px; border-top: 1px solid var(--ws-line-dark); min-width: 0; }
body.im-page .im-as-grid h4 { font-size: 16.5px; color: #fff; margin-bottom: 6px; }
body.im-page .im-as-grid p { font-size: 14.5px; line-height: 1.55; color: var(--ws-on-dark-2); }
body.im-page .im-work { margin-top: clamp(40px, 5vw, 64px); padding-top: clamp(28px, 3vw, 40px); border-top: 1px solid var(--ws-line-dark); }
body.im-page .im-work-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 32px; margin-bottom: 22px; }
body.im-page .im-work-head p { font-size: 14.5px; color: var(--ws-on-dark-2); }
body.im-page .im-boa { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
body.im-page .im-boa > * { min-width: 0; }
body.im-page .im-boa-media { position: relative; padding-bottom: 14%; }
body.im-page .im-boa-sub { position: absolute; width: 42%; right: -2%; bottom: 0; }
body.im-page .im-boa-sub img { box-shadow: 0 18px 32px rgba(0,0,0,.35); }
body.im-page .im-boa-body { display: grid; gap: 10px; justify-items: start; }
body.im-page .im-boa-body h4 { font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -.03em; color: #fff; }
body.im-page .im-boa-body p { font-size: 15.5px; line-height: 1.6; color: var(--ws-on-dark); }
body.im-page .im-boa-body .im-boa-lim { font-size: 14px; color: var(--ws-on-dark-2); padding-left: 12px; border-left: 2px solid rgba(157,189,240,.45); }
body.im-page .im-adj { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 32px; align-items: center; margin-top: 28px; padding: 16px 18px; border-radius: 12px; border: 1px solid var(--ws-line-dark); font-size: 14.5px; line-height: 1.55; color: var(--ws-on-dark-2); }
body.im-page .im-adj b { color: #fff; }

/* 6 path + FAQ */
body.im-page .im-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; position: relative; }
body.im-page .im-stages li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 0 18px 0 0; min-width: 0; }
body.im-page .im-ph { align-self: flex-start; font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ws-navy); }
body.im-page .im-glyph { display: flex; gap: 6px; align-items: center; height: 30px; margin: 4px 0 6px; position: relative; }
body.im-page .im-glyph::before { content: ""; position: absolute; left: 0; right: -18px; top: 50%; height: 1.5px; background: var(--ws-line); }
body.im-page .im-glyph i { position: relative; width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid rgba(24,70,132,.4); background: var(--ws-bg, #F6F4EF); }
body.im-page .im-stages li[data-phase="2"] .im-glyph i:nth-child(2) { border-style: dashed; border-color: var(--ws-navy); }
body.im-page .im-stages li[data-phase="3"] .im-glyph i:nth-child(-n+2) { background: var(--ws-navy); border-color: var(--ws-navy); }
body.im-page .im-stages li[data-phase="4"] .im-glyph i { background: var(--ws-navy); border-color: var(--ws-navy); }
body.im-page .im-stages li[data-phase="4"] .im-glyph i:nth-child(3) { background: rgba(24,70,132,.45); }
body.im-page .im-stages li[data-phase="5"] .im-glyph i { background: var(--ws-navy); border-color: var(--ws-navy); }
body.im-page .im-stages li[data-phase="5"] .im-glyph::before { background: var(--ws-navy); }
body.im-page .im-stages h3 { font-size: 17px; line-height: 1.3; color: var(--ws-ink); }
body.im-page .im-stages p { font-size: 14.5px; line-height: 1.55; color: var(--ws-text-2); }
body.im-page .im-you { margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--ws-line); font-size: 13.5px !important; color: var(--ws-ink) !important; }
body.im-page .im-you b { color: var(--ws-navy); }
body.im-page .im-path-note { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; margin-top: 26px; font-size: 14.5px; color: var(--ws-text-2); }
body.im-page .im-faq-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 80px); margin-top: clamp(44px, 5.5vw, 72px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--ws-line); }
body.im-page .im-faq-wrap > * { min-width: 0; }
body.im-page .im-faq-h { font-size: clamp(26px, 2.8vw, 38px); }
body.im-page .ws-faq summary { min-height: 44px; }
body.im-page .im-related { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; font-size: 14px; color: var(--ws-text-2); align-items: center; }
body.im-page .im-related span { width: 100%; }
body.im-page .im-related a { padding: 9px 12px; border-radius: 999px; border: 1px solid rgba(24,70,132,.25); color: var(--ws-navy); font-weight: 500; }
body.im-page .im-related a:hover { background: var(--ws-ice); }

/* 7 CTA */
body.im-page .im-cta-in { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 48px; align-items: end; position: relative; z-index: 1; }
body.im-page .im-cta-in > * { min-width: 0; }
body.im-page .im-cta .ws-lead { margin-top: 16px; }
body.im-page .im-cta-sub { margin-top: 20px; font-size: 14.5px; }
body.im-page .im-cta-sub a { color: #B9D0F5; text-decoration: underline; text-underline-offset: 3px; display: inline-block; padding: 10px 0; }

@media (max-width: 1100px) {
  body.im-page .im-board { grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr); }
  body.im-page .im-board > :nth-child(4) { display: none; }
  body.im-page .im-targets { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body.im-page .im-pat dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.im-page .im-stages { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 32px; }
  body.im-page .im-arch-cols { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-arch-arrow { grid-auto-flow: column; justify-content: start; align-items: center; gap: 10px; text-align: left; }
  body.im-page .im-arch-arrow > span:first-child { transform: rotate(90deg); }
  body.im-page .im-arch-col ul { grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); }
}
@media (max-width: 900px) {
  body.im-page .im-head, body.im-page .im-hero-grid, body.im-page .im-prob-grid, body.im-page .im-lower, body.im-page .im-systems, body.im-page .im-boa, body.im-page .im-faq-wrap, body.im-page .im-cta-in, body.im-page .im-static, body.im-page .im-adj { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-cap-major { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-cap-minor { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-cap-minor article + article { border-left: 0; border-top: 1px solid var(--ws-line); }
  body.im-page .im-as-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body.im-page .im-boa-sub { right: 0; }
  body.im-page .im-seg { flex-basis: 100%; }
}
@media (max-width: 640px) {
  body.im-page .im-board { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-flow-mark { transform: rotate(90deg); height: 22px; }
  body.im-page .im-board > :nth-child(4) { display: grid; }
  body.im-page .im-targets { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-keep { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-keep li, body.im-page .im-keep li + li { padding: 10px 0; border-left: 0; border-bottom: 1px solid var(--ws-line); grid-template-columns: 100px minmax(0, 1fr); align-items: baseline; }
  body.im-page .im-pat dl, body.im-page .im-as-grid, body.im-page .im-stages { grid-template-columns: minmax(0, 1fr); }
  body.im-page .im-stages li { padding: 0 0 0 0; }
  body.im-page .im-glyph::before { right: 0; }
  body.im-page .im-steps li { grid-template-columns: 26px minmax(0, 1fr); }
  body.im-page .im-step-s { grid-column: 2; text-align: left; }
  body.im-page .im-btn { flex: 1 1 100%; text-align: center; }
  body.im-page .im-seg button { padding: 8px 8px; font-size: 13.5px; }
  body.im-page .im-boa-media { padding-bottom: 20%; }
  body.im-page .im-boa-sub { width: 50%; }
  body.im-page .im-sits li { grid-template-columns: 34px minmax(0, 1fr); column-gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  body.im-page .im-layer { animation: none; }
  body.im-page .im-zoom img, body.im-page .im-seg button, body.im-page .im-sys { transition: none; }
  body.im-page .im-zoom:hover img { transform: none; }
}
