:root {
  --navy: #0c2448;
  --ink: #071525;
  --blue: #0054cc;
  --electric: #0090fc;
  --cyan: #00a8fc;
  --ice: #f4faff;
  --ice-strong: #e8f6ff;
  --muted: #55697f;
  --line: #d7e6f1;
  --white: #ffffff;
  --max: 1180px;
  --radius: 28px;
  --shadow: 0 24px 70px rgba(12, 36, 72, 0.12);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  overflow-x: clip;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
p, h1, h2, h3, blockquote, dl, dd { margin-top: 0; }
::selection { color: var(--white); background: var(--blue); }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--cyan);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  left: 14px;
  top: -90px;
  z-index: 1000;
  padding: 10px 16px;
  color: var(--navy);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
}

.skip-link:focus { top: 14px; }

/* Header and navigation */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  color: var(--navy);
  background: rgba(247, 252, 255, 0.96);
  border-bottom: 1px solid rgba(12, 36, 72, 0.08);
  transition: background-color 180ms ease, box-shadow 180ms ease;
}

.site-header.scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 12px 34px rgba(7, 21, 37, 0.08);
}

.nav-wrap {
  min-height: 80px;
  display: flex;
  align-items: center;
  gap: 28px;
}

.brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.brand-official { gap: 10px; }
.brand-mark { width: 48px; height: 48px; object-fit: contain; }
.brand-wordmark { width: 174px; height: 30px; object-fit: contain; }

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 27px;
  margin-left: auto;
}

.desktop-nav a {
  position: relative;
  color: #334c68;
  font-size: 13px;
  font-weight: 700;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 2px;
  background: var(--cyan);
  transition: right 180ms ease;
}

.desktop-nav a:hover { color: var(--blue); }
.desktop-nav a:hover::after { right: 0; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 50px;
  padding: 13px 21px;
  color: var(--white);
  background: var(--blue);
  border: 1px solid var(--blue);
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(0, 84, 204, 0.2);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.button:hover {
  transform: translateY(-2px);
  background: #0047ad;
  box-shadow: 0 16px 32px rgba(0, 84, 204, 0.27);
}

.button-small { min-height: 42px; padding: 10px 16px; font-size: 12px; }
.button-light { color: var(--navy); background: var(--white); border-color: var(--white); box-shadow: none; }
.button-light:hover { color: var(--white); background: transparent; }

.menu-button,
.mobile-nav { display: none; }

/* Shared type and links */
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 24px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.eyebrow > span {
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--cyan);
}

.eyebrow-light { color: #8edcff; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 800;
}

.text-link span { color: var(--blue); transition: transform 180ms ease; }
.text-link:hover span { transform: translateX(4px); }
.text-link-light { color: var(--white); }
.text-link-light span { color: #7bd8ff; }

/* Aimentis Signal Path hero */
.signal-hero {
  position: relative;
  min-height: 900px;
  overflow: hidden;
  padding: 154px 0 52px;
  background:
    radial-gradient(circle at 78% 22%, rgba(0, 168, 252, 0.13), transparent 31%),
    linear-gradient(180deg, #f9fdff 0%, #eef9ff 74%, #ffffff 100%);
}

.signal-hero::before {
  content: "";
  position: absolute;
  left: -14vw;
  top: 140px;
  width: 46vw;
  height: 46vw;
  min-width: 540px;
  min-height: 540px;
  border: 1px solid rgba(0, 144, 252, 0.11);
  border-radius: 44% 56% 63% 37% / 50% 39% 61% 50%;
  transform: rotate(24deg);
}

.hero-signal-wash {
  position: absolute;
  right: -160px;
  top: 92px;
  width: 560px;
  height: 730px;
  background: linear-gradient(135deg, rgba(0, 84, 204, 0.08), rgba(0, 168, 252, 0.02));
  border-radius: 62% 38% 47% 53% / 41% 56% 44% 59%;
  transform: rotate(12deg);
}

.hero-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(430px, 0.92fr);
  gap: 44px;
  align-items: center;
}

.hero-copy { position: relative; z-index: 2; }

.hero-copy h1 {
  max-width: 680px;
  margin: 0;
  color: var(--navy);
  font-size: clamp(48px, 5.35vw, 76px);
  font-weight: 760;
  letter-spacing: -0.055em;
  line-height: 1.01;
}

.hero-copy h1 em {
  color: var(--blue);
  font-style: normal;
  font-weight: 540;
}

.hero-intro {
  max-width: 630px;
  margin: 30px 0 31px;
  color: #405b76;
  font-size: 18px;
  line-height: 1.78;
}

.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }

.hero-microcopy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 28px 0 0;
  color: #5e7287;
  font-size: 12px;
  font-weight: 650;
}

.hero-microcopy i {
  width: 8px;
  height: 8px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(0, 144, 252, 0.12);
}

.signal-gateway {
  position: relative;
  min-height: 570px;
  isolation: isolate;
}

.signal-gateway::before {
  content: "";
  position: absolute;
  inset: 64px 18px 35px 52px;
  z-index: -2;
  background: rgba(255, 255, 255, 0.48);
  border: 1px solid rgba(0, 84, 204, 0.09);
  border-radius: 48% 52% 38% 62% / 57% 34% 66% 43%;
  transform: rotate(-7deg);
}

.signal-gateway::after {
  content: "";
  position: absolute;
  left: 104px;
  top: 92px;
  width: 365px;
  height: 365px;
  z-index: -1;
  border: 1px solid rgba(0, 168, 252, 0.21);
  border-radius: 50%;
}

.brand-gateway {
  position: absolute;
  left: 53%;
  top: 48%;
  z-index: 3;
  width: 350px;
  min-height: 416px;
  display: grid;
  place-items: center;
  padding: 48px 35px 28px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid rgba(0, 84, 204, 0.12);
  border-radius: 45% 55% 41% 59% / 52% 43% 57% 48%;
  box-shadow: 0 35px 75px rgba(12, 36, 72, 0.16);
  transform: translate(-50%, -50%) rotate(-2deg);
}

.brand-gateway::before {
  content: "";
  position: absolute;
  left: -74px;
  bottom: -68px;
  width: 220px;
  height: 180px;
  background: var(--ice-strong);
  border-radius: 50%;
}

.brand-gateway > span {
  position: absolute;
  top: 30px;
  left: 50%;
  color: var(--blue);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  transform: translateX(-50%);
  white-space: nowrap;
}

.brand-gateway img { position: relative; width: 284px; height: auto; }

.gateway-route {
  position: absolute;
  z-index: 1;
  height: 120px;
  border: 2px solid transparent;
  border-top-color: var(--cyan);
  border-radius: 50%;
  opacity: 0.72;
}

.gateway-route-in {
  left: -8px;
  top: 47%;
  width: 255px;
  transform: rotate(12deg);
}

.gateway-route-out {
  right: -26px;
  top: 35%;
  width: 228px;
  border-top-color: var(--blue);
  transform: rotate(-18deg);
}

.signal-fragment,
.gateway-result {
  position: absolute;
  z-index: 4;
  color: var(--navy);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(0, 84, 204, 0.14);
  box-shadow: 0 13px 32px rgba(12, 36, 72, 0.11);
}

.signal-fragment {
  padding: 10px 15px;
  border-left: 3px solid var(--cyan);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
  animation: signalFloat 5.5s ease-in-out infinite;
}

.fragment-one { left: -14px; top: 116px; }
.fragment-two { left: 19px; top: 232px; animation-delay: -2s; }
.fragment-three { left: 4px; bottom: 97px; animation-delay: -3.4s; }

.gateway-result {
  right: -16px;
  bottom: 74px;
  width: 184px;
  padding: 15px 17px;
  border-right: 3px solid var(--blue);
  border-radius: 16px 4px 16px 16px;
}

.gateway-result small {
  display: block;
  margin-bottom: 3px;
  color: #6b7e91;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gateway-result strong { display: block; font-size: 13px; line-height: 1.35; }

.signal-runner {
  position: absolute;
  left: 38px;
  top: 55%;
  z-index: 5;
  width: 9px;
  height: 9px;
  background: var(--cyan);
  border: 2px solid var(--white);
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(0, 168, 252, 0.17);
  animation: signalRun 4.2s ease-in-out infinite;
}

.hero-path-summary {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: 18px;
  margin-top: 22px;
  padding-top: 27px;
  border-top: 1px solid rgba(12, 36, 72, 0.12);
  color: #4d647a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hero-path-summary i { height: 1px; background: linear-gradient(90deg, var(--cyan), rgba(0, 84, 204, 0.15)); }

@keyframes signalFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -8px, 0); }
}

@keyframes signalRun {
  0%, 12% { opacity: 0; transform: translate3d(0, 0, 0) scale(0.65); }
  26% { opacity: 1; }
  72% { opacity: 1; transform: translate3d(242px, -26px, 0) scale(1); }
  88%, 100% { opacity: 0; transform: translate3d(315px, -18px, 0) scale(0.7); }
}

/* Start with the friction */
.friction-section {
  position: relative;
  overflow: hidden;
  padding: 126px 0 88px;
  color: var(--white);
  background: var(--navy);
}

.friction-section::before {
  content: "";
  position: absolute;
  right: -250px;
  top: -315px;
  width: 700px;
  height: 700px;
  border: 1px solid rgba(80, 205, 255, 0.15);
  border-radius: 50%;
}

.friction-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 100px;
}

.friction-intro { align-self: start; position: sticky; top: 130px; }

.friction-intro h2,
.conversation-intro h2,
.final-invitation h2 {
  margin: 0;
  font-size: clamp(42px, 4.6vw, 62px);
  font-weight: 690;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.friction-intro > p:last-child {
  max-width: 480px;
  margin: 28px 0 0;
  color: #b8cae0;
  font-size: 16px;
}

.friction-quotes {
  position: relative;
  display: grid;
  gap: 7px;
  padding-left: 38px;
}

.friction-quotes::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 10px;
  bottom: 10px;
  width: 2px;
  background: linear-gradient(var(--cyan), rgba(0, 168, 252, 0.12));
}

.friction-quote {
  position: relative;
  margin: 0;
  padding: 26px 0 30px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.friction-quote::before {
  content: "";
  position: absolute;
  left: -38px;
  top: 37px;
  width: 12px;
  height: 12px;
  background: var(--navy);
  border: 3px solid var(--cyan);
  border-radius: 50%;
}

.friction-quote:nth-child(2) { margin-left: 48px; }
.friction-quote:nth-child(3) { margin-left: 18px; }

.friction-quote span {
  color: #7bcff8;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.friction-quote p {
  margin: 8px 0 0;
  color: var(--white);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.2;
}

.friction-foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 30px;
  margin-top: 78px;
  padding-top: 26px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.friction-foot span { color: #79d7ff; font-size: 13px; font-weight: 850; text-transform: uppercase; letter-spacing: 0.12em; }
.friction-foot p { max-width: 450px; margin: 0; color: #c1d2e7; }

/* What we build */
.build-section { padding: 126px 0 120px; scroll-margin-top: 90px; background: var(--white); }

.build-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.65fr);
  gap: 80px;
  align-items: end;
  margin-bottom: 62px;
}

.build-heading h2,
.thinking-intro h2,
.capabilities-intro h2 {
  max-width: 720px;
  margin: 0;
  color: var(--navy);
  font-size: clamp(42px, 5vw, 64px);
  font-weight: 690;
  letter-spacing: -0.05em;
  line-height: 1.04;
}

.build-heading > p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.build-bands { border-top: 1px solid var(--line); }

.build-band {
  position: relative;
  display: grid;
  grid-template-columns: 150px minmax(0, 1.05fr) minmax(260px, 0.55fr);
  gap: 46px;
  align-items: center;
  min-height: 290px;
  padding: 52px 28px 52px 0;
  border-bottom: 1px solid var(--line);
  transition: background-color 200ms ease, padding-left 200ms ease;
}

.build-band::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cyan), var(--blue));
  transition: width 300ms ease;
}

.build-band:hover { padding-left: 20px; background: #f8fcff; }
.build-band:hover::after { width: 100%; }

.band-index { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; }
.band-index span { color: #b3c8d8; font-size: 54px; font-weight: 300; letter-spacing: -0.06em; line-height: 1; }
.band-index small { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: 0.18em; text-transform: uppercase; }

.band-copy h3 {
  max-width: 600px;
  margin: 0 0 18px;
  color: var(--navy);
  font-size: clamp(31px, 3.5vw, 47px);
  font-weight: 650;
  letter-spacing: -0.04em;
  line-height: 1.08;
}

.band-copy p { max-width: 610px; margin: 0 0 22px; color: var(--muted); }
.band-outcome { padding-left: 28px; border-left: 2px solid var(--cyan); }
.band-outcome small { display: block; margin-bottom: 8px; color: #678098; font-size: 10px; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.band-outcome strong { display: block; color: var(--navy); font-size: 16px; line-height: 1.55; }

/* Principles */
.thinking-section {
  padding: 124px 0;
  background: linear-gradient(135deg, #f2f9fe 0%, #eaf7ff 100%);
}

.thinking-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 110px;
  align-items: start;
}

.thinking-intro { position: sticky; top: 130px; }
.thinking-intro h2 em { color: var(--blue); font-style: normal; font-weight: 500; }
.thinking-intro > p { max-width: 500px; margin: 28px 0 23px; color: var(--muted); }

.principle-list { position: relative; margin: 0; padding: 0 0 0 36px; list-style: none; }
.principle-list::before { content: ""; position: absolute; left: 4px; top: 35px; bottom: 35px; width: 2px; background: linear-gradient(var(--cyan), rgba(0, 84, 204, 0.14)); }

.principle-list li {
  position: relative;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 23px;
  min-height: 148px;
  padding: 32px 0;
  border-top: 1px solid rgba(12, 36, 72, 0.14);
}

.principle-list li:last-child { border-bottom: 1px solid rgba(12, 36, 72, 0.14); }
.principle-list li::before { content: ""; position: absolute; left: -37px; top: 42px; width: 12px; height: 12px; background: var(--ice); border: 3px solid var(--blue); border-radius: 50%; }
.principle-list li > span { color: var(--blue); font-size: 12px; font-weight: 850; }
.principle-list h3 { margin: -4px 0 7px; color: var(--navy); font-size: 27px; font-weight: 680; letter-spacing: -0.03em; }
.principle-list p { margin: 0; color: var(--muted); }

/* Process as a conversation */
.conversation-section { padding: 104px 0; background: var(--white); }

.conversation-shell {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 90px;
  overflow: hidden;
  padding: 94px 88px;
  color: var(--white);
  background: var(--navy);
  border-radius: 46px 46px 46px 10px;
}

.conversation-shell::after {
  content: "";
  position: absolute;
  right: -160px;
  bottom: -230px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(0, 168, 252, 0.18);
  border-radius: 50%;
}

.conversation-intro { position: relative; z-index: 1; align-self: start; }
.conversation-intro h2 { max-width: 460px; }
.conversation-intro > p { max-width: 460px; margin: 27px 0 24px; color: #bdcee2; }

.conversation-steps {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0 0 0 42px;
  list-style: none;
}

.conversation-steps::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 30px;
  bottom: 30px;
  width: 2px;
  background: linear-gradient(var(--cyan), rgba(0, 168, 252, 0.18));
}

.conversation-steps li {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 20px;
  padding: 27px 0 31px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.conversation-steps li:nth-child(2) { margin-left: 5%; }
.conversation-steps li:nth-child(3) { margin-left: 10%; }
.conversation-steps li:nth-child(4) { margin-left: 15%; }
.conversation-steps li::before { content: ""; position: absolute; left: -40px; top: 34px; width: 14px; height: 14px; background: var(--navy); border: 3px solid var(--cyan); border-radius: 50%; }
.conversation-steps li > span { color: #7cd9ff; font-size: 11px; font-weight: 850; }
.conversation-steps h3 { margin: -3px 0 7px; font-size: 23px; font-weight: 650; letter-spacing: -0.025em; line-height: 1.3; }
.conversation-steps p { margin: 0; color: #b6c9df; font-size: 14px; }

/* Capability field */
.capabilities-section { padding: 125px 0; background: var(--white); }

.capabilities-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 100px;
  align-items: start;
}

.capabilities-intro h2 { max-width: 600px; }
.capabilities-intro > p { max-width: 560px; margin: 28px 0 0; color: var(--muted); }

.capability-field { margin: 0; border-top: 1px solid var(--line); }
.capability-field > div { display: grid; grid-template-columns: minmax(170px, 0.65fr) 1fr; gap: 30px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.capability-field dt { color: var(--navy); font-size: 15px; font-weight: 850; }
.capability-field dd { margin: 0; color: var(--muted); font-size: 14px; }

/* Final invitation */
.final-invitation {
  position: relative;
  overflow: hidden;
  padding: 116px 0;
  color: var(--white);
  background: var(--blue);
}

.final-invitation::before {
  content: "";
  position: absolute;
  left: -140px;
  bottom: -280px;
  width: 650px;
  height: 650px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
}

.final-signal {
  position: absolute;
  right: -40px;
  top: 32%;
  width: 42%;
  height: 180px;
  border: 2px solid transparent;
  border-top-color: rgba(124, 224, 255, 0.78);
  border-radius: 50%;
  transform: rotate(-9deg);
}

.final-signal i {
  position: absolute;
  left: 51%;
  top: -8px;
  width: 14px;
  height: 14px;
  background: #78dcff;
  border: 3px solid var(--blue);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgba(120, 220, 255, 0.2);
}

.invitation-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.55fr);
  gap: 110px;
  align-items: end;
}

.final-invitation h2 { font-size: clamp(55px, 7vw, 92px); }
.final-invitation .invitation-layout > div:first-child > p:not(.eyebrow) { max-width: 680px; margin: 28px 0 30px; color: #d8ecff; font-size: 18px; }

.invitation-notes {
  display: grid;
  gap: 0;
  padding: 26px 29px;
  background: rgba(7, 21, 37, 0.18);
  border-left: 2px solid #7ce0ff;
}

.invitation-notes small { margin-bottom: 10px; color: #a9e9ff; font-size: 10px; font-weight: 850; letter-spacing: 0.14em; text-transform: uppercase; }
.invitation-notes span { padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, 0.18); font-size: 13px; font-weight: 700; }

/* Secondary pages */
.cta-section {
  position: relative;
  overflow: hidden;
  padding: 140px 0 110px;
  color: var(--white);
  text-align: center;
  background: var(--navy);
}

.cta-section::after { content: ""; position: absolute; right: -220px; top: -250px; width: 600px; height: 600px; border: 1px solid rgba(0, 168, 252, 0.19); border-radius: 50%; }
.cta-section > .container { position: relative; z-index: 1; }
.cta-section h1, .cta-section h2 { margin: 0; color: var(--white); font-size: clamp(46px, 6vw, 72px); font-weight: 680; letter-spacing: -0.05em; line-height: 1.05; }
.cta-section > .container > p:not(.eyebrow) { color: #c3d8e9; }

/* Contact page */
.contact-hero {
  position: relative;
  overflow: hidden;
  padding: 174px 0 104px;
  color: var(--white);
  background:
    radial-gradient(circle at 84% 24%, rgba(0, 168, 252, 0.2), transparent 30%),
    var(--navy);
}

.contact-hero::after {
  content: "";
  position: absolute;
  right: -170px;
  top: 75px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(120, 220, 255, 0.17);
  border-radius: 50%;
}

.contact-hero-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.55fr);
  gap: 100px;
  align-items: end;
}

.contact-hero h1,
.privacy-hero h1 {
  max-width: 780px;
  margin: 0;
  font-size: clamp(52px, 7vw, 92px);
  font-weight: 680;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.contact-hero-layout > div:first-child > p:not(.eyebrow) { max-width: 720px; margin: 30px 0 0; color: #cde2f2; font-size: 18px; }

.contact-hero-note { padding: 24px 27px; background: rgba(7, 21, 37, 0.24); border-left: 2px solid #78dcff; }
.contact-hero-note small { display: block; margin-bottom: 10px; color: #9ee5ff; font-size: 10px; font-weight: 850; letter-spacing: 0.13em; text-transform: uppercase; }
.contact-hero-note p { margin: 0; padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, 0.16); color: #eef8ff; font-size: 13px; line-height: 1.55; }

.contact-section { padding: 108px 0; background: linear-gradient(180deg, #f7fcff, #ffffff); }
.contact-layout { display: grid; grid-template-columns: minmax(280px, 0.72fr) minmax(520px, 1.15fr); gap: 90px; align-items: start; }
.contact-context { position: sticky; top: 118px; }
.contact-context h2, .contact-after h2 { margin-bottom: 24px; color: var(--navy); font-size: clamp(38px, 4.5vw, 58px); font-weight: 680; letter-spacing: -0.045em; line-height: 1.05; }
.contact-context > p:not(.eyebrow) { color: var(--muted); }
.contact-context ul { display: grid; gap: 0; margin: 38px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.contact-context li { display: grid; grid-template-columns: 34px 1fr; gap: 15px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.contact-context li > span { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: 0.08em; }
.contact-context li strong { color: var(--navy); font-size: 14px; }
.contact-context li p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.contact-direct { display: grid; gap: 3px; padding: 19px 21px; background: var(--ice-strong); border-left: 2px solid var(--cyan); }
.contact-direct small { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.contact-direct a { color: var(--blue); font-size: 16px; font-weight: 850; }

.contact-form-shell { padding: 46px; background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow); }
.contact-form-heading { margin-bottom: 31px; }
.contact-form-heading p { margin: 0 0 8px; color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: 0.15em; text-transform: uppercase; }
.contact-form-heading h2 { margin: 0 0 8px; color: var(--navy); font-size: 34px; letter-spacing: -0.035em; line-height: 1.15; }
.contact-form-heading > span { color: var(--muted); font-size: 12px; }
.contact-form { position: relative; display: grid; gap: 21px; }
.contact-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-field { display: grid; gap: 7px; min-width: 0; }
.form-field label { color: #2b4660; font-size: 12px; font-weight: 800; }
.form-field label > span { color: var(--blue); }
.form-field label small { margin-left: 5px; color: #52677b; font-size: 9px; font-weight: 650; text-transform: uppercase; }
.form-hint { color: #52677b; font-size: 10px; line-height: 1.45; }
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-width: 0;
  padding: 12px 13px;
  color: var(--ink);
  background: #fbfdff;
  border: 1px solid #c8dae7;
  border-radius: 11px;
  font-size: 13px;
  line-height: 1.45;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.form-field textarea { min-height: 150px; resize: vertical; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: #8fb9d6; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 0; background: var(--white); border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0, 84, 204, 0.12); }
.form-field [aria-invalid="true"] { border-color: #b52d3a; }
.contact-field-error { display: block; margin: -3px 0 0; color: #8f2530; font-size: 11px; font-weight: 750; line-height: 1.45; }
.contact-consent { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; color: #52677b; font-size: 11px; line-height: 1.55; cursor: pointer; }
.contact-consent input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--blue); }
.contact-consent a { color: var(--blue); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.contact-honeypot { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.contact-form-status { min-height: 22px; margin: -4px 0 0; padding: 0; color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.5; }
.contact-form-status:empty { min-height: 0; }
.contact-form-status[data-state="loading"] { color: var(--blue); }
.contact-form-status[data-state="success"] { padding: 10px 12px; color: #0f6846; background: #eaf9f2; border: 1px solid #bde9d5; border-radius: 9px; }
.contact-form-status[data-state="error"] { padding: 10px 12px; color: #8f2530; background: #fff2f3; border: 1px solid #f0c5ca; border-radius: 9px; }
.contact-submit-row { display: flex; gap: 19px; align-items: center; }
.contact-submit { flex: 0 0 auto; cursor: pointer; }
.contact-submit:disabled { opacity: 0.58; cursor: wait; transform: none; }
.contact-submit-row > p { max-width: 300px; margin: 0; color: #52677b; font-size: 10px; line-height: 1.5; }

.contact-after { padding: 96px 0; background: var(--ice-strong); }
.contact-after-layout { display: grid; grid-template-columns: 0.55fr 1.1fr; gap: 45px 90px; }
.contact-after-layout .eyebrow { grid-row: 1 / span 2; align-self: start; }
.contact-after h2 { margin: 0; }
.contact-after-layout > p:last-child { max-width: 740px; margin: 0; color: var(--muted); font-size: 17px; }

/* Website enquiry privacy notice */
.privacy-hero { padding: 170px 0 96px; color: var(--white); background: var(--navy); }
.privacy-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 60px; align-items: end; }
.privacy-hero h1 { max-width: 880px; font-size: clamp(48px, 6.5vw, 82px); }
.privacy-hero-layout > div > p:not(.eyebrow) { max-width: 750px; margin: 28px 0 0; color: #cde2f2; font-size: 17px; }
.privacy-updated { margin: 0; padding-left: 22px; color: #9fbdd3; border-left: 2px solid var(--cyan); font-size: 10px; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.privacy-updated strong { color: var(--white); font-size: 12px; }
.privacy-section { padding: 104px 0 120px; }
.privacy-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 95px; align-items: start; }
.privacy-summary { position: sticky; top: 116px; display: grid; gap: 10px; padding: 25px; color: var(--navy); background: var(--ice-strong); border-top: 3px solid var(--cyan); }
.privacy-summary > strong { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; }
.privacy-summary p { margin: 0; color: #405c74; font-size: 13px; }
.privacy-summary a { color: var(--blue); font-size: 11px; font-weight: 800; word-break: break-word; }
.privacy-copy { max-width: 790px; }
.privacy-copy section { display: grid; grid-template-columns: 44px 1fr; gap: 22px; padding: 0 0 43px; margin-bottom: 43px; border-bottom: 1px solid var(--line); }
.privacy-copy section > span { padding-top: 5px; color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: 0.08em; }
.privacy-copy h2 { margin-bottom: 13px; color: var(--navy); font-size: 27px; letter-spacing: -0.025em; line-height: 1.2; }
.privacy-copy p { margin-bottom: 12px; color: var(--muted); font-size: 15px; }
.privacy-copy p:last-child { margin-bottom: 0; }
.privacy-copy a { color: var(--blue); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

/* Footer */
footer { color: var(--navy); background: #eff8fd; }

.footer-grid {
  display: grid;
  grid-template-columns: minmax(310px, 1.35fr) repeat(3, minmax(130px, 0.55fr));
  gap: 58px;
  padding: 82px 0 54px;
}

.footer-story > p { max-width: 340px; margin: -6px 0 0; color: var(--muted); }
.footer-logo-lockup { display: inline-block; width: 248px; margin-bottom: 6px; }
.footer-logo-lockup img { width: 248px; height: auto; }
.footer-grid h2 { margin: 13px 0 20px; color: var(--navy); font-size: 12px; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.footer-grid > div:not(.footer-story) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-grid a:not(.footer-logo-lockup), .footer-grid p { color: #526b80; font-size: 13px; }
.footer-grid a:hover { color: var(--blue); }

.footer-brand { display: flex; align-items: center; min-height: 112px; padding-top: 34px; }
.footer-brand-lockup { display: inline-block; width: 190px; }
.footer-brand-lockup img { width: 190px; height: auto; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  margin-top: 0;
  padding: 25px 0 29px;
  border-top: 1px solid #d2e4ef;
  color: #718296;
  font-size: 11px;
}

.footer-bottom p { margin: 0; }

/* First-visit loader */
.site-loader { display: none; }
.site-loading body { overflow: hidden; animation: loaderUnlock 0s linear 1.25s forwards; }
.site-loading .site-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--navy);
  animation: loaderFailSafe 0s linear 1.25s forwards;
}

.site-loader-panel {
  position: absolute;
  inset-block: 0;
  width: 50.5%;
  background: var(--navy);
  transition: transform 520ms cubic-bezier(0.8, 0, 0.2, 1);
}

.site-loader-panel-left { left: 0; }
.site-loader-panel-right { right: 0; }
.site-loader-seam { position: absolute; inset-block: 0; left: 50%; width: 1px; background: rgba(93, 207, 255, 0.22); transform-origin: center; transition: transform 360ms ease; }

.site-loader-brand {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  text-align: center;
  transition: opacity 220ms ease, transform 220ms ease;
}

.site-loader-brand img { width: 96px; height: 96px; margin-bottom: 14px; }
.site-loader-brand p { display: grid; gap: 2px; margin: 0; }
.site-loader-brand strong { font-size: 18px; letter-spacing: 0.04em; }
.site-loader-brand span { color: #91dfff; font-size: 9px; font-weight: 800; letter-spacing: 0.19em; text-transform: uppercase; }
.site-loader-brand > i { width: 156px; height: 2px; margin-top: 24px; overflow: hidden; background: rgba(255, 255, 255, 0.14); border-radius: 9px; }
.site-loader-brand > i b { display: block; width: 45%; height: 100%; background: var(--cyan); animation: loaderSignal 520ms ease-in-out infinite alternate; }

.site-loaded .site-loader-brand { opacity: 0; transform: translateY(-8px); }
.site-loaded .site-loader-panel-left { transform: translateX(-101%); }
.site-loaded .site-loader-panel-right { transform: translateX(101%); }
.site-loaded .site-loader-seam { transform: scaleY(0); }

@keyframes loaderSignal {
  from { transform: translateX(-20%); }
  to { transform: translateX(140%); }
}

@keyframes loaderUnlock { to { overflow: auto; } }
@keyframes loaderFailSafe { to { visibility: hidden; pointer-events: none; } }

/* Progressive reveal */
.motion-ready .reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.motion-ready .reveal.visible { opacity: 1; transform: translate3d(0, 0, 0); }

/* Fine-pointer cursor */
.aimentis-cursor-dot,
.aimentis-cursor-ring,
.aimentis-cursor-bursts {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 10001;
  pointer-events: none;
}

.aimentis-cursor-dot {
  width: 7px;
  height: 7px;
  opacity: 0;
  background: var(--cyan);
  border-radius: 50%;
  transform: translate3d(var(--cursor-x, -20px), var(--cursor-y, -20px), 0) translate(-50%, -50%);
  transition: opacity 120ms ease;
}

.aimentis-cursor-ring {
  width: 31px;
  height: 31px;
  opacity: 0;
  border: 1px solid rgba(0, 84, 204, 0.72);
  border-radius: 50%;
  transform: translate3d(var(--cursor-x, -40px), var(--cursor-y, -40px), 0) translate(-50%, -50%);
  transition: width 160ms ease, height 160ms ease, opacity 120ms ease, background-color 160ms ease;
}

.aimentis-cursor-dot.is-visible,
.aimentis-cursor-ring.is-visible { opacity: 1; }
.aimentis-cursor-ring.is-hover { width: 45px; height: 45px; background: rgba(0, 168, 252, 0.1); }
.aimentis-cursor-ring.is-press { width: 24px; height: 24px; }
.aimentis-cursor-bursts { inset: 0; }
.aimentis-cursor-burst { position: fixed; width: 8px; height: 8px; border: 2px solid var(--cyan); border-radius: 50%; transform: translate(-50%, -50%); animation: cursorBurst 500ms ease-out forwards; }

@keyframes cursorBurst {
  to { opacity: 0; transform: translate(-50%, -50%) scale(5); }
}

.has-custom-cursor a,
.has-custom-cursor button,
.has-custom-cursor input,
.has-custom-cursor select,
.has-custom-cursor textarea,
.has-custom-cursor .build-band { cursor: none; }

/* Local website guide */
.aimentis-chat { position: fixed; right: 24px; bottom: 22px; z-index: 80; font-family: inherit; }

.chat-launcher {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 58px;
  padding: 8px 10px 8px 18px;
  color: var(--white);
  background: var(--navy);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  box-shadow: 0 15px 38px rgba(7, 21, 37, 0.28);
  cursor: pointer;
}

.chat-launcher-label { font-size: 12px; font-weight: 800; }
.chat-launcher svg { width: 40px; height: 40px; padding: 9px; background: var(--blue); border-radius: 50%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }

.chat-panel {
  position: absolute;
  right: 0;
  bottom: 72px;
  display: flex;
  flex-direction: column;
  width: 370px;
  max-height: min(680px, calc(100vh - 118px));
  max-height: min(680px, calc(100dvh - 118px));
  overflow: hidden;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #cfdeea;
  border-radius: 24px 24px 24px 7px;
  box-shadow: 0 28px 70px rgba(7, 21, 37, 0.26);
}

.chat-header { display: flex; flex: 0 0 auto; align-items: center; gap: 11px; padding: 15px 16px; color: var(--white); background: var(--navy); }
.chat-header img { width: 38px; height: 38px; padding: 4px; background: var(--white); border-radius: 12px; object-fit: contain; }
.chat-heading { display: grid; line-height: 1.3; }
.chat-heading strong { font-size: 13px; }
.chat-heading span { color: #9ec4df; font-size: 9px; }
.chat-close { margin-left: auto; padding: 6px; color: #b8d1e4; background: transparent; border: 0; font-size: 22px; line-height: 1; cursor: pointer; }

.chat-messages { min-height: 0; max-height: 260px; flex: 1 1 198px; overflow-y: auto; padding: 17px 15px 8px; background: #f7fbfe; }
.chat-panel.is-enquiry-open { height: min(680px, calc(100dvh - 118px)); }
.chat-panel.is-enquiry-open .chat-messages,
.chat-panel.is-enquiry-open .chat-quick-replies,
.chat-panel.is-enquiry-open .chat-note { display: none; }
.chat-message { display: flex; margin-bottom: 10px; }
.chat-message p { max-width: 87%; margin: 0; padding: 10px 12px; border-radius: 14px; font-size: 12px; line-height: 1.55; }
.chat-message-assistant p { color: #213c57; background: var(--white); border: 1px solid #dce8f0; border-radius: 5px 14px 14px 14px; }
.chat-message-user { justify-content: flex-end; }
.chat-message-user p { color: var(--white); background: var(--blue); border-radius: 14px 5px 14px 14px; }
.chat-message a { color: var(--blue); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

.chat-quick-replies { display: flex; flex: 0 0 auto; gap: 6px; overflow-x: auto; padding: 10px 14px 7px; background: var(--white); }
.chat-quick-replies button { flex: 0 0 auto; padding: 7px 9px; color: var(--blue); background: #eff8ff; border: 1px solid #cfe8f8; border-radius: 999px; font-size: 10px; font-weight: 750; cursor: pointer; }
.chat-quick-replies .chat-enquiry-toggle { color: var(--white); background: var(--blue); border-color: var(--blue); }
.chat-note { flex: 0 0 auto; margin: 0; padding: 0 15px 8px; color: #52677b; font-size: 10px; line-height: 1.4; }
.chat-question-form { display: flex; flex: 0 0 auto; gap: 7px; padding: 11px 13px 13px; border-top: 1px solid #e0e9f0; }
.chat-question-form input { min-width: 0; flex: 1; padding: 10px 11px; color: var(--ink); background: var(--white); border: 1px solid #cbdbe6; border-radius: 10px; font-size: 11px; }
.chat-send { padding: 9px 12px; color: var(--white); background: var(--blue); border: 0; border-radius: 10px; font-size: 10px; font-weight: 800; cursor: pointer; }
.chat-send:disabled { opacity: 0.55; cursor: wait; }
.chat-panel.is-enquiry-open .chat-question-form { display: none; }

.chat-enquiry { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 14px; background: #f7fbfe; border-top: 1px solid #e0e9f0; overscroll-behavior: contain; }
.chat-enquiry-heading { display: flex; gap: 12px; align-items: start; margin-bottom: 15px; }
.chat-enquiry-heading > div { display: grid; gap: 2px; }
.chat-enquiry-heading strong { color: var(--navy); font-size: 13px; }
.chat-enquiry-heading span { color: var(--muted); font-size: 9px; }
.chat-enquiry-heading button { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; margin-left: auto; padding: 0; color: #52677b; background: transparent; border: 0; font-size: 20px; line-height: 1; cursor: pointer; }
.contact-form-compact { gap: 12px; }
.contact-form-compact .form-field { gap: 4px; }
.contact-form-compact .form-field label { font-size: 10px; }
.contact-form-compact .form-field input,
.contact-form-compact .form-field select,
.contact-form-compact .form-field textarea { padding: 8px 9px; background: var(--white); border-radius: 8px; font-size: 10px; }
.contact-form-compact .form-field textarea { min-height: 76px; }
.contact-form-compact .form-hint { font-size: 9px; }
.contact-form-compact .contact-consent { grid-template-columns: 15px 1fr; gap: 7px; font-size: 10px; }
.contact-form-compact .contact-consent input { width: 14px; height: 14px; }
.contact-form-compact .contact-form-status { font-size: 9px; }
.contact-form-compact .contact-submit { width: 100%; min-height: 38px; padding: 8px 12px; font-size: 10px; }

/* Responsive layout */
@media (max-width: 1100px) {
  .nav-wrap { gap: 20px; }
  .brand-wordmark { width: 150px; height: 26px; }
  .desktop-nav { gap: 19px; }
  .hero-layout { grid-template-columns: minmax(0, 1fr) minmax(390px, 0.86fr); gap: 20px; }
  .brand-gateway { width: 315px; min-height: 386px; }
  .brand-gateway img { width: 255px; }
  .signal-gateway::after { left: 75px; width: 335px; height: 335px; }
  .conversation-shell { gap: 55px; padding: 78px 60px; }
  .contact-hero-layout { gap: 55px; }
  .contact-layout { gap: 55px; }
  .contact-form-shell { padding: 38px; }
  .privacy-layout { gap: 55px; }
  .footer-grid { grid-template-columns: minmax(280px, 1fr) repeat(3, minmax(110px, 0.5fr)); gap: 35px; }
}

@media (max-width: 920px) {
  .desktop-nav, .nav-wrap > .button-small { display: none; }
  .menu-button {
    width: 45px;
    height: 45px;
    display: grid;
    place-content: center;
    gap: 7px;
    margin-left: auto;
    padding: 0;
    color: var(--navy);
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 50%;
  }

  .menu-button span { width: 19px; height: 2px; background: currentColor; transition: transform 180ms ease; }
  .menu-button[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }

  .mobile-nav {
    display: grid;
    gap: 0;
    padding: 8px 20px 20px;
    color: var(--navy);
    background: var(--white);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 16px 30px rgba(7, 21, 37, 0.08);
  }

  .mobile-nav a { padding: 12px 4px; border-bottom: 1px solid #e9f0f5; font-size: 14px; font-weight: 750; }
  .mobile-nav a:last-child { margin-top: 8px; color: var(--blue); border: 0; }

  .signal-hero { padding-top: 138px; }
  .hero-layout { grid-template-columns: 1fr; }
  .hero-copy { max-width: 760px; }
  .hero-copy h1 { max-width: 800px; }
  .signal-gateway { width: min(590px, 100%); margin: 14px auto 0; }
  .hero-path-summary { margin-top: 0; }

  .friction-layout, .thinking-layout, .capabilities-layout { grid-template-columns: 1fr; gap: 60px; }
  .friction-intro, .thinking-intro { position: static; }
  .friction-intro > p:last-child, .thinking-intro > p, .capabilities-intro > p { max-width: 700px; }

  .build-heading { grid-template-columns: 1fr; gap: 25px; }
  .build-heading > p { max-width: 720px; }
  .build-band { grid-template-columns: 90px 1fr; gap: 30px; }
  .band-outcome { grid-column: 2; }

  .conversation-shell { grid-template-columns: 1fr; gap: 55px; }
  .conversation-intro h2, .conversation-intro > p { max-width: 700px; }

  .invitation-layout { grid-template-columns: 1fr; gap: 52px; }
  .invitation-notes { max-width: 580px; }

  .contact-hero-layout { grid-template-columns: 1fr; gap: 45px; }
  .contact-hero-note { max-width: 620px; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-context { position: static; max-width: 720px; }
  .contact-after-layout { grid-template-columns: 1fr; gap: 25px; }
  .contact-after-layout .eyebrow { grid-row: auto; }
  .privacy-layout { grid-template-columns: 1fr; }
  .privacy-summary { position: static; max-width: 520px; }

  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-story { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .container { width: min(calc(100% - 28px), var(--max)); }
  .nav-wrap { min-height: 72px; }
  .brand-official { gap: 7px; }
  .brand-mark { width: 42px; height: 42px; }
  .brand-wordmark { width: 142px; height: 25px; }

  .signal-hero { min-height: 0; padding: 118px 0 38px; }
  .signal-hero::before { min-width: 420px; min-height: 420px; }
  .hero-signal-wash { width: 380px; height: 520px; right: -200px; }
  .hero-copy h1 { font-size: clamp(43px, 13vw, 58px); letter-spacing: -0.06em; }
  .hero-intro { margin: 25px 0; font-size: 16px; }
  .actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .actions .button { width: 100%; }
  .hero-microcopy { align-items: flex-start; }

  .signal-gateway { min-height: 472px; margin-top: 16px; }
  .signal-gateway::before { inset: 40px -35px 20px -15px; }
  .signal-gateway::after { left: 50%; top: 69px; width: 285px; height: 285px; transform: translateX(-50%); }
  .brand-gateway { left: 53%; top: 46%; width: 275px; min-height: 342px; padding-inline: 24px; }
  .brand-gateway > span { top: 25px; font-size: 8px; }
  .brand-gateway img { width: 224px; }
  .signal-fragment { padding: 8px 11px; font-size: 9px; }
  .fragment-one { left: 0; top: 69px; }
  .fragment-two { left: -2px; top: 151px; }
  .fragment-three { left: 0; bottom: 72px; }
  .gateway-result { right: -4px; bottom: 52px; width: 145px; padding: 11px 12px; }
  .gateway-result strong { font-size: 11px; }
  .gateway-route-in { left: -33px; width: 190px; }
  .gateway-route-out { right: -54px; width: 170px; }
  .signal-runner { left: 10px; }

  .hero-path-summary { grid-template-columns: 1fr; gap: 8px; align-items: start; padding-top: 20px; }
  .hero-path-summary i { width: 45px; }

  .friction-section, .build-section, .thinking-section, .capabilities-section { padding-block: 88px; }
  .friction-layout { gap: 42px; }
  .friction-intro h2, .conversation-intro h2 { font-size: 42px; }
  .friction-quotes { padding-left: 28px; }
  .friction-quotes::before { left: 3px; }
  .friction-quote::before { left: -29px; }
  .friction-quote:nth-child(2), .friction-quote:nth-child(3) { margin-left: 0; }
  .friction-quote p { font-size: 28px; }
  .friction-foot { align-items: flex-start; flex-direction: column; margin-top: 55px; }

  .build-heading { margin-bottom: 36px; }
  .build-heading h2, .thinking-intro h2, .capabilities-intro h2 { font-size: 43px; }
  .build-band { grid-template-columns: 1fr; gap: 19px; min-height: 0; padding: 42px 0; }
  .build-band:hover { padding-left: 0; }
  .band-index { flex-direction: row; align-items: baseline; }
  .band-index span { font-size: 39px; }
  .band-copy h3 { font-size: 34px; }
  .band-outcome { grid-column: auto; padding: 18px 0 0; border-left: 0; border-top: 2px solid var(--cyan); }

  .thinking-layout { gap: 48px; }
  .principle-list { padding-left: 27px; }
  .principle-list::before { left: 2px; }
  .principle-list li { grid-template-columns: 40px 1fr; gap: 14px; }
  .principle-list li::before { left: -30px; }
  .principle-list h3 { font-size: 23px; }

  .conversation-section { padding: 0; }
  .conversation-shell { width: 100%; padding: 82px 22px; border-radius: 0; }
  .conversation-steps { padding-left: 29px; }
  .conversation-steps::before { left: 3px; }
  .conversation-steps li, .conversation-steps li:nth-child(n) { grid-template-columns: 35px 1fr; gap: 13px; margin-left: 0; }
  .conversation-steps li::before { left: -31px; }
  .conversation-steps h3 { font-size: 20px; }

  .capabilities-layout { gap: 45px; }
  .capability-field > div { grid-template-columns: 1fr; gap: 8px; }

  .final-invitation { padding: 90px 0; }
  .final-invitation h2 { font-size: 58px; }
  .final-invitation .invitation-layout > div:first-child > p:not(.eyebrow) { font-size: 16px; }
  .invitation-notes { padding: 23px 21px; }
  .final-signal { width: 70%; opacity: 0.5; }

  .contact-hero { padding: 132px 0 78px; }
  .contact-hero h1 { font-size: clamp(48px, 15vw, 68px); }
  .contact-hero-layout > div:first-child > p:not(.eyebrow) { font-size: 16px; }
  .contact-hero-note { padding: 20px; }
  .contact-section { padding: 76px 0; }
  .contact-form-shell { padding: 25px 19px; border-radius: 20px; }
  .contact-field-grid { grid-template-columns: 1fr; }
  .contact-submit-row { align-items: stretch; flex-direction: column; }
  .contact-submit { width: 100%; }
  .contact-after { padding: 75px 0; }
  .privacy-hero { padding: 130px 0 74px; }
  .privacy-hero-layout { grid-template-columns: 1fr; gap: 35px; }
  .privacy-hero h1 { font-size: clamp(43px, 13vw, 60px); }
  .privacy-section { padding: 75px 0 90px; }
  .privacy-copy section { grid-template-columns: 32px 1fr; gap: 12px; }
  .privacy-copy h2 { font-size: 23px; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 34px; padding: 62px 0 40px; }
  .footer-story { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-logo-lockup { width: 224px; }
  .footer-logo-lockup img { width: 224px; }
  .footer-brand { min-height: 96px; padding-top: 28px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 6px; }

  .cta-section { padding-inline: 14px; }

  .aimentis-chat { right: 14px; bottom: 14px; }
  .chat-launcher { min-width: 58px; width: 58px; height: 58px; justify-content: center; padding: 8px; }
  .chat-launcher-label { display: none; }
  .chat-panel { width: calc(100vw - 28px); max-height: calc(100vh - 94px); max-height: calc(100dvh - 94px); bottom: 68px; }
  .chat-panel.is-enquiry-open { height: calc(100vh - 94px); height: calc(100dvh - 94px); }
  .form-field input,
  .form-field select,
  .form-field textarea,
  .contact-form-compact .form-field input,
  .contact-form-compact .form-field select,
  .contact-form-compact .form-field textarea,
  .chat-question-form input { font-size: 16px; }
  .contact-consent,
  .contact-form-compact .contact-consent { font-size: 12px; }
  .form-hint,
  .contact-form-compact .form-hint,
  .contact-field-error { font-size: 11px; }
  .chat-note { font-size: 11px; }
}

/* Landscape phones and touch-first tablets can be wider than the mobile
   breakpoint. Keep their form controls large enough to avoid focus zoom. */
@media (hover: none) and (pointer: coarse) {
  .form-field input,
  .form-field select,
  .form-field textarea,
  .contact-form-compact .form-field input,
  .contact-form-compact .form-field select,
  .contact-form-compact .form-field textarea,
  .chat-question-form input { font-size: 16px; }
}

@media (max-height: 520px) {
  .aimentis-chat.is-open .chat-launcher { visibility: hidden; }
  .chat-panel { bottom: 0; max-height: calc(100vh - 28px); max-height: calc(100dvh - 28px); }
  .chat-panel.is-enquiry-open { height: calc(100vh - 28px); height: calc(100dvh - 28px); }
  .chat-quick-replies button:not(.chat-enquiry-toggle),
  .chat-note { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .signal-fragment, .signal-runner { animation: none !important; }
}

@media print {
  .site-header, .site-loader, .aimentis-chat, .aimentis-cursor-dot, .aimentis-cursor-ring, .aimentis-cursor-bursts { display: none !important; }
  .signal-hero { padding-top: 30px; }
}
