.information-page {
  min-width:0;
  overflow-wrap:anywhere;
  background:var(--surface-soft);
  color:var(--ink);
  font-size:16px;
}
.information-page [id] { scroll-margin-top:110px; }
.information-page h1,
.information-page h2,
.information-page h3,
.information-page h4 {
  color:var(--dark);
  font-family:var(--heading);
}
.information-container {
  width:min(var(--container),calc(100% - 2 * var(--gutter)));
  min-width:0;
  margin-inline:auto;
}
.information-review {
  margin:0;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  color:var(--gold-text);
  font-size:16px;
  font-weight:800;
  letter-spacing:.03em;
}
.information-breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:7px 10px;
  padding:20px 0 0;
  color:var(--muted);
  font-size:16px;
}
.information-breadcrumb a { color:var(--dark); }
.information-hero { padding:var(--section-y-hero) 0 clamp(40px,4.5vw,64px); }
/* The page diagram sits in the right-hand part of the hero (under the text on
   narrow screens). */
/* The diagram track is bounded by the container (never more than 40%), so a
   narrow container shrinks the diagram instead of overflowing. */
.information-hero--visual .information-container {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,min(clamp(300px,28vw,360px),40%));
  column-gap:var(--gap); align-items:center;
}
.information-hero--visual .information-container > * { grid-column:1; }
.information-hero--visual .lv-diagram { grid-column:2; grid-row:1 / span 3; width:100%; }
.information-hero h1 {
  max-width:900px;
  margin:0;
  font:800 clamp(36px,4.6vw,64px)/1.08 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.information-lead {
  max-width:720px;
  color:var(--muted);
  margin:20px 0 0;
  font-size:clamp(18px,2vw,22px);
  line-height:1.6;
}
/* White reading sections divided by rules; the soft neutral for light
   functional bands; navy for the few anchors. */
.information-section { padding:var(--section-y) 0; background:var(--surface-light); }
.information-section + .information-section { border-top:1px solid var(--line); }
.information-section--tint { background:var(--surface-soft) !important; }
.information-page--legal .information-section--tint { background:var(--surface-light) !important; }
.information-section--navy,
.information-section--booking {
  border-top:0 !important;
  background:var(--surface-navy) !important;
  color:var(--on-dark);
}
.information-section--navy h2,
.information-section--navy h3,
.information-section--booking h2,
.information-section--booking h3 { color:var(--on-dark); }
.information-section--navy .information-counter,
.information-section--booking .information-counter,
.information-section--navy .eyebrow { color:var(--gold); }
.information-section h2 {
  max-width:780px;
  margin:0 0 18px;
  font:800 clamp(28px,3.2vw,42px)/1.16 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.information-section-intro { max-width:760px; margin:0 0 22px; }
.information-prose { max-width:900px; }
.information-prose p { max-width:820px; margin:0 0 18px; }
.information-prose ul {
  display:grid;
  gap:10px;
  max-width:850px;
  margin:16px 0;
  padding-left:24px;
}
.information-prose li { padding-left:5px; }
.information-counter {
  display:block;
  margin-bottom:15px;
  color:var(--gold-text);
  font-size:14px;
  font-weight:700;
  letter-spacing:var(--eyebrow-tracking);
}
.information-grid {
  display:grid;
  min-width:0;
  gap:18px;
}
.information-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.information-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.information-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:26px;
  border:1px solid var(--line);
  border-top:2px solid var(--navy);
  background:var(--white);
}
.information-card h2 {
  margin:0 0 15px;
  font-size:23px;
  letter-spacing:var(--tracking-tight);
}
.information-card h3 {
  margin:0 0 20px;
  font-size:24px;
  line-height:1.25;
}
.information-card p { margin:0 0 22px; }
.information-card .information-text-link { margin-top:auto; }
.information-text-link {
  display:inline-block;
  padding:3px 0;
  border:0;
  background:transparent;
  color:inherit;
  font-weight:800;
  text-align:left;
  text-decoration:underline;
  text-underline-offset:4px;
}
.information-button {
  min-height:48px;
  padding:13px 20px;
  border:1px solid currentColor;
  font-weight:800;
}
.information-button--gold {
  border-color:var(--gold);
  background:var(--gold);
  color:var(--dark);
}
.information-callout {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:48px;
}
.information-callout p { max-width:720px; margin:0; }
.information-link-panel {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.information-link-panel a {
  padding:28px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--dark);
  font:800 20px/1.35 var(--heading);
}
.information-disclaimer {
  margin-top:28px !important;
  padding:14px 18px;
  border-left:3px solid var(--gold);
}
/* Contact: the direct details as two ruled columns, then the meeting
   options (#meeting-options) as a compact 2 x 2 editorial grid with thin
   rules; one column on phones. */
.contact-details {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 var(--gap);
  border-top:1px solid var(--line);
}
.contact-detail { min-width:0; padding-top:22px; }
.contact-detail h3 { margin:0 0 10px; font-size:20px; }
.contact-detail p { margin:0 0 8px; }
.contact-detail address { color:var(--muted); font-style:normal; }
.meeting-intro { max-width:720px; margin:0 0 26px; }
.meeting-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:2px solid var(--navy);
  border-left:1px solid var(--line);
  background:var(--white);
}
.meeting-option {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-content:start;
  column-gap:16px;
  min-width:0;
  padding:24px 26px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.meeting-option .information-counter { grid-row:span 4; margin:3px 0 0; }
.meeting-option h3 { margin:0 0 8px; font-size:20px; line-height:1.3; }
.meeting-option p { margin:0 0 6px; }
.meeting-option .meeting-duration { color:var(--muted); font-size:15px; }
.meeting-option .information-button { justify-self:start; margin-top:14px; }
.meeting-services { margin:20px 0 0; }
/* Service pages: editorial sections with rules, not boxes. */
.information-page--service .information-hero,
.information-page--company .information-hero,
.information-page--method .information-hero { padding:clamp(40px,4vw,56px) 0 clamp(40px,3.5vw,48px); }
.service-section, .service-pair {
  padding:var(--section-y-tight) 0;
  border-top:1px solid var(--line);
  background:var(--surface-light);
}
/* A navy anchor among the editorial sections. */
.service-section--navy { border-top:0; background:var(--surface-navy); color:var(--on-navy); }
.service-section--navy h2 { color:var(--on-navy); }
.service-section--navy p { color:var(--on-navy-muted); }
.service-split {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  gap:16px var(--gap);
  align-items:start;
}
.service-split > h2, .service-pair h2 {
  margin:0;
  font:800 clamp(24px,2.4vw,32px)/1.2 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.service-split-body { min-width:0; max-width:720px; }

.service-pair-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px var(--gap);
}
.service-pair section { min-width:0; }
.service-pair h2 { margin-bottom:14px; }
.service-list { margin:0; padding:0; list-style:none; counter-reset:item; }
.service-list li {
  position:relative;
  padding:12px 0 12px 24px;
  border-top:1px solid var(--line-strong);
}
.service-list li::before {
  content:"";
  position:absolute;
  top:23px;
  left:0;
  width:8px;
  height:8px;
  background:var(--gold);
}
.service-list--numbered li { padding-left:40px; counter-increment:item; }
.service-list--numbered li::before {
  content:"0" counter(item);
  top:13px;
  width:auto;
  height:auto;
  background:none;
  color:var(--gold-text);
  font:700 14px/1.7 var(--heading);
}
.service-method { max-width:680px; margin:0 0 16px; font-size:18px; }
.ai-needs { margin-top:8px; border-top:1px solid var(--line-strong); }
.ai-need-card {
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:6px 12px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.ai-need-card .information-counter { grid-row:span 2; margin:4px 0 0; }
.ai-need-card h3 { margin:0; font:700 20px/1.3 var(--heading); }
.ai-need-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px var(--gap); margin:8px 0 0; }
.ai-need-card dt {
  color:var(--gold-text);
  font-size:14px;
  font-weight:700;
  letter-spacing:var(--eyebrow-tracking);
}
.ai-need-card dd { margin:4px 0 0; }
.service-related { border-top:0; background:var(--surface-navy); color:var(--on-dark); }
.service-related h2 { color:var(--on-dark); }
.information-related-grid { display:grid; border-top:1px solid var(--on-dark-line); }
.information-related-link {
  display:grid;
  gap:4px;
  width:100%;
  padding:14px 0;
  border:0;
  border-bottom:1px solid var(--on-dark-line);
  background:none;
  color:var(--on-dark);
  font:inherit;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
.service-related .information-related-link span {
  color:var(--gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:var(--eyebrow-tracking);
}
.information-related-link strong { font:600 18px/1.35 var(--heading); }
.service-related .information-related-link:hover strong { color:var(--gold); }
/* The closing call to action: a light band before the navy footer. */
.service-cta { padding:var(--section-y) 0; border-top:1px solid var(--line); background:var(--surface-soft); }
.service-cta h2 {
  margin:0 0 12px;
  font:800 clamp(28px,3.2vw,42px)/1.16 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.service-cta p { max-width:640px; margin:0 0 20px; color:var(--muted); font-size:18px; }
/* Products: compact rows with context and status, not product cards. */
.product-list-title {
  margin:0 0 14px;
  font:800 clamp(24px,2.4vw,32px)/1.2 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.product-list { border-bottom:1px solid var(--line-strong); }
.product-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,auto);
  gap:12px var(--gap);
  align-items:start;
  padding:18px 0;
  border-top:1px solid var(--line-strong);
}
.product-row h3 { margin:0 0 6px; font:700 clamp(20px,2vw,24px)/1.25 var(--heading); letter-spacing:var(--tracking-tight); }
.product-row-main p { margin:0; color:var(--muted); }
.product-row-main .product-row-service { margin-top:10px; color:var(--ink); }
.product-row-service span { color:var(--gold-text); font-size:14px; font-weight:700; letter-spacing:var(--eyebrow-tracking); }
.product-row-meta { display:grid; justify-items:start; gap:12px; }
/* Corporate pages: narrative sections, the operating model as the navy
   anchor, the method as a process, leadership as a closing subsection. */
.company-model { border-top:0; background:var(--surface-navy); color:var(--on-dark); }
.company-model h2 { color:var(--on-dark); }
.company-model .service-list li { border-top-color:var(--on-dark-line); }
.company-model .information-text-link { margin-top:20px; color:var(--on-dark); }
.company-links a { font-weight:600; text-decoration:none; }
.company-links a:hover { color:var(--gold-text); }
.company-section .service-split-body > p { max-width:680px; }
.company-leadership .service-split-body > p { color:var(--muted); font-size:16px; }
.company-profile-links { display:flex; flex-wrap:wrap; gap:8px 28px; margin-top:8px; }
.method-statement {
  max-width:900px;
  margin:0 0 24px;
  font:800 clamp(28px,3.2vw,42px)/1.16 var(--heading);
  letter-spacing:var(--tracking-tight);
}
.method-process { margin:0; padding:0; list-style:none; border-bottom:1px solid var(--line-strong); }
.method-process-step {
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:10px 16px;
  padding:20px 0;
  border-top:1px solid var(--line-strong);
}
/* The six steps read as a process: a strong counter on a navy rule. */
.method-process-step:first-child { border-top:2px solid var(--navy); }
.method-process-step .information-counter { grid-row:span 2; margin:0; font:800 22px/1.1 var(--heading); }
.method-process-step h3 { margin:0; font:700 clamp(20px,2vw,24px)/1.25 var(--heading); letter-spacing:var(--tracking-tight); }
.method-process-detail {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px var(--gap);
  min-width:0;
}
.method-process-detail h4, .method-process-detail dt {
  margin:0 0 6px;
  color:var(--gold-text);
  font-size:14px;
  font-weight:700;
  letter-spacing:var(--eyebrow-tracking);
}
.method-process-detail p, .method-process-detail dd { margin:0; }
.method-process-detail ul { margin:0; padding-left:20px; }
.method-process-detail dl { margin:0; }
.method-process-detail dd + dt { margin-top:14px; }

@media (max-width:1023px) {
  .service-split { grid-template-columns:1fr; }
  .service-split > h2 { margin-bottom:8px; }
  .method-process-detail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .method-process-detail dl { grid-column:1 / -1; }
  .information-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .information-hero--visual .information-container { grid-template-columns:minmax(0,1fr); }
  .information-hero--visual .lv-diagram { grid-column:1; grid-row:auto; margin-top:24px; }
}
@media (max-width:767px) {
  .information-hero h1 { font-size:clamp(34px,10vw,46px); }
  .information-grid--three,
  .information-grid--two,
  .information-link-panel,
  .information-callout { grid-template-columns:1fr; }
  .information-callout { align-items:start; gap:28px; }
  .service-pair-grid, .ai-need-card dl, .product-row { grid-template-columns:1fr; }
  .ai-need-card { grid-template-columns:32px minmax(0,1fr); }
  .service-cta .cta-actions .button { flex:1 1 220px; justify-content:center; }
  .information-callout .information-button { justify-self:start; }
  .contact-details, .meeting-grid { grid-template-columns:1fr; }
  .method-process-step { grid-template-columns:36px minmax(0,1fr); }
  .method-process-detail { grid-template-columns:1fr; }
  .meeting-option { padding:22px 20px; }
}
@media (max-width:390px) {
  .information-card { padding:24px 20px; }
  .meeting-option { padding:20px 16px; column-gap:12px; }
  .information-link-panel a { padding:20px; }
}
@media (max-width:320px) {
  .information-hero h1 { font-size:32px; }
  .information-section h2 { font-size:27px; }
  .information-card { padding:20px 16px; }
  .information-button { width:100%; white-space:normal; }
}
/* AI Workforce (AI & Digital Transformation): a native before -> human + AI
   employee -> after operating-model diagram on the soft surface. Thin navy
   rules, gold for the transition, outlined squares for the fragmented state
   and filled squares on one connected rule for the coordinated state (shape
   and alignment, not only colour). Text first; the SVG marks are decorative. */
.ai-workforce { background:var(--surface-soft); }
.aiw-intro { max-width:880px; margin-bottom:clamp(28px,3vw,40px); }
.aiw-intro h2 { margin:0 0 16px; color:var(--navy); font:800 clamp(26px,2.6vw,34px)/1.18 var(--heading); letter-spacing:var(--tracking-tight); }
.aiw-intro h2 span { display:block; }
.aiw-intro p { max-width:680px; margin:0; color:var(--muted); font-size:18px; }
.aiw-map {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,200px) minmax(0,1fr);
  grid-template-areas:"before bridge after" "before bridge capabilities";
  grid-template-rows:auto 1fr;
  gap:0 clamp(16px,2.4vw,32px);
  padding:28px 0;
  border-top:1px solid var(--navy);
  border-bottom:1px solid var(--line-strong);
}
.aiw-zone--before { grid-area:before; }
.aiw-zone--after { grid-area:after; }
.aiw-bridge { grid-area:bridge; }
.aiw-capabilities { grid-area:capabilities; }
.aiw-zone { min-width:0; }
.aiw-glyph { display:block; width:64px; height:44px; fill:none; stroke:var(--navy); stroke-width:1.5; }
.aiw-zone--before .aiw-glyph { stroke:var(--muted); }
.ai-workforce .aiw-fill { fill:var(--gold); stroke:var(--gold); }
.aiw-zone h3 { margin:14px 0 12px; }
.aiw-label { display:block; color:var(--navy); font:800 15px/1.3 var(--heading); letter-spacing:var(--eyebrow-tracking); }
.aiw-sub { display:block; margin-top:4px; color:var(--dark); font:700 18px/1.3 var(--heading); }
.aiw-nodes { margin:0; padding:0; list-style:none; }
.aiw-nodes li { position:relative; padding:9px 0 9px 22px; font-size:16px; line-height:1.45; }
.aiw-nodes li::before { content:""; position:absolute; top:16px; left:0; width:8px; height:8px; box-sizing:border-box; }
/* Fragmented: separate outlined fragments, deliberately out of line. */
.aiw-nodes--before li { border-top:1px solid var(--line); color:var(--muted); }
.aiw-nodes--before li:nth-child(even) { margin-left:14px; }
.aiw-nodes--before li::before { border:1.5px solid var(--muted); }
/* Coordinated: one continuous rule with filled nodes. */
.aiw-nodes--after { border-left:1px solid var(--navy); margin-left:3.5px; }
.aiw-nodes--after li { padding-left:20px; }
.aiw-nodes--after li::before { left:-4.5px; background:var(--gold); }
.aiw-nodes--after li:nth-child(-n+2) { font-weight:700; }
.aiw-bridge {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:"in mark out" "title title title" "sub sub sub";
  align-items:center;
  align-self:center;
  min-width:0;
  padding:12px 0;
  text-align:center;
}
.aiw-connector { grid-area:in; position:relative; height:1px; background:var(--gold); }
.aiw-connector--out { grid-area:out; }
.aiw-connector--out::after {
  content:""; position:absolute; top:-4px; right:0; width:8px; height:8px;
  border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold); transform:rotate(45deg);
}
.aiw-bridge-mark { grid-area:mark; width:76px; height:36px; margin:0 8px; fill:none; stroke:var(--navy); stroke-width:1.5; }
.aiw-bridge-title { grid-area:title; margin:14px 0 0; color:var(--navy); font:800 18px/1.3 var(--heading); }
.aiw-bridge-sub { grid-area:sub; margin:6px 0 0; color:var(--gold-text); font-size:14px; font-weight:700; line-height:1.45; }
.aiw-capabilities { min-width:0; margin-top:22px; padding-top:14px; border-top:1px solid var(--line-strong); }
.aiw-capabilities h3 { margin:0 0 10px; color:var(--gold-text); font:700 14px/1.4 var(--heading); letter-spacing:var(--eyebrow-tracking); }
.aiw-capabilities ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin:0; padding:0; list-style:none; }
.aiw-capabilities li { display:flex; align-items:center; gap:10px; min-width:0; font-size:15px; line-height:1.35; }
.aiw-icon { flex:none; width:20px; height:20px; fill:none; stroke:var(--navy); stroke-width:1.5; stroke-linejoin:round; }
.aiw-model { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 var(--gap); margin:32px 0 0; padding:0; list-style:none; }
.aiw-step { position:relative; min-width:0; padding-top:16px; border-top:2px solid var(--navy); }
.aiw-step:not(:last-child)::after {
  content:""; position:absolute; top:-6px; right:calc(var(--gap) / -2 - 5px);
  width:10px; height:10px; background:var(--gold); transform:rotate(45deg);
}
.aiw-step .information-counter { margin-bottom:8px; }
.aiw-step h3 { margin:0 0 6px; color:var(--navy); font:700 20px/1.3 var(--heading); }
.aiw-step p { margin:0; color:var(--muted); }
.aiw-closing {
  max-width:760px; margin:32px 0 0; padding:4px 0 4px 20px; border-left:3px solid var(--gold);
  color:var(--navy); font:700 clamp(20px,2vw,26px)/1.35 var(--heading);
}
.aiw-closing span { display:block; }
@media (max-width:1023px) {
  .aiw-map { grid-template-columns:minmax(0,1fr) minmax(0,132px) minmax(0,1fr); }
  .aiw-bridge-mark { width:60px; height:28px; margin:0 6px; }
  .aiw-bridge-title { font-size:16px; }
  .aiw-capabilities ul { grid-template-columns:1fr; }
}
/* Phones: before, then the transition, then after, then the model, top to bottom. */
@media (max-width:767px) {
  .aiw-map { grid-template-columns:minmax(0,1fr); grid-template-areas:"before" "bridge" "after" "capabilities"; grid-template-rows:none; padding:22px 0; }
  .aiw-bridge { grid-template-columns:minmax(0,1fr); grid-template-areas:"in" "mark" "title" "sub" "out"; justify-items:center; padding:22px 0; }
  .aiw-connector { width:1px; height:24px; }
  .aiw-connector--out::after { top:auto; bottom:0; right:-4px; transform:rotate(135deg); }
  .aiw-bridge-mark { margin:8px 0 0; }
  .aiw-nodes--before li:nth-child(even) { margin-left:10px; }
  .aiw-capabilities ul { grid-template-columns:1fr; }
  .aiw-model { grid-template-columns:1fr; margin-top:26px; }
  .aiw-step { padding:2px 0 20px 20px; border-top:0; border-left:2px solid var(--navy); }
  .aiw-step:not(:last-child)::after { top:auto; right:auto; bottom:-6px; left:-6px; }
}

/* Service transformation visuals (business, finance, people, ISO, training):
   one family with the AI Workforce visual, five structures. Soft surface,
   navy rules, square nodes, gold for emphasis and control points, solid
   connectors only. All meaning is HTML text; SVG cues are decorative. */
.service-visual { --sv-gap:clamp(20px,2.4vw,32px); background:var(--surface-soft); }
.sv-intro { max-width:880px; margin-bottom:clamp(28px,3vw,40px); }
.sv-intro h2 { margin:0 0 16px; color:var(--navy); font:800 clamp(26px,2.6vw,34px)/1.18 var(--heading); letter-spacing:var(--tracking-tight); }
.sv-intro h2 span { display:block; }
.sv-intro p { max-width:680px; margin:0; color:var(--muted); font-size:18px; }
.service-visual [data-part="diagram"] h3 { margin:0; color:var(--navy); font:700 18px/1.3 var(--heading); }
.sv-om-dims p, .sv-stage > p, .sv-loop-step p, .sv-ctl-step p, .sv-path-step p { margin:4px 0 0; color:var(--muted); font-size:16px; line-height:1.45; }
.service-visual .information-counter { margin-bottom:6px; }
.service-visual svg { fill:none; stroke:var(--navy); stroke-width:1.5; stroke-linejoin:round; stroke-linecap:round; }
.sv-node { display:block; flex:none; width:12px; height:12px; box-sizing:border-box; border:1.5px solid var(--navy); background:var(--surface-soft); }
.sv-return { display:none; }
.sv-closing {
  max-width:760px; margin:32px 0 0; padding:4px 0 4px 20px; border-left:3px solid var(--gold);
  color:var(--navy); font:700 clamp(20px,2vw,26px)/1.35 var(--heading);
}
.sv-closing span { display:block; }

/* Business: one operating-model core on a bus with five dimensions. */
.sv-om { display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); padding-top:28px; border-top:1px solid var(--navy); }
.sv-om-core {
  position:relative; display:flex; flex-direction:column; justify-content:center; gap:16px;
  padding:28px 24px; border-bottom:3px solid var(--gold); background:var(--navy);
}
.sv-om-core::after { content:""; position:absolute; top:50%; right:-40px; width:40px; height:2px; background:var(--gold); }
.service-visual .sv-om-mark { width:36px; height:36px; stroke:var(--gold); }
.sv-om-label { display:block; color:var(--on-navy); font:800 22px/1.25 var(--heading); }
.sv-om-dims { position:relative; min-width:0; margin:0 0 0 40px; padding:0; border-left:2px solid var(--navy); list-style:none; }
.sv-om-dims::before {
  content:""; position:absolute; top:50%; left:-7px; width:12px; height:12px;
  background:var(--gold); transform:translateY(-50%) rotate(45deg);
}
.sv-om-dims li {
  position:relative; display:grid; grid-template-columns:12px minmax(0,190px) minmax(0,1fr);
  column-gap:16px; align-items:baseline; padding:16px 0 16px 28px; border-bottom:1px solid var(--line);
}
.sv-om-dims li:last-child { border-bottom:0; }
.sv-om-dims li::before { content:""; position:absolute; top:26px; left:0; width:28px; height:1px; background:var(--navy); }
.sv-om-dims .sv-node { align-self:center; }
.sv-om-dims p { margin:0; }

/* Finance: distributed inputs -> structured view -> analysis -> decision. */
.sv-pipe { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px var(--sv-gap); margin:0; padding:0; list-style:none; }
.sv-stage { position:relative; min-width:0; padding-top:18px; border-top:2px solid var(--navy); }
.sv-stage:not(:last-child)::after {
  content:""; position:absolute; top:-6px; right:calc(var(--sv-gap) / -2 - 5px);
  width:10px; height:10px; background:var(--gold); transform:rotate(45deg);
}
.service-visual .sv-stage h3 { margin-bottom:12px; }
.sv-stage-nodes { margin:0; padding:0; list-style:none; }
.sv-stage-nodes li { position:relative; padding:7px 0 7px 18px; font-size:15px; line-height:1.4; }
.sv-stage-nodes li::before { content:""; position:absolute; top:13px; left:0; width:8px; height:8px; box-sizing:border-box; }
.sv-stage--1 .sv-stage-nodes li { color:var(--muted); }
.sv-stage--1 .sv-stage-nodes li::before { border:1.5px solid var(--muted); }
.sv-stage--1 .sv-stage-nodes li:nth-child(even) { margin-left:12px; }
.sv-stage--2 .sv-stage-nodes li { border-top:1px solid var(--line); }
.sv-stage--2 .sv-stage-nodes li::before { background:var(--navy); }
.sv-stage--3 .sv-stage-nodes li::before { width:7px; height:7px; background:var(--gold); transform:rotate(45deg); }
.sv-stage--navy { padding:18px 20px 22px; border-top-color:var(--gold); background:var(--navy); }
.service-visual .sv-stage--navy h3 { color:var(--on-navy); }
.sv-stage--navy .information-counter { color:var(--gold); }
.sv-stage--navy > p { color:var(--on-navy-muted); }

/* People: a closed rectangular loop of six stages around one core. The
   corner stages sit on the loop's sides with their text clear of the rule. */
.sv-loop { position:relative; }
.sv-loop::before { content:""; position:absolute; inset:6px; border:1.5px solid var(--navy); pointer-events:none; }
.sv-loop-row { display:flex; gap:var(--sv-gap); margin:0; padding:0; list-style:none; }
.sv-loop-row--return { flex-direction:row-reverse; }
.sv-loop-step { position:relative; flex:1 1 0; min-width:0; padding:26px 0 0; text-align:center; }
.sv-loop-row--return .sv-loop-step { padding:0 0 26px; }
.sv-loop-step .sv-node { position:absolute; top:0; left:calc(50% - 6px); z-index:1; }
.sv-loop-row--return .sv-node { top:auto; bottom:0; }
.sv-loop-row:not(.sv-loop-row--return) > :first-child, .sv-loop-row--return > :last-child { padding-left:24px; text-align:left; }
.sv-loop-row:not(.sv-loop-row--return) > :last-child, .sv-loop-row--return > :first-child { padding-right:24px; text-align:right; }
.sv-loop-row:not(.sv-loop-row--return) > :first-child .sv-node, .sv-loop-row--return > :last-child .sv-node { left:0; }
.sv-loop-row:not(.sv-loop-row--return) > :last-child .sv-node, .sv-loop-row--return > :first-child .sv-node { left:auto; right:0; }
.sv-loop-row:first-child > :first-child .sv-node { border-color:var(--gold); background:var(--gold); }
.sv-loop-core { position:relative; max-width:60%; margin:30px auto; padding:16px 20px; text-align:center; }
.sv-loop-label { display:block; color:var(--navy); font:800 22px/1.25 var(--heading); }
.sv-loop-line { display:block; margin:6px 0 0; color:var(--gold-text); font-size:14px; font-weight:700; line-height:1.45; }
.service-visual .sv-loop-turn {
  position:absolute; top:50%; width:18px; height:14px; padding:2px 0;
  background:var(--surface-soft); stroke:var(--gold); stroke-width:2; transform:translateY(-50%);
}
.sv-loop-turn--down { right:-3px; }
.sv-loop-turn--up { left:-3px; }

/* ISO: a controlled sequence with gold control points and a return rail. */
.sv-ctl-steps { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin:0; padding:0; list-style:none; }
.sv-ctl-step { position:relative; min-width:0; padding:22px 16px 0 0; border-top:2px solid var(--navy); }
.sv-ctl-step .sv-node { position:absolute; top:-7px; left:0; border-color:var(--gold); background:var(--gold); }
.sv-ctl-rail {
  position:relative; display:block; height:28px; margin:24px calc(100% / 6 - 6px) 0 6px;
  border:1.5px solid var(--navy); border-top:0;
}
.sv-ctl-rail::before {
  content:""; position:absolute; top:-4px; left:-5px; width:8px; height:8px;
  border-top:2px solid var(--navy); border-left:2px solid var(--navy); transform:rotate(45deg);
}
.sv-ctl-support, .sv-path-examples {
  display:flex; flex-wrap:wrap; gap:10px 28px; margin:24px 0 0; padding:16px 0 0;
  border-top:1px solid var(--line-strong); list-style:none;
}
.sv-ctl-support li, .sv-path-examples li { position:relative; padding-left:18px; color:var(--dark); font-size:15px; font-weight:700; }
.sv-ctl-support li::before, .sv-path-examples li::before {
  content:""; position:absolute; top:7px; left:0; width:8px; height:8px; box-sizing:border-box; border:1.5px solid var(--navy);
}
.sv-path-examples li::before { width:7px; height:7px; transform:rotate(45deg); }

/* Training: a stepped practice path; new practice returns to new situations. */
.sv-path-loop { position:relative; padding-top:36px; }
.sv-path-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:start; margin:0; padding:0; list-style:none; }
.sv-path-step { position:relative; min-width:0; padding:20px 18px 0 16px; border-top:2px solid var(--navy); }
.sv-path-step:nth-child(1) { margin-top:112px; }
.sv-path-step:nth-child(2) { margin-top:84px; }
.sv-path-step:nth-child(3) { margin-top:56px; }
.sv-path-step:nth-child(4) { margin-top:28px; }
.sv-path-step:not(:first-child)::before { content:""; position:absolute; top:-2px; left:0; width:2px; height:30px; background:var(--navy); }
.sv-path-step .sv-node { position:absolute; top:-7px; left:0; }
.sv-path-step:last-child .sv-node { border-color:var(--gold); background:var(--gold); }
.sv-path-rail {
  position:absolute; top:8px; left:6px; right:calc(20% - 6px); height:28px;
  border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold);
}
.sv-path-rail::after { content:""; position:absolute; top:-1.5px; left:0; width:1.5px; height:134px; background:var(--gold); }
.sv-path-rail::before {
  content:""; position:absolute; top:124px; left:-3.5px; width:8px; height:8px;
  border-right:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(45deg);
}

@media (max-width:1023px) {
  .sv-om { grid-template-columns:minmax(0,220px) minmax(0,1fr); }
  .sv-om-dims li { grid-template-columns:12px minmax(0,1fr); }
  .sv-om-dims p { grid-column:2; margin-top:4px; }
  .sv-pipe { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sv-stage:nth-child(2)::after { display:none; }
  /* ISO and training stack below 1024px: a vertical sequence with a return bracket. */
  .sv-ctl-loop, .sv-path-loop { position:relative; padding:0 0 0 24px; }
  .sv-ctl-steps, .sv-path-steps { grid-template-columns:minmax(0,1fr); }
  .sv-ctl-step, .sv-path-step, .sv-path-step:nth-child(n) { margin-top:0; padding:0 0 20px 24px; border-top:0; border-left:2px solid var(--navy); }
  .sv-ctl-step:last-child, .sv-path-step:last-child { padding-bottom:4px; }
  .sv-ctl-step .sv-node, .sv-path-step .sv-node { top:2px; left:-7px; }
  .sv-path-step:not(:first-child)::before { display:none; }
  .sv-ctl-rail, .sv-path-rail {
    position:absolute; top:8px; bottom:10px; left:0; right:auto; width:14px; height:auto; margin:0;
    border:1.5px solid var(--navy); border-right:0;
  }
  .sv-path-rail { border-color:var(--gold); }
  .sv-ctl-rail::before, .sv-path-rail::before {
    top:-5px; left:auto; right:-4px; width:8px; height:8px;
    border:0; border-top:2px solid var(--navy); border-right:2px solid var(--navy); transform:rotate(45deg);
  }
  .sv-path-rail::before { border-color:var(--gold); }
  .sv-path-rail::after { display:none; }
  /* People (below 1024px): the core first, then the six stages in order, then the return cue. */
  .sv-loop { display:flex; flex-direction:column; }
  .sv-loop::before, .service-visual .sv-loop-turn { display:none; }
  .sv-loop-core { order:-1; max-width:none; margin:0 0 22px; padding:0 0 0 16px; border-left:3px solid var(--navy); text-align:left; }
  .sv-loop-row, .sv-loop-row--return { flex-direction:column; gap:0; margin-left:5px; }
  .sv-loop .sv-loop-row > .sv-loop-step { padding:0 0 18px 24px; border-left:2px solid var(--navy); text-align:left; }
  .sv-loop .sv-loop-row .sv-loop-step .sv-node { top:2px; right:auto; bottom:auto; left:-7px; }
  .service-visual .sv-return { display:block; width:36px; height:36px; margin:2px 0 0 -12px; stroke:var(--gold); stroke-width:2; }
}
@media (max-width:767px) {
  .sv-om { grid-template-columns:minmax(0,1fr); }
  .sv-om-core { padding:22px 20px; }
  .sv-om-core::after { display:none; }
  .sv-om-dims { margin:0 0 0 10px; padding-top:18px; }
  .sv-om-dims::before { top:0; transform:translateY(-50%) rotate(45deg); }
  .sv-om-dims li { column-gap:10px; padding:14px 0 14px 20px; }
  .sv-om-dims li::before { top:24px; width:20px; }
  .sv-pipe { grid-template-columns:minmax(0,1fr); gap:30px; }
  .sv-stage:not(:last-child)::after, .sv-stage:nth-child(2)::after {
    display:block; top:auto; right:auto; bottom:-21px; left:0;
  }
}
