:root {
  --bg: #080b11;
  --bg-soft: #0b0f16;
  --panel: #0d1118;
  --panel-2: #101522;
  --text: #f6f7fb;
  --muted: #a1a8b5;
  --muted-2: #858c98;
  --line: rgba(255, 255, 255, 0.10);
  --line-strong: rgba(255, 255, 255, 0.14);
  --accent: #8a5cff;
  --accent-bright: #a182ff;
  --accent-soft: rgba(138, 92, 255, 0.18);
  --radius: 8px;
  --shell: min(1780px, calc(100% - 96px));
}

* { box-sizing: border-box; }

html {
  scroll-behavior: auto;
  background: var(--bg);
  max-width: 100%;
  overflow-x: clip;
}


html, body {
  max-width: 100%;
  overflow-x: clip;
}
body {
  margin: 0;
  min-width: 320px;
  max-width: 100%;
  overflow-x: clip;
  color: var(--text);
  background:
    radial-gradient(circle at 78% 0%, rgba(63, 43, 135, 0.09), transparent 24%),
    linear-gradient(180deg, #080b11 0%, #080b11 60%, #090c12 100%);
  font-family: "Instrument Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { color: #fff; background: rgba(138, 92, 255, 0.55); }
img, svg { display: block; }
a { color: inherit; text-decoration: none; }
.shell { width: var(--shell); margin-inline: auto; }

.site-header {
  height: 100px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  will-change: transform;
}

.site-header::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: -30px;
  left: 50%;
  width: calc(100vw + 120px);
  height: 150px;
  transform: translateX(-50%);
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.085);
  border-radius: 0 0 50% 50% / 0 0 42px 42px;
  background:
    linear-gradient(180deg, rgba(11, 14, 22, 0.79) 0%, rgba(11, 14, 22, 0.58) 55%, rgba(12, 15, 24, 0.24) 100%);
  box-shadow:
    0 20px 52px rgba(0, 0, 0, 0.18),
    0 1px 0 rgba(174, 150, 255, 0.035),
    inset 0 -1px 0 rgba(166, 138, 255, 0.085);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
  pointer-events: none;
}

.site-header::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: -18px;
  width: min(1500px, 86vw);
  height: 42px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(129, 92, 255, 0.115), transparent 70%);
  filter: blur(16px);
  pointer-events: none;
}

.brand {
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -0.045em;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 48px;
  font-size: 12px;
  font-weight: 500;
  color: #eff0f4;
}

.main-nav a,
.footer a,
.text-link { transition: color .2s ease, opacity .2s ease; }
.main-nav a:hover, .footer a:hover { color: var(--accent-bright); }
.header-cta { justify-self: end; }

.outline-button,
.primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  height: 42px;
  padding: 0 20px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.outline-button {
  border: 1px solid rgba(138, 92, 255, 0.64);
  background: rgba(12, 15, 24, 0.68);
}
.outline-button:hover { background: rgba(138, 92, 255, 0.08); }

.primary-button {
  color: white;
  background: linear-gradient(100deg, #6d42ff, #7a4cff 45%, #6338ff);
  border: 1px solid rgba(182, 164, 255, 0.22);
  box-shadow: 0 10px 34px rgba(92, 54, 255, 0.16);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.primary-button:hover {
  transform: translateY(-1px);
  filter: brightness(1.06);
  box-shadow: 0 14px 38px rgba(92, 54, 255, 0.24);
}

/* HERO */
.hero {
  position: relative;
  width: 100%;
  min-height: max(800px, 94svh);
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.006), rgba(255,255,255,0) 20%, rgba(255,255,255,0) 78%, rgba(255,255,255,0.004));
}

.hero-shell {
  min-height: max(800px, 94svh);
  display: flex;
  align-items: center;
  position: relative;
  z-index: 3;
  padding-top: 96px;
}

.hero-copy {
  width: min(900px, 62vw);
  padding: 66px 0 76px;
  position: relative;
  z-index: 4;
}

.hero-copy-aura {
  position: absolute;
  z-index: -1;
  left: -6%;
  top: 3%;
  width: min(760px, 68vw);
  height: 420px;
  pointer-events: none;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 34% 42%, rgba(157, 132, 255, 0.13), rgba(116, 84, 226, 0.045) 44%, transparent 74%),
    radial-gradient(ellipse at 58% 64%, rgba(255,255,255,0.024), transparent 58%);
  filter: blur(22px);
  opacity: .88;
  transform:
    translate3d(
      calc(var(--parallax-x) * -.18),
      calc((var(--parallax-y) * -.14) + (var(--parallax-scroll) * .18)),
      0
    );
  animation: hero-copy-aura-breathe 8.5s cubic-bezier(.42,.08,.24,1) infinite alternate;
}

.eyebrow {
  margin: 0 0 18px;
  color: var(--accent-bright);
  font-size: 11.5px;
  line-height: 1.25;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.hero h1 {
  margin: 0;
  max-width: 920px;
  font-size: clamp(54px, 4.65vw, 78px);
  line-height: 1.045;
  letter-spacing: -0.055em;
  font-weight: 500;
  text-wrap: balance;
  text-shadow:
    0 1px 0 rgba(255,255,255,.045),
    0 10px 34px rgba(8, 10, 18, .34),
    0 0 18px rgba(161, 130, 255, .050);
}

.hero h1 span {
  color: var(--accent);
  text-shadow:
    0 0 18px rgba(148, 114, 255, .12),
    0 0 42px rgba(138, 92, 255, .08);
}

.hero .eyebrow {
  margin-bottom: 20px;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: .052em;
  text-shadow: 0 0 12px rgba(145, 113, 255, .08);
}

.hero-lead {
  max-width: 610px;
  margin: 28px 0 0;
  color: #b3b9c3;
  font-size: 15.25px;
  line-height: 1.72;
  font-weight: 500;
  letter-spacing: -.008em;
  text-shadow:
    0 6px 24px rgba(7, 10, 16, .22),
    0 0 14px rgba(151, 122, 255, .035);
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 34px;
  margin-top: 40px;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--accent-bright);
  font-size: 12px;
  font-weight: 500;
}
.text-link:hover { color: #c0afff; }
.text-link span, .primary-button span, .outline-button span { font-size: 16px; line-height: 1; }

.hero-art {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 69% 48%, rgba(105, 75, 224, 0.052), transparent 34%),
    radial-gradient(ellipse at 28% 40%, rgba(93, 69, 185, 0.035), transparent 30%);
}

.hero-art::before,
.hero-art::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero-art::before {
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(8,11,17,.20) 0%, rgba(8,11,17,.05) 28%, transparent 47%, transparent 84%, rgba(8,11,17,.05) 100%);
}

.hero-art::after {
  z-index: 3;
  background:
    linear-gradient(180deg, rgba(8,11,17,.02) 0%, transparent 12%, transparent 84%, var(--bg) 100%);
}

.hero-dot-field,
.hero-veil {
  position: absolute;
  pointer-events: none;
}

.hero-dot-field {
  z-index: 1;
  right: 6%;
  top: 12%;
  width: min(700px, 46vw);
  height: min(420px, 44vh);
  opacity: .56;
  border-radius: 24px;
  transform-origin: center;
  mix-blend-mode: screen;
  mask-image:
    radial-gradient(circle at 54% 48%, rgba(0,0,0,.92), rgba(0,0,0,.56) 42%, transparent 82%);
  -webkit-mask-image:
    radial-gradient(circle at 54% 48%, rgba(0,0,0,.92), rgba(0,0,0,.56) 42%, transparent 82%);
  animation: hero-dot-field-drift 15s cubic-bezier(.42,.08,.24,1) infinite alternate;
}

.hero-dot-field::before,
.hero-dot-field::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.hero-dot-field::before {
  background-image:
    radial-gradient(circle, rgba(189, 171, 255, .36) 0.82px, transparent 1px);
  background-size: 18px 18px;
  opacity: .42;
}

.hero-dot-field::after {
  background:
    radial-gradient(circle at 56% 44%, rgba(168, 143, 255, .20), transparent 40%),
    linear-gradient(120deg, rgba(255,255,255,.03), transparent 34%, transparent 68%, rgba(140,108,255,.04));
  filter: blur(.5px);
  opacity: .54;
}

.hero-dot-field-primary {
  transform:
    translate3d(
      calc(var(--parallax-x) * .16),
      calc((var(--parallax-y) * .12) + (var(--parallax-scroll) * -.10)),
      0
    );
}

.hero-dot-field-secondary {
  right: 14%;
  top: 22%;
  width: min(420px, 30vw);
  height: min(260px, 28vh);
  opacity: .24;
  animation-duration: 18s;
  animation-direction: alternate-reverse;
  transform:
    translate3d(
      calc(var(--parallax-x) * .24),
      calc((var(--parallax-y) * .18) + (var(--parallax-scroll) * -.16)),
      0
    );
}

.hero-dot-field-secondary::before {
  background-image:
    radial-gradient(circle, rgba(210, 197, 255, .30) 0.74px, transparent 1px);
  background-size: 16px 16px;
  opacity: .34;
}

.hero-dot-field-secondary::after {
  opacity: .36;
}

.hero-veil {
  z-index: 2;
  border-radius: 50%;
  filter: blur(26px);
}

.hero-veil-a {
  right: 20%;
  top: 18%;
  width: 260px;
  height: 180px;
  opacity: .16;
  background: radial-gradient(ellipse, rgba(153, 127, 255, .34), transparent 72%);
  transform:
    translate3d(
      calc(var(--parallax-x) * .10),
      calc((var(--parallax-y) * .08) + (var(--parallax-scroll) * -.06)),
      0
    );
}

.hero-veil-b {
  left: 16%;
  top: 26%;
  width: 320px;
  height: 220px;
  opacity: .08;
  background: radial-gradient(ellipse, rgba(255,255,255,.22), transparent 70%);
  transform:
    translate3d(
      calc(var(--parallax-x) * -.08),
      calc((var(--parallax-y) * -.06) + (var(--parallax-scroll) * .06)),
      0
    );
}

.hero-field {
  position: absolute;
  inset: -3% -1% -4% -1%;
  width: 102%;
  height: 108%;
  opacity: .92;
  z-index: 1;
  transform-origin: center;
  filter: drop-shadow(0 0 8px rgba(140, 108, 255, .05));
}

.field-haze {
  transform-origin: center;
  animation: field-haze-drift 9s cubic-bezier(.45,.05,.25,1) infinite alternate;
}

.field-haze-b {
  animation-duration: 11s;
  animation-direction: alternate-reverse;
}

@keyframes hero-dot-field-drift {
  0% {
    opacity: .48;
  }
  100% {
    opacity: .60;
  }
}

@keyframes hero-copy-aura-breathe {
  0% {
    opacity: .74;
    transform:
      translate3d(
        calc(var(--parallax-x) * -.14),
        calc((var(--parallax-y) * -.10) + (var(--parallax-scroll) * .16)),
        0
      )
      scale(1);
  }
  100% {
    opacity: .94;
    transform:
      translate3d(
        calc(var(--parallax-x) * -.20),
        calc((var(--parallax-y) * -.16) + (var(--parallax-scroll) * .20)),
        0
      )
      scale(1.035);
  }
}

.ambient-path {
  opacity: .78;
  transition: opacity .35s ease;
  will-change: d, opacity;
}

.ambient-soft {
  opacity: .52;
}

.ambient-main {
  opacity: .72;
}

.ambient-path.is-locked {
  opacity: .92;
}

.travel-signal {
  stroke-dashoffset: 0;
  will-change: stroke-dashoffset, d;
}

.travel-signal-glow {
  opacity: .14;
}

@keyframes field-haze-drift {
  0% { transform: translate3d(-18px, 4px, 0) scale(.985); opacity: .64; }
  100% { transform: translate3d(24px, -5px, 0) scale(1.035); opacity: .92; }
}

.hero-ambient {
  position: absolute;
  border-radius: 50%;
  filter: blur(58px);
  will-change: transform, opacity;
}

.hero-ambient-a {
  width: 760px;
  height: 300px;
  left: 5%;
  top: 24%;
  opacity: .27;
  background: radial-gradient(ellipse, rgba(121, 87, 255, .10), transparent 72%);
  animation: ambient-a 8.5s cubic-bezier(.45,.05,.25,1) infinite alternate;
}

.hero-ambient-b {
  width: 920px;
  height: 330px;
  right: -5%;
  top: 28%;
  opacity: .31;
  background: radial-gradient(ellipse, rgba(105, 76, 224, .095), transparent 74%);
  animation: ambient-b 10s cubic-bezier(.45,.05,.25,1) infinite alternate;
}

@keyframes ambient-a {
  0% { transform: translate3d(-20px, 5px, 0) scale(.985); opacity: .21; }
  100% { transform: translate3d(32px, -6px, 0) scale(1.035); opacity: .38; }
}

@keyframes ambient-b {
  0% { transform: translate3d(28px, -4px, 0) scale(1.025); opacity: .22; }
  100% { transform: translate3d(-34px, 7px, 0) scale(.99); opacity: .38; }
}

/* TRUST / DOMAIN STRIP */

/* FIXED HEADER ANCHORS */
#services,
#how-we-work,
#who-we-work-with,
#partnership,
#contact {
  scroll-margin-top: 126px;
}

/* The first content section should tuck under the glass header
   without leaving the Experience across strip in view. */
#who-we-work-with {
  scroll-margin-top: 72px;
}

/* Services and Partnership should land beneath the fixed glass header
   without leaving the previous section visible in the viewport. */
#services,
#partnership {
  scroll-margin-top: 72px;
}

.trust-strip {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.trust-row {
  display: grid;
  grid-template-columns: 300px 1fr;
  align-items: center;
  min-height: 106px;
}
.trust-label {
  color: #a6acb7;
  font-size: 11.5px;
  line-height: 1.4;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.trust-items {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
}
.trust-items span {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 10px;
  color: #f2f3f6;
  font-size: 13px;
  font-weight: 500;
  border-left: 1px solid var(--line);
  white-space: nowrap;
}

/* CORE PROCESS */
.section {
  display: grid;
  grid-template-columns: 25% 75%;
  padding-top: 88px;
  padding-bottom: 82px;
  position: relative;
}
.services {
  min-height: 118svh;
  align-items: center;
}
.services::after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: 1%;
  top: 18%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(121, 82, 255, 0.045), transparent 68%);
  filter: blur(10px);
}
.section-intro {
  padding: 18px clamp(54px, 4vw, 84px) 0 clamp(18px, 1.5vw, 32px);
  border-right: 1px solid var(--line);
}
.section-intro h2,
.consulting-copy h2,
.industries-intro h2,
.contact-panel h2 {
  margin: 0;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.section-intro h2 { font-size: 38px; line-height: 1.34; }
.section-intro > p:not(.eyebrow),
.consulting-copy > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.78;
}
.section-intro > p:not(.eyebrow) { max-width: 330px; margin: 22px 0 0; }
.section-rule { width: 34px; height: 1px; margin-top: 19px; background: linear-gradient(90deg, var(--accent-bright), rgba(138, 92, 255, .18)); box-shadow: 0 0 10px rgba(138, 92, 255, .09); }
.industries-intro .section-rule,
.consulting-copy .section-rule {
  width: 34px;
  margin-top: 20px;
}

.industries-intro .section-rule {
  margin-bottom: 18px;
}

.consulting-copy .section-rule {
  margin-bottom: 20px;
}


.process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-left: clamp(42px, 3vw, 64px);
  padding-right: clamp(10px, 1.4vw, 28px);
}
.process-item {
  min-height: 188px;
  padding: 12px 38px 27px;
  border-bottom: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.process-item:nth-child(1), .process-item:nth-child(4) { border-left: none; }
.process-item:nth-child(n+4) { padding-top: 30px; border-bottom: none; }
.process-number { display: block; margin-bottom: 7px; color: var(--accent-bright); font-size: 23px; line-height: 1; font-weight: 500; }
.process-item h3 { margin: 0 0 9px; font-size: 19px; line-height: 1.25; font-weight: 500; letter-spacing: -0.022em; }
.process-item p { margin: 0; max-width: 360px; color: #a6acb6; font-size: 13px; line-height: 1.68; }

.section-tight { margin-top: 18px; }


/* WHAT WE DO — METHOD DIAGRAM */
.method-map {
  grid-column: 1 / -1;
  margin: 112px 0 12px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.085);
  border-radius: var(--radius);
  background:
    radial-gradient(ellipse at 72% 26%, rgba(119,82,239,.065), transparent 34%),
    linear-gradient(118deg, rgba(14,18,27,.90), rgba(9,13,20,.70));
}

.method-map::before {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  top: -1px;
  height: 1px;
  pointer-events: none;
  opacity: .62;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(168,142,255,.48),
    transparent
  );
}

.method-map-head {
  min-height: 154px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .78fr);
  align-items: end;
  gap: 48px;
  padding: 40px 48px 36px;
  border-bottom: 1px solid var(--line);
}

.method-map-head .eyebrow {
  margin-bottom: 11px;
}

.method-map-head h3 {
  margin: 0;
  color: #f3f4f7;
  font-size: 28px;
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.034em;
}

.method-map-head > p {
  max-width: 520px;
  margin: 0;
  color: #9fa6b1;
  font-size: 12.85px;
  line-height: 1.72;
}

.method-map-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  min-height: 520px;
}

.method-flow {
  min-width: 0;
  min-height: 570px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: auto auto;
  column-gap: 28px;
  row-gap: 0;
  align-items: start;
  align-content: space-between;
  padding: 52px 46px 44px;
  border-right: 1px solid var(--line);
}

.method-segment-layer {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.method-persistent-route {
  opacity: 1;
}

.method-persistent-segment {
  fill: none;
  stroke: rgba(177, 153, 246, .20);
  stroke-width: .82;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 2px rgba(138,92,255,.025));
  transition:
    stroke .55s cubic-bezier(.16,.76,.2,1),
    opacity .55s cubic-bezier(.16,.76,.2,1);
}

.method-persistent-segment.is-current {
  stroke: rgba(188, 166, 255, .27);
}

.method-segment-path {
  fill: none;
  stroke: rgba(181, 157, 255, .66);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
  filter:
    drop-shadow(0 0 3px rgba(138,92,255,.16))
    drop-shadow(0 0 8px rgba(138,92,255,.045));
  transition:
    opacity .62s cubic-bezier(.16,.76,.2,1),
    stroke-width .62s cubic-bezier(.16,.76,.2,1),
    filter .72s cubic-bezier(.16,.76,.2,1);
}

.method-flow.is-segment-moving .method-segment-path {
  opacity: .72;
}

.method-flow.is-segment-arriving .method-segment-path {
  opacity: .82;
  stroke-width: 1.38;
  filter:
    drop-shadow(0 0 4px rgba(138,92,255,.21))
    drop-shadow(0 0 10px rgba(138,92,255,.07));
}

.method-flow.is-at-station .method-segment-path {
  opacity: 0;
}

.method-node {
  min-width: 0;
  min-height: 136px;
  position: relative;
  z-index: 2;
  padding: 0 12px;
  cursor: default;
}

.method-node[data-step="1"] { grid-column: 1; grid-row: 1; }
.method-node[data-step="2"] { grid-column: 2; grid-row: 1; }
.method-node[data-step="3"] { grid-column: 4; grid-row: 1; justify-self: start; }
.method-node[data-step="4"] { grid-column: 4; grid-row: 2; }
.method-node[data-step="5"] { grid-column: 2; grid-row: 2; transform: translateX(50%); }
.method-node[data-step="6"] { grid-column: 1; grid-row: 2; }

.method-dot {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  border: 1px solid rgba(166,137,255,.34);
  border-radius: 50%;
  color: #b5a3f2;
  background: #0b0f17;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .02em;
  box-shadow:
    0 0 0 6px rgba(10,14,21,.92),
    0 0 16px rgba(138,92,255,.05);
}

.method-node strong {
  display: block;
  margin-bottom: 6px;
  color: #eef0f4;
  font-size: 16.2px;
  line-height: 1.38;
  font-weight: 500;
  letter-spacing: -.015em;
}

.method-node small {
  display: block;
  max-width: 225px;
  color: #9ca3ae;
  font-size: 12.2px;
  line-height: 1.58;
}


.method-node-corner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  justify-self: end;
}

.method-node-corner small {
  margin-left: auto;
}

/* Step 03 should visually align with step 04 below it.
   Keep the general corner helper intact, but override only this station
   so the dot sits on the same vertical corridor as 04 and the turn feels on-grid. */
.method-node.method-node-corner[data-step="3"] {
  align-items: flex-end;
  text-align: right;
  justify-self: start;
}

.method-node.method-node-corner[data-step="3"] .method-dot {
  align-self: flex-end;
}

.method-node.method-node-corner[data-step="3"] strong,
.method-node.method-node-corner[data-step="3"] small {
  margin-left: auto;
  max-width: 210px;
}

.method-node.method-node-corner[data-step="3"] small {
  margin-left: auto;
}




.method-automation {
  position: absolute;
  z-index: 3;
  left: 58%;
  top: 34%;
  width: min(240px, 28%);
  max-width: 240px;
  margin: 0;
  padding: 15px 16px 14px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(166,137,255,.16);
  border-radius: 12px;
  background:
    radial-gradient(circle at 12% 12%, rgba(138,92,255,.055), transparent 48%),
    rgba(10,14,21,.94);
  box-shadow:
    0 12px 30px rgba(0,0,0,.16),
    0 0 24px rgba(138,92,255,.035);
}

.method-automation::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -24px;
  height: 24px;
  border-left: 1px dashed rgba(167,141,244,.24);
}

.method-automation::after {
  display: none;
}

.method-automation-type {
  display: block;
  margin-bottom: 6px;
  color: #9b8bd8;
  font-size: 9.5px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.method-automation strong {
  display: block;
  margin-bottom: 5px;
  color: #eeeafc;
  font-size: 13.2px;
  line-height: 1.35;
  font-weight: 500;
}

.method-automation small {
  display: block;
  color: #969daa;
  font-size: 10.6px;
  line-height: 1.55;
}

.method-dot {
  position: relative;
  transition:
    transform .62s cubic-bezier(.16,.76,.2,1),
    color .62s cubic-bezier(.16,.76,.2,1),
    border-color .62s cubic-bezier(.16,.76,.2,1),
    box-shadow .72s cubic-bezier(.16,.76,.2,1),
    background-color .62s cubic-bezier(.16,.76,.2,1);
}

.method-dot::after {
  content: "";
  position: absolute;
  inset: -7px;
  border: 1px solid rgba(185,160,255,0);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}

.method-node strong,
.method-node small {
  transition:
    color .7s cubic-bezier(.16,.76,.2,1),
    text-shadow .7s cubic-bezier(.16,.76,.2,1),
    opacity .7s cubic-bezier(.16,.76,.2,1),
    transform .7s cubic-bezier(.16,.76,.2,1);
}

.method-node.is-route-approaching .method-dot {
  transform: scale(1.045);
  color: #d9cfff;
  border-color: rgba(190,169,255,.58);
  box-shadow:
    0 0 0 6px rgba(10,14,21,.94),
    0 0 17px rgba(138,92,255,.10);
}

.method-node.is-route-approaching strong {
  color: #f7f4ff;
  text-shadow: 0 0 15px rgba(160,132,255,.07);
  transform: translateY(-1px);
}

.method-node.is-route-approaching small {
  color: #afb5bf;
}

.method-node.is-route-active .method-dot {
  transform: scale(1.12);
  color: #f7f2ff;
  border-color: rgba(207,190,255,.95);
  background: #121423;
  box-shadow:
    0 0 0 6px rgba(10,14,21,.94),
    0 0 19px rgba(138,92,255,.22),
    0 0 40px rgba(138,92,255,.11);
}

.method-node.is-route-active .method-dot::after {
  animation: method-node-ring 1.05s cubic-bezier(.16,.76,.2,1) both;
}

.method-node.is-route-active strong {
  color: #ffffff;
  text-shadow: 0 0 20px rgba(160,132,255,.14);
  transform: translateY(-2px);
}

.method-node.is-route-active small {
  color: #c6cbd3;
  transform: translateY(-1px);
}

@keyframes method-node-ring {
  0% {
    inset: -5px;
    opacity: 0;
    border-color: rgba(197,177,255,.62);
  }
  24% {
    opacity: .95;
  }
  100% {
    inset: -21px;
    opacity: 0;
    border-color: rgba(197,177,255,.025);
  }
}

.method-signal-tail,
.method-traveler-glow,
.method-traveler {
  transition:
    opacity .58s cubic-bezier(.16,.76,.2,1),
    transform .64s cubic-bezier(.16,.76,.2,1);
  transform-box: fill-box;
  transform-origin: center;
}

.method-signal-tail {
  fill: #a992ff;
  opacity: 0;
}

.method-signal-tail-far {
  opacity: 0;
}

.method-signal-tail-near {
  opacity: 0;
}

.method-traveler-glow {
  fill: rgba(157, 126, 255, .27);
  opacity: 0;
}

.method-traveler {
  fill: #ece6ff;
  stroke: rgba(255,255,255,.84);
  stroke-width: .72;
  opacity: 0;
  filter:
    drop-shadow(0 0 4px rgba(205,188,255,.76))
    drop-shadow(0 0 9px rgba(138,92,255,.32));
}

.method-flow.is-segment-moving .method-signal-tail-far {
  opacity: .11;
}

.method-flow.is-segment-moving .method-signal-tail-near {
  opacity: .22;
}

.method-flow.is-segment-moving .method-traveler-glow {
  opacity: .38;
}

.method-flow.is-segment-moving .method-traveler {
  opacity: 1;
}

.method-flow.is-segment-arriving .method-signal-tail-far {
  opacity: .08;
}

.method-flow.is-segment-arriving .method-signal-tail-near {
  opacity: .18;
}

.method-flow.is-segment-arriving .method-traveler {
  opacity: 1;
  transform: scale(1.20);
}

.method-flow.is-segment-arriving .method-traveler-glow {
  opacity: .62;
  transform: scale(1.42);
}

.method-flow.is-at-station .method-signal-tail,
.method-flow.is-at-station .method-traveler,
.method-flow.is-at-station .method-traveler-glow {
  opacity: 0;
}



.method-node.is-route-active .method-dot::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(238,232,255,.25), rgba(159,128,255,.06) 48%, transparent 74%);
  animation: method-signal-absorb .92s cubic-bezier(.16,.76,.2,1) both;
}

@keyframes method-signal-absorb {
  0% {
    opacity: 0;
    transform: scale(.48);
  }
  32% {
    opacity: .9;
    transform: scale(1.02);
  }
  100% {
    opacity: 0;
    transform: scale(1.36);
  }
}

.method-ai {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 46px 34px;
  background:
    radial-gradient(circle at 50% 34%, rgba(124,86,239,.075), transparent 45%);
}

.method-ai::before {
  content: "";
  position: absolute;
  left: -34px;
  top: 50%;
  width: 34px;
  border-top: 1px dashed rgba(167,141,244,.30);
}

.method-ai::after {
  content: "";
  position: absolute;
  left: -38px;
  top: calc(50% - 4px);
  width: 7px;
  height: 7px;
  border: 1px solid rgba(178,151,255,.45);
  border-radius: 50%;
  background: #0a0e15;
}

.method-ai-type {
  margin-bottom: 16px;
  color: #9f8dde;
  font-size: 9.8px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.method-ai-icon {
  width: 39px;
  height: 39px;
  margin-bottom: 13px;
  color: #ac96f4;
}

.method-ai-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.method-ai h4 {
  margin: 0 0 9px;
  color: #f0f1f5;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -.022em;
}

.method-ai p {
  margin: 0;
  color: #9ea5b0;
  font-size: 12.35px;
  line-height: 1.68;
}

.method-ai-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 18px;
}

.method-ai-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 999px;
  color: #979faa;
  background: rgba(255,255,255,.012);
  font-size: 9.6px;
}

.motion-ready .method-map.reveal-block {
  opacity: .72;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity .82s cubic-bezier(.18,.72,.2,1),
    transform .92s cubic-bezier(.18,.72,.2,1);
}

.motion-ready .method-map.reveal-block.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}


.value-suite {
  position: relative;
  overflow: hidden;
  padding: 10px 0 36px;
  border-top: 1px solid rgba(255, 255, 255, 0.055);
  border-bottom: 1px solid rgba(255, 255, 255, 0.045);
  background:
    radial-gradient(ellipse at 73% 22%, rgba(121, 84, 246, 0.045), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.006), rgba(255,255,255,0) 42%, rgba(255,255,255,0.004));
}

.value-suite::after {
  content: "";
  position: absolute;
  inset: 44% 5% 6% 42%;
  pointer-events: none;
  background: radial-gradient(ellipse, rgba(111, 77, 229, 0.04), transparent 68%);
  filter: blur(22px);
}

.industries-integrated,
.consulting-integrated {
  position: relative;
  z-index: 1;
}

.consulting-integrated {
  min-height: 58svh;
  padding: 30px clamp(18px, 1.5vw, 32px) 26px;
  border-top: 1px solid var(--line);
}

.consulting-integrated .consulting-panel {
  box-shadow: 0 26px 72px rgba(0, 0, 0, 0.12);
}


.consulting {
  min-height: 58svh;
  display: flex;
  align-items: center;
  position: relative;
}





/* Hover-treated surfaces use the familiar hand cursor consistently. */
.process-item,
.industry-card,
.audit-capability,
.audit-ready-panel,
.consulting-panel,
.consulting-row,
.contact-panel {
  cursor: pointer;
}

/* AUDIT / TRACEABILITY */
.audit-ready-panel {
  min-height: 330px;
  margin: 4px clamp(18px, 1.5vw, 32px) 34px;
  display: grid;
  grid-template-columns: 39% 61%;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    radial-gradient(ellipse at 18% 48%, rgba(110, 76, 224, .11), transparent 42%),
    linear-gradient(115deg, rgba(15, 18, 30, .98) 0%, rgba(13, 17, 25, .98) 48%, rgba(10, 14, 21, .98) 100%);
  box-shadow: 0 26px 72px rgba(0, 0, 0, .10);
  --spec-x: 76%;
  --spec-y: 18%;
  --spec-opacity: .11;
}

.audit-ready-panel::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: 520px;
  height: 280px;
  right: 6%;
  top: 10%;
  pointer-events: none;
  border-radius: 50%;
  opacity: .46;
  background: radial-gradient(ellipse, rgba(132, 94, 255, .065), transparent 68%);
  filter: blur(30px);
}

.audit-ready-copy,
.audit-capabilities {
  position: relative;
  z-index: 1;
}

.audit-ready-copy {
  padding: 54px clamp(48px, 4vw, 76px);
  border-right: 1px solid var(--line);
}

.audit-ready-copy .eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
}

.audit-ready-copy .eyebrow::before {
  content: "";
  width: 38px;
  height: 1px;
  flex: 0 0 auto;
  background: linear-gradient(90deg, rgba(161, 130, 255, .95), rgba(161, 130, 255, .08));
  box-shadow: 0 0 12px rgba(138, 92, 255, .12);
}

.audit-ready-copy h2 {
  margin: 0;
  max-width: 560px;
  font-size: clamp(31px, 2.05vw, 37px);
  line-height: 1.22;
  font-weight: 500;
  letter-spacing: -.045em;
}

.audit-ready-copy h2 span {
  color: #c1b1ff;
}

.audit-ready-copy > p:not(.eyebrow) {
  max-width: 510px;
  margin: 0;
  color: #d2d7df;
  font-size: 13.75px;
  line-height: 1.82;
}


.audit-capabilities {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  padding: 38px clamp(42px, 3.5vw, 68px);
}

.audit-capability {
  min-height: 112px;
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: start;
  gap: 9px;
  padding: 23px 28px;
  border-bottom: 1px solid var(--line);
  border-left: 1px solid var(--line);
  transition: background-color .28s ease;
}

.audit-capability:nth-child(1),
.audit-capability:nth-child(3) {
  border-left: 0;
}

.audit-capability:nth-child(3),
.audit-capability:nth-child(4) {
  border-bottom: 0;
}

.audit-capability:hover {
  background: rgba(138, 92, 255, .025);
}

.audit-mark {
  color: var(--accent-bright);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.audit-capability h3 {
  margin: 0 0 6px;
  color: #f1f2f6;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
}

.audit-capability p {
  margin: 0;
  max-width: 300px;
  color: #a1a8b3;
  font-size: 12.75px;
  line-height: 1.68;
}

.motion-ready .audit-ready-panel.reveal-block {
  opacity: .72;
  transform: translate3d(0, 11px, 0);
}

.motion-ready .audit-ready-panel.reveal-block.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-ready .audit-ready-panel .section-rule {
  transform: scaleX(.18);
  transform-origin: left center;
  opacity: .46;
  transition:
    transform 1.05s cubic-bezier(.16,.76,.18,1),
    opacity .82s ease,
    box-shadow .95s ease;
}

.motion-ready .audit-ready-panel.is-visible .section-rule {
  transform: scaleX(1);
  opacity: 1;
  box-shadow:
    0 0 10px rgba(138, 92, 255, .09),
    0 0 22px rgba(138, 92, 255, .055);
}

/* CONSULTING */
.consulting-panel {
  min-height: 350px;
  width: 100%;
  display: grid;
  grid-template-columns: 39% 61%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(90deg, rgba(103, 67, 214, 0.17) 0%, rgba(38, 31, 77, 0.10) 34%, rgba(13, 17, 24, 0.96) 63%),
    var(--panel);
}
.consulting-copy { padding: 58px clamp(52px, 4.2vw, 82px); border-right: 1px solid var(--line); }
.consulting-copy h2 { font-size: 33px; line-height: 1.28; }
.consulting-copy > p:not(.eyebrow) { max-width: 500px; margin: 0; line-height: 1.82; }
.consulting-list { padding: 44px clamp(48px, 4vw, 78px); display: flex; flex-direction: column; justify-content: center; }
.consulting-row {
  min-height: 58px;
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: center;
  color: #f4f5f8;
  font-size: 15.5px;
  font-weight: 500;
  border-bottom: 1px solid var(--line);
}
.consulting-row:last-child { border-bottom: 0; }
.mini-mark { color: var(--accent-bright); font-size: 22px; line-height: 1; }

/* WHERE WE HELP */
.industries {
  min-height: 68svh;
  display: grid;
  grid-template-columns: 29% 71%;
  align-items: center;
  padding-top: 84px;
  padding-bottom: 78px;
  position: relative;
}

.industries-intro { padding-left: clamp(18px, 1.5vw, 32px); padding-right: clamp(42px, 3vw, 64px); }
.industries-intro h2 { margin-bottom: 10px; font-size: 30px; line-height: 1.33; }
.industries-lead { max-width: 490px; margin: 0; color: #a6acb6; font-size: 13.5px; line-height: 1.78; }
.industry-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.industry-card {
  min-height: 232px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 24px clamp(30px, 2.5vw, 48px);
  border-left: 1px solid var(--line);
}
.industry-icon { width: 46px; height: 46px; margin-bottom: 9px; color: var(--accent-bright); }
.industry-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.industry-card h3 { margin: 0 0 8px; font-size: 15.5px; font-weight: 500; line-height: 1.4; }
.industry-card p { margin: 0; max-width: 310px; color: #a3aab5; font-size: 13.25px; line-height: 1.72; }


/* CORE SCOPE — WHAT WE DO */
.scope-section {
  min-height: 76svh;
  margin-top: 0;
  padding-top: 88px;
  padding-bottom: 92px;
  border-top: 1px solid rgba(255,255,255,.055);
  border-bottom: 1px solid rgba(255,255,255,.045);
  background:
    radial-gradient(ellipse at 72% 34%, rgba(121,84,246,.048), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.006), rgba(255,255,255,0) 48%, rgba(255,255,255,.004));
}

.scope-section .industries-intro h2 {
  font-size: clamp(32px, 2.35vw, 40px);
  line-height: 1.28;
}

.scope-section .industries-lead {
  max-width: 500px;
}

.scope-section .industry-card {
  min-height: 250px;
}


/* CONTACT */
.contact { padding-top: 0; }
.contact-panel {
  min-height: 144px;
  display: grid;
  grid-template-columns: 50% 30% 20%;
  align-items: center;
  padding: 32px clamp(48px, 4vw, 76px);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 58% 50%, rgba(86, 55, 210, 0.18), transparent 37%),
    linear-gradient(90deg, #0d1020 0%, #12142a 35%, #0d1119 100%);
}
.contact-panel h2 { font-size: 27px; line-height: 1.32; }
.contact-panel p { max-width: 360px; margin: 0; color: #a6adb8; font-size: 12.75px; line-height: 1.65; }
.contact-panel .primary-button { justify-self: end; min-width: 126px; }

/* FOOTER */
.footer {
  padding-top: 38px;
  padding-bottom: 32px;
  color: #a8afb9;
  position: relative;
}

.footer-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--line);
}

.footer-brand .brand { color: white; font-size: 17px; }
.footer-brand p { margin: 7px 0 0; color: #b3bac5; font-size: 11px; line-height: 1.55; }

.footer-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: 11px;
}

.footer-nav a {
  color: #b8bec8;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 15px;
  color: #9ea6b1;
  font-size: 10.25px;
}

.footer-bottom a {
  color: #aeb5c0;
}

.footer-bottom div { display: flex; gap: 26px; }


/* FINAL PREMIUM MOTION PASS */

/* Nearly invisible editorial grain keeps large gradients from feeling sterile. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  opacity: .018;
  mix-blend-mode: soft-light;
  background-image:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.58'/%3E%3C/svg%3E");
}

/* The existing hero field now reacts only a few pixels to pointer/scroll input. */
.hero {
  --parallax-x: 0px;
  --parallax-y: 0px;
  --parallax-scroll: 0px;
}

.hero-field {
  transform:
    translate3d(
      calc(var(--parallax-x) * .72),
      calc((var(--parallax-y) * .72) + var(--parallax-scroll)),
      0
    )
    scale(1.015);
  transition: opacity .35s ease;
}

.hero-ambient-a {
  margin-left: calc(var(--parallax-x) * -.18);
  margin-top: calc(var(--parallax-y) * -.12);
}

.hero-ambient-b {
  margin-right: calc(var(--parallax-x) * .14);
  margin-top: calc(var(--parallax-y) * .10);
}

.travel-signal-tail {
  opacity: .14;
  filter: blur(.2px);
}

/* A restrained brand-line motif connects the editorial sections to the hero signal. */
.section-intro .eyebrow,
.industries-intro .eyebrow,
.consulting-copy .eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
}

.section-intro .eyebrow::before,
.industries-intro .eyebrow::before,
.consulting-copy .eyebrow::before {
  content: "";
  width: 38px;
  height: 1px;
  flex: 0 0 auto;
  background: linear-gradient(90deg, rgba(161, 130, 255, .95), rgba(161, 130, 255, .08));
  box-shadow: 0 0 12px rgba(138, 92, 255, .12);
}

/* Restrained interaction: no floating cards, only light and hierarchy. */
.process-item,
.industry-card {
  position: relative;
  isolation: isolate;
  transition:
    border-color .28s ease,
    background-color .28s ease;
}

.process-item::before,
.industry-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity .85s cubic-bezier(.18,.7,.18,1);
  background:
    radial-gradient(circle at 18% 14%, rgba(138, 92, 255, .075), transparent 42%),
    linear-gradient(135deg, rgba(255,255,255,.014), transparent 48%);
}

 .process-item:hover::before,
.industry-card:hover::before {
  opacity: 1;
  transition-duration: .24s;
}

.process-item .process-number,
.process-item h3,
.process-item p,
.industry-card h3,
.industry-card p,
.industry-icon {
  transition:
    color .9s cubic-bezier(.18,.7,.18,1),
    opacity .9s cubic-bezier(.18,.7,.18,1),
    text-shadow .9s cubic-bezier(.18,.7,.18,1);
}

.process-item:hover .process-number,
.process-item:hover h3,
.process-item:hover p,
.industry-card:hover h3,
.industry-card:hover p,
.industry-card:hover .industry-icon {
  transition-duration: .22s;
  transition-timing-function: cubic-bezier(.2,.75,.25,1);
}

.process-item:hover .process-number,
.industry-card:hover .industry-icon {
  color: #b29bff;
  text-shadow: 0 0 18px rgba(138, 92, 255, .15);
}

 .process-item:hover h3,
.industry-card:hover h3 {
  color: #f5f6f9;
}

.process-item:hover p {
  color: #c0c5ce;
}

.industry-card:hover p {
  color: #bbc1cb;
}

/* Consulting panel gets a very infrequent light pass, almost subliminal. */
.consulting-panel {
  position: relative;
  isolation: isolate;
}

.consulting-panel::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: -35%;
  bottom: -35%;
  left: -26%;
  width: 18%;
  pointer-events: none;
  opacity: 0;
  transform: skewX(-14deg);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(159, 128, 255, .045),
    rgba(255,255,255,.032),
    transparent
  );
  animation: consulting-sweep 14s ease-in-out infinite;
}

.consulting-copy,
.consulting-list {
  position: relative;
  z-index: 1;
}

@keyframes consulting-sweep {
  0%, 70% {
    left: -26%;
    opacity: 0;
  }
  73% {
    opacity: .75;
  }
  84% {
    left: 108%;
    opacity: .45;
  }
  87%, 100% {
    left: 108%;
    opacity: 0;
  }
}

/* Buttons receive only a faint internal light response. */
.primary-button,
.outline-button {
  position: relative;
  overflow: hidden;
}

.primary-button::before,
.outline-button::before {
  content: "";
  position: absolute;
  inset: -45%;
  pointer-events: none;
  opacity: 0;
  transition: opacity .28s ease;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.12), transparent 35%);
}

.primary-button:hover::before,
.outline-button:hover::before {
  opacity: .42;
}


/* V17 — FINAL SCROLL / DEPTH POLISH */

/* Header becomes slightly denser once the hero has passed beneath it. */
.site-header::before,
.site-header::after {
  transition:
    background .7s cubic-bezier(.2,.72,.2,1),
    border-color .7s cubic-bezier(.2,.72,.2,1),
    box-shadow .7s cubic-bezier(.2,.72,.2,1),
    -webkit-backdrop-filter .7s cubic-bezier(.2,.72,.2,1),
    backdrop-filter .7s cubic-bezier(.2,.72,.2,1),
    opacity .7s cubic-bezier(.2,.72,.2,1);
}

.site-header.is-past-hero::before {
  border-bottom-color: rgba(255, 255, 255, 0.105);
  background:
    linear-gradient(
      180deg,
      rgba(9, 12, 18, .91) 0%,
      rgba(10, 13, 20, .77) 58%,
      rgba(10, 13, 20, .39) 100%
    );
  box-shadow:
    0 22px 58px rgba(0, 0, 0, .22),
    0 1px 0 rgba(174, 150, 255, .045),
    inset 0 -1px 0 rgba(166, 138, 255, .10);
  -webkit-backdrop-filter: blur(18px) saturate(126%);
  backdrop-filter: blur(18px) saturate(126%);
}

.site-header.is-past-hero::after {
  opacity: .78;
  background: radial-gradient(
    ellipse,
    rgba(129, 92, 255, .13),
    transparent 70%
  );
}

/* Very restrained reveal. Content moves only a few pixels. */
.motion-ready .reveal-block {
  opacity: .72;
  transform: translate3d(0, 13px, 0);
  transition:
    opacity .78s cubic-bezier(.18,.72,.2,1),
    transform .88s cubic-bezier(.18,.72,.2,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

.motion-ready .reveal-block.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Section rules now feel like a recurring brand signal rather than decoration. */
.motion-ready .section-rule {
  transform: scaleX(.18);
  transform-origin: left center;
  opacity: .46;
  transition:
    transform 1.05s cubic-bezier(.16,.76,.18,1),
    opacity .82s ease,
    box-shadow .95s ease;
}

.motion-ready .section-intro.is-visible .section-rule,
.motion-ready .industries-intro.is-visible .section-rule,
.motion-ready .consulting-panel.is-visible .section-rule {
  transform: scaleX(1);
  opacity: 1;
  box-shadow:
    0 0 10px rgba(138, 92, 255, .09),
    0 0 22px rgba(138, 92, 255, .055);
}

/* Panels gain tiny background depth while the actual content remains fixed. */
.value-suite,
.consulting-panel,
.contact-panel {
  --depth-y: 0px;
}

.value-suite::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: min(900px, 62vw);
  height: 460px;
  right: -9%;
  top: 20%;
  pointer-events: none;
  border-radius: 50%;
  opacity: .62;
  transform: translate3d(0, var(--depth-y), 0);
  transition: transform .08s linear;
  background: radial-gradient(
    ellipse,
    rgba(119, 82, 235, .055),
    rgba(100, 72, 210, .018) 46%,
    transparent 72%
  );
  filter: blur(24px);
}

.value-suite > * {
  position: relative;
  z-index: 1;
}

.consulting-panel::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: 520px;
  height: 340px;
  right: 5%;
  top: 12%;
  pointer-events: none;
  border-radius: 50%;
  opacity: .48;
  transform: translate3d(0, calc(var(--depth-y) * -.55), 0);
  transition: transform .08s linear;
  background: radial-gradient(
    ellipse,
    rgba(137, 98, 255, .07),
    transparent 68%
  );
  filter: blur(30px);
}

.contact-panel {
  position: relative;
  isolation: isolate;
}

.contact-panel::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: 520px;
  height: 230px;
  right: 7%;
  top: 50%;
  pointer-events: none;
  border-radius: 50%;
  opacity: .52;
  transform: translate3d(0, calc(-50% + var(--depth-y)), 0);
  transition: transform .08s linear;
  background: radial-gradient(
    ellipse,
    rgba(126, 88, 246, .065),
    transparent 70%
  );
  filter: blur(25px);
}

.contact-panel > * {
  position: relative;
  z-index: 1;
}

/* Process/industry reveals use a tiny stagger, never a cascade spectacle. */
.motion-ready .process-item.reveal-block,
.motion-ready .industry-card.reveal-block {
  transform: translate3d(0, 9px, 0);
}

.motion-ready .process-item.reveal-block.is-visible,
.motion-ready .industry-card.reveal-block.is-visible {
  transform: translate3d(0, 0, 0);
}


/* V18 — SIGNATURE DETAILS */

/* Active navigation is indicated by one moving signal, not four underlines. */
.main-nav {
  position: relative;
}

.main-nav a {
  position: relative;
  z-index: 2;
  transition:
    color .36s cubic-bezier(.2,.7,.2,1),
    opacity .36s ease;
}

.main-nav a.is-active {
  color: #f4f1ff;
}

.nav-indicator {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: -13px;
  width: 16px;
  height: 1px;
  border-radius: 999px;
  opacity: 0;
  transform: translate3d(0, 0, 0);
  background: linear-gradient(
    90deg,
    rgba(138, 92, 255, .34),
    rgba(188, 166, 255, .96),
    rgba(138, 92, 255, .34)
  );
  box-shadow:
    0 0 8px rgba(138, 92, 255, .20),
    0 0 18px rgba(138, 92, 255, .08);
  transition:
    transform .52s cubic-bezier(.18,.78,.18,1),
    width .42s cubic-bezier(.18,.78,.18,1),
    opacity .28s ease;
  pointer-events: none;
}

/* Keep header content clearly above the curved progress edge. */
.site-header > .brand,
.site-header > .main-nav,
.site-header > .header-cta {
  position: relative;
  z-index: 3;
}

/* A tiny recurring signal moves through section boundaries.
   One track pulses at a time so the page keeps one visual language. */
.section-signal-track {
  position: absolute;
  z-index: 8;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  overflow: hidden;
  pointer-events: none;
  opacity: .72;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.022) 12%,
    rgba(255,255,255,.045) 50%,
    rgba(255,255,255,.022) 88%,
    transparent 100%
  );
}

.section-signal-track-panel {
  top: 0;
  border-radius: var(--radius) var(--radius) 0 0;
}

.section-signal-track span {
  position: absolute;
  top: 0;
  left: -82px;
  width: 82px;
  height: 1px;
  opacity: 0;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(129, 91, 255, .42) 18%,
    rgba(188, 166, 255, .88) 52%,
    rgba(129, 91, 255, .35) 82%,
    transparent
  );
  box-shadow:
    0 0 7px rgba(138, 92, 255, .16),
    0 0 16px rgba(138, 92, 255, .07);
}

.section-signal-track.is-pulsing span {
  animation: section-signal-pass 1.9s cubic-bezier(.28,.04,.18,1) both;
}

@keyframes section-signal-pass {
  0% {
    left: -82px;
    opacity: 0;
    transform: scaleX(.72);
  }
  12% {
    opacity: .8;
  }
  50% {
    opacity: 1;
    transform: scaleX(1);
  }
  88% {
    opacity: .7;
  }
  100% {
    left: calc(100% + 4px);
    opacity: 0;
    transform: scaleX(.78);
  }
}

/* Local glass reflection: only a small part of the border ever lights up. */
.consulting-panel,
.contact-panel {
  --spec-x: 72%;
  --spec-y: 20%;
  --spec-opacity: .13;
}

.specular-edge {
  position: absolute;
  z-index: 7;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  pointer-events: none;
  opacity: var(--spec-opacity);
  background:
    radial-gradient(
      210px circle at var(--spec-x) var(--spec-y),
      rgba(224, 216, 255, .62) 0%,
      rgba(160, 127, 255, .30) 23%,
      rgba(127, 91, 229, .11) 46%,
      transparent 70%
    );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  transition: opacity .72s cubic-bezier(.2,.7,.2,1);
}

.specular-host.is-specular-hover {
  --spec-opacity: .72;
}

/* The contact section now owns positioned decoration cleanly. */
.contact {
  position: relative;
}

@media (hover: none), (pointer: coarse) {
  .specular-edge {
    display: none;
  }
}



@media (max-width: 640px) {
.section-signal-track {
    opacity: .5;
  }
}

@media (min-width: 1500px) {
  .hero, .hero-shell { min-height: max(840px, 95svh); }
  .process-item { min-height: 204px; padding-inline: 48px; }
  .method-map-body { min-height: 520px; }
  .consulting-panel { min-height: 370px; }
  .industry-card { min-height: 236px; }
}

@media (max-width: 1180px) {
  :root { --shell: min(100% - 48px, 1120px); }
  .main-nav { gap: 30px; }
  .hero-copy { width: min(760px, 72vw); }
  .hero-copy-aura { width: min(660px, 74vw); height: 360px; }
  .hero-dot-field-primary { right: 2%; width: min(600px, 50vw); height: 360px; }
  .hero-dot-field-secondary { right: 10%; width: min(340px, 30vw); height: 220px; }
  .trust-row { grid-template-columns: 250px 1fr; }
  .trust-items span { font-size: 11.5px; white-space: normal; text-align: center; }
  .section { grid-template-columns: 28% 72%; }
  .industries { grid-template-columns: 30% 70%; }
}

@media (max-width: 980px) {
  :root { --shell: min(100% - 40px, 900px); }
  #how-we-work, #contact { scroll-margin-top: 108px; }
  #services, #partnership { scroll-margin-top: 78px; }
  #who-we-work-with { scroll-margin-top: 78px; }
  .main-nav { display: none; }
  .site-header { grid-template-columns: 1fr 1fr; }
  .site-header::before { width: calc(100vw + 90px); height: 142px; border-radius: 0 0 50% 50% / 0 0 36px 36px; }
  .site-header::after { width: 84vw; }
  .hero, .hero-shell { min-height: max(760px, 94svh); }
  .hero-shell { padding-top: 88px; }
  .hero-copy { width: min(680px, 90%); padding: 62px 0 64px; }
  .hero-copy-aura { left: -4%; top: 5%; width: min(580px, 82vw); height: 320px; opacity: .76; }
  .hero-dot-field-primary { right: -2%; top: 14%; width: min(520px, 62vw); height: 320px; opacity: .44; }
  .hero-dot-field-secondary { right: 8%; top: 22%; width: min(280px, 34vw); height: 180px; opacity: .18; }
  .hero h1 { font-size: clamp(48px, 7vw, 66px); }
  .hero-field { inset: -2% -10% -4% -10%; width: 120%; opacity: .82; }
  .hero-art::before { background: linear-gradient(90deg, rgba(8,11,17,.22), rgba(8,11,17,.05) 45%, transparent 78%); }

  .trust-row { grid-template-columns: 1fr; padding: 18px 0; gap: 14px; }
  .trust-items { grid-template-columns: repeat(4, 1fr); row-gap: 12px; }

  .section { grid-template-columns: 1fr; }
  .section-intro { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 30px; }
  .section-intro > p:not(.eyebrow) { max-width: 520px; }
  .process-grid { padding: 28px 0 0; grid-template-columns: repeat(2, 1fr); }

  .method-map {
    grid-column: 1;
    margin: 82px 0 0;
  }

  .method-map-head {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 30px;
  }

  .method-map-head > p {
    max-width: 680px;
  }

  .method-map-body {
    grid-template-columns: 1fr;
  }

  .method-flow {
    min-height: 540px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .method-automation {
    left: 56%;
    top: 36%;
  }

  .method-ai {
    min-height: 190px;
    padding: 30px;
  }

  .method-ai::before,
  .method-ai::after {
    display: none;
  }

  .process-item:nth-child(3), .process-item:nth-child(5) { border-left: none; }
  .process-item:nth-child(4) { border-left: 1px solid var(--line); }
  .process-item:nth-child(n+3) { padding-top: 28px; }
  .process-item { min-height: 220px; }

  .value-suite { padding: 0 0 28px; }
  .consulting-integrated { min-height: 0; padding: 34px 0 12px; }
  .consulting { min-height: auto; padding-block: 36px; }
  .audit-ready-panel {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .audit-ready-copy {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .consulting-panel { grid-template-columns: 1fr; min-height: 0; }
  .consulting-copy { border-right: 0; border-bottom: 1px solid var(--line); }

  .industries { min-height: auto; grid-template-columns: 1fr; gap: 28px; padding-block: 58px; }
  .scope-section { margin-top: 12px; padding-block: 68px; }
  .industries-intro { padding-left: 0; }
  .industry-grid { grid-template-columns: repeat(2, 1fr); }

  .contact-panel { grid-template-columns: 1fr; gap: 18px; }
  .contact-panel .primary-button { justify-self: start; }

  .footer-main { align-items: flex-start; }
}

@media (max-width: 640px) {

  body::before { opacity: .012; }
  .section-intro .eyebrow::before,
  .industries-intro .eyebrow::before,
  .consulting-copy .eyebrow::before { width: 30px; }
  :root { --shell: calc(100% - 28px); }
  #how-we-work, #contact { scroll-margin-top: 88px; }
  #services, #partnership { scroll-margin-top: 64px; }
  #who-we-work-with { scroll-margin-top: 64px; }
  body { font-size: 14px; }
  .site-header { height: 72px; }
  .site-header::before { top: -26px; height: 122px; width: calc(100vw + 72px); border-radius: 0 0 50% 50% / 0 0 30px 30px; }
  .site-header::after { bottom: -12px; width: 82vw; }
  .header-cta { height: 36px; padding-inline: 13px; }
  .hero, .hero-shell { min-height: max(700px, 94svh); }
  .hero-shell { padding-top: 72px; }
  .hero-copy { width: 100%; padding: 58px 0 56px; }
  .hero-copy-aura { left: -2%; top: 7%; width: min(500px, 92vw); height: 280px; opacity: .62; }
  .hero-dot-field-primary { right: -10%; top: 16%; width: min(420px, 84vw); height: 260px; opacity: .30; }
  .hero-dot-field-secondary,
  .hero-veil-b { display: none; }
  .hero h1 { font-size: clamp(42px, 12vw, 56px); }
  .hero-lead { font-size: 13px; max-width: 92%; }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 17px; }
  .hero-field {
    inset: -2% -28% -2% -28%;
    width: 156%;
    opacity: .70;
    /* Mobile: avoid expensive SVG filter compositing while the signal moves. */
    filter: none;
    transform: translateZ(0);
    backface-visibility: hidden;
  }

  /* Mobile hero routes stay visually stable while only the signal travels.
     This removes the blink caused by continuously morphing multiple SVG paths. */
  .ambient-path,
  .ambient-path.is-locked {
    transition: none;
    will-change: auto;
  }

  .ambient-soft { opacity: .56; }
  .ambient-main { opacity: .74; }

  .travel-signal {
    will-change: stroke-dashoffset;
  }

  .travel-signal-glow {
    opacity: .10;
  }
  
  .hero-ambient-a { left: -18%; width: 620px; }
  .hero-ambient-b { right: -34%; width: 680px; }

  .trust-items { grid-template-columns: repeat(2, 1fr); }
  .trust-items span { border-left: 0; border-top: 1px solid var(--line); padding: 9px 6px 0; }

  .process-grid { grid-template-columns: 1fr; }

  .method-map {
    margin-top: 54px;
  }

  .method-map-head {
    min-height: 0;
    padding: 25px 22px 23px;
  }

  .method-map-head h3 {
    font-size: 21px;
  }

  .method-map-body {
    min-height: 0;
  }

  .method-flow {
    display: block;
    min-height: 0;
    padding: 28px 22px 24px 59px;
  }

  .method-segment-layer {
    display: none;
  }

  .method-flow::before {
    content: "";
    position: absolute;
    left: 37px;
    top: 38px;
    bottom: 38px;
    width: 1px;
    background: linear-gradient(
      180deg,
      rgba(168,145,245,.12),
      rgba(168,145,245,.36),
      rgba(168,145,245,.12)
    );
  }

  .method-node {
    min-height: 0;
    padding: 0 0 24px;
  }

  .method-node:last-of-type {
    padding-bottom: 0;
  }

  .method-dot {
    position: absolute;
    left: -39px;
    top: -4px;
    width: 31px;
    height: 31px;
    margin: 0;
    box-shadow: 0 0 0 5px rgba(10,14,21,.94);
  }

  .method-node strong {
    font-size: 13.4px;
  }

  .method-node small {
    max-width: none;
  }

  .method-automation {
    display: block;
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    max-width: none;
    margin: 2px 0 26px;
    padding: 14px 15px;
    transform: none;
  }

  .method-automation::before,
  .method-automation::after {
    display: none;
  }

  .method-node[data-step="5"] {
    transform: none;
  }

  .method-ai {
    min-height: 0;
    padding: 27px 22px;
  }

  .process-item,
  .process-item:nth-child(4) { border-left: 0; border-bottom: 1px solid var(--line); padding: 24px 0; min-height: 0; }
  .process-item:last-child { border-bottom: 0; }

  .value-suite { padding-bottom: 20px; }
  .consulting-integrated { padding-top: 24px; }
  .audit-ready-panel { margin-inline: 0; }
  .audit-ready-copy,
  .audit-capabilities { padding-inline: 22px; }
  .audit-capabilities { grid-template-columns: 1fr; padding-block: 20px; }
  .audit-capability,
  .audit-capability:nth-child(3),
  .audit-capability:nth-child(4) {
    min-height: 0;
    padding: 20px 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }
  .audit-capability:last-child { border-bottom: 0; }
  .consulting-copy, .consulting-list { padding-inline: 22px; }
  .consulting-row { font-size: 13.5px; grid-template-columns: 32px 1fr; }
  .mini-mark { font-size: 19px; }

  .industry-grid { grid-template-columns: 1fr; }
  .scope-section { padding-block: 52px; }
  .scope-section .industry-card { min-height: 0; }

  .industry-card { border-left: 0; border-top: 1px solid var(--line); padding: 22px 0 8px; min-height: 0; }
  .contact-panel { padding: 26px; }
  .footer-main { flex-direction: column; gap: 18px; }
  .footer-nav { flex-wrap: wrap; gap: 12px 24px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .method-segment-layer {
    display: none !important;
  }

  .method-node.is-route-active .method-dot::after {
    animation: none !important;
  }



  .nav-indicator,
  .section-signal-track span,
  .specular-edge {
    transition: none !important;
    animation: none !important;
  }

  .section-signal-track {
    display: none;
  }

  .reveal-block,
  .motion-ready .reveal-block {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .motion-ready .section-rule {
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
  }

  .value-suite::before,
  .consulting-panel::before,
  .contact-panel::after {
    transform: none !important;
    transition: none !important;
  }

  .hero-field {
    transform: scale(1.015) !important;
  }
  .consulting-panel::after {
    display: none;
  }
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}


.method-node[data-step="4"],
.method-node[data-step="5"],
.method-node[data-step="6"] {
  align-self: start;
}




.contact-panel > .section-signal-track {
  position: absolute;
  z-index: 8;
}

/* V45 — SUBTLE PANEL MATERIAL POLISH
   Only light, surface and edge response.
   No card lift, no gimmicky motion. */

.method-map,
.audit-ready-panel,
.consulting-panel,
.contact-panel,
.value-suite {
  --panel-pointer-x: 50%;
  --panel-pointer-y: 42%;
  --panel-spotlight-opacity: 0;
  --panel-edge-opacity: 0;
  --panel-edge-shift: 50%;
  position: relative;
  isolation: isolate;
}

.method-map > *:not(.method-segment-layer):not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen),
.audit-ready-panel > *:not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen),
.consulting-panel > *:not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen),
.contact-panel > *:not(.section-signal-track):not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen),
.value-suite > *:not(.section-signal-track):not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen) {
  position: relative;
}

.panel-spotlight,
.panel-edge-glint,
.panel-top-sheen {
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
}

.panel-spotlight {
  inset: 0;
  z-index: 0;
  opacity: var(--panel-spotlight-opacity);
  transition: opacity .34s ease;
  background:
    radial-gradient(
      420px circle at var(--panel-pointer-x) var(--panel-pointer-y),
      rgba(255,255,255,.024) 0%,
      rgba(176, 146, 255, .040) 12%,
      rgba(136, 94, 255, .030) 28%,
      rgba(136, 94, 255, .012) 44%,
      transparent 68%
    );
  mix-blend-mode: screen;
}

.panel-edge-glint {
  inset: 0;
  z-index: 2;
  opacity: var(--panel-edge-opacity);
  transition: opacity .34s ease;
  background:
    linear-gradient(
      90deg,
      transparent max(0%, calc(var(--panel-edge-shift) - 14%)),
      rgba(255,255,255,.018) calc(var(--panel-edge-shift) - 7%),
      rgba(196, 177, 255, .14) var(--panel-edge-shift),
      rgba(255,255,255,.022) calc(var(--panel-edge-shift) + 7%),
      transparent min(100%, calc(var(--panel-edge-shift) + 14%))
    ) top / 100% 1px no-repeat;
}

.panel-top-sheen {
  z-index: 1;
  left: 1px;
  right: 1px;
  top: 1px;
  height: 1px;
  opacity: .72;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.012) 0%,
      rgba(196, 177, 255, .080) 18%,
      rgba(255,255,255,.028) 50%,
      rgba(196, 177, 255, .070) 82%,
      rgba(255,255,255,.010) 100%
    );
}

.method-map .panel-spotlight {
  background:
    radial-gradient(
      460px circle at var(--panel-pointer-x) var(--panel-pointer-y),
      rgba(255,255,255,.020) 0%,
      rgba(184, 163, 255, .040) 10%,
      rgba(138, 92, 255, .032) 26%,
      rgba(138, 92, 255, .012) 42%,
      transparent 66%
    );
}

.contact-panel .panel-spotlight,
.consulting-panel .panel-spotlight {
  background:
    radial-gradient(
      390px circle at var(--panel-pointer-x) var(--panel-pointer-y),
      rgba(255,255,255,.024) 0%,
      rgba(176, 146, 255, .034) 12%,
      rgba(136, 94, 255, .022) 26%,
      rgba(136, 94, 255, .010) 42%,
      transparent 66%
    );
}

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .panel-spotlight,
  .panel-edge-glint {
    display: none;
  }

  .panel-top-sheen {
    opacity: .58;
  }
}


/* V47 — FLUID INITIAL LOAD / MOTION COHESION
   Hide only the unstable first frame, then reveal the actual page quickly. */

.site-header,
.hero-copy,
.hero-art {
  will-change: opacity, transform;
}

.site-header {
  transition:
    opacity .68s cubic-bezier(.16,.76,.2,1),
    filter .78s cubic-bezier(.16,.76,.2,1);
}

.hero-copy {
  transition:
    opacity .22s ease,
    filter .48s cubic-bezier(.16,.78,.18,1);
}

.hero-art {
  transition:
    opacity 1.08s cubic-bezier(.16,.78,.18,1),
    filter 1.08s cubic-bezier(.16,.78,.18,1);
}

.hero-copy > .eyebrow,
.hero-copy > h1,
.hero-copy > .hero-lead,
.hero-copy > .hero-actions {
  will-change: opacity, transform, filter;
  transition:
    opacity .86s cubic-bezier(.16,.76,.18,1),
    transform .94s cubic-bezier(.16,.78,.18,1),
    filter .84s cubic-bezier(.16,.78,.18,1);
}

.hero-copy-aura {
  transition:
    opacity .95s cubic-bezier(.16,.78,.18,1),
    filter 1.02s cubic-bezier(.16,.78,.18,1);
}

html.site-booting .site-header {
  opacity: 0;
  filter: blur(2px);
}

html.site-booting .hero-copy {
  opacity: 0;
  filter: blur(1px);
}

html.site-booting .hero-copy > .eyebrow,
html.site-booting .hero-copy > h1,
html.site-booting .hero-copy > .hero-lead,
html.site-booting .hero-copy > .hero-actions {
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  filter: blur(1.5px);
}

html.site-booting .hero-copy-aura {
  opacity: 0;
}

html.site-booting .hero-art {
  opacity: 0;
  filter: blur(2px);
}

html.site-booting .hero-ambient,
html.site-booting .hero-dot-field,
html.site-booting .hero-copy-aura,
html.site-booting .field-haze {
  animation-play-state: paused !important;
}

html.site-ready .site-header {
  opacity: 1;
  filter: blur(0);
  transition-delay: 25ms;
}

html.site-ready .hero-copy {
  opacity: 1;
  filter: blur(0);
  transition-delay: 60ms;
}

html.site-ready .hero-copy > .eyebrow,
html.site-ready .hero-copy > h1,
html.site-ready .hero-copy > .hero-lead,
html.site-ready .hero-copy > .hero-actions {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

html.site-ready .hero-copy > .eyebrow {
  transition-delay: 95ms;
}

html.site-ready .hero-copy > h1 {
  transition-delay: 145ms;
}

html.site-ready .hero-copy > .hero-lead {
  transition-delay: 215ms;
}

html.site-ready .hero-copy > .hero-actions {
  transition-delay: 285ms;
}

html.site-ready .hero-copy-aura {
  opacity: .88;
  transition-delay: 80ms;
}

html.site-ready .hero-art {
  opacity: 1;
  filter: blur(0);
  transition-delay: 130ms;
}

html.site-ready .hero-ambient,
html.site-ready .hero-dot-field,
html.site-ready .hero-copy-aura,
html.site-ready .field-haze {
  animation-play-state: running;
}

/* Existing scroll reveals keep their restraint, but settle a little more softly. */
.motion-ready .reveal-block {
  opacity: .80;
  transform: translate3d(0, 10px, 0);
  transition:
    opacity .90s cubic-bezier(.16,.76,.18,1),
    transform 1.02s cubic-bezier(.16,.78,.18,1);
  transition-delay: var(--reveal-delay, 0ms);
}

/* Slightly more inertial active-nav movement. */
.nav-indicator {
  transition:
    transform .66s cubic-bezier(.18,.72,.18,1),
    width .52s cubic-bezier(.18,.72,.18,1),
    opacity .32s ease;
}

@media (prefers-reduced-motion: reduce) {
  html.site-booting .site-header,
  html.site-booting .hero-copy,
  html.site-booting .hero-art,
  html.site-booting .hero-copy > .eyebrow,
  html.site-booting .hero-copy > h1,
  html.site-booting .hero-copy > .hero-lead,
  html.site-booting .hero-copy > .hero-actions {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .site-header,
  .hero-copy,
  .hero-art,
  .hero-copy > .eyebrow,
  .hero-copy > h1,
  .hero-copy > .hero-lead,
  .hero-copy > .hero-actions {
    transition: none !important;
  }
}


/* V52 — CONTENT ARCHITECTURE / SERVICES */

/* Experience strip is intentionally quiet: context, not a navigation section. */
.experience-strip .trust-label {
  color: #9ea5b0;
}

.experience-strip .trust-items span {
  color: #e9ebef;
}

/* WHO WE WORK WITH */
.fit-section {
  min-height: 72svh;
}

.fit-section .industries-intro h2 {
  max-width: 580px;
}

.fit-card h3 {
  max-width: 250px;
}

.fit-card p {
  max-width: 300px;
}

/* SERVICES — one contained premium surface rather than another loose card grid. */
.service-suite {
  position: relative;
  padding-top: 88px;
  padding-bottom: 92px;
}

.service-suite-panel {
  --panel-pointer-x: 50%;
  --panel-pointer-y: 42%;
  --panel-spotlight-opacity: 0;
  --panel-edge-opacity: 0;
  --panel-edge-shift: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.085);
  border-radius: var(--radius);
  background:
    radial-gradient(ellipse at 76% 10%, rgba(119,82,239,.075), transparent 32%),
    linear-gradient(118deg, rgba(14,18,27,.94), rgba(9,13,20,.76));
}

.service-suite-panel::before {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: -1px;
  height: 1px;
  z-index: 2;
  pointer-events: none;
  opacity: .62;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(168,142,255,.44),
    transparent
  );
}

.service-suite-head {
  min-height: 190px;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, .78fr);
  align-items: end;
  gap: 64px;
  padding: 46px 52px 40px;
  border-bottom: 1px solid var(--line);
}

.service-suite-head .eyebrow {
  margin-bottom: 12px;
}

.service-suite-head h2 {
  margin: 0;
  color: #f4f5f8;
  font-size: clamp(32px, 2.5vw, 43px);
  line-height: 1.22;
  font-weight: 500;
  letter-spacing: -.045em;
}

.service-suite-head > p {
  max-width: 570px;
  margin: 0;
  color: #a5acb7;
  font-size: 13.35px;
  line-height: 1.82;
}

.service-capability-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-capability {
  min-height: 300px;
  position: relative;
  padding: 42px 52px 38px;
  border-bottom: 1px solid var(--line);
  border-left: 1px solid var(--line);
  isolation: isolate;
}

.service-capability:nth-child(odd) {
  border-left: 0;
}

.service-capability:nth-child(3),
.service-capability:nth-child(4) {
  border-bottom: 0;
}

.service-capability::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  pointer-events: none;
  transition: opacity .82s cubic-bezier(.18,.7,.18,1);
  background:
    radial-gradient(circle at 16% 10%, rgba(138,92,255,.065), transparent 42%),
    linear-gradient(135deg, rgba(255,255,255,.012), transparent 48%);
}

.service-capability:hover::before {
  opacity: 1;
  transition-duration: .24s;
}

.service-capability-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
}

.service-capability-number {
  flex: 0 0 auto;
  color: #b09cff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .045em;
}

.service-capability-line {
  width: 44px;
  height: 1px;
  background: linear-gradient(90deg, rgba(161,130,255,.56), rgba(161,130,255,.06));
}

.service-capability h3 {
  margin: 0 0 10px;
  color: #f2f3f7;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -.026em;
}

.service-capability > p {
  max-width: 510px;
  margin: 0;
  color: #a4abb6;
  font-size: 13px;
  line-height: 1.76;
}

.service-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 8px;
  margin-top: 24px;
}

.service-tags span {
  display: inline-flex;
  min-height: 27px;
  align-items: center;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 999px;
  color: #aaaeb9;
  background: rgba(255,255,255,.012);
  font-size: 9.8px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: .018em;
}

/* Small turnkey / ownership statement inside Services. */
.delivery-panel {
  --panel-pointer-x: 50%;
  --panel-pointer-y: 42%;
  --panel-spotlight-opacity: 0;
  --panel-edge-opacity: 0;
  --panel-edge-shift: 50%;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(520px, 1.08fr);
  gap: 54px;
  margin: 0 28px 28px;
  padding: 34px 38px;
  overflow: hidden;
  border: 1px solid rgba(169,143,255,.14);
  border-radius: 7px;
  background:
    radial-gradient(ellipse at 18% 28%, rgba(130,91,255,.085), transparent 36%),
    linear-gradient(100deg, rgba(18,20,36,.88), rgba(10,14,22,.88));
  box-shadow:
    0 18px 48px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.018);
}

.delivery-copy .eyebrow {
  margin-bottom: 10px;
}

.delivery-copy h3 {
  margin: 0;
  color: #f3f4f7;
  font-size: clamp(23px, 1.8vw, 30px);
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: -.036em;
}

.delivery-copy h3 span {
  color: #bcaaff;
}

.delivery-copy > p:not(.eyebrow) {
  max-width: 580px;
  margin: 14px 0 0;
  color: #a3aab5;
  font-size: 12.6px;
  line-height: 1.76;
}

.delivery-proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
}

.delivery-proof {
  min-height: 70px;
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  padding: 13px 18px;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.delivery-proof:nth-child(odd) {
  border-left: 0;
}

.delivery-proof:nth-child(3),
.delivery-proof:nth-child(4) {
  border-bottom: 0;
}

.delivery-proof-mark {
  color: #a890f2;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .035em;
}

.delivery-proof strong {
  color: #e8e9ee;
  font-size: 11.7px;
  line-height: 1.48;
  font-weight: 500;
}

/* Partnership is deliberately calmer than Services — it closes the story. */
.partnership-panel {
  background:
    linear-gradient(90deg, rgba(89, 59, 186, 0.15) 0%, rgba(35, 29, 69, 0.08) 34%, rgba(13, 17, 24, 0.96) 63%),
    var(--panel);
}

/* Reuse the subtle material polish on the new premium surfaces. */
.service-suite-panel,
.delivery-panel {
  --depth-y: 0px;
}

.service-suite-panel > *:not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen),
.delivery-panel > *:not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen) {
  position: relative;
  z-index: 1;
}

.service-suite-panel .panel-spotlight,
.delivery-panel .panel-spotlight {
  background:
    radial-gradient(
      440px circle at var(--panel-pointer-x) var(--panel-pointer-y),
      rgba(255,255,255,.020) 0%,
      rgba(176,146,255,.036) 12%,
      rgba(136,94,255,.022) 28%,
      transparent 66%
    );
}

.motion-ready .service-capability.reveal-block {
  transform: translate3d(0, 9px, 0);
}

.motion-ready .service-capability.reveal-block.is-visible {
  transform: translate3d(0, 0, 0);
}

@media (max-width: 1180px) {
  .service-suite-head {
    gap: 42px;
    padding-inline: 40px;
  }

  .service-capability {
    padding-inline: 40px;
  }

  .delivery-panel {
    grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr);
  }
}

@media (max-width: 980px) {
  .service-suite {
    padding-top: 56px;
    padding-bottom: 68px;
  }

  .service-suite-head {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 34px 30px;
  }

  .service-suite-head > p {
    max-width: 680px;
  }

  .service-capability {
    min-height: 280px;
    padding: 34px 30px 32px;
  }

  .delivery-panel {
    grid-template-columns: 1fr;
    gap: 26px;
    margin: 0 20px 20px;
    padding: 30px;
  }

  .delivery-proof-grid {
    max-width: 720px;
  }
}

@media (max-width: 640px) {
  .service-suite {
    padding-top: 38px;
    padding-bottom: 52px;
  }

  .service-suite-head {
    padding: 27px 22px 25px;
  }

  .service-suite-head h2 {
    font-size: 29px;
  }

  .service-capability-grid {
    grid-template-columns: 1fr;
  }

  .service-capability,
  .service-capability:nth-child(odd),
  .service-capability:nth-child(3),
  .service-capability:nth-child(4) {
    min-height: 0;
    padding: 28px 22px;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .service-capability:last-child {
    border-bottom: 0;
  }

  .service-capability h3 {
    font-size: 18px;
  }

  .service-tags {
    margin-top: 19px;
  }

  .delivery-panel {
    margin: 0 12px 12px;
    padding: 24px 20px;
  }

  .delivery-proof-grid {
    grid-template-columns: 1fr;
  }

  .delivery-proof,
  .delivery-proof:nth-child(odd),
  .delivery-proof:nth-child(3),
  .delivery-proof:nth-child(4) {
    min-height: 0;
    padding: 15px 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .delivery-proof:last-child {
    border-bottom: 0;
  }
}


/* V53 — WHO / SERVICES CONTENT REFINEMENT */

.fit-section .industries-lead {
  color: #b0b6c0;
  font-weight: 500;
  letter-spacing: -.004em;
}

/* Ownership is part of Services, not a fifth card or a separate panel. */
.service-ownership {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(560px, 1.14fr);
  align-items: center;
  gap: 48px;
  position: relative;
  z-index: 1;
  padding: 34px 52px 36px;
  border-top: 1px solid rgba(255,255,255,.085);
  background:
    radial-gradient(ellipse at 12% 38%, rgba(126,88,246,.055), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.010), rgba(255,255,255,.002));
}

.service-ownership::before {
  content: "";
  position: absolute;
  left: 7%;
  right: 46%;
  top: -1px;
  height: 1px;
  pointer-events: none;
  opacity: .72;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(166,141,255,.34),
    transparent
  );
}

.service-ownership-copy .eyebrow {
  margin-bottom: 9px;
  font-size: 9.8px;
}

.service-ownership-copy h3 {
  margin: 0;
  color: #f1f2f6;
  font-size: clamp(21px, 1.55vw, 27px);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.032em;
}

.service-ownership-copy h3 span {
  color: #b9a6ff;
}

.service-ownership-copy > p:not(.eyebrow) {
  max-width: 590px;
  margin: 12px 0 0;
  color: #9fa6b1;
  font-size: 12.25px;
  line-height: 1.72;
}

.service-ownership-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-ownership-point {
  min-height: 62px;
  display: grid;
  grid-template-columns: 27px 1fr;
  align-items: center;
  gap: 9px;
  padding: 11px 18px;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.service-ownership-point:nth-child(odd) {
  border-left: 0;
}

.service-ownership-point:nth-child(3),
.service-ownership-point:nth-child(4) {
  border-bottom: 0;
}

.service-ownership-point span {
  color: #9d88e8;
  font-size: 9.2px;
  font-weight: 600;
  letter-spacing: .04em;
}

.service-ownership-point strong {
  color: #e5e7ec;
  font-size: 11.4px;
  line-height: 1.45;
  font-weight: 500;
}

.motion-ready .service-ownership.reveal-block {
  opacity: .82;
  transform: translate3d(0, 7px, 0);
}

.motion-ready .service-ownership.reveal-block.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* The previous inset delivery-panel CSS remains unused; the visible
   ownership treatment is deliberately flat/integrated into Services. */

@media (max-width: 1180px) {
  .service-ownership {
    grid-template-columns: minmax(0, .9fr) minmax(470px, 1.1fr);
    gap: 34px;
    padding-inline: 40px;
  }
}

@media (max-width: 980px) {
  .service-ownership {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px;
  }

  .service-ownership-points {
    max-width: 720px;
  }
}

@media (max-width: 640px) {
  .service-ownership {
    padding: 25px 22px;
  }

  .service-ownership-points {
    grid-template-columns: 1fr;
  }

  .service-ownership-point,
  .service-ownership-point:nth-child(odd),
  .service-ownership-point:nth-child(3),
  .service-ownership-point:nth-child(4) {
    min-height: 0;
    padding: 14px 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .service-ownership-point:last-child {
    border-bottom: 0;
  }
}


/* V54 — SERVICES / PARTNERSHIP REFINEMENT */

.service-ownership {
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
  gap: 56px;
  padding-top: 31px;
  padding-bottom: 32px;
}

.service-ownership-copy {
  align-self: center;
}

.service-ownership-copy h3 {
  max-width: 460px;
}

.service-ownership-summary {
  align-self: center;
  max-width: 760px;
  margin: 0;
  color: #a4abb6;
  font-size: 12.7px;
  line-height: 1.78;
}

/* Partnership is where the long-term engineering relationship is explained. */
.partnership-panel .consulting-copy > p:not(.eyebrow) {
  max-width: 560px;
  color: #aeb4be;
  font-size: 13.45px;
  line-height: 1.82;
}

.partnership-panel .consulting-row {
  min-height: 64px;
}

/* Keep the strong Who-we-work-with lead readable without turning it into a headline. */
.fit-section .industries-lead {
  color: #c1c6ce;
  font-size: 14.15px;
  line-height: 1.76;
  font-weight: 520;
  letter-spacing: -.006em;
}

@media (max-width: 980px) {
  .service-ownership {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .service-ownership-summary {
    max-width: 680px;
  }
}

@media (max-width: 640px) {
  .service-ownership {
    gap: 12px;
  }

  .service-ownership-summary {
    font-size: 12.15px;
  }
}


/* V56 — SERVICES TYPOGRAPHY / PARTNERSHIP SPACING / CONTACT */

/* Five nav items still read as one restrained navigation group. */
.main-nav {
  gap: 34px;
}

/* Deliberate line composition avoids awkward one- or two-word wraps. */
.service-suite-head h2 {
  max-width: 760px;
  font-size: clamp(30px, 2.25vw, 39px);
  line-height: 1.24;
}

.service-suite-head h2 > span {
  display: block;
}

.service-suite-head h2 > span + span {
  margin-top: 2px;
}

.service-suite-head {
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .72fr);
  gap: 50px;
}

/* Give Partnership its own chapter on normal scroll.
   Because the anchor targets the section itself, the added margin also keeps
   the tail of How we work out of view when Partnership is selected. */
.value-suite {
  margin-top: 74px;
}

/* CONTACT — the old CTA strip becomes one compact enquiry surface. */
.contact {
  padding-top: 48px;
}

.contact-enquiry-panel {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(520px, 1.22fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
  cursor: default;
  background:
    radial-gradient(circle at 23% 30%, rgba(95, 61, 224, .16), transparent 35%),
    radial-gradient(circle at 82% 30%, rgba(132, 93, 255, .055), transparent 32%),
    linear-gradient(100deg, #0d1020 0%, #111426 42%, #0d1119 100%);
}

.contact-intro {
  display: flex;
  min-height: 430px;
  flex-direction: column;
  justify-content: center;
  padding: 46px clamp(38px, 3.5vw, 62px);
  border-right: 1px solid var(--line);
}

.contact-intro .eyebrow {
  margin-bottom: 13px;
}

.contact-panel .contact-intro h2 {
  max-width: 500px;
  margin: 0;
  color: #f4f5f8;
  font-size: clamp(27px, 2.15vw, 36px);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.038em;
}

.contact-panel .contact-intro > p:not(.eyebrow) {
  max-width: 500px;
  margin: 18px 0 0;
  color: #adb4bf;
  font-size: 13.25px;
  line-height: 1.78;
}

.contact-email-link {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
  color: #c8baff;
  font-size: 11.5px;
  font-weight: 600;
  transition:
    color .28s ease,
    transform .42s cubic-bezier(.18,.72,.18,1);
}

.contact-email-link:hover {
  color: #e0d8ff;
  transform: translate3d(3px, 0, 0);
}

.contact-form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 38px clamp(34px, 3vw, 52px);
}

.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 16px;
}

.contact-field {
  display: grid;
  gap: 8px;
}

.contact-field-wide {
  grid-column: 1 / -1;
}

.contact-field > span {
  color: #b5bbc5;
  font-size: 10.25px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .025em;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 6px;
  outline: 0;
  color: #eef0f4;
  background: rgba(7,10,16,.44);
  font: inherit;
  font-size: 12.4px;
  transition:
    border-color .34s ease,
    background .34s ease,
    box-shadow .42s cubic-bezier(.18,.72,.18,1),
    transform .42s cubic-bezier(.18,.72,.18,1);
}

.contact-field input,
.contact-field select {
  height: 44px;
  padding: 0 13px;
}

.contact-field textarea {
  min-height: 104px;
  resize: vertical;
  padding: 12px 13px;
  line-height: 1.58;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
  color: #727985;
  opacity: 1;
}

.contact-field select {
  appearance: none;
  cursor: pointer;
  color-scheme: dark;
  background-image:
    linear-gradient(45deg, transparent 50%, #8f96a1 50%),
    linear-gradient(135deg, #8f96a1 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 19px,
    calc(100% - 12px) 19px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
  border-color: rgba(157,126,255,.48);
  background-color: rgba(12,15,24,.72);
  box-shadow:
    0 0 0 3px rgba(118,78,240,.065),
    0 12px 32px rgba(0,0,0,.08);
  transform: translate3d(0, -1px, 0);
}

.contact-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.065);
}

.contact-panel .contact-form-footer p {
  max-width: 330px;
  margin: 0;
  color: #858c97;
  font-size: 10.8px;
  line-height: 1.55;
}

.contact-panel .contact-submit {
  min-width: 142px;
  justify-self: auto;
  border: 0;
  cursor: pointer;
}

.contact-panel .contact-submit:focus-visible {
  outline: 2px solid rgba(187,167,255,.75);
  outline-offset: 3px;
}

/* Form controls should never inherit the panel hand cursor. */
.contact-panel input,
.contact-panel textarea {
  cursor: text;
}

.contact-panel select,
.contact-panel button,
.contact-panel a {
  cursor: pointer;
}

@media (max-width: 1180px) {
  .main-nav {
    gap: 24px;
  }

  .service-suite-head {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr);
    gap: 38px;
  }

  .contact-enquiry-panel {
    grid-template-columns: minmax(0, .72fr) minmax(470px, 1.28fr);
  }
}

@media (max-width: 980px) {
  .value-suite {
    margin-top: 58px;
  }

  .service-suite-head h2 {
    max-width: 660px;
  }

  .contact {
    padding-top: 34px;
  }

  .contact-enquiry-panel {
    grid-template-columns: 1fr;
  }

  .contact-intro {
    min-height: 0;
    padding: 36px 30px 32px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .contact-form {
    padding: 32px 30px 34px;
  }
}

@media (max-width: 640px) {
  .value-suite {
    margin-top: 42px;
  }

  .service-suite-head h2 > span {
    display: inline;
  }

  .service-suite-head h2 > span::after {
    content: " ";
  }

  .contact {
    padding-top: 26px;
  }

  .contact-intro {
    padding: 28px 22px 26px;
  }

  .contact-panel .contact-intro h2 {
    font-size: 27px;
  }

  .contact-form {
    padding: 26px 22px 28px;
  }

  .contact-form-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .contact-field-wide {
    grid-column: auto;
  }

  .contact-form-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }

  .contact-panel .contact-submit {
    width: 100%;
  }
}


/* V57 — COMPACT SERVICES / CONTACT ANCHOR FIX */

/* Normal page flow keeps a clear chapter break, but the Services anchor
   lands directly on the panel rather than on a tall field of empty padding. */
.service-suite {
  margin-top: 72px;
  padding-top: 0;
  padding-bottom: 78px;
}

/* More horizontal room for the value proposition. Modern browsers balance
   the line breaks instead of leaving tiny orphan fragments. */
.service-suite-head {
  min-height: 154px;
  grid-template-columns: minmax(0, 1.28fr) minmax(300px, .72fr);
  gap: 36px;
  padding: 32px 42px 29px;
}

.service-suite-head h2 {
  max-width: 850px;
  font-size: clamp(28px, 1.95vw, 35px);
  line-height: 1.22;
  text-wrap: balance;
}

.service-suite-head > p {
  max-width: 430px;
  font-size: 12.7px;
  line-height: 1.7;
}

/* Same four capabilities, with less unused vertical volume. */
.service-capability {
  min-height: 228px;
  padding: 27px 42px 25px;
}

.service-capability-top {
  margin-bottom: 17px;
}

.service-capability h3 {
  margin-bottom: 8px;
  font-size: 19px;
}

.service-capability > p {
  font-size: 12.45px;
  line-height: 1.66;
}

.service-tags {
  gap: 6px 7px;
  margin-top: 16px;
}

.service-tags span {
  min-height: 24px;
  padding-inline: 9px;
  font-size: 9.35px;
}

/* Ownership remains part of Services, just visually lighter. */
.service-ownership {
  grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr);
  gap: 38px;
  padding: 22px 42px 23px;
}

.service-ownership-copy .eyebrow {
  margin-bottom: 7px;
}

.service-ownership-copy h3 {
  font-size: clamp(19px, 1.35vw, 24px);
}

.service-ownership-summary {
  max-width: 720px;
  font-size: 12.15px;
  line-height: 1.67;
}

/* Partnership should read as a new chapter after How we work. */
.value-suite {
  margin-top: 92px;
}

/* Contact is also its own chapter. The actual panel owns #contact so the
   anchor is aligned to what the visitor sees, not to invisible section space. */
.contact {
  margin-top: 104px;
  padding-top: 0;
}

#contact {
  scroll-margin-top: 72px;
}

/* A little extra runway at the end helps the last anchor settle cleanly on
   shorter viewports instead of stopping with Partnership still active. */
.footer {
  padding-bottom: 92px;
}

@media (max-width: 1180px) {
  .service-suite-head {
    grid-template-columns: minmax(0, 1.18fr) minmax(290px, .72fr);
    gap: 30px;
    padding-inline: 36px;
  }

  .service-capability {
    min-height: 220px;
    padding-inline: 36px;
  }

  .service-ownership {
    padding-inline: 36px;
  }
}

@media (max-width: 980px) {
  .service-suite {
    margin-top: 58px;
    padding-top: 0;
    padding-bottom: 64px;
  }

  .service-suite-head {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 29px 30px 27px;
  }

  .service-suite-head h2 {
    max-width: 690px;
    font-size: clamp(27px, 4vw, 34px);
  }

  .service-suite-head > p {
    max-width: 660px;
  }

  .service-capability {
    min-height: 214px;
    padding: 27px 30px 24px;
  }

  .service-ownership {
    gap: 12px;
    padding: 23px 30px 24px;
  }

  .value-suite {
    margin-top: 74px;
  }

  .contact {
    margin-top: 82px;
    padding-top: 0;
  }

  #contact {
    scroll-margin-top: 78px;
  }
}

@media (max-width: 640px) {
  .service-suite {
    margin-top: 42px;
    padding-top: 0;
    padding-bottom: 52px;
  }

  .service-suite-head {
    padding: 25px 22px 23px;
  }

  .service-suite-head h2 {
    font-size: 27px;
    line-height: 1.25;
    text-wrap: pretty;
  }

  .service-capability,
  .service-capability:nth-child(odd),
  .service-capability:nth-child(3),
  .service-capability:nth-child(4) {
    min-height: 0;
    padding: 24px 22px 22px;
  }

  .service-ownership {
    padding: 21px 22px 22px;
  }

  .value-suite {
    margin-top: 56px;
  }

  .contact {
    margin-top: 62px;
    padding-top: 0;
  }

  #contact {
    scroll-margin-top: 64px;
  }

  .footer {
    padding-bottom: 64px;
  }
}


/* V58 — MICRO SPACING / CONTACT FORM REFINEMENT */

/* Keep Services compact, but give the content a little more breathing room. */
.service-suite-head {
  padding-top: 35px;
  padding-bottom: 32px;
}

.service-capability {
  min-height: 238px;
  padding-top: 30px;
  padding-bottom: 28px;
}

.service-capability-top {
  margin-bottom: 19px;
}

.service-capability h3 {
  margin-bottom: 9px;
}

.service-tags {
  margin-top: 18px;
}

.service-ownership {
  padding-top: 25px;
  padding-bottom: 26px;
}

/* Give the problem description enough space to feel like a real enquiry. */
.contact-field textarea {
  min-height: 188px;
}

/* The helper line should remain secondary, but clearly readable. */
.contact-panel .contact-form-footer p {
  color: #a8aeb8;
  font-size: 11.65px;
  line-height: 1.6;
}

@media (max-width: 980px) {
  .service-capability {
    min-height: 224px;
    padding-top: 29px;
    padding-bottom: 26px;
  }

  .contact-field textarea {
    min-height: 172px;
  }
}

@media (max-width: 640px) {
  .service-capability,
  .service-capability:nth-child(odd),
  .service-capability:nth-child(3),
  .service-capability:nth-child(4) {
    padding-top: 26px;
    padding-bottom: 24px;
  }

  .contact-field textarea {
    min-height: 156px;
  }
}


/* V59 — PARTNERSHIP SPACING / ANCHOR CLEANUP */

/* Partnership now contains both the audit-ready panel and the long-term
   partner panel. Remove the old standalone-consulting viewport height that
   was leaving a large empty field between those two parts. */
.consulting.consulting-integrated {
  min-height: 0;
  display: block;
  padding: 38px clamp(18px, 1.5vw, 32px) 22px;
}

/* Let the ISO panel breathe beneath the fixed glass header when Partnership
   is selected, rather than pinning its top edge too close to the navigation. */
#partnership {
  scroll-margin-top: 98px;
}

@media (max-width: 980px) {
  .consulting.consulting-integrated {
    min-height: 0;
    padding: 32px 0 18px;
  }

  #partnership {
    scroll-margin-top: 92px;
  }
}

@media (max-width: 640px) {
  .consulting.consulting-integrated {
    padding-top: 26px;
    padding-bottom: 14px;
  }

  #partnership {
    scroll-margin-top: 82px;
  }
}


/* V60 — SERVICES ANCHOR MICRO FIX
   Give the curved glass header a little more clearance when Services is opened. */
#services {
  scroll-margin-top: 96px;
}

@media (max-width: 980px) {
  #services {
    scroll-margin-top: 90px;
  }
}

@media (max-width: 640px) {
  #services {
    scroll-margin-top: 78px;
  }
}


/* V61 — SERVICES ANCHOR TARGETS THE ACTUAL PANEL */

/* Keep a calm visual break after Experience across in normal page flow. */
.service-suite {
  margin-top: 92px;
  padding-top: 0;
}

/* #services now lives on the visible panel itself. Give the curved glass
   header enough clearance so its lower oval edge never overlaps the panel. */
#services {
  scroll-margin-top: 138px;
}

@media (max-width: 1180px) {
  .service-suite {
    margin-top: 84px;
  }

  #services {
    scroll-margin-top: 128px;
  }
}

@media (max-width: 980px) {
  .service-suite {
    margin-top: 68px;
  }

  #services {
    scroll-margin-top: 108px;
  }
}

@media (max-width: 640px) {
  .service-suite {
    margin-top: 50px;
  }

  #services {
    scroll-margin-top: 90px;
  }
}

/* V63 — FIT DIAGNOSTIC / SERVICE EXPLORER */

/* A compact self-diagnostic bridge between Experience across and Services. */
.fit-diagnostic {
  margin-top: 58px;
}

.fit-diagnostic-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 10px;
  background:
    radial-gradient(circle at 10% 18%, rgba(123,82,241,.065), transparent 34%),
    linear-gradient(112deg, rgba(14,18,27,.88), rgba(9,13,20,.72));
}

.fit-diagnostic-panel::before {
  content: "";
  position: absolute;
  left: 7%;
  top: -1px;
  width: 31%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(174,149,255,.38), transparent);
}

.fit-diagnostic-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 30px 34px;
  border-right: 1px solid var(--line);
}

.fit-diagnostic-intro .eyebrow {
  margin-bottom: 9px;
}

.fit-diagnostic-intro h2 {
  max-width: 320px;
  margin: 0;
  color: #eff1f5;
  font-size: clamp(20px, 1.5vw, 25px);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.03em;
}

.fit-diagnostic-intro > p:not(.eyebrow) {
  max-width: 390px;
  margin: 12px 0 0;
  color: #9fa6b1;
  font-size: 11.8px;
  line-height: 1.7;
}

.fit-diagnostic-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fit-diagnostic-item {
  position: relative;
  min-height: 78px;
  display: grid;
  grid-template-columns: 19px 1fr;
  align-items: center;
  gap: 12px;
  padding: 17px 24px;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background .72s cubic-bezier(.18,.72,.18,1);
}

.fit-diagnostic-item:nth-child(odd) {
  border-left: 0;
}

.fit-diagnostic-item:nth-child(5),
.fit-diagnostic-item:nth-child(6) {
  border-bottom: 0;
}

.fit-diagnostic-item > span {
  position: relative;
  width: 15px;
  height: 15px;
  border: 1px solid rgba(170,143,255,.28);
  border-radius: 50%;
}

.fit-diagnostic-item > span::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 6px;
  width: 5px;
  height: 2px;
  border-left: 1px solid #b8a4ff;
  border-bottom: 1px solid #b8a4ff;
  transform: rotate(-45deg);
}

.fit-diagnostic-item p {
  max-width: 390px;
  margin: 0;
  color: #bec3cb;
  font-size: 11.9px;
  line-height: 1.55;
  font-weight: 500;
}

.fit-diagnostic-item:hover {
  background: radial-gradient(circle at 10% 50%, rgba(135,94,255,.045), transparent 52%);
  transition-duration: .2s;
}

/* The diagnostic is the bridge; Services follows with a tighter, intentional gap. */
.service-suite {
  margin-top: 62px;
}

/* Service cards are now expandable; pills are intentionally removed. */
.service-capability-grid {
  align-items: stretch;
}

.service-capability {
  display: flex;
  flex-direction: column;
}

.service-capability > p {
  flex: 1 1 auto;
}

.service-expand {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  padding: 0;
  border: 0;
  outline: 0;
  color: #aaaeb8;
  background: transparent;
  font: inherit;
  font-size: 10.4px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .015em;
  cursor: pointer;
  transition: color .25s ease;
}

.service-expand i {
  position: relative;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(166,139,255,.2);
  border-radius: 50%;
  background: rgba(130,90,244,.025);
  transition:
    border-color .32s ease,
    background .32s ease,
    transform .52s cubic-bezier(.18,.78,.18,1);
}

.service-expand i::before,
.service-expand i::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 1px;
  background: #aa96f3;
  transform: translate(-50%, -50%);
  transition: transform .48s cubic-bezier(.18,.78,.18,1), opacity .28s ease;
}

.service-expand i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.service-expand:hover {
  color: #ded8f6;
}

.service-expand:hover i {
  border-color: rgba(180,155,255,.42);
  background: rgba(130,90,244,.07);
}

.service-capability.is-expanded {
  background: radial-gradient(circle at 16% 10%, rgba(138,92,255,.055), transparent 44%);
}

.service-capability.is-expanded .service-expand {
  color: #d7cef5;
}

.service-capability.is-expanded .service-expand i {
  transform: rotate(90deg);
  border-color: rgba(180,155,255,.42);
  background: rgba(130,90,244,.07);
}

.service-capability.is-expanded .service-expand i::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(180deg);
}

/* Full-width detail row inserted between the selected pair of service cards. */
.service-detail-rail {
  grid-column: 1 / -1;
  display: grid;
  grid-template-rows: 0fr;
  position: relative;
  overflow: hidden;
  border-top: 0 solid transparent;
  border-bottom: 0 solid transparent;
  opacity: 0;
  transition:
    grid-template-rows .56s cubic-bezier(.16,.76,.18,1),
    opacity .34s ease,
    border-color .42s ease;
}

.service-detail-rail.is-open {
  grid-template-rows: 1fr;
  opacity: 1;
  border-top-width: 1px;
  border-bottom-width: 1px;
  border-color: rgba(255,255,255,.072);
}

.service-detail-clip {
  min-height: 0;
  overflow: hidden;
}

.service-detail-surface {
  position: relative;
  min-height: 220px;
  padding: 30px 42px 32px;
  background:
    radial-gradient(circle at var(--detail-origin, 25%) 0%, rgba(135,94,255,.07), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.013), rgba(255,255,255,.003));
}

.service-detail-origin {
  position: absolute;
  top: -1px;
  left: var(--detail-origin, 25%);
  width: min(170px, 18%);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(179,154,255,.66), transparent);
  box-shadow: 0 0 18px rgba(137,94,255,.12);
  transition: left .5s cubic-bezier(.18,.78,.18,1);
}

.service-detail-rail.is-left {
  --detail-origin: 25%;
}

.service-detail-rail.is-right {
  --detail-origin: 75%;
}

.service-detail-content {
  opacity: 1;
  transform: translate3d(0,0,0);
  transition: opacity .22s ease, transform .28s cubic-bezier(.18,.72,.18,1);
}

.service-detail-rail.is-switching .service-detail-content {
  opacity: .18;
  transform: translate3d(0,3px,0);
}

.service-detail-head {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(320px, .78fr);
  align-items: end;
  gap: 48px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.service-detail-kicker {
  display: block;
  margin-bottom: 7px;
  color: #a992f4;
  font-size: 9.5px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.service-detail-head h4 {
  max-width: 610px;
  margin: 0;
  color: #eceef2;
  font-size: clamp(19px, 1.45vw, 24px);
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -.028em;
}

.service-detail-head > p {
  max-width: 520px;
  margin: 0;
  color: #9fa6b0;
  font-size: 11.8px;
  line-height: 1.68;
}

.service-detail-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0;
  padding-top: 24px;
}

.service-detail-columns > div {
  min-height: 104px;
  padding: 0 25px;
  border-left: 1px solid rgba(255,255,255,.06);
}

.service-detail-columns > div:first-child {
  padding-left: 0;
  border-left: 0;
}

.service-detail-columns > div:last-child {
  padding-right: 0;
}

.service-detail-columns span {
  display: block;
  margin-bottom: 7px;
  color: #8f96a2;
  font-size: 9.4px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.service-detail-columns strong {
  display: block;
  color: #dde0e6;
  font-size: 12.1px;
  line-height: 1.45;
  font-weight: 600;
}

.service-detail-columns p {
  max-width: 350px;
  margin: 7px 0 0;
  color: #929aa6;
  font-size: 11.2px;
  line-height: 1.62;
}

@media (max-width: 980px) {
  .fit-diagnostic {
    margin-top: 46px;
  }

  .fit-diagnostic-panel {
    grid-template-columns: 1fr;
  }

  .fit-diagnostic-intro {
    padding: 26px 30px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .fit-diagnostic-intro h2,
  .fit-diagnostic-intro > p:not(.eyebrow) {
    max-width: 650px;
  }

  .service-suite {
    margin-top: 52px;
  }

  .service-detail-surface {
    padding: 27px 30px 29px;
  }

  .service-detail-head {
    grid-template-columns: 1fr;
    gap: 13px;
  }
}

@media (max-width: 640px) {
  .fit-diagnostic {
    margin-top: 34px;
  }

  .fit-diagnostic-intro {
    padding: 24px 22px;
  }

  .fit-diagnostic-list {
    grid-template-columns: 1fr;
  }

  .fit-diagnostic-item,
  .fit-diagnostic-item:nth-child(odd),
  .fit-diagnostic-item:nth-child(5) {
    min-height: 0;
    padding: 16px 22px;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .fit-diagnostic-item:last-child {
    border-bottom: 0;
  }

  .service-suite {
    margin-top: 42px;
  }

  .service-expand {
    margin-top: 17px;
  }

  /* On mobile the existing single-column card order is preserved; each rail
     remains full-width and follows its service pair without visual clutter. */
  .service-detail-surface {
    padding: 24px 22px 26px;
  }

  .service-detail-head h4 {
    font-size: 19px;
  }

  .service-detail-columns {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 18px;
  }

  .service-detail-columns > div,
  .service-detail-columns > div:first-child,
  .service-detail-columns > div:last-child {
    min-height: 0;
    padding: 15px 0;
    border-left: 0;
    border-bottom: 1px solid rgba(255,255,255,.055);
  }

  .service-detail-columns > div:last-child {
    border-bottom: 0;
  }

  .service-detail-origin {
    left: 50% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-detail-rail,
  .service-detail-content,
  .service-expand i,
  .service-expand i::before,
  .service-expand i::after {
    transition: none !important;
  }
}

/* V63 grid corrections after inserting full-width detail rails. */
.service-capability[data-detail-side="left"] {
  border-left: 0;
}

.service-capability[data-detail-side="right"] {
  border-left: 1px solid var(--line);
}

.service-capability[data-detail-row="top"] {
  border-bottom: 1px solid var(--line);
}

.service-capability[data-detail-row="bottom"] {
  border-bottom: 0;
}

.service-detail-rail.is-open {
  border-top-width: 0;
  border-bottom-width: 0;
}

.service-detail-rail[data-detail-rail="top"].is-open {
  border-bottom-width: 1px;
}

@media (max-width: 640px) {
  .service-capability[data-detail-side="left"],
  .service-capability[data-detail-side="right"],
  .service-capability[data-detail-row="top"],
  .service-capability[data-detail-row="bottom"] {
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .service-capability[data-service-card="support"] {
    border-bottom: 0;
  }
}


/* V64 — PARTNERSHIP DIAGNOSTIC / SIGNAL SERVICE EXPLORER */

/* The diagnostic now belongs to Partnership, where it acts as the first
   "do you recognise this?" panel before the engineering assurance panels. */
.partnership-diagnostic {
  margin: 4px 0 28px;
}

.partnership-diagnostic .fit-diagnostic-panel {
  --panel-pointer-x: 50%;
  --panel-pointer-y: 42%;
  --panel-spotlight-opacity: 0;
  --panel-edge-opacity: 0;
  --panel-edge-shift: 50%;
  isolation: isolate;
  border-color: rgba(255,255,255,.095);
  background:
    radial-gradient(circle at 11% 18%, rgba(125,83,246,.085), transparent 35%),
    radial-gradient(circle at 84% 46%, rgba(99,70,203,.035), transparent 34%),
    linear-gradient(112deg, rgba(15,19,29,.94), rgba(9,13,20,.78));
  box-shadow:
    0 22px 54px rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.015);
}

.partnership-diagnostic .fit-diagnostic-panel > *:not(.panel-spotlight):not(.panel-edge-glint):not(.panel-top-sheen) {
  position: relative;
  z-index: 1;
}

.partnership-diagnostic .fit-diagnostic-panel::before {
  width: 39%;
  opacity: .9;
}

.partnership-diagnostic .fit-diagnostic-intro {
  padding: 32px 36px;
}

.partnership-diagnostic .fit-diagnostic-intro h2 {
  font-size: clamp(21px, 1.6vw, 27px);
}

.partnership-diagnostic .fit-diagnostic-intro > p:not(.eyebrow) {
  color: #a9b0ba;
  font-size: 12.15px;
}

.partnership-diagnostic .fit-diagnostic-item {
  min-height: 82px;
}

.partnership-diagnostic .fit-diagnostic-item p {
  color: #c5cad1;
  font-size: 12.2px;
}

.partnership-diagnostic .fit-diagnostic-item > span {
  border-color: rgba(178,151,255,.36);
  box-shadow: 0 0 16px rgba(135,94,255,.035);
}

/* The diagnostic no longer sits between Experience and Services. */
.service-suite {
  margin-top: 76px;
}

/* Explore action: still quiet, but now clearly intentional and readable. */
.service-expand {
  gap: 11px;
  margin-top: 21px;
  padding: 5px 0;
  color: #c2c6ce;
  font-size: 11.7px;
  font-weight: 650;
  letter-spacing: .006em;
  transition:
    color .25s ease,
    transform .38s cubic-bezier(.18,.72,.18,1);
}

.service-expand i {
  width: 23px;
  height: 23px;
  border-color: rgba(171,145,255,.28);
  background: rgba(130,90,244,.035);
  box-shadow: 0 0 0 rgba(132,91,245,0);
}

.service-expand:hover {
  color: #eeeafd;
  transform: translate3d(2px, 0, 0);
}

.service-expand:hover i {
  border-color: rgba(190,168,255,.55);
  background: rgba(130,90,244,.09);
  box-shadow: 0 0 18px rgba(132,91,245,.08);
}

/* Make the selected service unmistakable without turning it into a loud card. */
.service-capability {
  position: relative;
}

.service-capability::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: -3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  opacity: 0;
  background: #b39cff;
  box-shadow:
    0 0 0 3px rgba(139,97,255,.045),
    0 0 18px rgba(139,97,255,.22);
  transform: translate(-50%, 4px) scale(.55);
  transition:
    opacity .3s ease,
    transform .48s cubic-bezier(.16,.78,.18,1);
}

.service-capability-line {
  transition:
    width .5s cubic-bezier(.18,.78,.18,1),
    background .35s ease,
    opacity .35s ease;
}

.service-capability-number {
  transition:
    color .32s ease,
    text-shadow .32s ease;
}

.service-capability.is-expanded {
  background:
    radial-gradient(circle at 50% 112%, rgba(142,100,255,.075), transparent 33%),
    radial-gradient(circle at 16% 10%, rgba(138,92,255,.06), transparent 44%);
  box-shadow: inset 0 -1px 0 rgba(170,142,255,.15);
}

.service-capability.is-expanded::after {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
  animation: serviceCardNodePulse 2.6s ease-in-out infinite;
}

.service-capability.is-expanded .service-capability-number {
  color: #c1afff;
  text-shadow: 0 0 18px rgba(146,104,255,.16);
}

.service-capability.is-expanded .service-capability-line {
  width: 64px;
  opacity: 1;
  background: linear-gradient(90deg, rgba(184,159,255,.74), rgba(161,130,255,.08));
}

.service-capability.is-expanded .service-expand {
  color: #e2dcf7;
}

/* The detail row unfolds rather than popping into place. */
.service-detail-rail {
  transition:
    grid-template-rows .56s cubic-bezier(.16,.78,.18,1),
    opacity .38s ease,
    border-color .44s ease;
}

.service-detail-clip {
  perspective: 1000px;
}

.service-detail-surface {
  opacity: 0;
  filter: blur(2px);
  transform: translate3d(0, -10px, 0) scale(.997);
  transform-origin: 50% 0%;
  transition:
    opacity .46s ease .06s,
    transform .62s cubic-bezier(.16,.78,.18,1) .03s,
    filter .48s ease .03s;
}

.service-detail-rail.is-open .service-detail-surface {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

/* The origin is a real signal node now: card -> node -> detail rail. */
.service-detail-origin {
  z-index: 3;
  top: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  opacity: 0;
  background: #b59eff;
  box-shadow:
    0 0 0 4px rgba(142,99,255,.045),
    0 0 20px rgba(142,99,255,.24);
  transform: translate(-50%, -50%) scale(.55);
  transition:
    left .52s cubic-bezier(.18,.78,.18,1),
    opacity .28s ease,
    transform .5s cubic-bezier(.16,.8,.18,1);
}

.service-detail-origin::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(170px, 18vw);
  height: 1px;
  opacity: .75;
  background: linear-gradient(90deg, transparent, rgba(179,154,255,.72), transparent);
  box-shadow: 0 0 18px rgba(137,94,255,.12);
  transform: translate(-50%, -50%) scaleX(.08);
  transition: transform .62s cubic-bezier(.16,.78,.18,1) .08s;
}

.service-detail-origin::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 1px;
  height: 17px;
  opacity: .72;
  background: linear-gradient(180deg, rgba(181,158,255,.12), rgba(181,158,255,.76));
  transform: translateX(-50%) scaleY(.08);
  transform-origin: 50% 100%;
  transition: transform .46s cubic-bezier(.16,.78,.18,1) .03s;
}

.service-detail-rail.is-open .service-detail-origin {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  animation: serviceRailNodePulse 2.8s ease-in-out .55s infinite;
}

.service-detail-rail.is-open .service-detail-origin::before {
  transform: translate(-50%, -50%) scaleX(1);
}

.service-detail-rail.is-open .service-detail-origin::after {
  transform: translateX(-50%) scaleY(1);
}

/* One restrained signal wash passes through the opened rail. */
.service-detail-surface::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background:
    linear-gradient(
      105deg,
      transparent 22%,
      rgba(159,126,255,.035) 43%,
      rgba(205,190,255,.055) 50%,
      rgba(159,126,255,.02) 57%,
      transparent 76%
    );
  transform: translate3d(-24%,0,0);
}

.service-detail-rail.is-open .service-detail-surface::after {
  animation: serviceRailSignalSweep .9s cubic-bezier(.16,.78,.18,1) .08s both;
}

.service-detail-content {
  position: relative;
  z-index: 1;
}

.service-detail-rail.is-switching .service-detail-content {
  opacity: .08;
  transform: translate3d(0,5px,0);
}

@keyframes serviceCardNodePulse {
  0%, 100% {
    box-shadow:
      0 0 0 3px rgba(139,97,255,.04),
      0 0 16px rgba(139,97,255,.17);
  }
  50% {
    box-shadow:
      0 0 0 5px rgba(139,97,255,.065),
      0 0 24px rgba(139,97,255,.27);
  }
}

@keyframes serviceRailNodePulse {
  0%, 100% {
    box-shadow:
      0 0 0 4px rgba(142,99,255,.04),
      0 0 18px rgba(142,99,255,.18);
  }
  50% {
    box-shadow:
      0 0 0 6px rgba(142,99,255,.065),
      0 0 26px rgba(142,99,255,.28);
  }
}

@keyframes serviceRailSignalSweep {
  0% {
    opacity: 0;
    transform: translate3d(-28%,0,0);
  }
  22% {
    opacity: .75;
  }
  100% {
    opacity: 0;
    transform: translate3d(26%,0,0);
  }
}

/* Contact labels: a touch easier to scan without competing with the fields. */
.contact-field > span {
  color: #c2c7cf;
  font-size: 11px;
  font-weight: 600;
}

@media (max-width: 980px) {
  .partnership-diagnostic {
    margin-bottom: 24px;
  }

  .service-suite {
    margin-top: 64px;
  }

  .service-expand {
    font-size: 11.5px;
  }
}

@media (max-width: 640px) {
  .partnership-diagnostic {
    margin: 0 0 20px;
  }

  .partnership-diagnostic .fit-diagnostic-intro {
    padding: 27px 22px;
  }

  .partnership-diagnostic .fit-diagnostic-item {
    min-height: 0;
  }

  .service-suite {
    margin-top: 50px;
  }

  .service-expand {
    margin-top: 18px;
    font-size: 11.5px;
  }

  /* On mobile the origin represents the selected service but remains centered
     because the detail rail spans a single column. */
  .service-detail-origin {
    left: 50% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-capability.is-expanded::after,
  .service-detail-rail.is-open .service-detail-origin,
  .service-detail-rail.is-open .service-detail-surface::after {
    animation: none !important;
  }

  .service-detail-surface,
  .service-detail-origin,
  .service-detail-origin::before,
  .service-detail-origin::after {
    transition: none !important;
  }
}


/* V65 — SERVICE SELECTED STATE / PARTNERSHIP ALIGNMENT */

/* Partnership is a real chapter in normal page flow. */
.value-suite {
  margin-top: 112px;
}

/* The diagnostic is the first visible Partnership panel and now shares the
   same horizontal geometry as the ISO panel below it. */
.partnership-diagnostic {
  margin: 4px clamp(18px, 1.5vw, 32px) 30px;
}

/* Partnership anchor now targets the actual diagnostic surface. */
#partnership {
  scroll-margin-top: 142px;
}

/* Selected service: unmistakable, but still restrained. */
.service-capability {
  transition:
    background .62s cubic-bezier(.18,.72,.18,1),
    box-shadow .62s cubic-bezier(.18,.72,.18,1);
}

.service-capability.is-expanded {
  background:
    radial-gradient(circle at 50% 108%, rgba(143,101,255,.11), transparent 31%),
    radial-gradient(circle at 16% 10%, rgba(138,92,255,.07), transparent 45%),
    rgba(255,255,255,.003);
  box-shadow:
    inset 0 0 0 1px rgba(174,147,255,.18),
    inset 0 -30px 70px rgba(118,79,236,.035),
    0 0 28px rgba(102,70,204,.025);
}

.service-capability.is-expanded::before {
  opacity: 1;
  background:
    radial-gradient(circle at 50% 104%, rgba(147,106,255,.10), transparent 31%),
    radial-gradient(circle at 14% 12%, rgba(138,92,255,.065), transparent 43%);
}

.service-capability.is-expanded h3 {
  color: #faf9ff;
  text-shadow: 0 0 18px rgba(154,121,255,.07);
}

/* Explore is now a small control, not a nearly invisible text link. */
.service-expand {
  min-height: 34px;
  gap: 10px;
  padding: 6px 8px 6px 12px;
  border: 1px solid rgba(170,145,255,.18);
  border-radius: 7px;
  color: #d0d3da;
  background:
    linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.006));
  font-size: 12px;
  font-weight: 650;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.012);
  transition:
    color .32s ease,
    border-color .42s ease,
    background .42s ease,
    box-shadow .52s cubic-bezier(.18,.72,.18,1),
    transform .48s cubic-bezier(.18,.72,.18,1);
}

.service-expand i {
  width: 21px;
  height: 21px;
  border-color: rgba(183,159,255,.32);
}

.service-expand:hover {
  color: #f0ecff;
  border-color: rgba(190,166,255,.38);
  background: rgba(135,94,255,.055);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.018),
    0 8px 24px rgba(78,50,161,.045);
  transform: translate3d(1px, -1px, 0);
}

.service-capability.is-expanded .service-expand {
  color: #eee9ff;
  border-color: rgba(190,165,255,.46);
  background:
    linear-gradient(180deg, rgba(137,94,255,.115), rgba(111,76,214,.055));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 0 24px rgba(125,84,237,.075);
}

/* During a service change, the grid subtly settles instead of visually snapping. */
.service-capability-grid.is-changing-service .service-capability:not(.is-expanded) {
  transition-duration: .8s;
}

/* Slower, more inertial detail reveal. */
.service-detail-rail {
  transition:
    grid-template-rows .82s cubic-bezier(.14,.70,.18,1),
    opacity .50s ease,
    border-color .58s ease;
}

.service-detail-surface {
  transform: translate3d(0, -13px, 0) scale(.996);
  transition:
    opacity .62s ease .09s,
    transform .88s cubic-bezier(.14,.72,.18,1) .05s,
    filter .62s ease .05s;
}

.service-detail-origin {
  transition:
    left .76s cubic-bezier(.16,.72,.18,1),
    opacity .42s ease,
    transform .68s cubic-bezier(.14,.74,.18,1);
}

.service-detail-origin::before {
  transition: transform .84s cubic-bezier(.14,.72,.18,1) .12s;
}

.service-detail-origin::after {
  transition: transform .66s cubic-bezier(.14,.72,.18,1) .06s;
}

.service-detail-rail.is-open .service-detail-surface::after {
  animation-duration: 1.28s;
  animation-delay: .14s;
}

/* Extended copy: clearer secondary hierarchy without turning everything white. */
.service-detail-head > p {
  color: #adb4be;
  font-size: 12.2px;
  line-height: 1.72;
}

.service-detail-columns span {
  color: #a8aeba;
  font-size: 9.9px;
  letter-spacing: .045em;
}

.service-detail-columns strong {
  color: #e8eaf0;
  font-size: 12.45px;
  line-height: 1.48;
}

.service-detail-columns p {
  color: #adb4be;
  font-size: 11.9px;
  line-height: 1.66;
}

/* The diagnostic panel and ISO panel should read as one aligned family. */
.partnership-diagnostic .fit-diagnostic-panel {
  width: 100%;
}

/* Contact labels remain slightly stronger. */
.contact-field > span {
  font-size: 11.15px;
}

@media (max-width: 980px) {
  .value-suite {
    margin-top: 88px;
  }

  .partnership-diagnostic {
    margin: 4px 0 26px;
  }

  #partnership {
    scroll-margin-top: 118px;
  }

  .service-expand {
    min-height: 33px;
    font-size: 11.8px;
  }
}

@media (max-width: 640px) {
  .value-suite {
    margin-top: 68px;
  }

  .partnership-diagnostic {
    margin: 0 0 22px;
  }

  #partnership {
    scroll-margin-top: 96px;
  }

  .service-expand {
    min-height: 34px;
    padding-inline: 11px 8px;
  }

  .service-detail-head > p,
  .service-detail-columns p {
    font-size: 11.75px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-capability,
  .service-capability-grid.is-changing-service .service-capability {
    transition: none !important;
  }
}


/* V66 — FLUID SERVICE FLOW / CONDENSED FIT DIAGNOSTIC */

.experience-strip .trust-row {
  min-height: 76px;
}

.experience-strip .trust-label {
  font-size: 10.7px;
}

.experience-strip .trust-items span {
  font-size: 11.15px;
}

.experience-strip {
  margin-top: -10px;
}

/* Recognition strip between Experience and Services. */
.compact-diagnostic {
  margin: 30px auto 0;
}

.compact-diagnostic .fit-diagnostic-panel {
  grid-template-columns: minmax(230px, .62fr) minmax(0, 1.38fr);
  border-radius: 9px;
  background:
    radial-gradient(circle at 8% 18%, rgba(125,83,246,.055), transparent 30%),
    linear-gradient(112deg, rgba(14,18,27,.90), rgba(9,13,20,.74));
}

.compact-diagnostic .fit-diagnostic-intro {
  padding: 22px 28px;
}

.compact-diagnostic .fit-diagnostic-intro .eyebrow {
  margin-bottom: 7px;
}

.compact-diagnostic .fit-diagnostic-intro h2 {
  max-width: 280px;
  font-size: clamp(18px, 1.3vw, 22px);
  line-height: 1.26;
}

.compact-diagnostic .fit-diagnostic-intro > p:not(.eyebrow) {
  max-width: 330px;
  margin-top: 9px;
  color: #a6adb7;
  font-size: 11.25px;
  line-height: 1.58;
}

.compact-diagnostic .fit-diagnostic-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.compact-diagnostic .fit-diagnostic-item {
  min-height: 62px;
  grid-template-columns: 16px 1fr;
  gap: 9px;
  padding: 12px 15px;
}

.compact-diagnostic .fit-diagnostic-item:nth-child(odd) {
  border-left: 1px solid var(--line);
}

.compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1) {
  border-left: 0;
}

.compact-diagnostic .fit-diagnostic-item:nth-child(1),
.compact-diagnostic .fit-diagnostic-item:nth-child(2),
.compact-diagnostic .fit-diagnostic-item:nth-child(3) {
  border-bottom: 1px solid var(--line);
}

.compact-diagnostic .fit-diagnostic-item:nth-child(4),
.compact-diagnostic .fit-diagnostic-item:nth-child(5),
.compact-diagnostic .fit-diagnostic-item:nth-child(6) {
  border-bottom: 0;
}

.compact-diagnostic .fit-diagnostic-item > span {
  width: 13px;
  height: 13px;
}

.compact-diagnostic .fit-diagnostic-item > span::before {
  left: 3px;
  top: 5px;
}

.compact-diagnostic .fit-diagnostic-item p {
  color: #bec4cc;
  font-size: 11.25px;
  line-height: 1.48;
}

.service-suite {
  margin-top: 56px;
}

/* Partnership begins on ISO again. */
#partnership {
  scroll-margin-top: 138px;
}

.value-suite {
  margin-top: 104px;
}

/* Faster response, slower geometry: no dead air on click. */
.service-detail-rail {
  transition:
    grid-template-rows .66s cubic-bezier(.13,.76,.18,1),
    opacity .34s ease,
    border-color .44s ease;
}

.service-detail-surface {
  transform: translate3d(0, -8px, 0) scale(.998);
  transition:
    opacity .46s ease .02s,
    transform .72s cubic-bezier(.13,.76,.18,1),
    filter .46s ease;
}

/* Curved signal path links the selected service pair to the opened detail. */
.service-detail-connector {
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 100%;
  height: 34px;
  overflow: visible;
  pointer-events: none;
}

.service-detail-connector path {
  fill: none;
  stroke: rgba(177,151,255,.56);
  stroke-width: .16;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  opacity: 0;
  filter: drop-shadow(0 0 4px rgba(139,96,255,.12));
}

.service-detail-rail.is-left .service-detail-connector-right,
.service-detail-rail.is-right .service-detail-connector-left {
  opacity: 0 !important;
}

.service-detail-rail.is-open .service-detail-connector-left,
.service-detail-rail.is-open .service-detail-connector-right {
  animation: serviceBezierDraw .58s cubic-bezier(.14,.76,.18,1) .02s forwards;
}

.service-detail-origin {
  transition:
    left .58s cubic-bezier(.15,.76,.18,1),
    opacity .26s ease,
    transform .48s cubic-bezier(.14,.76,.18,1);
}

.service-detail-origin::before {
  transition: transform .62s cubic-bezier(.14,.76,.18,1) .04s;
}

.service-detail-origin::after {
  height: 13px;
  transition: transform .46s cubic-bezier(.14,.76,.18,1);
}

.service-detail-rail.is-switching .service-detail-content,
.service-detail-rail.is-refreshing .service-detail-content {
  opacity: 0;
  transform: translate3d(0, 4px, 0);
}

.service-detail-content {
  transition:
    opacity .40s ease,
    transform .52s cubic-bezier(.16,.74,.18,1);
}

/* Break up the table feeling. */
.service-detail-columns {
  gap: 14px;
  padding-top: 22px;
}

.service-detail-columns > div,
.service-detail-columns > div:first-child,
.service-detail-columns > div:last-child {
  min-height: 0;
  padding: 15px 17px 16px;
  border: 1px solid rgba(255,255,255,.065);
  border-radius: 8px;
  background:
    radial-gradient(circle at 10% 5%, rgba(133,91,247,.035), transparent 42%),
    rgba(255,255,255,.008);
  opacity: 0;
  transform: translate3d(0, 7px, 0);
  transition:
    opacity .44s ease,
    transform .58s cubic-bezier(.15,.74,.18,1),
    border-color .44s ease,
    background .44s ease;
}

.service-detail-columns > div:nth-child(2) {
  transform: translate3d(0, 11px, 0);
}

.service-detail-columns > div:nth-child(3) {
  transform: translate3d(0, 15px, 0);
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(1) {
  transition-delay: .07s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(2) {
  transition-delay: .12s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(3) {
  transition-delay: .17s;
}

.service-detail-columns > div:hover {
  border-color: rgba(169,142,255,.11);
  background:
    radial-gradient(circle at 12% 5%, rgba(133,91,247,.052), transparent 44%),
    rgba(255,255,255,.011);
}

@keyframes serviceBezierDraw {
  0% {
    stroke-dashoffset: 120;
    opacity: 0;
  }
  18% {
    opacity: .8;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: .72;
  }
}

@media (max-width: 980px) {
  .experience-strip {
    margin-top: -4px;
  }

  .experience-strip .trust-row {
    min-height: 0;
    padding-block: 14px;
  }

  .compact-diagnostic {
    margin-top: 24px;
  }

  .compact-diagnostic .fit-diagnostic-panel {
    grid-template-columns: 1fr;
  }

  .compact-diagnostic .fit-diagnostic-intro {
    padding: 20px 26px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .compact-diagnostic .fit-diagnostic-item,
  .compact-diagnostic .fit-diagnostic-item:nth-child(odd),
  .compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1) {
    border-left: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .compact-diagnostic .fit-diagnostic-item:nth-child(odd) {
    border-left: 0;
  }

  .compact-diagnostic .fit-diagnostic-item:nth-child(5),
  .compact-diagnostic .fit-diagnostic-item:nth-child(6) {
    border-bottom: 0;
  }

  .service-suite {
    margin-top: 48px;
  }

  #partnership {
    scroll-margin-top: 116px;
  }

  .value-suite {
    margin-top: 82px;
  }
}

@media (max-width: 640px) {
  .experience-strip .trust-row {
    padding-block: 12px;
  }

  .compact-diagnostic {
    margin-top: 20px;
  }

  .compact-diagnostic .fit-diagnostic-intro {
    padding: 20px 22px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: 1fr;
  }

  .compact-diagnostic .fit-diagnostic-item,
  .compact-diagnostic .fit-diagnostic-item:nth-child(odd),
  .compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1),
  .compact-diagnostic .fit-diagnostic-item:nth-child(5),
  .compact-diagnostic .fit-diagnostic-item:nth-child(6) {
    min-height: 0;
    padding: 13px 22px;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .compact-diagnostic .fit-diagnostic-item:last-child {
    border-bottom: 0;
  }

  .service-suite {
    margin-top: 40px;
  }

  #partnership {
    scroll-margin-top: 96px;
  }

  .value-suite {
    margin-top: 64px;
  }

  .service-detail-connector {
    display: none;
  }

  .service-detail-columns {
    gap: 10px;
  }

  .service-detail-columns > div,
  .service-detail-columns > div:first-child,
  .service-detail-columns > div:last-child {
    padding: 14px 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-detail-connector path,
  .service-detail-columns > div {
    animation: none !important;
    transition: none !important;
  }
}


/* V67 — DETACHED SERVICE FLOW / VIEWPORT FIT */

/* WHO WE WORK WITH: keep the complete story tighter so the diagnostic can
   live in the same visual chapter without turning the page into a scroll wall. */
.fit-section.scope-section {
  min-height: 60svh;
  margin-top: 0;
  padding-top: 64px;
  padding-bottom: 58px;
}

.fit-section .industry-card {
  min-height: 214px;
  padding-top: 21px;
  padding-bottom: 21px;
}

.fit-section .industry-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 7px;
}

.fit-section .industry-card h3 {
  margin-bottom: 6px;
  font-size: 15px;
}

.fit-section .industry-card p {
  font-size: 12.7px;
  line-height: 1.62;
}

/* Experience is context, not a full section. Pull it closer to Who we work with. */
.experience-strip {
  margin-top: -18px;
}

.experience-strip .trust-row {
  min-height: 58px;
}

.experience-strip .trust-label {
  font-size: 10.3px;
}

.experience-strip .trust-items span {
  font-size: 10.85px;
}

/* Human, compact self-recognition checklist. */
.compact-diagnostic {
  margin-top: 18px;
}

.compact-diagnostic .fit-diagnostic-panel {
  grid-template-columns: minmax(210px, .50fr) minmax(0, 1.50fr);
  border-radius: 8px;
}

.compact-diagnostic .fit-diagnostic-intro {
  padding: 18px 24px;
}

.compact-diagnostic .fit-diagnostic-intro h2 {
  max-width: 260px;
  font-size: clamp(17px, 1.2vw, 20px);
}

.compact-diagnostic .fit-diagnostic-intro > p:not(.eyebrow) {
  max-width: 300px;
  margin-top: 7px;
  font-size: 10.85px;
  line-height: 1.5;
}

.compact-diagnostic .fit-diagnostic-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.compact-diagnostic .fit-diagnostic-item {
  min-height: 56px;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  padding: 10px 14px;
}

.compact-diagnostic .fit-diagnostic-item > span {
  width: 18px;
  height: 18px;
  border-color: rgba(181,154,255,.42);
  background: rgba(132,91,245,.022);
  box-shadow: 0 0 16px rgba(133,91,247,.04);
}

.compact-diagnostic .fit-diagnostic-item > span::before {
  left: 5px;
  top: 7px;
  width: 7px;
  height: 3px;
  border-left-width: 1.2px;
  border-bottom-width: 1.2px;
}

.compact-diagnostic .fit-diagnostic-item p {
  color: #c8cdd4;
  font-size: 11.35px;
  line-height: 1.42;
  font-weight: 520;
}

/* Recreate a real chapter break before Services. The anchor clearance is
   smaller than the blank gap, so the checklist never peeks through the header. */
.service-suite {
  margin-top: 126px;
}

#services {
  scroll-margin-top: 112px;
}

/* ---- Detached service opening ---- */

.service-capability {
  transform: translate3d(0,0,0);
  transform-origin: 50% 50%;
  transition:
    transform .74s cubic-bezier(.14,.72,.18,1),
    border-radius .58s ease,
    background .62s cubic-bezier(.18,.72,.18,1),
    box-shadow .62s cubic-bezier(.18,.72,.18,1);
}

/* The selected service gently leaves the rigid table grid. */
.service-capability.is-expanded {
  z-index: 7;
  border-radius: 10px;
}

.service-capability.is-expanded[data-detail-side="left"] {
  transform: translate3d(-10px, -5px, 0);
}

.service-capability.is-expanded[data-detail-side="right"] {
  transform: translate3d(10px, -5px, 0);
}

/* The paired card yields a few pixels so the opening feels intentional. */
#serviceExplorer[data-open-row="top"][data-open-side="left"] [data-service-card="development"],
#serviceExplorer[data-open-row="bottom"][data-open-side="left"] [data-service-card="support"] {
  transform: translate3d(4px, 0, 0);
}

#serviceExplorer[data-open-row="top"][data-open-side="right"] [data-service-card="consulting"],
#serviceExplorer[data-open-row="bottom"][data-open-side="right"] [data-service-card="data"] {
  transform: translate3d(-4px, 0, 0);
}

/* Give the detail room to detach from the grid instead of reading as row 3. */
.service-detail-clip {
  position: relative;
  overflow: hidden;
  padding-top: 0;
  transition: padding-top .78s cubic-bezier(.14,.72,.18,1);
}

.service-detail-rail.is-open .service-detail-clip {
  padding-top: 24px;
}

.service-detail-surface {
  --detail-shift-x: 0px;
  width: calc(100% - 32px);
  margin-inline: 16px;
  border: 1px solid rgba(174,147,255,.105);
  border-radius: 11px;
  box-shadow:
    0 24px 52px rgba(0,0,0,.09),
    inset 0 1px 0 rgba(255,255,255,.012);
  transform: translate3d(var(--detail-shift-x), -7px, 0) scale(.997);
  transition:
    opacity .52s ease .02s,
    transform .88s cubic-bezier(.13,.72,.18,1),
    filter .52s ease,
    border-color .58s ease,
    box-shadow .72s cubic-bezier(.16,.72,.18,1);
}

.service-detail-rail.is-left .service-detail-surface {
  --detail-shift-x: -12px;
}

.service-detail-rail.is-right .service-detail-surface {
  --detail-shift-x: 12px;
}

.service-detail-rail.is-open .service-detail-surface {
  transform: translate3d(var(--detail-shift-x), 0, 0) scale(1);
  border-color: rgba(180,154,255,.15);
  box-shadow:
    0 28px 62px rgba(0,0,0,.11),
    0 0 34px rgba(102,69,199,.025),
    inset 0 1px 0 rgba(255,255,255,.016);
}

/* The connector now occupies the actual gap between card and detached panel. */
.service-detail-connector {
  position: absolute;
  z-index: 4;
  left: 0;
  top: 0;
  width: 100%;
  height: 58px;
  overflow: visible;
  pointer-events: none;
}

.service-detail-connector path {
  stroke: rgba(185,160,255,.60);
  stroke-width: .14;
  stroke-dasharray: 145;
  stroke-dashoffset: 145;
}

.service-detail-rail.is-open .service-detail-connector-left,
.service-detail-rail.is-open .service-detail-connector-right {
  animation: serviceDetachedBezierDraw .84s cubic-bezier(.13,.72,.18,1) .02s forwards;
}

/* The origin node sits where the curved line arrives. */
.service-detail-origin {
  top: 5px;
}

.service-detail-rail.is-left .service-detail-origin {
  left: 14%;
}

.service-detail-rail.is-right .service-detail-origin {
  left: 64%;
}

/* Slightly slower development, but zero dead delay before something responds. */
.service-detail-rail {
  transition:
    grid-template-rows .82s cubic-bezier(.13,.72,.18,1),
    opacity .40s ease,
    border-color .48s ease;
}

.service-detail-content {
  transition:
    opacity .46s ease,
    transform .60s cubic-bezier(.14,.72,.18,1);
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(1) {
  transition-delay: .10s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(2) {
  transition-delay: .17s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(3) {
  transition-delay: .24s;
}

@keyframes serviceDetachedBezierDraw {
  0% {
    stroke-dashoffset: 145;
    opacity: 0;
  }
  14% {
    opacity: .78;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: .68;
  }
}

@media (max-width: 1180px) {
  .fit-section.scope-section {
    min-height: 0;
    padding-top: 62px;
    padding-bottom: 52px;
  }

  .fit-section .industry-card {
    min-height: 205px;
  }

  .service-suite {
    margin-top: 116px;
  }

  #services {
    scroll-margin-top: 106px;
  }
}

@media (max-width: 980px) {
  .experience-strip {
    margin-top: -8px;
  }

  .experience-strip .trust-row {
    padding-block: 11px;
  }

  .compact-diagnostic {
    margin-top: 16px;
  }

  .compact-diagnostic .fit-diagnostic-panel {
    grid-template-columns: 1fr;
  }

  .compact-diagnostic .fit-diagnostic-intro {
    padding: 17px 24px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .service-suite {
    margin-top: 94px;
  }

  #services {
    scroll-margin-top: 88px;
  }

  .service-capability.is-expanded[data-detail-side="left"],
  .service-capability.is-expanded[data-detail-side="right"] {
    transform: translate3d(0, -4px, 0);
  }

  #serviceExplorer[data-open-row][data-open-side] .service-capability:not(.is-expanded) {
    transform: translate3d(0,0,0);
  }

  .service-detail-rail.is-left .service-detail-surface,
  .service-detail-rail.is-right .service-detail-surface {
    --detail-shift-x: 0px;
  }

  .service-detail-rail.is-left .service-detail-origin,
  .service-detail-rail.is-right .service-detail-origin {
    left: 50%;
  }
}

@media (max-width: 640px) {
  .fit-section.scope-section {
    padding-top: 50px;
    padding-bottom: 40px;
  }

  .experience-strip {
    margin-top: -2px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: 1fr;
  }

  .compact-diagnostic .fit-diagnostic-item {
    grid-template-columns: 23px 1fr;
    padding: 12px 18px;
  }

  .service-suite {
    margin-top: 72px;
  }

  #services {
    scroll-margin-top: 70px;
  }

  .service-detail-rail.is-open .service-detail-clip {
    padding-top: 14px;
  }

  .service-detail-surface {
    width: calc(100% - 16px);
    margin-inline: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-capability,
  .service-detail-clip,
  .service-detail-surface {
    transition: none !important;
  }

  .service-capability.is-expanded,
  .service-capability.is-expanded[data-detail-side="left"],
  .service-capability.is-expanded[data-detail-side="right"] {
    transform: none !important;
  }
}


/* V68 — FLOATING SERVICES / LIVE PARENT-CHILD SIGNAL */

/* The capability area is no longer a rigid table. The four cards keep their
   logical 2x2 structure, but each surface has its own air and depth. */
#serviceExplorer {
  position: relative;
  padding: 12px 12px 18px;
  background:
    radial-gradient(ellipse at 18% 24%, rgba(121,82,241,.022), transparent 31%),
    radial-gradient(ellipse at 82% 72%, rgba(99,70,203,.018), transparent 30%);
}

#serviceExplorer .service-capability {
  --service-mouse-x: 0px;
  --service-mouse-y: 0px;
  --service-open-x: 0px;
  --service-open-y: 0px;
  --service-pair-x: 0px;
  min-height: 0;
  margin: 8px 9px;
  border: 1px solid rgba(255,255,255,.072);
  border-radius: 10px;
  background:
    radial-gradient(circle at 13% 8%, rgba(133,91,247,.032), transparent 39%),
    linear-gradient(145deg, rgba(18,22,31,.84), rgba(10,14,21,.72));
  box-shadow:
    0 16px 34px rgba(0,0,0,.055),
    inset 0 1px 0 rgba(255,255,255,.012);
  will-change: transform;
}

/* Override the old table dividers regardless of nth-child position now that
   the detail rails also participate in the grid. */
#serviceExplorer .service-capability[data-service-card] {
  border: 1px solid rgba(255,255,255,.072);
}

#serviceExplorer .service-capability[data-service-card="consulting"] {
  animation: serviceCardFloatA 9.6s ease-in-out -1.1s infinite;
}

#serviceExplorer .service-capability[data-service-card="development"] {
  animation: serviceCardFloatB 10.8s ease-in-out -4.3s infinite;
}

#serviceExplorer .service-capability[data-service-card="data"] {
  animation: serviceCardFloatC 11.4s ease-in-out -2.6s infinite;
}

#serviceExplorer .service-capability[data-service-card="support"] {
  animation: serviceCardFloatD 10.1s ease-in-out -6.2s infinite;
}

#serviceExplorer .service-capability:hover {
  border-color: rgba(178,151,255,.115);
  box-shadow:
    0 20px 42px rgba(0,0,0,.07),
    0 0 28px rgba(104,71,207,.018),
    inset 0 1px 0 rgba(255,255,255,.018);
}

/* Selected parent clearly leaves the field. */
#serviceExplorer .service-capability.is-expanded {
  --service-open-y: -8px;
  z-index: 8;
  border-color: rgba(188,164,255,.36);
  background:
    radial-gradient(circle at 50% 112%, rgba(145,103,255,.135), transparent 32%),
    radial-gradient(circle at 14% 8%, rgba(139,96,255,.085), transparent 43%),
    linear-gradient(145deg, rgba(21,24,36,.96), rgba(11,15,24,.91));
  box-shadow:
    0 28px 64px rgba(0,0,0,.14),
    0 0 42px rgba(112,76,220,.055),
    inset 0 0 0 1px rgba(174,147,255,.10),
    inset 0 -34px 76px rgba(119,79,238,.045);
}

#serviceExplorer .service-capability.is-expanded[data-detail-side="left"] {
  --service-open-x: -15px;
}

#serviceExplorer .service-capability.is-expanded[data-detail-side="right"] {
  --service-open-x: 15px;
}

/* The neighbouring card yields instead of remaining locked to a table cell. */
#serviceExplorer[data-open-row="top"][data-open-side="left"] [data-service-card="development"],
#serviceExplorer[data-open-row="bottom"][data-open-side="left"] [data-service-card="support"] {
  --service-pair-x: 6px;
}

#serviceExplorer[data-open-row="top"][data-open-side="right"] [data-service-card="consulting"],
#serviceExplorer[data-open-row="bottom"][data-open-side="right"] [data-service-card="data"] {
  --service-pair-x: -6px;
}

/* Parent signal node: one of the two fixed points of the live curve. */
#serviceExplorer .service-capability.is-expanded::after {
  bottom: -5px;
  width: 8px;
  height: 8px;
  border: 1px solid rgba(222,210,255,.58);
  background: #bba7ff;
  box-shadow:
    0 0 0 4px rgba(145,102,255,.055),
    0 0 24px rgba(145,102,255,.34);
}

/* Detached child gets a stronger identity too. */
.service-detail-rail.is-open {
  overflow: visible;
}

.service-detail-rail.is-open .service-detail-clip {
  padding-top: 30px;
}

.service-detail-surface {
  width: calc(100% - 52px);
  margin-inline: 26px;
  border-color: rgba(179,153,255,.12);
  border-radius: 13px;
  background:
    radial-gradient(circle at var(--detail-origin, 25%) -5%, rgba(144,101,255,.105), transparent 28%),
    radial-gradient(circle at 88% 88%, rgba(98,69,196,.028), transparent 31%),
    linear-gradient(150deg, rgba(16,20,30,.965), rgba(9,13,20,.94));
}

.service-detail-rail.is-left .service-detail-surface,
.service-detail-rail.is-right .service-detail-surface {
  --detail-shift-x: -8px;
}

.service-detail-rail.is-open .service-detail-surface {
  border-color: rgba(190,165,255,.23);
  box-shadow:
    0 31px 72px rgba(0,0,0,.15),
    0 0 46px rgba(105,71,211,.045),
    inset 0 1px 0 rgba(255,255,255,.02),
    inset 0 0 0 1px rgba(164,136,245,.035);
}

.service-detail-rail.is-open .service-detail-surface::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    linear-gradient(105deg, rgba(172,145,255,.035), transparent 18% 82%, rgba(172,145,255,.018));
}

/* Child signal node: second fixed point of the live curve. */
.service-detail-origin,
.service-detail-rail.is-left .service-detail-origin,
.service-detail-rail.is-right .service-detail-origin {
  top: 4px;
  width: 8px;
  height: 8px;
  border: 1px solid rgba(222,210,255,.54);
  background: #b8a3ff;
  box-shadow:
    0 0 0 4px rgba(142,99,255,.05),
    0 0 22px rgba(142,99,255,.30);
}

/* The SVG reaches upward into the gap, so the connection visibly begins at
   the lower parent node instead of materialising inside the child panel. */
.service-detail-connector {
  top: -16px;
  height: 70px;
  z-index: 6;
  overflow: visible;
}

.service-detail-connector path {
  vector-effect: non-scaling-stroke;
  fill: none;
  stroke-linecap: round;
}

.service-detail-connector-base {
  stroke: rgba(184,159,255,.58);
  stroke-width: .9;
  stroke-dasharray: 170;
  stroke-dashoffset: 170;
  opacity: 0;
  filter: drop-shadow(0 0 5px rgba(138,95,255,.15));
}

.service-detail-connector-pulse {
  stroke: rgba(224,214,255,.92);
  stroke-width: 1.2;
  stroke-dasharray: 2 15;
  stroke-dashoffset: 0;
  opacity: 0;
  filter:
    drop-shadow(0 0 3px rgba(193,171,255,.38))
    drop-shadow(0 0 8px rgba(138,95,255,.18));
}

.service-detail-rail.is-left .service-detail-connector-right,
.service-detail-rail.is-right .service-detail-connector-left {
  display: none;
}

.service-detail-rail.is-open .service-detail-connector-base {
  animation: serviceLiveCurveDraw 1.02s cubic-bezier(.13,.72,.18,1) .01s forwards;
}

.service-detail-rail.is-open .service-detail-connector-pulse {
  animation:
    serviceLiveCurvePulseIn .38s ease .24s forwards,
    serviceLiveCurveTravel 3.8s linear .24s infinite;
}

/* A little more time to develop, with immediate state feedback on the parent. */
.service-detail-rail {
  transition:
    grid-template-rows .96s cubic-bezier(.12,.70,.18,1),
    opacity .44s ease,
    border-color .54s ease;
}

.service-detail-surface {
  transition:
    opacity .58s ease .02s,
    transform 1.02s cubic-bezier(.12,.70,.18,1),
    filter .58s ease,
    border-color .68s ease,
    box-shadow .84s cubic-bezier(.14,.70,.18,1);
}

.service-detail-content {
  transition:
    opacity .52s ease,
    transform .72s cubic-bezier(.13,.70,.18,1);
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(1) {
  transition-delay: .12s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(2) {
  transition-delay: .22s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(3) {
  transition-delay: .32s;
}

@keyframes serviceCardFloatA {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x)),
      calc(var(--service-mouse-y) + var(--service-open-y) + 0px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - 1px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 1.7px),
      0
    );
  }
}

@keyframes serviceCardFloatB {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x)),
      calc(var(--service-mouse-y) + var(--service-open-y) - .6px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + 1.2px),
      calc(var(--service-mouse-y) + var(--service-open-y) + 1.2px),
      0
    );
  }
}

@keyframes serviceCardFloatC {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + .7px),
      calc(var(--service-mouse-y) + var(--service-open-y) + .4px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - .8px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 1.5px),
      0
    );
  }
}

@keyframes serviceCardFloatD {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - .5px),
      calc(var(--service-mouse-y) + var(--service-open-y) + .7px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + .8px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 1.1px),
      0
    );
  }
}

@keyframes serviceLiveCurveDraw {
  0% {
    stroke-dashoffset: 170;
    opacity: 0;
  }
  14% {
    opacity: .72;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: .72;
  }
}

@keyframes serviceLiveCurvePulseIn {
  from { opacity: 0; }
  to { opacity: .92; }
}

@keyframes serviceLiveCurveTravel {
  from { stroke-dashoffset: 0; }
  to { stroke-dashoffset: -68; }
}

@media (max-width: 980px) {
  #serviceExplorer {
    padding-inline: 6px;
  }

  #serviceExplorer .service-capability {
    margin: 7px 6px;
  }

  #serviceExplorer .service-capability.is-expanded[data-detail-side="left"],
  #serviceExplorer .service-capability.is-expanded[data-detail-side="right"] {
    --service-open-x: 0px;
    --service-open-y: -6px;
  }

  #serviceExplorer[data-open-row][data-open-side] .service-capability:not(.is-expanded) {
    --service-pair-x: 0px;
  }

  .service-detail-surface {
    width: calc(100% - 28px);
    margin-inline: 14px;
  }

  .service-detail-rail.is-left .service-detail-surface,
  .service-detail-rail.is-right .service-detail-surface {
    --detail-shift-x: 0px;
  }

  .service-detail-origin,
  .service-detail-rail.is-left .service-detail-origin,
  .service-detail-rail.is-right .service-detail-origin {
    left: 50%;
  }
}

@media (max-width: 640px) {
  #serviceExplorer {
    padding-inline: 0;
  }

  #serviceExplorer .service-capability {
    margin: 7px 8px;
    animation: none;
  }

  .service-detail-connector {
    display: none;
  }

  .service-detail-surface {
    width: calc(100% - 16px);
    margin-inline: 8px;
  }
}

@media (pointer: coarse) {
  #serviceExplorer .service-capability[data-service-card] {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #serviceExplorer .service-capability[data-service-card] {
    animation: none !important;
  }

  .service-detail-connector-base,
  .service-detail-connector-pulse {
    animation: none !important;
  }

  .service-detail-rail.is-open .service-detail-connector-base {
    stroke-dashoffset: 0;
    opacity: .62;
  }

  .service-detail-rail.is-open .service-detail-connector-pulse {
    opacity: 0;
  }
}


/* V69 — MOTION / TYPOGRAPHY / SIGNAL POLISH */

/* Hero gets a little more authority without changing its composition. */
.hero h1 {
  max-width: 960px;
  font-size: clamp(58px, 4.95vw, 82px);
  line-height: 1.035;
  font-weight: 600;
  letter-spacing: -.056em;
}

.hero .eyebrow {
  margin-bottom: 21px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .049em;
  color: #b9a5ff;
  text-shadow:
    0 0 12px rgba(145,113,255,.10),
    0 0 26px rgba(132,94,244,.045);
}

/* Give the four parent cards a slightly more noticeable suspended motion. */
#serviceExplorer .service-capability[data-service-card="consulting"] {
  animation-duration: 8.8s;
}

#serviceExplorer .service-capability[data-service-card="development"] {
  animation-duration: 9.7s;
}

#serviceExplorer .service-capability[data-service-card="data"] {
  animation-duration: 10.2s;
}

#serviceExplorer .service-capability[data-service-card="support"] {
  animation-duration: 9.1s;
}

/* Selected parent/child relationship should read immediately. */
#serviceExplorer .service-capability.is-expanded {
  border-color: rgba(197,174,255,.46);
  box-shadow:
    0 30px 68px rgba(0,0,0,.15),
    0 0 48px rgba(118,80,231,.075),
    inset 0 0 0 1px rgba(187,160,255,.13),
    inset 0 -36px 82px rgba(119,79,238,.052);
}

.service-detail-rail.is-open .service-detail-surface {
  border-color: rgba(199,176,255,.31);
  box-shadow:
    0 32px 76px rgba(0,0,0,.16),
    0 0 54px rgba(111,75,220,.065),
    inset 0 1px 0 rgba(255,255,255,.025),
    inset 0 0 0 1px rgba(175,147,255,.05);
}

/* Parent -> child curve: visible enough to be understood at a glance,
   still much quieter than the hero signal. */
.service-detail-connector-base {
  stroke: rgba(199,179,255,.82);
  stroke-width: 1.15;
  filter:
    drop-shadow(0 0 4px rgba(195,174,255,.22))
    drop-shadow(0 0 9px rgba(139,96,255,.20));
}

.service-detail-connector-pulse {
  stroke: rgba(239,233,255,.98);
  stroke-width: 1.5;
  stroke-dasharray: 2.5 14;
  filter:
    drop-shadow(0 0 3px rgba(230,220,255,.55))
    drop-shadow(0 0 9px rgba(158,121,255,.30));
}

.service-detail-rail.is-open .service-detail-connector-base {
  animation-duration: .92s;
}

.service-detail-rail.is-open .service-detail-connector-pulse {
  animation:
    serviceLiveCurvePulseIn .42s ease-out .18s forwards,
    serviceLiveCurveTravel 4.4s linear .18s infinite;
}

/* Switches between services now have a real handover:
   immediate selected-state feedback -> soft fade-out -> new content eases in. */
.service-detail-rail.is-switching .service-detail-content,
.service-detail-rail.is-refreshing .service-detail-content {
  opacity: 0;
  transform: translate3d(0, 7px, 0) scale(.997);
  transition:
    opacity .16s ease-in,
    transform .18s ease-in;
}

.service-detail-content {
  transition:
    opacity .50s ease-out,
    transform .66s cubic-bezier(.16,.68,.18,1);
}

.service-detail-rail {
  transition:
    grid-template-rows .86s cubic-bezier(.16,.68,.18,1),
    opacity .42s ease-in-out,
    border-color .54s ease;
}

.service-detail-surface {
  transition:
    opacity .56s ease-out .015s,
    transform .94s cubic-bezier(.16,.68,.18,1),
    filter .56s ease,
    border-color .68s ease,
    box-shadow .82s cubic-bezier(.16,.68,.18,1);
}

/* Extended copy should be comfortably readable at normal desktop distance. */
.service-detail-head > p {
  color: #b9c0c9;
  font-size: 12.55px;
  line-height: 1.72;
}

.service-detail-columns span {
  color: #b1b7c1;
  font-size: 10.15px;
}

.service-detail-columns strong {
  color: #eceef3;
  font-size: 12.75px;
  line-height: 1.48;
}

.service-detail-columns p {
  color: #b9c0c9;
  font-size: 12.35px;
  line-height: 1.68;
}

/* Slightly stronger ambient drift amplitudes. Same slow rhythm, more visible. */
@keyframes serviceCardFloatA {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - .5px),
      calc(var(--service-mouse-y) + var(--service-open-y) + .4px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - 2.2px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 3.1px),
      0
    );
  }
}

@keyframes serviceCardFloatB {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + .7px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 1.0px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + 2.5px),
      calc(var(--service-mouse-y) + var(--service-open-y) + 2.5px),
      0
    );
  }
}

@keyframes serviceCardFloatC {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + 1.1px),
      calc(var(--service-mouse-y) + var(--service-open-y) + 1.0px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - 1.8px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 2.8px),
      0
    );
  }
}

@keyframes serviceCardFloatD {
  0%, 100% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) - 1.0px),
      calc(var(--service-mouse-y) + var(--service-open-y) + 1.4px),
      0
    );
  }
  50% {
    transform: translate3d(
      calc(var(--service-mouse-x) + var(--service-open-x) + var(--service-pair-x) + 2.0px),
      calc(var(--service-mouse-y) + var(--service-open-y) - 2.2px),
      0
    );
  }
}

@media (max-width: 980px) {
  .hero h1 {
    font-size: clamp(50px, 7.2vw, 69px);
  }

  .hero .eyebrow {
    font-size: 13px;
  }

  .service-detail-columns p {
    font-size: 12.1px;
  }
}

@media (max-width: 640px) {
  .hero h1 {
    font-size: clamp(44px, 12.4vw, 59px);
    font-weight: 600;
  }

  .hero .eyebrow {
    font-size: 12.2px;
  }

  .service-detail-head > p,
  .service-detail-columns p {
    font-size: 11.9px;
  }
}


/* V70 — FLUID FLOATING / CONTENT SIMPLIFICATION */

/* ------------------------------------------------------------
   Checklist: no left-panel repetition, no "card inside the page".
   One quiet prompt, six strong recognition points.
   ------------------------------------------------------------ */
.compact-diagnostic {
  margin-top: 20px;
}

.compact-diagnostic .fit-diagnostic-panel {
  display: block;
  padding: 17px 22px 14px;
  border: 0;
  border-top: 1px solid rgba(174,147,255,.10);
  border-bottom: 1px solid rgba(255,255,255,.055);
  border-radius: 0;
  background:
    radial-gradient(ellipse at 10% 0%, rgba(132,91,245,.042), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.005), transparent);
  box-shadow: none;
}

.compact-diagnostic .fit-diagnostic-panel::before {
  left: 0;
  top: -1px;
  width: 160px;
  height: 1px;
  opacity: .76;
}

.compact-diagnostic .fit-diagnostic-intro {
  display: block;
  padding: 0 0 14px;
  border: 0;
}

.compact-diagnostic .fit-diagnostic-intro h2 {
  max-width: none;
  margin: 0;
  color: #e9ebf0;
  font-size: 16px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -.018em;
}

.compact-diagnostic .fit-diagnostic-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 24px;
}

.compact-diagnostic .fit-diagnostic-item,
.compact-diagnostic .fit-diagnostic-item:nth-child(odd),
.compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1),
.compact-diagnostic .fit-diagnostic-item:nth-child(1),
.compact-diagnostic .fit-diagnostic-item:nth-child(2),
.compact-diagnostic .fit-diagnostic-item:nth-child(3),
.compact-diagnostic .fit-diagnostic-item:nth-child(4),
.compact-diagnostic .fit-diagnostic-item:nth-child(5),
.compact-diagnostic .fit-diagnostic-item:nth-child(6) {
  min-height: 38px;
  display: grid;
  grid-template-columns: 23px 1fr;
  align-items: center;
  gap: 9px;
  padding: 4px 0;
  border: 0;
  background: transparent;
}

.compact-diagnostic .fit-diagnostic-item:hover {
  background: transparent;
}

.compact-diagnostic .fit-diagnostic-item > span {
  width: 19px;
  height: 19px;
  border-color: rgba(187,162,255,.46);
  background: rgba(131,91,244,.035);
  box-shadow:
    0 0 0 3px rgba(132,91,245,.018),
    0 0 15px rgba(132,91,245,.055);
}

.compact-diagnostic .fit-diagnostic-item > span::before {
  left: 5px;
  top: 7px;
  width: 7px;
  height: 3px;
  border-color: #c5b3ff;
}

.compact-diagnostic .fit-diagnostic-item p {
  color: #c9ced6;
  font-size: 11.9px;
  line-height: 1.42;
  font-weight: 520;
}

/* ------------------------------------------------------------
   Services: separate base position, mouse offset and ambient drift.
   This prevents JS parallax and CSS float from fighting over transform.
   ------------------------------------------------------------ */
#serviceExplorer {
  column-gap: 16px;
  row-gap: 8px;
  padding: 16px 16px 22px;
}

#serviceExplorer .service-capability {
  --service-base-x: 0px;
  --service-base-y: 0px;
  margin: 0;
  will-change: auto;
  translate:
    calc(
      var(--service-base-x)
      + var(--service-mouse-x)
      + var(--service-open-x)
      + var(--service-pair-x)
    )
    calc(
      var(--service-base-y)
      + var(--service-mouse-y)
      + var(--service-open-y)
    );
  transform: translate(0, 0);
  backface-visibility: visible;
}

#serviceExplorer .service-capability[data-service-card="consulting"] {
  --service-base-x: -7px;
  --service-base-y: -3px;
  animation: serviceCardDrift70A 8.9s ease-in-out -1.4s infinite;
}

#serviceExplorer .service-capability[data-service-card="development"] {
  --service-base-x: 8px;
  --service-base-y: 5px;
  animation: serviceCardDrift70B 10.4s ease-in-out -5.1s infinite;
}

#serviceExplorer .service-capability[data-service-card="data"] {
  --service-base-x: 5px;
  --service-base-y: 8px;
  animation: serviceCardDrift70C 11.2s ease-in-out -3.2s infinite;
}

#serviceExplorer .service-capability[data-service-card="support"] {
  --service-base-x: -8px;
  --service-base-y: 2px;
  animation: serviceCardDrift70D 9.7s ease-in-out -6.6s infinite;
}

/* A little more air between floating parents. */
#serviceExplorer .service-capability[data-detail-side="left"],
#serviceExplorer .service-capability[data-detail-side="right"] {
  border-left: 1px solid rgba(255,255,255,.072);
  border-bottom: 1px solid rgba(255,255,255,.072);
}

/* Open parent remains visibly elevated without text blur. */
#serviceExplorer .service-capability.is-expanded {
  translate:
    calc(
      var(--service-base-x)
      + var(--service-mouse-x)
      + var(--service-open-x)
      + var(--service-pair-x)
    )
    calc(
      var(--service-base-y)
      + var(--service-mouse-y)
      + var(--service-open-y)
    );
}

/* ------------------------------------------------------------
   Child detail: typography and rhythm instead of three outlined mini-cards.
   ------------------------------------------------------------ */
.service-detail-columns {
  gap: 34px;
  padding-top: 25px;
}

.service-detail-columns > div,
.service-detail-columns > div:first-child,
.service-detail-columns > div:last-child {
  position: relative;
  min-height: 0;
  padding: 15px 0 11px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.service-detail-columns > div::before {
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  margin-bottom: 14px;
  background: linear-gradient(90deg, rgba(182,157,255,.62), rgba(182,157,255,.08));
  box-shadow: 0 0 12px rgba(132,91,245,.06);
}

.service-detail-columns > div:hover {
  border: 0;
  background: transparent;
}

.service-detail-columns span {
  margin-bottom: 8px;
  color: #aeb4be;
  font-size: 9.95px;
}

.service-detail-columns strong {
  color: #eef0f4;
  font-size: 12.85px;
}

.service-detail-columns p {
  max-width: 365px;
  margin-top: 8px;
  color: #bbc1ca;
  font-size: 12.35px;
  line-height: 1.68;
}

/* Fast fade-out, calm fade-in. No dead pause. */
.service-detail-rail.is-switching .service-detail-content,
.service-detail-rail.is-refreshing .service-detail-content {
  opacity: 0;
  transform: translateY(5px);
  transition:
    opacity .12s ease-in,
    transform .14s ease-in;
}

.service-detail-content {
  transition:
    opacity .46s ease-out,
    transform .62s cubic-bezier(.16,.70,.18,1);
}

/* Independent non-symmetric drift paths. */
@keyframes serviceCardDrift70A {
  0%, 100% { transform: translate(0px, 0px); }
  29% { transform: translate(2px, -4px); }
  63% { transform: translate(-3px, 2px); }
  82% { transform: translate(1px, 4px); }
}

@keyframes serviceCardDrift70B {
  0%, 100% { transform: translate(0px, 0px); }
  24% { transform: translate(-3px, 3px); }
  56% { transform: translate(3px, -3px); }
  79% { transform: translate(2px, 2px); }
}

@keyframes serviceCardDrift70C {
  0%, 100% { transform: translate(0px, 0px); }
  31% { transform: translate(3px, 2px); }
  58% { transform: translate(-2px, -4px); }
  84% { transform: translate(-3px, 2px); }
}

@keyframes serviceCardDrift70D {
  0%, 100% { transform: translate(0px, 0px); }
  27% { transform: translate(-2px, -3px); }
  61% { transform: translate(3px, 3px); }
  86% { transform: translate(-1px, 4px); }
}

@media (max-width: 980px) {
  .compact-diagnostic .fit-diagnostic-panel {
    padding-inline: 18px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap-inline: 22px;
  }

  #serviceExplorer .service-capability[data-service-card] {
    --service-base-x: 0px;
    --service-base-y: 0px;
  }

  .service-detail-columns {
    gap: 24px;
  }
}

@media (max-width: 640px) {
  .compact-diagnostic .fit-diagnostic-panel {
    padding: 16px 18px 13px;
  }

  .compact-diagnostic .fit-diagnostic-intro {
    padding-bottom: 10px;
  }

  .compact-diagnostic .fit-diagnostic-list {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .compact-diagnostic .fit-diagnostic-item,
  .compact-diagnostic .fit-diagnostic-item:nth-child(odd),
  .compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1),
  .compact-diagnostic .fit-diagnostic-item:nth-child(5),
  .compact-diagnostic .fit-diagnostic-item:nth-child(6) {
    padding: 5px 0;
    border: 0;
  }

  #serviceExplorer {
    row-gap: 6px;
  }

  #serviceExplorer .service-capability[data-service-card] {
    animation: none;
    translate: 0 0;
  }

  .service-detail-columns {
    gap: 4px;
  }

  .service-detail-columns > div,
  .service-detail-columns > div:first-child,
  .service-detail-columns > div:last-child {
    padding-block: 13px 15px;
  }
}

@media (pointer: coarse) {
  #serviceExplorer .service-capability[data-service-card] {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #serviceExplorer .service-capability[data-service-card] {
    animation: none !important;
    translate: 0 0 !important;
    transform: none !important;
  }
}


/* V71 — MODEL / CONTENT / MOTION REFINEMENT */

/* ------------------------------------------------------------
   Hero secondary link: small signal underline from the same visual language
   as capability headers.
   ------------------------------------------------------------ */
.hero-actions .text-link {
  position: relative;
  padding-bottom: 9px;
}

.hero-actions .text-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 42px;
  height: 1px;
  background: linear-gradient(90deg, rgba(186,160,255,.78), rgba(154,124,244,.08));
  box-shadow: 0 0 12px rgba(137,94,255,.08);
  transform-origin: left center;
  transition:
    width .48s cubic-bezier(.16,.72,.18,1),
    opacity .36s ease;
}

.hero-actions .text-link:hover::after {
  width: 62px;
  opacity: 1;
}

/* Experience is intentionally secondary, but it should never look disabled. */
.experience-strip .trust-label {
  color: #c0c6cf;
  font-weight: 600;
}

.experience-strip .trust-items span {
  color: #f0f1f4;
}

/* Service numbering gets a little more authority. */
.service-capability-number {
  font-size: 13.5px;
  font-weight: 650;
  letter-spacing: .04em;
}

/* ------------------------------------------------------------
   Operating model: AI now belongs to the flow itself.
   ------------------------------------------------------------ */
.method-map-body {
  grid-template-columns: 1fr;
}

.method-flow {
  border-right: 0;
}

/* Compact AI principle placed in the vertical corridor between 03 and 04. */
.method-ai.method-ai-inline {
  position: absolute;
  z-index: 4;
  left: 84%;
  top: 50%;
  width: min(214px, 22%);
  min-height: 0;
  display: block;
  padding: 13px 15px 12px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(166,137,255,.15);
  border-radius: 11px;
  background:
    radial-gradient(circle at 14% 12%, rgba(138,92,255,.055), transparent 48%),
    rgba(10,14,21,.95);
  box-shadow:
    0 12px 30px rgba(0,0,0,.14),
    0 0 22px rgba(138,92,255,.028);
}

.method-ai.method-ai-inline::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -20px;
  width: 1px;
  height: 20px;
  border: 0;
  background: linear-gradient(180deg, transparent, rgba(170,144,247,.24));
}

.method-ai.method-ai-inline::after {
  display: none;
}

.method-ai-inline .method-ai-type {
  display: block;
  margin: 0 0 6px;
  color: #9b8bd8;
  font-size: 9.4px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.method-ai-inline strong {
  display: block;
  margin-bottom: 5px;
  color: #eeeafc;
  font-size: 13.1px;
  line-height: 1.35;
  font-weight: 500;
}

.method-ai-inline small {
  display: block;
  color: #9ca3ae;
  font-size: 10.5px;
  line-height: 1.52;
}

/* ------------------------------------------------------------
   Method station orbit: two subtle gaps, slow idle rotation,
   faster on approach, then back to a nearly dead rotation after the pop.
   ------------------------------------------------------------ */
.method-dot {
  overflow: visible;
}

.method-dot-orbit {
  position: absolute;
  z-index: -1;
  inset: -6px;
  border-radius: 50%;
  pointer-events: none;
  opacity: .46;
  background:
    conic-gradient(
      from 18deg,
      rgba(177,151,255,.56) 0deg 142deg,
      transparent 142deg 158deg,
      rgba(177,151,255,.42) 158deg 318deg,
      transparent 318deg 333deg,
      rgba(177,151,255,.56) 333deg 360deg
    );
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
  animation: methodOrbitIdle 24s linear infinite;
  transition:
    opacity .42s ease,
    filter .42s ease,
    inset .48s cubic-bezier(.16,.72,.18,1);
}

.method-node.is-route-approaching .method-dot-orbit {
  opacity: .84;
  filter: drop-shadow(0 0 5px rgba(151,116,255,.16));
  animation-duration: 3.9s;
}

.method-node.is-route-active .method-dot {
  transform: scale(1.16);
  box-shadow:
    0 0 0 6px rgba(10,14,21,.94),
    0 0 23px rgba(138,92,255,.27),
    0 0 48px rgba(138,92,255,.14);
}

.method-node.is-route-active .method-dot-orbit {
  inset: -8px;
  opacity: .62;
  filter: drop-shadow(0 0 6px rgba(151,116,255,.15));
  animation-duration: 28s;
}

/* The pop itself uses the same broken-ring geometry rather than a perfect circle. */
.method-dot::after {
  border: 0;
  background:
    conic-gradient(
      from 8deg,
      rgba(207,190,255,.88) 0deg 144deg,
      transparent 144deg 160deg,
      rgba(193,171,255,.72) 160deg 316deg,
      transparent 316deg 332deg,
      rgba(207,190,255,.88) 332deg 360deg
    );
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
}

@keyframes method-node-ring {
  0% {
    opacity: 0;
    transform: scale(.74) rotate(0deg);
  }
  24% {
    opacity: 1;
    transform: scale(1.02) rotate(12deg);
  }
  100% {
    opacity: 0;
    transform: scale(1.62) rotate(48deg);
  }
}

@keyframes methodOrbitIdle {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ------------------------------------------------------------
   Service parents: keep the independent floating feel, but contain it.
   ------------------------------------------------------------ */
#serviceExplorer {
  padding: 22px 26px 30px;
  column-gap: 20px;
  row-gap: 12px;
}

#serviceExplorer .service-capability[data-service-card="consulting"] {
  --service-base-x: -3px;
  --service-base-y: -2px;
}

#serviceExplorer .service-capability[data-service-card="development"] {
  --service-base-x: 4px;
  --service-base-y: 3px;
}

#serviceExplorer .service-capability[data-service-card="data"] {
  --service-base-x: 3px;
  --service-base-y: 4px;
}

#serviceExplorer .service-capability[data-service-card="support"] {
  --service-base-x: -4px;
  --service-base-y: 2px;
}

@keyframes serviceCardDrift70A {
  0%, 100% { transform: translate(0px, 0px); }
  29% { transform: translate(1.5px, -2.8px); }
  63% { transform: translate(-2.2px, 1.5px); }
  82% { transform: translate(.8px, 2.5px); }
}

@keyframes serviceCardDrift70B {
  0%, 100% { transform: translate(0px, 0px); }
  24% { transform: translate(-2px, 2px); }
  56% { transform: translate(2.3px, -2.2px); }
  79% { transform: translate(1.4px, 1.5px); }
}

@keyframes serviceCardDrift70C {
  0%, 100% { transform: translate(0px, 0px); }
  31% { transform: translate(2.2px, 1.5px); }
  58% { transform: translate(-1.6px, -2.8px); }
  84% { transform: translate(-2.2px, 1.5px); }
}

@keyframes serviceCardDrift70D {
  0%, 100% { transform: translate(0px, 0px); }
  27% { transform: translate(-1.6px, -2.1px); }
  61% { transform: translate(2.2px, 2.0px); }
  86% { transform: translate(-.8px, 2.7px); }
}

/* Parent-child connection should be obvious without competing with hero. */
.service-detail-connector-base {
  stroke: rgba(218,203,255,.94);
  stroke-width: 1.32;
  filter:
    drop-shadow(0 0 4px rgba(215,201,255,.30))
    drop-shadow(0 0 10px rgba(142,99,255,.24));
}

.service-detail-connector-pulse {
  stroke: rgba(250,247,255,1);
  stroke-width: 1.65;
  filter:
    drop-shadow(0 0 3px rgba(241,235,255,.62))
    drop-shadow(0 0 10px rgba(162,126,255,.34));
}

@keyframes serviceLiveCurveDraw {
  0% {
    stroke-dashoffset: 170;
    opacity: 0;
  }
  14% {
    opacity: .88;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: .86;
  }
}

/* ------------------------------------------------------------
   Extended child: two meaningful groups, no secondary essay.
   ------------------------------------------------------------ */
.service-detail-head {
  display: block;
  padding-bottom: 20px;
}

.service-detail-head > p {
  display: none;
}

.service-detail-head h4 {
  max-width: 760px;
}

.service-detail-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  padding-top: 21px;
}

.service-detail-columns > div,
.service-detail-columns > div:first-child,
.service-detail-columns > div:last-child {
  padding-top: 13px;
}

.service-detail-columns p {
  max-width: 430px;
}

/* ------------------------------------------------------------
   Long-term partner: shorter, lighter and less repetitive.
   ------------------------------------------------------------ */
.partnership-panel {
  min-height: 275px;
  grid-template-columns: 46% 54%;
}

.partnership-panel .consulting-copy {
  padding: 40px clamp(38px, 3.5vw, 58px);
}

.partnership-panel .consulting-copy h2 {
  font-size: clamp(25px, 2vw, 30px);
  line-height: 1.26;
}

.partnership-panel .consulting-copy > p:not(.eyebrow) {
  max-width: 520px;
  color: #aeb5bf;
  font-size: 12.35px;
  line-height: 1.7;
}

.partnership-panel .consulting-list {
  padding: 34px clamp(38px, 3.7vw, 58px);
  justify-content: center;
}

.partnership-panel .consulting-row {
  min-height: 48px;
  font-size: 13.5px;
}

.partnership-panel .mini-mark {
  font-size: 17px;
}

@media (max-width: 980px) {
  .method-ai.method-ai-inline {
    left: 82%;
    top: 51%;
    width: min(205px, 24%);
  }

  .service-detail-columns {
    gap: 30px;
  }

  .partnership-panel {
    min-height: 0;
  }
}

@media (max-width: 640px) {
  .method-ai.method-ai-inline {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    max-width: none;
    margin: 10px 0 22px;
    transform: none;
  }

  .method-ai.method-ai-inline::before {
    display: none;
  }

  .service-detail-columns {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .service-capability-number {
    font-size: 13px;
  }

  .partnership-panel .consulting-copy,
  .partnership-panel .consulting-list {
    padding-inline: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .method-dot-orbit {
    animation: none !important;
  }
}


/* V72 — POSITIONING / PARTNERSHIP / CONTACT POLISH */

/* Where we can help should feel open and useful, not selective. */
.fit-section .industries-intro h2 {
  max-width: 610px;
}

.fit-section .industries-lead {
  max-width: 570px;
}

/* Service summaries: a touch larger, brighter and less paragraph-like. */
#serviceExplorer .service-capability > p {
  max-width: 475px;
  color: #b8bec7;
  font-size: 13.15px;
  line-height: 1.62;
  font-weight: 500;
}

/* Hero secondary CTA should be legible at a glance. */
.hero-actions .text-link {
  gap: 11px;
  color: #beaaff;
  font-size: 13.25px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -.006em;
}

.hero-actions .text-link > span {
  font-size: 16px;
}

/* ------------------------------------------------------------
   Partnership opening: process clarity before compliance/support.
   It is intentionally an open editorial band rather than another card.
   ------------------------------------------------------------ */
.partnership-intro {
  display: grid;
  grid-template-columns: minmax(260px, .74fr) minmax(0, 1.26fr);
  gap: 58px;
  margin: 4px clamp(18px, 1.5vw, 32px) 30px;
  padding: 31px 34px 34px;
  position: relative;
  border-top: 1px solid rgba(178,151,255,.13);
  border-bottom: 1px solid rgba(255,255,255,.07);
  background:
    radial-gradient(ellipse at 4% 0%, rgba(131,91,245,.055), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.006), transparent);
  scroll-margin-top: 138px;
}

.partnership-intro::before {
  content: "";
  position: absolute;
  left: 34px;
  top: -1px;
  width: 92px;
  height: 1px;
  background: linear-gradient(90deg, rgba(190,165,255,.82), transparent);
  box-shadow: 0 0 13px rgba(138,92,255,.09);
}

.partnership-intro .eyebrow {
  margin-bottom: 10px;
}

.partnership-intro h2 {
  margin: 0;
  color: #f1f2f5;
  font-size: clamp(26px, 2vw, 31px);
  line-height: 1.22;
  font-weight: 500;
  letter-spacing: -.035em;
}

.partnership-intro-copy {
  align-self: center;
  max-width: 720px;
}

.partnership-intro-copy > p {
  margin: 0;
  color: #b9c0c9;
  font-size: 13px;
  line-height: 1.72;
  font-weight: 500;
}

.partnership-intro-copy .partnership-intro-outcome {
  margin-top: 12px;
  color: #e2e4e9;
  font-size: 12.7px;
}

/* The nav target is now the actual visible Partnership opening. */
#partnership {
  scroll-margin-top: 138px;
}

/* Keep the ISO panel's normal spacing now that it no longer owns the anchor. */
#audit-ready {
  scroll-margin-top: 0;
}

/* Contact: use the same site typography on the real button, and make
   the helper line secondary rather than barely visible. */
.contact-panel .contact-submit {
  font-family: "Instrument Sans", sans-serif;
  font-size: 12.25px;
  line-height: 1;
  font-weight: 650;
  letter-spacing: .002em;
}

.contact-panel .contact-submit > span {
  font-family: "Instrument Sans", sans-serif;
  font-weight: 500;
}

.contact-panel .contact-form-footer p {
  max-width: 360px;
  color: #b8bec7;
  font-size: 12px;
  line-height: 1.58;
  font-weight: 500;
}

@media (max-width: 980px) {
  .partnership-intro {
    grid-template-columns: 1fr;
    gap: 17px;
    margin-inline: 0;
    padding: 27px 30px 30px;
    scroll-margin-top: 116px;
  }

  #partnership {
    scroll-margin-top: 116px;
  }

  .partnership-intro-copy {
    max-width: 680px;
  }

  #serviceExplorer .service-capability > p {
    font-size: 12.9px;
  }
}

@media (max-width: 640px) {
  .partnership-intro {
    gap: 14px;
    padding: 24px 22px 26px;
    scroll-margin-top: 96px;
  }

  .partnership-intro::before {
    left: 22px;
  }

  #partnership {
    scroll-margin-top: 96px;
  }

  .partnership-intro h2 {
    font-size: 25px;
  }

  .partnership-intro-copy > p {
    font-size: 12.5px;
  }

  .hero-actions .text-link {
    font-size: 13px;
  }
}


/* V73 — HIERARCHY / AUDIT / SERVICE REFINEMENT */

/* Checklist: larger and more readable, with a clean check instead of a circle. */
.compact-diagnostic .fit-diagnostic-intro h2 {
  font-size: 18.5px;
  line-height: 1.28;
  font-weight: 650;
  color: #f0f1f4;
}

.compact-diagnostic .fit-diagnostic-list {
  gap: 9px 28px;
}

.compact-diagnostic .fit-diagnostic-item,
.compact-diagnostic .fit-diagnostic-item:nth-child(odd),
.compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1),
.compact-diagnostic .fit-diagnostic-item:nth-child(1),
.compact-diagnostic .fit-diagnostic-item:nth-child(2),
.compact-diagnostic .fit-diagnostic-item:nth-child(3),
.compact-diagnostic .fit-diagnostic-item:nth-child(4),
.compact-diagnostic .fit-diagnostic-item:nth-child(5),
.compact-diagnostic .fit-diagnostic-item:nth-child(6) {
  min-height: 42px;
  grid-template-columns: 25px 1fr;
  gap: 10px;
}

.compact-diagnostic .fit-diagnostic-item > span {
  width: 20px;
  height: 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.compact-diagnostic .fit-diagnostic-item > span::before {
  left: 3px;
  top: 5px;
  width: 11px;
  height: 6px;
  border-left: 1.6px solid #c7b6ff;
  border-bottom: 1.6px solid #c7b6ff;
  box-shadow: 0 0 10px rgba(151,117,255,.10);
}

.compact-diagnostic .fit-diagnostic-item p {
  color: #d2d6dd;
  font-size: 12.55px;
  line-height: 1.44;
  font-weight: 550;
}

/* Experience across: visually belongs to the strip instead of floating outside it. */
.experience-strip .trust-label {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #d2d6dd;
  font-size: 11.15px;
  font-weight: 650;
  letter-spacing: .038em;
}

.experience-strip .trust-label::after {
  content: "";
  width: 44px;
  height: 1px;
  flex: 0 0 auto;
  background: linear-gradient(90deg, rgba(185,160,255,.70), rgba(185,160,255,.05));
  box-shadow: 0 0 10px rgba(138,92,255,.07);
}

.experience-strip .trust-items span {
  color: #f2f3f6;
  font-size: 11.15px;
  font-weight: 520;
}

/* Services: clearer supporting copy and stronger parent numbering. */
.service-suite-head > p {
  color: #b7bdc6;
  font-size: 13.15px;
  line-height: 1.66;
  font-weight: 500;
}

.service-capability-number {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .038em;
}

#serviceExplorer .service-capability > p {
  color: #c0c5cd;
  font-size: 13.35px;
  line-height: 1.58;
}

/* Text-only Explore control — no plus/x circle. */
.service-expand {
  gap: 0;
  min-height: auto;
  padding: 7px 0 5px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #d4d0e4;
  font-size: 12.25px;
  font-weight: 650;
}

.service-expand::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin-left: 10px;
  background: linear-gradient(90deg, rgba(184,159,255,.72), rgba(184,159,255,.06));
  transition: width .42s cubic-bezier(.16,.72,.18,1);
}

.service-expand:hover,
.service-capability.is-expanded .service-expand {
  border: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  color: #f0ebff;
}

.service-expand:hover::after,
.service-capability.is-expanded .service-expand::after {
  width: 52px;
}

.service-expand i,
.service-expand i::before,
.service-expand i::after {
  display: none !important;
}

/* End-to-end delivery: important promise, not footnote-sized content. */
.service-ownership {
  gap: 48px;
  padding-top: 34px;
  padding-bottom: 35px;
}

.service-ownership-copy h3 {
  max-width: 500px;
  color: #f2f3f7;
  font-size: clamp(25px, 1.85vw, 31px);
  line-height: 1.24;
  font-weight: 520;
}

.service-ownership-summary {
  max-width: 740px;
  color: #bcc2cb;
  font-size: 13.4px;
  line-height: 1.7;
  font-weight: 500;
}

/* How we work lead gets the same hierarchy as the strong Where we can help lead. */
#how-we-work .section-intro > p:not(.eyebrow) {
  max-width: 560px;
  color: #c1c6ce;
  font-size: 14.1px;
  line-height: 1.76;
  font-weight: 520;
  letter-spacing: -.006em;
}

/* Operating model: larger station numbers. */
.method-dot {
  font-size: 13.5px;
  font-weight: 700;
}

/* AI support sits left of the 03 -> 04 corridor and connects horizontally
   toward the arc rather than crossing it from above. */
.method-ai.method-ai-inline {
  left: 65%;
  top: 50%;
  width: min(210px, 21%);
}

.method-ai.method-ai-inline::before {
  left: 100%;
  top: 50%;
  width: 30px;
  height: 1px;
  background: linear-gradient(90deg, rgba(170,144,247,.34), rgba(170,144,247,.10));
}

.method-ai.method-ai-inline::after {
  display: block;
  content: "";
  position: absolute;
  left: calc(100% + 28px);
  top: calc(50% - 3px);
  width: 6px;
  height: 6px;
  border: 1px solid rgba(189,165,255,.40);
  border-radius: 50%;
  background: #0a0e15;
  box-shadow: 0 0 10px rgba(138,92,255,.07);
}

/* Audit-ready: useful capability, deliberately secondary to Partnership. */
.audit-ready-panel {
  min-height: 250px;
  margin-bottom: 28px;
  grid-template-columns: 42% 58%;
  background:
    radial-gradient(ellipse at 16% 45%, rgba(110,76,224,.065), transparent 42%),
    linear-gradient(115deg, rgba(14,17,27,.965), rgba(11,15,23,.955));
  box-shadow: 0 20px 54px rgba(0,0,0,.075);
}

.audit-ready-panel::before {
  opacity: .28;
}

.audit-ready-copy {
  padding: 36px clamp(36px, 3.1vw, 54px);
}

.audit-ready-copy h2 {
  max-width: 470px;
  font-size: clamp(25px, 1.75vw, 31px);
  line-height: 1.24;
  letter-spacing: -.038em;
}

.audit-ready-copy > p:not(.eyebrow) {
  max-width: 500px;
  color: #afb6c0;
  font-size: 12.55px;
  line-height: 1.68;
}

.audit-capabilities {
  padding: 25px clamp(30px, 2.6vw, 46px);
}

.audit-capability {
  min-height: 88px;
  grid-template-columns: 34px 1fr;
  padding: 17px 20px;
}

.audit-mark {
  font-size: 11.5px;
}

.audit-capability h3 {
  margin-bottom: 4px;
  font-size: 13.8px;
}

.audit-capability p {
  color: #aab1bb;
  font-size: 11.75px;
  line-height: 1.56;
}

.partnership-intro {
  margin-bottom: 25px;
}

@media (max-width: 980px) {
  .method-ai.method-ai-inline {
    left: 63%;
    width: min(202px, 23%);
  }

  .audit-ready-panel {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .audit-ready-copy {
    padding: 31px 30px;
  }

  .compact-diagnostic .fit-diagnostic-item p {
    font-size: 12.25px;
  }
}

@media (max-width: 640px) {
  .compact-diagnostic .fit-diagnostic-intro h2 {
    font-size: 17px;
  }

  .compact-diagnostic .fit-diagnostic-item p {
    font-size: 12.15px;
  }

  .method-dot {
    font-size: 12px;
  }

  .method-ai.method-ai-inline {
    left: auto;
    width: 100%;
  }

  .method-ai.method-ai-inline::before,
  .method-ai.method-ai-inline::after {
    display: none;
  }

  .service-ownership-copy h3 {
    font-size: 24px;
  }

  .service-ownership-summary {
    font-size: 12.7px;
  }
}


/* V74 — FLOW / PARTNERSHIP / CLICKABLE SERVICES */

/* Checklist: one more step up in readability. */
.compact-diagnostic .fit-diagnostic-intro h2 {
  font-size: 19.5px;
}

.compact-diagnostic .fit-diagnostic-item,
.compact-diagnostic .fit-diagnostic-item:nth-child(odd),
.compact-diagnostic .fit-diagnostic-item:nth-child(3n + 1),
.compact-diagnostic .fit-diagnostic-item:nth-child(1),
.compact-diagnostic .fit-diagnostic-item:nth-child(2),
.compact-diagnostic .fit-diagnostic-item:nth-child(3),
.compact-diagnostic .fit-diagnostic-item:nth-child(4),
.compact-diagnostic .fit-diagnostic-item:nth-child(5),
.compact-diagnostic .fit-diagnostic-item:nth-child(6) {
  min-height: 45px;
  grid-template-columns: 28px 1fr;
  gap: 11px;
}

.compact-diagnostic .fit-diagnostic-item > span {
  width: 24px;
  height: 21px;
}

.compact-diagnostic .fit-diagnostic-item > span::before {
  left: 3px;
  top: 5px;
  width: 14px;
  height: 8px;
  border-left-width: 1.8px;
  border-bottom-width: 1.8px;
  border-color: #cbbcff;
  box-shadow: 0 0 12px rgba(151,117,255,.13);
}

.compact-diagnostic .fit-diagnostic-item p {
  color: #d9dde3;
  font-size: 13.1px;
  line-height: 1.42;
  font-weight: 560;
}

/* The entire parent capability surface behaves like the disclosure control. */
#serviceExplorer .service-capability[data-service-card] {
  cursor: pointer;
}

#serviceExplorer .service-capability[data-service-card]:hover .service-expand {
  color: #f0ebff;
}

#serviceExplorer .service-capability[data-service-card]:hover .service-expand::after {
  width: 52px;
}

/* AI support: geometry comes from JS, based on the real 03 -> 04 route. */
.method-ai.method-ai-inline {
  left: var(--method-ai-right-edge, 70%);
  top: var(--method-ai-center-y, 50%);
  width: 205px;
  max-width: 205px;
  transform: translate(-100%, -50%);
}

.method-ai.method-ai-inline::before {
  left: 100%;
  top: 50%;
  width: var(--method-ai-link-width, 32px);
  height: 1px;
  background:
    linear-gradient(90deg, rgba(183,158,255,.40), rgba(183,158,255,.12));
}

.method-ai.method-ai-inline::after {
  left: calc(100% + var(--method-ai-link-width, 32px) - 2px);
  top: calc(50% - 3px);
}

/* Audit copy: clearer supporting text and descriptions, but still secondary. */
.audit-ready-copy > p:not(.eyebrow) {
  color: #bec4cd;
  font-size: 13.05px;
  line-height: 1.7;
  font-weight: 500;
}

.audit-capability h3 {
  color: #e9ebef;
  font-size: 14.1px;
}

.audit-capability p {
  max-width: 310px;
  color: #b8bec7;
  font-size: 12.05px;
  line-height: 1.58;
}

/* Partnership is now one coherent promise instead of two competing panels. */
.partnership-intro {
  margin-bottom: 30px;
}

.partnership-intro-copy > p {
  color: #c0c6ce;
  font-size: 13.2px;
  line-height: 1.72;
}

.partnership-intro-copy .partnership-intro-outcome {
  margin-top: 13px;
  color: #eceef2;
  font-size: 13px;
  font-weight: 560;
}

.partnership-intro-copy .partnership-intro-continuity {
  position: relative;
  margin-top: 14px;
  padding-top: 14px;
  color: #aeb5bf;
  font-size: 12.2px;
  line-height: 1.62;
}

.partnership-intro-copy .partnership-intro-continuity::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 56px;
  height: 1px;
  background:
    linear-gradient(90deg, rgba(183,158,255,.64), rgba(183,158,255,.06));
}

/* Old long-term panel is intentionally gone. Avoid inherited chapter space. */
.value-suite {
  padding-bottom: 30px;
}

@media (max-width: 980px) {
  .method-ai.method-ai-inline {
    width: 190px;
    max-width: 190px;
  }

  .compact-diagnostic .fit-diagnostic-item p {
    font-size: 12.75px;
  }
}

@media (max-width: 640px) {
  .method-ai.method-ai-inline {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    max-width: none;
    margin: 10px 0 22px;
    transform: none;
  }

  .method-ai.method-ai-inline::before,
  .method-ai.method-ai-inline::after {
    display: none;
  }

  .compact-diagnostic .fit-diagnostic-intro h2 {
    font-size: 18px;
  }

  .compact-diagnostic .fit-diagnostic-item p {
    font-size: 12.5px;
  }
}


/* V75 — CROSS-ROW SERVICE HANDOVER / ISO EMPHASIS */

/* Cross-row changes overlap instead of running as two separate operations. */
.service-detail-rail.is-cross-row-leaving .service-detail-surface {
  opacity: 0;
  transform: translate3d(var(--detail-shift-x), 9px, 0) scale(.996);
  filter: blur(.3px);
  transition:
    opacity .24s ease-in,
    transform .38s cubic-bezier(.42,0,.72,.30),
    filter .24s ease-in;
}

.service-detail-rail.is-cross-row-leaving .service-detail-connector {
  opacity: 0;
  transition: opacity .18s ease-in;
}

/* Incoming child begins almost immediately and develops calmly. */
.service-detail-rail.is-open .service-detail-surface {
  transition:
    opacity .52s ease-out,
    transform .78s cubic-bezier(.16,.72,.18,1),
    filter .48s ease-out,
    border-color .62s ease,
    box-shadow .76s cubic-bezier(.16,.72,.18,1);
}

.service-detail-rail {
  transition:
    grid-template-rows .72s cubic-bezier(.16,.72,.18,1),
    opacity .34s ease-in-out,
    border-color .46s ease;
}

/* Keep the incoming card state responsive while the rail is moving. */
#serviceExplorer.is-changing-service .service-capability.is-expanded {
  transition:
    translate .56s cubic-bezier(.16,.72,.18,1),
    border-color .42s ease,
    background .52s ease,
    box-shadow .56s ease;
}

/* ISO is an explicit capability statement, not buried in body copy. */
.audit-iso-note {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: 17px;
  color: #e8e1ff;
  font-size: 15.5px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -.012em;
  text-shadow:
    0 0 14px rgba(156,121,255,.10),
    0 0 30px rgba(126,88,230,.045);
}

.audit-iso-note::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  margin-top: 10px;
  background:
    linear-gradient(90deg, rgba(191,168,255,.76), rgba(191,168,255,.06));
  box-shadow: 0 0 12px rgba(138,92,255,.08);
}

@media (max-width: 640px) {
  .audit-iso-note {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-detail-rail.is-cross-row-leaving .service-detail-surface {
    filter: none;
  }
}


/* V76 — FAST CROSS-ROW HANDOVER */

/* Cross-row swaps prioritise responsiveness over the slower single-panel unfold. */
.service-detail-rail.is-cross-row-leaving {
  transition:
    grid-template-rows .22s cubic-bezier(.38,0,.68,.30),
    opacity .16s ease-in,
    border-color .20s ease;
}

.service-detail-rail.is-cross-row-leaving .service-detail-surface {
  opacity: 0;
  transform: translate3d(var(--detail-shift-x), 5px, 0) scale(.998);
  filter: none;
  transition:
    opacity .13s ease-in,
    transform .20s cubic-bezier(.40,0,.70,.34);
}

.service-detail-rail.is-cross-row-leaving .service-detail-content {
  opacity: 0;
  transform: translateY(3px);
  transition:
    opacity .12s ease-in,
    transform .16s ease-in;
}

.service-detail-rail.is-cross-row-leaving .service-detail-connector {
  opacity: 0;
  transition: opacity .11s ease-in;
}

/* Incoming rail starts immediately and reaches its settled state much faster. */
.service-detail-rail.is-cross-row-entering {
  transition:
    grid-template-rows .32s cubic-bezier(.14,.76,.18,1),
    opacity .18s ease-out,
    border-color .24s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-surface {
  transition:
    opacity .24s ease-out,
    transform .34s cubic-bezier(.14,.76,.18,1),
    border-color .28s ease,
    box-shadow .34s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-content {
  transition:
    opacity .25s ease-out,
    transform .31s cubic-bezier(.14,.76,.18,1);
}

.service-detail-rail.is-cross-row-entering .service-detail-columns > div {
  transition:
    opacity .28s ease-out,
    transform .34s cubic-bezier(.14,.76,.18,1),
    border-color .28s ease,
    background .28s ease;
}

.service-detail-rail.is-cross-row-entering.is-open .service-detail-columns > div:nth-child(1) {
  transition-delay: .02s;
}

.service-detail-rail.is-cross-row-entering.is-open .service-detail-columns > div:nth-child(2) {
  transition-delay: .06s;
}

/* Avoid expensive filter composition during any service-row handover. */
#serviceExplorer.is-changing-service .service-detail-surface {
  filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .service-detail-rail.is-cross-row-leaving,
  .service-detail-rail.is-cross-row-entering,
  .service-detail-rail.is-cross-row-leaving .service-detail-surface,
  .service-detail-rail.is-cross-row-entering .service-detail-surface {
    transition: none !important;
  }
}


/* V77 — RELIABLE / QUICKER SERVICE DETAIL HANDOVER
   Runtime reliability is handled in index.html; these timings only make
   cross-row detail swaps a touch quicker while preserving the same motion. */


/* V78 — FAST / FLUID SERVICE DETAIL MOTION
   Keep the existing visual language, but make every open, close and service
   handover feel immediate. These final overrides intentionally win over the
   older exploratory timing passes above. */
.service-detail-rail {
  transition:
    grid-template-rows .34s cubic-bezier(.22,.82,.24,1),
    opacity .20s ease-out,
    border-color .24s ease;
}

.service-detail-surface,
.service-detail-rail.is-open .service-detail-surface {
  transition:
    opacity .26s ease-out,
    transform .36s cubic-bezier(.22,.82,.24,1),
    filter .20s ease-out,
    border-color .28s ease,
    box-shadow .34s cubic-bezier(.22,.82,.24,1);
}

.service-detail-origin {
  transition:
    left .30s cubic-bezier(.22,.82,.24,1),
    opacity .20s ease,
    transform .28s cubic-bezier(.22,.82,.24,1);
}

.service-detail-origin::before {
  transition: transform .34s cubic-bezier(.22,.82,.24,1) .015s;
}

.service-detail-origin::after {
  transition: transform .28s cubic-bezier(.22,.82,.24,1);
}

.service-detail-content {
  transition:
    opacity .22s ease-out,
    transform .28s cubic-bezier(.22,.82,.24,1);
}

.service-detail-rail.is-switching .service-detail-content,
.service-detail-rail.is-refreshing .service-detail-content {
  opacity: 0;
  transform: translate3d(0, 3px, 0) scale(.999);
  transition:
    opacity .09s ease-in,
    transform .11s ease-in;
}

.service-detail-columns > div,
.service-detail-columns > div:first-child,
.service-detail-columns > div:last-child {
  transition:
    opacity .24s ease-out,
    transform .30s cubic-bezier(.22,.82,.24,1),
    border-color .24s ease,
    background .24s ease;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(1) {
  transition-delay: .015s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(2) {
  transition-delay: .04s;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div:nth-child(3) {
  transition-delay: .065s;
}

.service-detail-rail.is-open .service-detail-connector-left,
.service-detail-rail.is-open .service-detail-connector-right {
  animation-duration: .36s;
  animation-delay: 0s;
}

.service-detail-rail.is-cross-row-leaving {
  transition:
    grid-template-rows .16s cubic-bezier(.40,0,.68,.28),
    opacity .11s ease-in,
    border-color .14s ease;
}

.service-detail-rail.is-cross-row-leaving .service-detail-surface {
  opacity: 0;
  transform: translate3d(var(--detail-shift-x), 3px, 0) scale(.999);
  filter: none;
  transition:
    opacity .09s ease-in,
    transform .14s cubic-bezier(.40,0,.68,.28);
}

.service-detail-rail.is-cross-row-leaving .service-detail-content {
  transition:
    opacity .08s ease-in,
    transform .10s ease-in;
}

.service-detail-rail.is-cross-row-entering {
  transition:
    grid-template-rows .25s cubic-bezier(.20,.84,.24,1),
    opacity .14s ease-out,
    border-color .18s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-surface {
  transition:
    opacity .18s ease-out,
    transform .26s cubic-bezier(.20,.84,.24,1),
    border-color .20s ease,
    box-shadow .26s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-content {
  transition:
    opacity .18s ease-out,
    transform .23s cubic-bezier(.20,.84,.24,1);
}

.service-detail-rail.is-cross-row-entering .service-detail-columns > div {
  transition:
    opacity .20s ease-out,
    transform .24s cubic-bezier(.20,.84,.24,1),
    border-color .20s ease,
    background .20s ease;
}

.service-detail-rail.is-cross-row-entering.is-open .service-detail-columns > div:nth-child(1) {
  transition-delay: .01s;
}

.service-detail-rail.is-cross-row-entering.is-open .service-detail-columns > div:nth-child(2) {
  transition-delay: .025s;
}

.service-detail-rail.is-cross-row-entering.is-open .service-detail-columns > div:nth-child(3) {
  transition-delay: .04s;
}

#serviceExplorer.is-changing-service .service-capability.is-expanded {
  transition:
    translate .30s cubic-bezier(.22,.82,.24,1),
    border-color .24s ease,
    background .28s ease,
    box-shadow .30s ease;
}

@media (prefers-reduced-motion: reduce) {
  .service-detail-rail,
  .service-detail-surface,
  .service-detail-content,
  .service-detail-origin,
  .service-detail-columns > div {
    transition: none !important;
  }
}


/* V79 — PREMIUM MOTION / PERFORMANCE REFINE
   Motion now communicates hierarchy and state instead of running everywhere.
   Expensive or nearly invisible perpetual effects are intentionally removed. */

/* Faster first impression: reveal without blur/filter compositing. */
.site-header,
.hero-copy,
.hero-art,
.hero-copy > .eyebrow,
.hero-copy > h1,
.hero-copy > .hero-lead,
.hero-copy > .hero-actions,
.hero-copy-aura {
  will-change: auto;
}

.site-header {
  transition: opacity .26s ease-out;
}

.hero-copy,
.hero-art {
  transition: opacity .32s cubic-bezier(.2,.8,.2,1);
}

.hero-copy > .eyebrow,
.hero-copy > h1,
.hero-copy > .hero-lead,
.hero-copy > .hero-actions {
  transition:
    opacity .34s cubic-bezier(.2,.8,.2,1),
    transform .38s cubic-bezier(.2,.82,.2,1);
}

html.site-booting .site-header,
html.site-booting .hero-copy,
html.site-booting .hero-art,
html.site-booting .hero-copy > .eyebrow,
html.site-booting .hero-copy > h1,
html.site-booting .hero-copy > .hero-lead,
html.site-booting .hero-copy > .hero-actions {
  filter: none !important;
}

html.site-booting .hero-copy > .eyebrow,
html.site-booting .hero-copy > h1,
html.site-booting .hero-copy > .hero-lead,
html.site-booting .hero-copy > .hero-actions {
  transform: translate3d(0, 3px, 0);
}

html.site-ready .hero-copy,
html.site-ready .hero-art,
html.site-ready .hero-copy > .eyebrow,
html.site-ready .hero-copy > h1,
html.site-ready .hero-copy > .hero-lead,
html.site-ready .hero-copy > .hero-actions {
  transition-delay: 0ms !important;
}

/* Keep the hero signal alive; stop ambient layers from consuming frames forever. */
.hero-copy-aura,
.hero-dot-field,
.field-haze,
.hero-ambient-a,
.hero-ambient-b,
.consulting-panel::after,
.method-dot-orbit,
#serviceExplorer .service-capability[data-service-card] {
  animation: none !important;
}

.hero-ambient {
  will-change: auto;
}

/* Sticky glass remains premium but is materially cheaper while scrolling. */
.site-header::before,
.site-header.is-past-hero::before {
  -webkit-backdrop-filter: blur(9px) saturate(112%);
  backdrop-filter: blur(9px) saturate(112%);
}

.site-header::before {
  transition:
    background-color .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    opacity .28s ease;
}

/* Scroll reveals: one quick, quiet entrance; no long cascading motion. */
.motion-ready .reveal-block,
.motion-ready .process-item.reveal-block,
.motion-ready .industry-card.reveal-block,
.motion-ready .service-capability.reveal-block,
.motion-ready .service-ownership.reveal-block,
.motion-ready .method-map.reveal-block,
.motion-ready .audit-ready-panel.reveal-block {
  opacity: .88;
  transform: translate3d(0, 5px, 0);
  transition:
    opacity .38s cubic-bezier(.2,.78,.2,1),
    transform .42s cubic-bezier(.2,.8,.2,1);
  transition-delay: 0ms !important;
  will-change: auto;
}

.motion-ready .reveal-block.is-visible,
.motion-ready .process-item.reveal-block.is-visible,
.motion-ready .industry-card.reveal-block.is-visible,
.motion-ready .service-capability.reveal-block.is-visible,
.motion-ready .service-ownership.reveal-block.is-visible,
.motion-ready .method-map.reveal-block.is-visible,
.motion-ready .audit-ready-panel.reveal-block.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-ready .section-rule {
  transition:
    transform .48s cubic-bezier(.2,.8,.2,1),
    opacity .34s ease;
}

/* Static decorative depth is visually equivalent and avoids scroll-time repaints. */
.value-suite::before,
.consulting-panel::before,
.contact-panel::after {
  transform: none;
  transition: none;
}

.contact-panel::after {
  transform: translate3d(0, -50%, 0);
}

/* Service interaction stays crisp; no perpetual floating or pulsing after settling. */
#serviceExplorer .service-capability[data-service-card] {
  will-change: auto;
}

.service-capability.is-expanded::after,
.service-detail-rail.is-open .service-detail-origin {
  animation: none !important;
}

.service-detail-rail {
  transition:
    grid-template-rows .28s cubic-bezier(.2,.84,.24,1),
    opacity .16s ease-out,
    border-color .20s ease;
}

.service-detail-surface,
.service-detail-rail.is-open .service-detail-surface {
  filter: none !important;
  transition:
    opacity .20s ease-out,
    transform .27s cubic-bezier(.2,.84,.24,1),
    border-color .22s ease,
    box-shadow .26s cubic-bezier(.2,.84,.24,1);
}

.service-detail-origin {
  transition:
    left .24s cubic-bezier(.2,.84,.24,1),
    opacity .15s ease,
    transform .22s cubic-bezier(.2,.84,.24,1);
}

.service-detail-content {
  transition:
    opacity .18s ease-out,
    transform .22s cubic-bezier(.2,.84,.24,1);
}

.service-detail-columns > div,
.service-detail-columns > div:first-child,
.service-detail-columns > div:last-child {
  transition:
    opacity .19s ease-out,
    transform .24s cubic-bezier(.2,.84,.24,1),
    border-color .20s ease,
    background .20s ease;
}

.service-detail-rail.is-open:not(.is-refreshing) .service-detail-columns > div {
  transition-delay: 0ms !important;
}

#serviceExplorer.is-changing-service .service-capability.is-expanded {
  transition:
    translate .22s cubic-bezier(.2,.84,.24,1),
    border-color .18s ease,
    background .20s ease,
    box-shadow .22s ease;
}

/* Navigation should follow the user, not visibly trail behind them. */
.nav-indicator {
  transition:
    transform .30s cubic-bezier(.2,.82,.2,1),
    width .28s cubic-bezier(.2,.82,.2,1),
    opacity .18s ease;
}

/* Do not reserve GPU layers for decorations that are static most of the time. */
.hero-ambient,
.service-capability,
.motion-ready .reveal-block {
  will-change: auto !important;
}

/* V80 — INSTANT CROSS-ROW SERVICE HANDOVER
   Top ↔ bottom detail swaps now overlap immediately with no perceptible pause. */
.service-detail-rail.is-cross-row-leaving {
  transition:
    grid-template-rows .11s cubic-bezier(.42,0,.72,.28),
    opacity .08s ease-in,
    border-color .10s ease;
}

.service-detail-rail.is-cross-row-leaving .service-detail-surface {
  transition:
    opacity .065s ease-in,
    transform .10s cubic-bezier(.42,0,.72,.28);
}

.service-detail-rail.is-cross-row-leaving .service-detail-content {
  transition:
    opacity .06s ease-in,
    transform .08s ease-in;
}

.service-detail-rail.is-cross-row-entering {
  transition:
    grid-template-rows .18s cubic-bezier(.18,.86,.22,1),
    opacity .10s ease-out,
    border-color .14s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-surface {
  transition:
    opacity .14s ease-out,
    transform .20s cubic-bezier(.18,.86,.22,1),
    border-color .16s ease,
    box-shadow .20s ease;
}

.service-detail-rail.is-cross-row-entering .service-detail-content {
  transition:
    opacity .13s ease-out,
    transform .17s cubic-bezier(.18,.86,.22,1);
}

.service-detail-rail.is-cross-row-entering .service-detail-columns > div {
  transition:
    opacity .15s ease-out,
    transform .19s cubic-bezier(.18,.86,.22,1),
    border-color .16s ease,
    background .16s ease;
}


/* V82 — INSTRUMENT SANS / FINAL MICRO-PERFORMANCE REFINE
   Keep the established visual hierarchy while adapting tracking to the
   tighter grotesk metrics of Instrument Sans. Runtime changes live in
   index.html and only pause work that is not visible. */

body {
  font-family: "Instrument Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.brand {
  letter-spacing: -.034em;
}

.hero h1 {
  line-height: 1.03;
  letter-spacing: -.046em;
}

.hero .eyebrow {
  letter-spacing: .055em;
}

.hero-lead {
  line-height: 1.68;
  letter-spacing: -.004em;
}

.section-intro h2,
.consulting-copy h2,
.industries-intro h2,
.contact-panel h2 {
  letter-spacing: -.033em;
}

.process-item h3 {
  letter-spacing: -.016em;
}

.partnership-intro h2 {
  letter-spacing: -.029em;
}

.audit-ready-copy h2 {
  letter-spacing: -.031em;
}

.contact-panel .contact-intro h2 {
  letter-spacing: -.031em;
}

/* V83 — FINAL MOTION TRIM
   Keep purposeful interaction motion, remove perpetual decorative work that
   is barely visible and competes with first-load / scroll responsiveness. */

/* Hero keeps one subtle breathing layer; the rest of the decorative field is static. */
.hero-dot-field,
.field-haze,
.hero-ambient-a,
.hero-ambient-b {
  animation: none !important;
}

/* Preserve the intended static resting look after removing the loops. */
.hero-dot-field {
  opacity: .54;
}

.field-haze {
  opacity: .78;
  transform: none;
}

.hero-ambient-a {
  opacity: .29;
  transform: none;
}

.hero-ambient-b {
  opacity: .30;
  transform: none;
}

/* Service cards keep their designed offsets but no longer drift forever. */
#serviceExplorer .service-capability[data-service-card="consulting"],
#serviceExplorer .service-capability[data-service-card="development"],
#serviceExplorer .service-capability[data-service-card="data"],
#serviceExplorer .service-capability[data-service-card="support"] {
  animation: none !important;
}

/* The orbit is static at rest and only animates while the route approaches. */
.method-dot-orbit {
  animation: none !important;
  transform: rotate(0deg);
}

.method-node.is-route-approaching .method-dot-orbit {
  animation: methodOrbitIdle 3.9s linear infinite !important;
}

.method-node.is-route-active .method-dot-orbit {
  animation: none !important;
}

/* Remove the subliminal recurring panel sweep; hover/state feedback remains. */
.consulting-panel::after {
  animation: none !important;
  opacity: 0;
}


/* ============================================================
   V84 — multilingual toolbar / language switcher
   Isolated from page motion and content layout.
   ============================================================ */
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 3;
}

.language-switcher {
  position: relative;
  flex: 0 0 auto;
  font-size: 11px;
  color: rgba(239, 240, 244, .82);
}

.language-switcher summary {
  list-style: none;
  height: 34px;
  min-width: 68px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  cursor: pointer;
  background: rgba(12,15,24,.24);
  transition: border-color .18s ease, background .18s ease, color .18s ease;
  user-select: none;
}
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary::marker { content: ''; }
.language-switcher summary:hover,
.language-switcher[open] summary {
  color: #fff;
  border-color: rgba(174,150,255,.25);
  background: rgba(24,27,39,.46);
}
.language-current { font-weight: 650; letter-spacing: .04em; }
.language-flag {
  flex: 0 0 auto;
  width: 18px;
  height: 12px;
  display: block;
  border-radius: 1.5px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255,255,255,.13);
}
.language-option {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.language-chevron {
  font-size: 11px;
  line-height: 1;
  opacity: .58;
  transform: translateY(-1px);
  transition: transform .18s ease, opacity .18s ease;
}
.language-switcher[open] .language-chevron { transform: translateY(1px) rotate(180deg); opacity: .86; }

.language-menu {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  width: 174px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 8px;
  background: rgba(10,13,20,.96);
  box-shadow: 0 18px 50px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.025);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
  backdrop-filter: blur(12px) saturate(115%);
}
.language-menu a {
  min-height: 34px;
  padding: 0 9px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: rgba(239,240,244,.72);
  transition: color .16s ease, background .16s ease;
}
.language-menu a:hover,
.language-menu a:focus-visible {
  color: #fff;
  background: rgba(148,119,255,.09);
  outline: none;
}
.language-menu a[aria-current="page"] {
  color: #fff;
  background: rgba(148,119,255,.12);
}
.language-menu small {
  color: rgba(174,150,255,.72);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .06em;
}

/* v83 targeted the CTA as a direct header child; v84 groups CTA + language control. */
.site-header > .header-actions { position: relative; z-index: 3; }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; }
  .header-actions { gap: 8px; }
  .language-switcher summary { min-width: 66px; height: 34px; padding-inline: 9px; }
}

@media (max-width: 640px) {
  .header-actions { gap: 6px; }
  .language-switcher summary { min-width: 64px; height: 34px; padding-inline: 8px; }
  .language-menu { width: 164px; }
  html[lang="hr"] .header-cta { padding-inline: 11px; }
  html[lang="de"] .header-cta { padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .language-switcher summary,
  .language-chevron,
  .language-menu a { transition: none; }
}


/* V87 — compact company context inside Partnership.
   A quiet full-width trust band keeps the delivery narrative intact while
   adding provenance, experience and long-term partnership context. */
.partnership-about {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(190px, .74fr) minmax(0, 1.26fr);
  gap: 58px;
  margin-top: 2px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.065);
}

.partnership-about-label .eyebrow {
  margin: 1px 0 0;
  color: #a994ef;
}

.partnership-about-copy {
  margin: 0;
  max-width: 760px;
  color: #b6bdc7;
  font-size: 12.55px;
  line-height: 1.68;
  font-weight: 500;
}

@media (max-width: 980px) {
  .partnership-about {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 4px;
    padding-top: 17px;
  }

  .partnership-about-copy {
    max-width: 680px;
  }
}

@media (max-width: 640px) {
  .partnership-about {
    padding-top: 15px;
  }

  .partnership-about-copy {
    font-size: 12.25px;
    line-height: 1.64;
  }
}

/* Keep the new trust row compact rather than inheriting the original
   two-column gap as a large vertical row gap. */
.partnership-intro {
  column-gap: 58px;
  row-gap: 20px;
}

.partnership-about {
  grid-template-columns: minmax(260px, .74fr) minmax(0, 1.26fr);
}

@media (max-width: 980px) {
  .partnership-intro {
    row-gap: 17px;
  }

  .partnership-about {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .partnership-intro {
    row-gap: 14px;
  }
}


/* V89 — LEGAL / CONTACT FOOTER: READABILITY REFINE */
.footer-main--expanded {
  align-items: flex-start;
}

.footer-details {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(180px, .72fr) minmax(170px, .62fr);
  gap: clamp(28px, 4vw, 68px);
  padding: 27px 0 25px;
  border-bottom: 1px solid var(--line);
}

.footer-detail-group {
  min-width: 0;
}

.footer-detail-group h3 {
  margin: 0 0 10px;
  color: rgba(244, 246, 251, .88);
  font-size: 10px;
  font-weight: 620;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.footer-detail-group p {
  margin: 0;
  color: #a8b0bc;
  font-size: 11.1px;
  line-height: 1.68;
}

.footer-detail-group p:first-of-type {
  color: #d2d7df;
}

.footer-detail-group a {
  color: #c4cad3;
  text-decoration: none;
  transition: color 160ms ease;
}

.footer-detail-group a:hover {
  color: #f0f2f7;
}

.footer-detail-group--contact p {
  line-height: 1.9;
}

.footer-bottom {
  gap: 28px;
}

@media (max-width: 900px) {
  .footer-details {
    grid-template-columns: 1fr 1fr;
  }
  .footer-detail-group:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .footer-details {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 23px 0;
  }
  .footer-detail-group:first-child {
    grid-column: auto;
  }
  .footer-bottom {
    padding-top: 17px;
  }
}


/* V90 — Who we are precedes the Partnership delivery narrative. */
.partnership-about {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 20px;
  border-top: 0;
  border-bottom: 1px solid rgba(255,255,255,.065);
}
@media (max-width: 980px) {
  .partnership-about {
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 17px;
  }
}
@media (max-width: 640px) {
  .partnership-about {
    padding-top: 0;
    padding-bottom: 15px;
  }
}

/* V91 — ownership statement micro-layout refine.
   Keep the English promise as one clean line on wide screens and give the
   supporting paragraph a little more horizontal separation. */
@media (min-width: 1181px) {
  .service-ownership {
    grid-template-columns: minmax(450px, .9fr) minmax(0, 1.1fr);
    gap: 44px;
  }

  html[lang="en"] .service-ownership-copy h3 {
    max-width: none;
    white-space: nowrap;
    font-size: clamp(24px, 1.72vw, 30px);
  }

  .service-ownership-summary {
    margin-left: 14px;
    max-width: 710px;
  }
}


/* V93 — secondary-copy readability refine.
   Instrument Sans stays visually quiet, but supporting text should never feel
   cramped, half-bold or too dim at normal laptop viewing distance. */
.partnership-about-copy {
  color: #c3c9d1;
  font-size: 13.25px;
  line-height: 1.76;
  font-weight: 450;
  letter-spacing: -.002em;
}

.method-node small {
  color: #aeb5bf;
  font-size: 12.45px;
  line-height: 1.62;
  font-weight: 450;
}

.method-ai-inline small,
.method-automation small {
  color: #adb4be;
  font-size: 11.15px;
  line-height: 1.58;
  font-weight: 450;
}

.audit-ready-copy > p:not(.eyebrow) {
  color: #c2c8d0;
  font-size: 13.2px;
  line-height: 1.74;
  font-weight: 450;
}

.audit-capability p {
  color: #c0c6ce;
  font-size: 12.45px;
  line-height: 1.62;
  font-weight: 450;
}

.service-detail-columns p {
  color: #c0c6ce;
  font-size: 12.55px;
  line-height: 1.72;
  font-weight: 450;
}

.compact-diagnostic .fit-diagnostic-item p,
.partnership-diagnostic .fit-diagnostic-item p {
  color: #cbd0d7;
  font-weight: 480;
}

.partnership-intro-copy .partnership-intro-continuity {
  color: #bac1ca;
  font-size: 12.55px;
  line-height: 1.68;
  font-weight: 450;
}

@media (max-width: 640px) {
  .partnership-about-copy {
    font-size: 13px;
    line-height: 1.72;
  }

  .method-node small {
    font-size: 12.25px;
  }
}

/* V94 — FINAL CONTACT ANCHOR / SUBMIT TYPOGRAPHY FIX
   Match the proven Services anchor clearance so the curved fixed header
   never overlaps the visible Contact panel. */
#contact {
  scroll-margin-top: 138px;
}

/* Keep the contact CTA calm and legible in Instrument Sans. */
.contact-panel .contact-submit {
  min-width: 146px;
  height: 43px;
  padding-inline: 19px;
  gap: 12px;
  font-size: 12.5px;
  line-height: 1;
  font-weight: 520;
  letter-spacing: .012em;
}

.contact-panel .contact-submit > span {
  font-size: 15px;
  line-height: 1;
  font-weight: 500;
}

@media (max-width: 1180px) {
  #contact {
    scroll-margin-top: 128px;
  }
}

@media (max-width: 980px) {
  #contact {
    scroll-margin-top: 108px;
  }
}

@media (max-width: 640px) {
  #contact {
    scroll-margin-top: 90px;
  }

  .contact-panel .contact-submit {
    min-width: 140px;
    height: 42px;
    font-size: 12.25px;
  }
}

/* V95 — MOBILE OWNERSHIP COMPOSITION FIX
   The desktop ownership promise is intentionally wide. On phones it becomes
   a calm stacked statement instead of inheriting desktop-like compression. */
@media (max-width: 640px) {
  .service-ownership {
    grid-template-columns: minmax(0, 1fr);
    gap: 17px;
    padding: 24px 22px 26px;
  }

  .service-ownership-copy,
  .service-ownership-summary {
    min-width: 0;
    width: 100%;
  }

  .service-ownership-copy .eyebrow {
    margin-bottom: 9px;
  }

  .service-ownership-copy h3,
  html[lang="en"] .service-ownership-copy h3 {
    max-width: 100%;
    margin: 0;
    white-space: normal;
    font-size: clamp(21px, 6.25vw, 23px);
    line-height: 1.23;
    font-weight: 520;
    letter-spacing: -.026em;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .service-ownership-copy h3 span {
    display: block;
    margin-top: .08em;
  }

  .service-ownership-summary {
    max-width: none;
    margin: 0;
    color: #c2c8d0;
    font-size: 13px;
    line-height: 1.74;
    font-weight: 450;
    letter-spacing: -.001em;
    text-wrap: pretty;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}

@media (max-width: 380px) {
  .service-ownership {
    padding-inline: 20px;
  }

  .service-ownership-copy h3,
  html[lang="en"] .service-ownership-copy h3 {
    font-size: 21px;
  }
}

/* V96 — MOBILE ALIGNMENT CONSISTENCY FIX
   Mobile only: normalize audit markers 01–04 to one shared axis and remove
   the desktop corner/right-alignment behavior from Method step 03. */
@media (max-width: 640px) {
  .audit-capabilities {
    grid-template-columns: minmax(0, 1fr);
  }

  .audit-capability,
  .audit-capability:nth-child(1),
  .audit-capability:nth-child(2),
  .audit-capability:nth-child(3),
  .audit-capability:nth-child(4) {
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 10px;
    padding-inline: 0;
    margin-inline: 0;
  }

  .audit-capability .audit-mark {
    display: block;
    width: 34px;
    min-width: 34px;
    margin: 0;
    padding: 0;
    justify-self: start;
    align-self: start;
    text-align: left;
    transform: none;
  }

  .method-node.method-node-corner[data-step="3"] {
    display: block;
    align-items: initial;
    justify-self: auto;
    text-align: left;
  }

  .method-node.method-node-corner[data-step="3"] .method-dot {
    align-self: auto;
  }

  .method-node.method-node-corner[data-step="3"] strong,
  .method-node.method-node-corner[data-step="3"] small {
    margin-left: 0;
    max-width: none;
    text-align: left;
  }
}
