/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/services/services.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************/
/* ==========================================================================
   /services — page-scoped styles (CSS module).

   Nothing here leaks: every selector is a hashed module class, so the global
   stylesheets, header, footer and every other page are untouched. Global
   element rules (p margins, ul padding, mobile h1/h2 sizes) are overridden
   by these class selectors where they would otherwise bleed in.
   ========================================================================== */

.services_page___Rw_y {
  --ink: #0f0a2e;
  --ink-2: #2a2547;
  --text: #4a4664;
  --muted: #6b6785;
  --line: rgba(24, 14, 74, 0.09);
  --line-strong: rgba(24, 14, 74, 0.14);
  --brand: #2e008b;
  --violet: #6d28d9;
  --violet-2: #7c3aed;
  --orange: #ff6900;
  --tint: #f7f5fe;
  --ease: cubic-bezier(0.22, 0.7, 0.18, 1);
  --shadow-sm: 0 1px 2px rgba(20, 12, 60, 0.05), 0 6px 20px -14px rgba(20, 12, 60, 0.22);
  --shadow-md: 0 2px 6px rgba(20, 12, 60, 0.04), 0 22px 48px -26px rgba(30, 16, 90, 0.34);
  --shadow-lg: 0 40px 90px -46px rgba(46, 0, 139, 0.45);

  position: relative;
  color: var(--ink);
  background: linear-gradient(180deg, #faf9ff 0%, #ffffff 34%, #ffffff 70%, #faf9ff 100%);
  overflow: hidden;
}

/* Accent tokens, picked up by cards, legend dots and trust icons. Text uses
   --a-strong (AA on white and as white-on-fill); --a is the bright accent. */
.services_page___Rw_y [data-accent="violet"] { --a: #7c3aed; --a-strong: #5b21b6; --a-soft: #f4f0ff; --a-soft-2: #e6dcff; --a-glow: rgba(124, 58, 237, 0.34); }
.services_page___Rw_y [data-accent="orange"] { --a: #ff6900; --a-strong: #b03b00; --a-soft: #fff4ec; --a-soft-2: #ffe0c9; --a-glow: rgba(255, 105, 0, 0.3); }
.services_page___Rw_y [data-accent="teal"]   { --a: #0d9488; --a-strong: #0a6b62; --a-soft: #ebf8f6; --a-soft-2: #cdeee8; --a-glow: rgba(13, 148, 136, 0.3); }
.services_page___Rw_y [data-accent="amber"]  { --a: #f59e0b; --a-strong: #94540a; --a-soft: #fff8ea; --a-soft-2: #fde9c4; --a-glow: rgba(245, 158, 11, 0.32); }
.services_page___Rw_y [data-accent="pink"]   { --a: #e11d74; --a-strong: #a3134f; --a-soft: #fdf0f6; --a-soft-2: #fbd7e7; --a-glow: rgba(225, 29, 116, 0.28); }
.services_page___Rw_y [data-accent="blue"]   { --a: #2563eb; --a-strong: #1d4ed8; --a-soft: #f0f5ff; --a-soft-2: #d8e4ff; --a-glow: rgba(37, 99, 235, 0.28); }

/* ── shared type ──────────────────────────────────────────────────────── */
.services_kicker__kZkj1,
.services_kickerLight__Am6Hk {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--violet);
}

.services_kicker__kZkj1::before,
.services_kickerLight__Am6Hk::before {
  content: "";
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--brand), var(--violet-2));
}

.services_kickerLight__Am6Hk { color: #d9ccff; }
.services_kickerLight__Am6Hk::before { background: linear-gradient(90deg, #ffffff, #b9a2fb); }

.services_h2__8ibXT {
  text-wrap: balance;
  margin: 14px 0 14px;
  font-size: clamp(1.75rem, 1.15rem + 1.9vw, 2.65rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.032em;
  color: var(--ink);
}

.services_h2__8ibXT span { color: var(--violet); }

.services_h3__RSJg8 {
  text-wrap: balance;
  margin: 10px 0 8px;
  font-size: clamp(1.35rem, 1.05rem + 0.9vw, 1.8rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--ink);
}

.services_lead__7EGyz {
  text-wrap: pretty;
  margin: 0;
  max-width: 640px;
  font-size: 1.04rem;
  line-height: 1.7;
  color: var(--text);
}

.services_sectionHead__24LFa { max-width: 760px; }

.services_sectionHead__24LFa.services_centered__1hpHx {
  margin: 0 auto;
  text-align: center;
}

.services_sectionHead__24LFa.services_centered__1hpHx .services_lead__7EGyz { margin: 0 auto; }

/* ── buttons ──────────────────────────────────────────────────────────── */
.services_btnPrimary___tKN3,
.services_btnSecondary__DOrwU,
.services_btnLight__mf2Jg,
.services_btnOutlineLight__6UCDA {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 24px;
  border-radius: 14px;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background-color 0.25s var(--ease),
    border-color 0.25s var(--ease), color 0.25s var(--ease);
}

.services_btnPrimary___tKN3 svg,
.services_btnLight__mf2Jg svg { transition: transform 0.25s var(--ease); }

.services_btnPrimary___tKN3 {
  color: #fff;
  background: linear-gradient(180deg, #3d0db3 0%, #2e008b 100%);
  box-shadow: 0 14px 28px -14px rgba(46, 0, 139, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.services_btnPrimary___tKN3:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 20px 34px -16px rgba(46, 0, 139, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.services_btnPrimary___tKN3:hover svg,
.services_btnLight__mf2Jg:hover svg { transform: translateX(3px); }

.services_btnSecondary__DOrwU {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--line-strong);
  box-shadow: var(--shadow-sm);
}

.services_btnSecondary__DOrwU svg { color: var(--violet); }

.services_btnSecondary__DOrwU:hover {
  color: var(--brand);
  border-color: rgba(124, 58, 237, 0.45);
  transform: translateY(-2px);
}

.services_btnPrimary___tKN3:focus-visible,
.services_btnSecondary__DOrwU:focus-visible,
.services_btnLight__mf2Jg:focus-visible,
.services_btnOutlineLight__6UCDA:focus-visible {
  outline: 3px solid rgba(124, 58, 237, 0.45);
  outline-offset: 3px;
}

/* ── hero ─────────────────────────────────────────────────────────────── */
.services_hero__O822B {
  position: relative;
  padding: 26px 0 128px;
  isolation: isolate;
}

.services_heroBg__0ERLn {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(42% 60% at 78% 38%, rgba(124, 58, 237, 0.16) 0%, rgba(124, 58, 237, 0) 70%),
    radial-gradient(30% 40% at 8% 92%, rgba(255, 105, 0, 0.08) 0%, rgba(255, 105, 0, 0) 70%),
    linear-gradient(180deg, #f6f3ff 0%, #fbfaff 60%, rgba(255, 255, 255, 0) 100%);
}

/* Engineering-paper grid, faded out toward the edges. */
.services_heroBg__0ERLn::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(46, 0, 139, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46, 0, 139, 0.055) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(70% 80% at 62% 40%, #000 0%, transparent 78%);
  mask-image: radial-gradient(70% 80% at 62% 40%, #000 0%, transparent 78%);
}

.services_heroInner__iqZ6o {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 56px;
  align-items: center;
}

/* The headline is sized from this column (cqi), so "Real-World Products"
   always fits on one line at every width; vw is the fallback. */
.services_heroCopy__VvBkW { container-type: inline-size; }

.services_heroCopy__VvBkW > * {
  animation: services_rise__GTv4K 0.8s var(--ease) both;
}

.services_heroCopy__VvBkW > *:nth-child(2) { animation-delay: 0.06s; }
.services_heroCopy__VvBkW > *:nth-child(3) { animation-delay: 0.12s; }
.services_heroCopy__VvBkW > *:nth-child(4) { animation-delay: 0.18s; }
.services_heroCopy__VvBkW > *:nth-child(5) { animation-delay: 0.24s; }
.services_heroCopy__VvBkW > *:nth-child(6) { animation-delay: 0.3s; }

.services_crumbs__OvcDe {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 30px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--muted);
}

.services_crumbs__OvcDe a {
  color: var(--muted);
  text-decoration: none;
  transition: color 0.2s ease;
}

.services_crumbs__OvcDe a:hover { color: var(--brand); }

.services_crumbs__OvcDe span[aria-hidden] { opacity: 0.5; }

.services_crumbs__OvcDe span[aria-current] { color: var(--brand); }

.services_eyebrow__Dq_sh {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px 7px 10px;
  border: 1px solid rgba(124, 58, 237, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 4px 14px -8px rgba(46, 0, 139, 0.3);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--brand);
}

.services_eyebrow__Dq_sh i {
  position: relative;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7c3aed, #2e008b);
}

.services_eyebrow__Dq_sh i::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(124, 58, 237, 0.35);
  animation: services_ping__tGlds 2.4s var(--ease) infinite;
}

.services_heroTitle__Q0zJO {
  margin: 22px 0 20px;
  font-size: clamp(2.1rem, 1.2rem + 3vw, 3.7rem);
  font-size: clamp(1.7rem, 9.6cqi, 4.1rem);
  font-weight: 800;
  line-height: 1.03;
  letter-spacing: -0.042em;
  color: var(--ink);
}

.services_heroTitle__Q0zJO span {
  display: block;
  padding-bottom: 0.06em;
  background: linear-gradient(95deg, #2e008b 0%, #6d28d9 52%, #9b5cf6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.services_heroLead__6kf65 {
  margin: 0;
  max-width: 540px;
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--text);
}

.services_heroActions__9PMlT {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.services_heroFacts__sC_ju {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

.services_heroFacts__sC_ju li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink-2);
}

.services_heroFacts__sC_ju li span {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #2e008b);
}

.services_heroVisual__6xBbO {
  position: relative;
  animation: services_rise-in__07WXv 1s var(--ease) 0.1s both;
}

.services_stage__2dFE3 {
  position: relative;
  aspect-ratio: 4 / 3.25;
  border-radius: 32px;
  background:
    radial-gradient(70% 62% at 52% 46%, #ffffff 0%, rgba(255, 255, 255, 0) 70%),
    linear-gradient(160deg, #f7f4ff 0%, #ece5ff 100%);
  border: 1px solid rgba(124, 58, 237, 0.14);
  box-shadow: var(--shadow-lg), inset 0 1px 0 #ffffff;
}

.services_stage__2dFE3::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: radial-gradient(rgba(91, 33, 182, 0.2) 1px, transparent 1.4px);
  background-size: 20px 20px;
  -webkit-mask-image: radial-gradient(60% 60% at 50% 50%, #000 0%, transparent 85%);
  mask-image: radial-gradient(60% 60% at 50% 50%, #000 0%, transparent 85%);
  opacity: 0.5;
}

.services_stageRing__h_P8e {
  position: absolute;
  left: 9%;
  right: 9%;
  top: 14%;
  bottom: 10%;
  border-radius: 50%;
  border: 1px dashed rgba(124, 58, 237, 0.22);
}

.services_heroImg__M6EF_ {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Floating order chips — the online flow, told over the product. */
.services_chip__ukIue {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 18px 36px -18px rgba(30, 16, 90, 0.45), 0 2px 6px rgba(30, 16, 90, 0.06);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  font-size: 0.8rem;
  color: var(--ink);
  animation: services_float__Om_d2 7s ease-in-out infinite;
}

.services_chipFile__HLst4 { top: 7%; left: -5%; }
.services_chipSpec__b4Y2p { top: 13%; right: -4%; flex-direction: column; align-items: stretch; gap: 6px; min-width: 168px; animation-delay: -2.4s; }
.services_chipPrice__24wf6 { bottom: 7%; left: 4%; animation-delay: -4.6s; }

.services_chipIcon__XuGxe {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: var(--violet);
  background: #f1ebff;
}

.services_chipText__Xru8X {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.services_chipText__Xru8X strong { font-size: 0.82rem; font-weight: 700; }
.services_chipText__Xru8X small { font-size: 0.72rem; color: var(--muted); }

.services_chipOk__MR81h {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  margin-left: 4px;
  border-radius: 50%;
  color: #fff;
  background: #16a34a;
}

.services_chipHead__bCIFZ {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--violet);
}

.services_chipRow__BL2xU {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.services_chipRow__BL2xU small { font-size: 0.72rem; color: var(--muted); }
.services_chipRow__BL2xU strong { font-size: 0.8rem; font-weight: 700; }

.services_chipLive__GVDBt {
  width: 10px;
  height: 10px;
  margin: 0 2px 0 4px;
  border-radius: 50%;
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.16);
}

.services_chipBtn__XcI7h {
  margin-left: 6px;
  padding: 8px 12px;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(180deg, #7c3aed, #5b21b6);
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

/* ── trust strip ──────────────────────────────────────────────────────── */
.services_trust__0oVBL {
  position: relative;
  z-index: 3;
  margin-top: -66px;
}

.services_trustInner__DA1Cz {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 8px;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow-md);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.services_trustItem__fuBt0 {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
}

.services_trustItem__fuBt0 + .services_trustItem__fuBt0::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24%;
  bottom: 24%;
  width: 1px;
  background: var(--line-strong);
}

.services_trustIcon__1T18I {
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(140deg, var(--a), var(--a-strong));
  box-shadow: 0 10px 20px -10px var(--a-glow);
  transition: transform 0.3s var(--ease);
}

.services_trustItem__fuBt0:hover .services_trustIcon__1T18I { transform: translateY(-2px) rotate(-4deg); }

.services_trustText__JMrAw {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.services_trustText__JMrAw strong {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
}

.services_trustText__JMrAw span {
  font-size: 0.83rem;
  color: var(--muted);
}

/* ── how it works ─────────────────────────────────────────────────────── */
.services_platform__lvEh8 { padding: 96px 0 8px; }

.services_steps__p4kO0 {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  margin: 48px 0 0;
  padding: 34px 26px 30px;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 28px;
  background:
    radial-gradient(60% 120% at 50% 0%, rgba(124, 58, 237, 0.06) 0%, rgba(124, 58, 237, 0) 70%),
    #ffffff;
  box-shadow: var(--shadow-sm);
}

/* The track the steps sit on. */
.services_steps__p4kO0::before {
  content: "";
  position: absolute;
  top: 66px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: repeating-linear-gradient(90deg, rgba(124, 58, 237, 0.4) 0 6px, transparent 6px 13px);
}

.services_step__C_2_Q {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 6px;
}

.services_stepIcon__47kTw {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin-bottom: 16px;
  border-radius: 20px;
  color: var(--violet);
  background: #ffffff;
  border: 1px solid rgba(124, 58, 237, 0.2);
  box-shadow: 0 0 0 6px #ffffff, 0 14px 26px -16px rgba(46, 0, 139, 0.55);
  transition: transform 0.35s var(--ease), color 0.35s var(--ease), background-color 0.35s var(--ease);
}

.services_step__C_2_Q:hover .services_stepIcon__47kTw {
  transform: translateY(-3px);
  color: #fff;
  background: linear-gradient(140deg, #7c3aed, #2e008b);
}

.services_stepNum__lCtJn {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--violet);
}

.services_stepTitle___mycT {
  margin: 4px 0 6px;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.services_stepText__6El8t {
  max-width: 200px;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--muted);
}

/* ── services ─────────────────────────────────────────────────────────── */
.services_services__y2o1L {
  padding: 96px 0 24px;
  scroll-margin-top: 12px;
}

.services_servicesHead__6O37J {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 36px;
}

.services_servicesHead__6O37J .services_lead__7EGyz { max-width: 600px; }

.services_headLink__56w7V {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  padding: 10px 0;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--brand);
  text-decoration: none;
}

.services_headLink__56w7V svg {
  rotate: 90deg;
  transition: translate 0.25s var(--ease);
}

.services_headLink__56w7V:hover { color: var(--violet); }
.services_headLink__56w7V:hover svg { translate: 0 2px; }

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

.services_coreGrid__n7cDe > [data-variant="featured"] { grid-column: span 2; }

.services_processBlock__olhz5 {
  margin-top: 88px;
  scroll-margin-top: 12px;
}

.services_processHead__6VhSZ {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.services_processHead__6VhSZ .services_lead__7EGyz { max-width: 560px; }

.services_legend__zHCqV {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.services_legend__zHCqV li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: capitalize;
  color: var(--ink-2);
}

.services_legend__zHCqV i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--a);
  box-shadow: 0 0 0 3px var(--a-soft-2);
}

.services_processGrid__fDbbe {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

/* ── card ─────────────────────────────────────────────────────────────── */
.services_card__zQwRT {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #ffffff;
  box-shadow: var(--shadow-sm);
  color: var(--ink);
  text-decoration: none;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}

.services_card__zQwRT:hover {
  color: var(--ink);
  transform: translateY(-6px);
  border-color: rgba(24, 14, 74, 0.16);
  border-color: color-mix(in srgb, var(--a) 34%, transparent);
  box-shadow: 0 2px 6px rgba(20, 12, 60, 0.05), 0 34px 60px -32px rgba(30, 16, 90, 0.45);
  box-shadow: 0 2px 6px rgba(20, 12, 60, 0.05), 0 34px 60px -30px var(--a-glow);
}

.services_card__zQwRT:focus-visible {
  outline: 3px solid var(--a);
  outline-offset: 3px;
}

.services_media__odqeE {
  position: relative;
  display: block;
  flex: none;
  overflow: hidden;
  aspect-ratio: 16 / 10.5;
  border-radius: 18px;
  background:
    radial-gradient(60% 70% at 50% 52%, #ffffff 0%, rgba(255, 255, 255, 0) 72%),
    linear-gradient(165deg, var(--a-soft) 0%, var(--a-soft-2) 100%);
  isolation: isolate;
}

/* Dot grid on the stage, faded at the edges. */
.services_media__odqeE::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(color-mix(in srgb, var(--a) 30%, transparent) 1px, transparent 1.4px);
  background-size: 18px 18px;
  -webkit-mask-image: radial-gradient(70% 70% at 50% 50%, #000 0%, transparent 80%);
  mask-image: radial-gradient(70% 70% at 50% 50%, #000 0%, transparent 80%);
  opacity: 0.55;
}

/* Displays keep one aspect across a row so titles line up; a shorter card's
   slack sits above its footer. */
.services_foot__AEXGl { margin-top: auto; }

/* ── service display: a small "machine screen" inside the media panel ──────
   Status dots and a readout on top, a live schematic of the service in the
   middle, a caption under it. Drawn in code, so it needs no image request. */
.services_device__HCCjd {
  position: absolute;
  inset: 7% 6% 15.5%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 14px;
  background: #fdfcff;
  border: 1px solid rgba(24, 14, 74, 0.08);
  border-color: color-mix(in srgb, var(--a) 22%, rgba(24, 14, 74, 0.08));
  box-shadow: 0 22px 44px -30px rgba(30, 16, 90, 0.55), 0 2px 6px rgba(30, 16, 90, 0.05), inset 0 1px 0 #ffffff;
  transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease);
}

.services_card__zQwRT:hover .services_device__HCCjd {
  transform: translateY(-3px);
  box-shadow: 0 28px 50px -30px var(--a-glow), 0 2px 6px rgba(30, 16, 90, 0.05), inset 0 1px 0 #ffffff;
}

.services_deviceBar__Sw4li {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
  padding: 8px 11px;
  border-bottom: 1px solid rgba(24, 14, 74, 0.06);
}

.services_deviceBar__Sw4li i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--a);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--a) 18%, transparent);
}

.services_deviceBar__Sw4li i + i {
  background: rgba(24, 14, 74, 0.14);
  box-shadow: none;
}

.services_readout__TaIRM {
  margin-left: auto;
  overflow: hidden;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--a-strong);
}

.services_caption____z9M {
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 5.5%;
  overflow: hidden;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--a-strong);
  color: color-mix(in srgb, var(--a-strong) 80%, #0b0620);
}

/* ── schematic drawing primitives ─────────────────────────────────────── */
.services_schem__5A69D {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  padding: 4px 8px 8px;
  overflow: visible;
}

.services_schem__5A69D text {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 600;
  letter-spacing: 0.08em;
  fill: rgba(30, 22, 70, 0.66);
}

/* ink line, faint guide line, accent line */
.services_ln__dAngB { stroke: rgba(30, 22, 70, 0.6); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.services_lnSoft__KCele { stroke: rgba(30, 22, 70, 0.2); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.services_lnAcc__ZXAdb { stroke: var(--a); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
/* Lines are unfilled unless the element sets its own fill attribute — a CSS
   fill would otherwise override the attribute. :where() keeps this at the
   same weight as the face classes below, so those still win. */
:where(.services_ln__dAngB, .services_lnSoft__KCele, .services_lnAcc__ZXAdb):not([fill]) { fill: none; }
.services_dash__qWrKm { stroke-dasharray: 3 4; }
.services_face__dDffn { fill: #ffffff; }
.services_faceSoft__0_1Oq { fill: var(--a-soft-2); }
.services_faceTint__2O_Ec { fill: var(--a-soft); }
.services_faceAcc__fX9QA { fill: var(--a); }
.services_faceInk__nEq2M { fill: #252238; }
.services_glow__3iBNC { filter: drop-shadow(0 0 3px var(--a)) drop-shadow(0 0 6px var(--a-glow)); }

.services_newPill__IDgLF {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 11px 5px 9px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 6px 16px -8px rgba(20, 12, 60, 0.35);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--a-strong);
}

.services_newPill__IDgLF i {
  position: relative;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--a);
}

.services_newPill__IDgLF i::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1.5px solid var(--a);
  opacity: 0.5;
  animation: services_ping__tGlds 2.4s var(--ease) infinite;
}

.services_body__0PKls {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: 18px 12px 4px;
}

.services_badges___Rlvr {
  display: flex;
  align-items: center;
  gap: 10px;
}

.services_code__8ROE_ {
  padding: 4px 10px;
  border-radius: 8px;
  background: var(--a-strong);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.services_cat__1nW3s {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--a-strong);
}

.services_title__YD73w {
  text-wrap: balance;
  margin: 2px 0 0;
  font-size: 1.22rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.services_blurb__Z2rkb {
  text-wrap: pretty;
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--text);
}

.services_points__0REIf {
  display: grid;
  gap: 9px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.services_points__0REIf li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--ink-2);
}

.services_tick__3T2WM {
  flex: none;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border-radius: 50%;
  color: var(--a-strong);
  background: var(--a-soft-2);
}

.services_tags__eY1ct {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.services_tag__r22lF {
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--a-soft);
  color: var(--a-strong);
  font-size: 0.74rem;
  font-weight: 700;
}

.services_specs__kwr0U {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.services_specsLabel__0hzWG {
  margin-right: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--muted);
}

.services_spec__Sy_T8 {
  padding: 4px 8px;
  border: 1px solid var(--line-strong);
  border-radius: 7px;
  background: #fbfaff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ink-2);
}

.services_foot__AEXGl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 12px 6px;
}

.services_note__fWfVR {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  white-space: nowrap;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}

.services_note__fWfVR svg {
  flex: none;
  color: var(--a);
}

.services_cta__ibSdy {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: none;
  min-height: 44px;
  margin-left: auto;
  padding: 0 6px 0 18px;
  border-radius: 999px;
  background: var(--a-soft);
  color: var(--a-strong);
  font-size: 0.9rem;
  font-weight: 800;
  transition: background-color 0.35s var(--ease), color 0.35s var(--ease), box-shadow 0.35s var(--ease);
}

.services_ctaIcon__to5Xj {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--a-strong);
  box-shadow: 0 4px 10px -6px rgba(20, 12, 60, 0.35);
  transition: transform 0.35s var(--ease);
}

.services_card__zQwRT:hover .services_cta__ibSdy {
  background: var(--a-strong);
  color: #ffffff;
  box-shadow: 0 12px 22px -14px var(--a-glow);
}

.services_card__zQwRT:hover .services_ctaIcon__to5Xj { transform: translateX(3px); }

/* Featured: the lead service — two columns wide, artwork on the right,
   a gradient hairline border and the solid CTA. */
.services_card__zQwRT[data-variant="featured"] {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  grid-template-rows: minmax(0, 1fr) auto;
  padding: 12px;
  border: 1.5px solid transparent;
  border-radius: 28px;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    linear-gradient(135deg, rgba(124, 58, 237, 0.6), rgba(124, 58, 237, 0.1) 42%, rgba(255, 105, 0, 0.35)) border-box;
}

.services_card__zQwRT[data-variant="featured"] .services_media__odqeE {
  grid-column: 2;
  grid-row: 1 / span 2;
  aspect-ratio: auto;
  min-height: 420px;
  height: 100%;
  border-radius: 20px;
}

/* The render carries its own margin; let it fill the tall panel. */
.services_card__zQwRT[data-variant="featured"] .services_media__odqeE {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.services_card__zQwRT[data-variant="featured"] .services_device__HCCjd {
  position: relative;
  inset: auto;
  width: 80%;
  max-width: 440px;
  aspect-ratio: 1 / 1.08;
  max-height: calc(100% - 64px);
}

.services_card__zQwRT[data-variant="featured"] .services_caption____z9M {
  position: static;
  width: 88%;
}
.services_card__zQwRT[data-variant="featured"] .services_deviceBar__Sw4li { padding: 11px 14px; }
.services_card__zQwRT[data-variant="featured"] .services_readout__TaIRM,
.services_card__zQwRT[data-variant="featured"] .services_caption____z9M { font-size: 0.68rem; }

.services_card__zQwRT[data-variant="featured"] .services_body__0PKls {
  grid-column: 1;
  grid-row: 1;
  justify-content: center;
  gap: 12px;
  padding: 26px 22px 6px 24px;
}

.services_card__zQwRT[data-variant="featured"] .services_foot__AEXGl {
  grid-column: 1;
  grid-row: 2;
  padding: 18px 22px 14px 24px;
}

.services_card__zQwRT[data-variant="featured"] .services_title__YD73w {
  font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2.05rem);
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.services_card__zQwRT[data-variant="featured"] .services_blurb__Z2rkb { font-size: 0.98rem; }

.services_card__zQwRT[data-variant="featured"] .services_cta__ibSdy {
  min-height: 50px;
  padding: 0 7px 0 22px;
  color: #ffffff;
  background: linear-gradient(180deg, #7c3aed 0%, #5b21b6 100%);
  box-shadow: 0 14px 26px -14px rgba(91, 33, 182, 0.75);
}

.services_card__zQwRT[data-variant="featured"] .services_ctaIcon__to5Xj {
  width: 36px;
  height: 36px;
  color: #5b21b6;
}

.services_card__zQwRT[data-variant="featured"]:hover .services_cta__ibSdy {
  background: linear-gradient(180deg, #6d28d9 0%, #2e008b 100%);
}

.services_featuredTag__YdDd_ {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  padding: 6px 12px 6px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f4f0ff, #fff1e7);
  border: 1px solid rgba(124, 58, 237, 0.18);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5b21b6;
}

.services_featuredTag__YdDd_ svg { color: #ff6900; }

/* Compact: industrial processes — the same vertical card, a little tighter,
   so each process schematic gets the full card width. */
.services_card__zQwRT[data-variant="compact"] { border-radius: 22px; }
.services_card__zQwRT[data-variant="compact"] .services_media__odqeE { aspect-ratio: 16 / 10.4; border-radius: 16px; }

/* The screen fills the panel; no caption at this size. */
.services_card__zQwRT[data-variant="compact"] .services_device__HCCjd { inset: 7% 6%; border-radius: 12px; }
.services_card__zQwRT[data-variant="compact"] .services_schem__5A69D { padding: 4px 6px 6px; }

.services_card__zQwRT[data-variant="compact"] .services_body__0PKls { gap: 8px; padding: 16px 10px 4px; }
.services_card__zQwRT[data-variant="compact"] .services_title__YD73w { font-size: 1.1rem; }

.services_card__zQwRT[data-variant="compact"] .services_blurb__Z2rkb {
  font-size: 0.86rem;
  line-height: 1.55;
}

.services_card__zQwRT[data-variant="compact"] .services_foot__AEXGl { padding: 12px 10px 4px; }

.services_card__zQwRT[data-variant="compact"] .services_cta__ibSdy {
  min-height: 38px;
  padding: 0 4px 0 14px;
  font-size: 0.84rem;
}

.services_card__zQwRT[data-variant="compact"] .services_ctaIcon__to5Xj {
  width: 30px;
  height: 30px;
}

/* Loading placeholders. */
.services_skeleton__7WPi1 {
  pointer-events: none;
}

.services_skeleton__7WPi1 .services_media__odqeE {
  background: linear-gradient(110deg, #f2f0f8 30%, #faf9fd 50%, #f2f0f8 70%);
  background-size: 220% 100%;
  animation: services_shimmer__FFADg 1.4s linear infinite;
}

.services_skeleton__7WPi1 .services_media__odqeE::before { display: none; }

.services_skLine__Xg944 {
  display: block;
  height: 12px;
  border-radius: 6px;
  background: linear-gradient(110deg, #efedf6 30%, #f9f8fc 50%, #efedf6 70%);
  background-size: 220% 100%;
  animation: services_shimmer__FFADg 1.4s linear infinite;
}

/* ── bottom CTA ───────────────────────────────────────────────────────── */
.services_ctaBand__fvdHx { padding: 96px 0 80px; }

.services_ctaInner__HWCGN {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
  overflow: hidden;
  padding: 60px 64px;
  border-radius: 32px;
  color: #ffffff;
  background:
    radial-gradient(60% 120% at 100% 0%, rgba(255, 105, 0, 0.32) 0%, rgba(255, 105, 0, 0) 55%),
    radial-gradient(55% 120% at 0% 100%, rgba(124, 58, 237, 0.6) 0%, rgba(124, 58, 237, 0) 60%),
    linear-gradient(135deg, #1b0663 0%, #2e008b 55%, #3c10a6 100%);
  box-shadow: var(--shadow-lg);
  isolation: isolate;
}

.services_ctaGrid__3UEDY {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
  background-size: 40px 40px;
  -webkit-mask-image: radial-gradient(80% 90% at 75% 50%, #000 0%, transparent 75%);
  mask-image: radial-gradient(80% 90% at 75% 50%, #000 0%, transparent 75%);
}

.services_ctaCopy__pp0yG h2 {
  text-wrap: balance;
  margin: 14px 0 10px;
  font-size: clamp(1.65rem, 1.1rem + 1.7vw, 2.45rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: #ffffff;
}

.services_ctaCopy__pp0yG p {
  margin: 0;
  max-width: 560px;
  font-size: 1.02rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.78);
}

.services_ctaActions__bOwLu {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.services_btnLight__mf2Jg {
  color: #2e008b;
  background: #ffffff;
  box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.5);
}

.services_btnLight__mf2Jg:hover {
  color: #2e008b;
  transform: translateY(-2px);
}

.services_btnOutlineLight__6UCDA {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.32);
}

.services_btnOutlineLight__6UCDA:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.55);
}

/* ── schematic motion ────────────────────────────────────────────────────
   Runs for a few seconds after a card scrolls into view (data-live="on"),
   then holds its frame; hovering or focusing the card resumes it. Nothing
   animates unseen or indefinitely. Rotations set their pivot inline in user units;
   scale/slide helpers measure from their own box. */
.services_media__odqeE[data-live="off"] .services_schem__5A69D * { animation-play-state: paused; }
.services_card__zQwRT:hover .services_schem__5A69D *,
.services_card__zQwRT:focus-visible .services_schem__5A69D * { animation-play-state: running; }

.services_sxSlide__pdkFi { animation: services_sxSlide__pdkFi var(--dur, 3.2s) ease-in-out infinite; }
.services_sxBuild__pLvJI { animation: services_sxBuild__pLvJI 0.5s var(--ease) both; }
.services_sxPulse__mJAmb { animation: services_sxPulse__mJAmb var(--dur, 1.6s) ease-in-out infinite; }
.services_sxSpin__m_kOH { animation: services_sxSpin__m_kOH var(--dur, 4s) linear infinite; }
.services_sxTrace__hF7AH { stroke-dasharray: 100; animation: services_sxTrace__hF7AH var(--dur, 4s) linear infinite; }
.services_sxRun__FGlY9 { stroke-dasharray: 14 100; animation: services_sxRun__FGlY9 var(--dur, 2.4s) linear infinite; }
.services_sxCharge__Wd4pO { stroke-dasharray: 100; animation: services_sxCharge__Wd4pO var(--dur, 3s) ease-in-out infinite; }
/* pathLength normalises dashes in user units; a non-scaling stroke would paint
   them in screen pixels and leave rings and cuts short of complete. */
.services_sxTrace__hF7AH,
.services_sxRun__FGlY9,
.services_sxCharge__Wd4pO { vector-effect: none; }
.services_sxProgress__Kwbyz { transform-box: fill-box; transform-origin: left center; animation: services_sxProgress__Kwbyz var(--dur, 7s) var(--ease) infinite; }
.services_sxBob__iyU3z { animation: services_sxBob__iyU3z var(--dur, 3s) ease-in-out infinite; }
.services_sxDrop__vjTXT { animation: services_sxDrop__vjTXT var(--dur, 1.4s) ease-in infinite; }
.services_sxSweep__1qKD4 { animation: services_sxSweep__1qKD4 var(--dur, 3.6s) ease-in-out infinite alternate; }
.services_sxSwing__14OeF { animation: services_sxSwing__14OeF var(--dur, 2.8s) ease-in-out infinite alternate; }
.services_sxHeat__BAeFG { animation: services_sxHeat__BAeFG var(--dur, 2.2s) ease-in-out infinite; }
.services_sxTravel__dG3Yu { animation: services_sxTravel__dG3Yu var(--dur, 3s) linear infinite; }

@keyframes services_sxSlide__pdkFi {
  0%, 100% { transform: translateX(var(--from, -40px)); }
  50% { transform: translateX(var(--to, 40px)); }
}

@keyframes services_sxBuild__pLvJI {
  from { opacity: 0; transform: translateY(-5px); }
}

@keyframes services_sxPulse__mJAmb {
  0%, 100% { opacity: 0.35; }
  50% { opacity: 1; }
}

@keyframes services_sxSpin__m_kOH {
  to { transform: rotate(360deg); }
}

@keyframes services_sxTrace__hF7AH {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}

@keyframes services_sxRun__FGlY9 {
  from { stroke-dashoffset: 14; }
  to { stroke-dashoffset: -100; }
}

@keyframes services_sxCharge__Wd4pO {
  0% { stroke-dashoffset: 100; }
  60%, 100% { stroke-dashoffset: 0; }
}

@keyframes services_sxProgress__Kwbyz {
  0% { transform: scaleX(0.04); }
  85%, 100% { transform: scaleX(1); }
}

@keyframes services_sxBob__iyU3z {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(var(--lift, -5px)); }
}

@keyframes services_sxDrop__vjTXT {
  0% { transform: translateY(0); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: translateY(var(--fall, 34px)); opacity: 0; }
}

@keyframes services_sxSweep__1qKD4 {
  from { transform: translateX(0); }
  to { transform: translateX(var(--sweep, 120px)); }
}

@keyframes services_sxSwing__14OeF {
  from { transform: rotate(var(--swing-a, -14deg)); }
  to { transform: rotate(var(--swing-b, 14deg)); }
}

@keyframes services_sxTravel__dG3Yu {
  from { transform: translateX(0); }
  to { transform: translateX(var(--travel, 120px)); }
}

@keyframes services_sxHeat__BAeFG {
  0% { transform: translateY(4px); opacity: 0; }
  50% { opacity: 0.85; }
  100% { transform: translateY(-7px); opacity: 0; }
}

/* ── motion ───────────────────────────────────────────────────────────── */
@keyframes services_rise__GTv4K {
  from { opacity: 0; translate: 0 18px; }
  to { opacity: 1; translate: 0 0; }
}

@keyframes services_rise-in__07WXv {
  from { opacity: 0; scale: 0.96; translate: 0 18px; }
  to { opacity: 1; scale: 1; translate: 0 0; }
}

@keyframes services_float__Om_d2 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@keyframes services_ping__tGlds {
  0% { transform: scale(0.6); opacity: 0.9; }
  80%, 100% { transform: scale(1.8); opacity: 0; }
}

@keyframes services_shimmer__FFADg {
  to { background-position: -220% 0; }
}

@keyframes services_reveal__Z3bdt {
  from { opacity: 0; translate: 0 26px; }
  to { opacity: 1; translate: 0 0; }
}

/* Scroll reveal with no JavaScript: driven by the element's own view
   timeline where supported, absent (content simply shown) where not. It moves
   `translate`, not `transform`, so it never fights the hover lift. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .services_reveal__Z3bdt {
      animation: services_reveal__Z3bdt linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 32%;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .services_heroCopy__VvBkW > *,
  .services_heroVisual__6xBbO,
  .services_chip__ukIue,
  .services_eyebrow__Dq_sh i::after,
  .services_newPill__IDgLF i::after,
  .services_skeleton__7WPi1 .services_media__odqeE,
  .services_skLine__Xg944 { animation: none; }

  .services_card__zQwRT,
  .services_card__zQwRT:hover,
  .services_btnPrimary___tKN3:hover,
  .services_btnSecondary__DOrwU:hover,
  .services_btnLight__mf2Jg:hover,
  .services_step__C_2_Q:hover .services_stepIcon__47kTw,
  .services_trustItem__fuBt0:hover .services_trustIcon__1T18I { transform: none; transition: none; }

  .services_device__HCCjd,
  .services_card__zQwRT:hover .services_device__HCCjd { transform: none; transition: none; }

  .services_card__zQwRT:hover .services_ctaIcon__to5Xj,
  .services_btnPrimary___tKN3:hover svg,
  .services_btnLight__mf2Jg:hover svg { transform: none; }

  .services_headLink__56w7V:hover svg { translate: none; }

  /* Schematics hold their finished, static frame. */
  .services_schem__5A69D,
  .services_schem__5A69D * { animation: none !important; }
}

/* ── responsive ───────────────────────────────────────────────────────── */
/* The chips may hang off the stage only while the container has side margin
   to absorb them; below that they stay inside, or the viewport clips them. */
@media (max-width: 1399px) {
  .services_chipSpec__b4Y2p { right: 2%; }
}

@media (max-width: 1199px) {
  .services_heroInner__iqZ6o { gap: 36px; }
  .services_chipFile__HLst4 { left: -2%; }
  .services_processGrid__fDbbe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services_trustInner__DA1Cz { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services_trustItem__fuBt0:nth-child(3)::before { display: none; }
  .services_trustItem__fuBt0:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .services_ctaInner__HWCGN { padding: 52px 48px; }
}

@media (max-width: 991px) {
  .services_hero__O822B { padding: 22px 0 112px; }
  .services_heroInner__iqZ6o { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .services_heroVisual__6xBbO { width: 100%; max-width: 640px; margin: 0 auto; }
  .services_crumbs__OvcDe { margin-bottom: 24px; }

  .services_platform__lvEh8 { padding-top: 80px; }
  .services_steps__p4kO0 { gap: 10px; padding: 30px 14px 26px; }
  .services_stepIcon__47kTw { width: 56px; height: 56px; border-radius: 18px; }
  .services_steps__p4kO0::before { top: 58px; }
  .services_stepText__6El8t { font-size: 0.82rem; }

  .services_services__y2o1L { padding-top: 80px; }
  .services_servicesHead__6O37J { flex-direction: column; align-items: flex-start; gap: 12px; }
  .services_coreGrid__n7cDe { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .services_card__zQwRT[data-variant="featured"] .services_media__odqeE { min-height: 360px; }

  .services_processHead__6VhSZ { flex-direction: column; align-items: flex-start; }

  .services_ctaInner__HWCGN { grid-template-columns: minmax(0, 1fr); padding: 48px 40px; }
}

@media (max-width: 767px) {
  .services_coreGrid__n7cDe { grid-template-columns: minmax(0, 1fr); }
  .services_coreGrid__n7cDe > [data-variant="featured"] { grid-column: auto; }

  .services_card__zQwRT[data-variant="featured"] {
    display: flex;
    flex-direction: column;
    padding: 10px;
    border-radius: 24px;
  }

  .services_card__zQwRT[data-variant="featured"] .services_media__odqeE {
    min-height: 0;
    height: auto;
    aspect-ratio: 1 / 0.94;
    border-radius: 18px;
  }

  .services_card__zQwRT[data-variant="featured"] .services_body__0PKls { padding: 18px 12px 4px; }
  .services_card__zQwRT[data-variant="featured"] .services_foot__AEXGl { padding: 14px 12px 6px; }

  .services_processGrid__fDbbe { grid-template-columns: minmax(0, 1fr); gap: 16px; }

  /* Timeline: the five steps stack, the track runs down the left. */
  .services_steps__p4kO0 {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 22px 20px;
  }

  .services_steps__p4kO0::before {
    top: 50px;
    bottom: 50px;
    left: 47px;
    right: auto;
    width: 2px;
    height: auto;
    background: repeating-linear-gradient(180deg, rgba(124, 58, 237, 0.4) 0 6px, transparent 6px 13px);
  }

  .services_step__C_2_Q {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 16px;
    align-items: center;
    padding: 10px 0;
    text-align: left;
  }

  .services_stepIcon__47kTw { grid-row: 1 / span 3; margin: 0; }
  .services_stepNum__lCtJn { align-self: end; }
  .services_stepTitle___mycT { margin: 0; }
  .services_stepText__6El8t { max-width: none; }
}

@media (max-width: 575px) {
  .services_hero__O822B { padding: 16px 0 100px; }
  .services_crumbs__OvcDe { margin-bottom: 20px; }
  .services_heroTitle__Q0zJO { margin: 18px 0 16px; }
  .services_heroLead__6kf65 { font-size: 1.02rem; }
  .services_heroActions__9PMlT { margin-top: 26px; }
  .services_heroActions__9PMlT > a { flex: 1 1 100%; }
  .services_heroFacts__sC_ju { margin-top: 24px; gap: 10px 16px; }

  .services_stage__2dFE3 { border-radius: 24px; aspect-ratio: 4 / 3.6; }
  .services_chip__ukIue { padding: 8px 10px; gap: 8px; border-radius: 13px; }
  .services_chipFile__HLst4 { top: 4%; left: 3%; }
  .services_chipSpec__b4Y2p { display: none; }
  .services_chipPrice__24wf6 { bottom: 4%; left: auto; right: 3%; }
  .services_chipIcon__XuGxe { width: 28px; height: 28px; }

  .services_trust__0oVBL { margin-top: -58px; }
  .services_trustInner__DA1Cz { padding: 4px; border-radius: 20px; }
  .services_trustItem__fuBt0 { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px 12px; }
  .services_trustIcon__1T18I { width: 40px; height: 40px; border-radius: 12px; }
  .services_trustText__JMrAw strong { font-size: 0.86rem; }
  .services_trustText__JMrAw span { font-size: 0.78rem; }

  .services_platform__lvEh8 { padding-top: 64px; }
  .services_services__y2o1L { padding-top: 64px; }
  .services_processBlock__olhz5 { margin-top: 64px; }

  .services_card__zQwRT { border-radius: 22px; }

  .services_ctaBand__fvdHx { padding: 72px 0 80px; }
  .services_ctaInner__HWCGN { padding: 36px 24px; border-radius: 24px; }
  .services_ctaActions__bOwLu > a { flex: 1 1 100%; }
}

/* Trust list goes single-column on the narrowest phones. */
@media (max-width: 399px) {
  .services_trustInner__DA1Cz { grid-template-columns: minmax(0, 1fr); }
  .services_trustItem__fuBt0 { flex-direction: row; align-items: center; gap: 12px; padding: 12px; }
  .services_trustItem__fuBt0 + .services_trustItem__fuBt0::before { display: none; }
  .services_trustItem__fuBt0 + .services_trustItem__fuBt0 { border-top: 1px solid var(--line); }
}

