/* INNOVIZZ rebrand: production layer shared by every page.
   The canvas boards are a 1440px desktop design with inline styles. This file adds
   the tablet and phone layouts on top without touching the boards: attribute
   selectors match the inline declarations and override them inside media queries.
   Breakpoints: tablet at or below 1024px, phone at or below 720px. */

/* Metrics-matched fallback for the display font. The canvas stacks read 'Satoshi', 'Plus Jakarta Sans',
   sans-serif; Plus Jakarta Sans is no longer loaded, so this alias makes the interim face an Arial sized
   to Satoshi's widths, and the swap to Satoshi causes no layout shift. */
@font-face { font-family: 'Plus Jakarta Sans'; font-weight: 900; src: local('Arial Bold'), local('Arial-BoldMT'), local('Arial'), local('Liberation Sans'); size-adjust: 100.7%; ascent-override: 101%; descent-override: 24%; line-gap-override: 10%; font-display: swap; }
@font-face { font-family: 'Plus Jakarta Sans'; font-weight: 700; src: local('Arial Bold'), local('Arial-BoldMT'), local('Arial'), local('Liberation Sans'); size-adjust: 97.2%; ascent-override: 101%; descent-override: 24%; line-gap-override: 10%; font-display: swap; }
@font-face { font-family: 'Plus Jakarta Sans'; font-weight: 500; src: local('Arial'), local('ArialMT'), local('Liberation Sans'); size-adjust: 98%; ascent-override: 101%; descent-override: 24%; line-gap-override: 10%; font-display: swap; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; }
x-dc { display: block; }
img, svg, video { max-width: 100%; }
img { height: auto; }
header.sitehead img { height: 26px !important; width: auto !important; }
/* Inline links inside running text are distinguishable without color */
p a:not([class]), li a:not([class]), .legal a:not([class]), .note a, .pf-note a, .pf-legal a { text-decoration: underline; text-underline-offset: 3px; }
footer div:not([style*="display: flex"]) > a[style*="text-decoration: none"] { text-decoration: underline !important; text-underline-offset: 3px; }

/* Mobile navigation. site.js injects the toggle button and adds .nav-open. */
.navtoggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; cursor: pointer; padding: 0; margin-left: auto; align-items: center; justify-content: center; }
.navtoggle span { display: block; width: 22px; height: 2px; background: #0B0F2C; border-radius: 2px; position: relative; transition: transform 0.25s ease, opacity 0.25s ease; }
.navtoggle span::before, .navtoggle span::after { content: ''; position: absolute; left: 0; width: 22px; height: 2px; background: #0B0F2C; border-radius: 2px; transition: transform 0.25s ease, top 0.25s ease; }
.navtoggle span::before { top: -7px; }
.navtoggle span::after { top: 7px; }
.nav-open .navtoggle span { background: transparent; }
.nav-open .navtoggle span::before { top: 0; transform: rotate(45deg); }
.nav-open .navtoggle span::after { top: 0; transform: rotate(-45deg); }

/* Plugin form rendered in the proposal panel (Contact Form 7 via the Customizer shortcode).
   Mirrors the canvas form: 2px lavender borders, 44px fields, gold submit. */
.innovizz-form .wpcf7 form { display: flex; flex-direction: column; gap: 14px; color: #0B0F2C; }
.innovizz-form .wpcf7 form > p { margin: 0; }
.innovizz-form .wpcf7 form br { display: none; }
.innovizz-form .pf-grid > p { display: contents; }
.innovizz-form .pf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.innovizz-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: #0B0F2C; font-family: Inter, system-ui, sans-serif; }
.innovizz-form .wpcf7-form-control-wrap { display: block; }
.innovizz-form input[type="text"], .innovizz-form input[type="email"], .innovizz-form textarea {
  width: 100%; box-sizing: border-box; height: 44px; border: 2px solid #DED7FF; border-radius: 8px; padding: 0 12px;
  font-family: Inter, system-ui, sans-serif; font-size: 15px; color: #0B0F2C; background: #FFFFFF; outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.innovizz-form textarea { height: auto; min-height: 110px; padding: 10px 12px; }
.innovizz-form input:focus, .innovizz-form textarea:focus { border-color: #5A0FFF; box-shadow: 0 0 0 3px rgba(90, 15, 255, 0.15); }
.innovizz-form input.wpcf7-not-valid { border-color: #D64545; }
.innovizz-form .wpcf7-not-valid-tip { font-size: 12px; color: #D64545; margin-top: 4px; }
.innovizz-form .wpcf7-submit { height: 52px; border: 0; border-radius: 8px; color: #0B0F2C; font-family: Inter, system-ui, sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 0.01em; cursor: pointer; width: 100%;
  background: linear-gradient(120deg, #C9A100 0%, #FFD700 35%, #FFF3B0 55%, #FFD700 75%, #C9A100 100%); background-size: 220% 100%; transition: background-position 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease; box-shadow: 0 2px 8px rgba(11, 15, 44, 0.18); }
.innovizz-form .wpcf7-submit:hover { background-position: 100% 0; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(11, 15, 44, 0.3), 0 10px 30px rgba(255, 215, 0, 0.45); }
.innovizz-form .wpcf7-spinner { display: none; }
.innovizz-form .pf-note { font-size: 14px; color: #0B0F2C; }
.innovizz-form .pf-note a { color: #5A0FFF; }
.innovizz-form .pf-legal { font-size: 11px; color: #707070; line-height: 1.5; }
.innovizz-form .pf-legal a { color: #707070; }
.innovizz-form .wpcf7-response-output { margin: 0; padding: 12px 14px; border: 2px solid #5A0FFF; border-radius: 8px; font-size: 14px; }
.innovizz-form .wpcf7-form.sent .wpcf7-response-output { border-color: #00C9B1; background: rgba(0, 240, 211, 0.08); }
.innovizz-form .wpcf7-form.invalid .wpcf7-response-output, .innovizz-form .wpcf7-form.failed .wpcf7-response-output { border-color: #D64545; }
/* The reCAPTCHA badge is hidden; the form carries Google's attribution text instead, as their terms allow. */
.grecaptcha-badge { visibility: hidden; }

/* ---------- Tablet (<= 1024px) ---------- */

/* Journey bar: where you are on the path and what comes next. Markup is injected by build.py after the header. */
.journey { background: #FFFFFF; border-bottom: 1px solid #E3E6F0; font-family: Inter, sans-serif; font-size: 13px; color: #0B0F2C; }
.journey-in { max-width: 1200px; margin: 0 auto; padding: 0 24px; min-height: 48px; display: flex; align-items: center; gap: 20px; flex-wrap: nowrap; }
.journey a, .journey-foot a { text-decoration: none !important; }
.journey-k { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: #5A0FFF; }
.journey-here { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; padding: 10px 0; }
.journey-here strong { font-weight: 600; }
.journey-n { color: #707070; font-size: 12px; }
.journey-steps { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.journey-steps::-webkit-scrollbar { display: none; }
.journey-steps li { display: inline-flex; align-items: center; white-space: nowrap; }
.journey-steps li + li::before { content: ''; display: inline-block; width: 10px; height: 1px; background: #D4D8E2; margin: 0 2px; }
.journey-steps a, .journey-steps span { display: inline-flex; align-items: center; height: 26px; padding: 0 8px; border-radius: 999px; text-decoration: none; color: #707070; font-size: 12px; line-height: 1; }
.journey-steps a:hover { background: #F3F0FF; color: #0B0F2C; }
.journey-steps li.done a { color: #0B0F2C; }
.journey-steps li.here span { background: #DED7FF; color: #0B0F2C; font-weight: 600; }
.journey-next, .journey-back { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; flex: 0 0 auto; padding: 8px 12px; border-radius: 999px; border: 1px solid #D4D8E2; background: #FFFFFF; color: #0B0F2C; text-decoration: none; white-space: nowrap; min-height: 44px; box-sizing: border-box; }
.journey-next strong { font-weight: 600; }
.journey-next:hover, .journey-back:hover { border-color: #5A0FFF; }
.journey-next svg, .journey-foot-next svg { flex: 0 0 auto; color: #5A0FFF; }
.journey-back { margin-left: 0; margin-right: 4px; }
.journey-back svg { transform: rotate(180deg); color: #5A0FFF; }
.journey-foot { background: #F6F7FB; border-top: 1px solid #E3E6F0; font-family: Inter, sans-serif; color: #0B0F2C; }
.journey-foot-in { max-width: 1200px; margin: 0 auto; padding: 32px 24px; display: flex; flex-direction: column; gap: 12px; }
.journey-foot-k { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: #5A0FFF; }
.journey-foot-k span { color: #707070; margin-left: 8px; }
.journey-foot-next { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 16px; align-items: center; padding: 20px 24px; border-radius: 14px; background: #FFFFFF; border: 1px solid #D4D8E2; text-decoration: none; color: inherit; max-width: 720px; }
.journey-foot-next strong { font-family: 'Satoshi', 'Plus Jakarta Sans', sans-serif; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
.journey-foot-next span { grid-column: 1; font-size: 14px; color: #707070; margin-top: 4px; }
.journey-foot-next svg { grid-column: 2; grid-row: 1 / span 2; width: 18px; height: 18px; }
.journey-foot-next:hover { border-color: #5A0FFF; box-shadow: 0 8px 24px rgba(90, 15, 255, 0.12); }
.journey-foot-prev { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #707070; text-decoration: none; min-height: 44px; }
.journey-foot-prev svg { transform: rotate(180deg); }
.journey-foot-prev:hover { color: #0B0F2C; }

/* Opt-in slide-in. Shown by site.js once per visitor; never covers the reading column on desktop. */
.optin { position: fixed; right: 20px; bottom: 20px; z-index: 70; width: min(380px, calc(100vw - 32px)); background: #FFFFFF; color: #0B0F2C; border: 1px solid #D4D8E2; border-radius: 16px; box-shadow: 0 2px 6px rgba(11, 15, 44, 0.08), 0 24px 56px rgba(11, 15, 44, 0.18); padding: 22px 22px 18px; font-family: Inter, sans-serif; transform: translateY(24px); opacity: 0; transition: transform 0.35s ease, opacity 0.35s ease; }
.optin.is-open { transform: none; opacity: 1; }
.optin[hidden] { display: none; }
.optin-close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; border: 0; background: transparent; color: #707070; font-size: 24px; line-height: 1; cursor: pointer; border-radius: 10px; }
.optin-close:hover { background: #F3F0FF; color: #0B0F2C; }
.optin-k { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: #5A0FFF; margin-bottom: 6px; }
.optin-title { font-family: 'Satoshi', 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 19px; line-height: 1.2; letter-spacing: -0.01em; padding-right: 28px; }
.optin-body { margin: 8px 0 14px; font-size: 14px; line-height: 1.5; color: #707070; }
.optin .innovizz-form { padding: 0; background: transparent; border: 0; box-shadow: none; }
.optin .pf-optin { display: grid; grid-template-columns: 1fr; gap: 8px; }
.optin .pf-optin input[type="email"] { height: 46px; font-size: 15px; }
.optin .pf-optin .wpcf7-submit { height: 46px; margin: 0; }
.optin .pf-consent { font-size: 12.5px; color: #707070; margin-top: 10px; line-height: 1.4; }
.optin .pf-consent label, .optin .pf-consent .wpcf7-list-item-label { display: inline; }
.optin .pf-consent .wpcf7-list-item { margin: 0; display: flex; gap: 8px; align-items: flex-start; }
.optin .pf-consent input { margin: 2px 0 0; flex: 0 0 auto; }
.optin .pf-small { font-size: 11px; color: #8A8FB0; margin-top: 8px; line-height: 1.4; }
.optin .pf-small a { color: inherit; }
.optin .wpcf7-response-output { margin: 10px 0 0; padding: 8px 10px; font-size: 13px; border-radius: 8px; }
.optin .wpcf7-spinner { display: none; }

/* Interactive dots and pills: a 44px hit area around small controls without changing their look */
x-dc button[aria-label][style*="border-radius: 50%"] { position: relative; }
x-dc button[aria-label][style*="border-radius: 50%"]::after { content: ''; position: absolute; inset: -14px; border-radius: 50%; }

@media (max-width: 1024px) {
  [style*="min-width: 1024px"] { min-width: 0 !important; }

  /* twelve-column grids become single column; spans collapse */
  [style*="grid-template-columns: repeat(12, minmax(0, 1fr))"] { grid-template-columns: minmax(0, 1fr) !important; }
  [style*="grid-column: span"] { grid-column: 1 / -1 !important; }

  /* three-up card rows go to two-up */
  [style*="grid-template-columns: repeat(3, minmax(0, 1fr))"] { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important; }
  [style*="grid-template-columns: repeat(5, minmax(0, 1fr))"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

  /* header: logo left, toggle right, nav as a dropdown panel */
  header.sitehead > div { flex-wrap: nowrap !important; }
  .navtoggle { display: inline-flex; }
  header.sitehead nav { display: none !important; }
  header.sitehead.nav-open nav {
    display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 4px !important;
    position: absolute; left: 0; right: 0; top: 100%; padding: 12px 16px 20px; background: #FFFFFF;
    border-bottom: 1px solid #D4D8E2; box-shadow: 0 18px 40px rgba(11, 15, 44, 0.14); z-index: 60;
  }
  header.sitehead.nav-open nav a { padding: 12px 8px !important; border-radius: 8px; font-size: 17px !important; }
  header.sitehead.nav-open nav a:not([class]) { color: #0B0F2C !important; }
  header.sitehead.nav-open nav a[class*="cta"] { justify-content: center; margin-top: 8px; height: 48px !important; }
  header.sitehead { position: sticky; top: 0; }

  /* hero rail and approach flow run top to bottom below desktop width */
  div:has(> .rbox), div:has(> .anim.flow), div:has(> .flow) { flex-direction: column !important; align-items: stretch !important; }
  .rbox, div:has(> .flow) > .anim { text-align: center; white-space: normal !important; }
  .hflow, .flow { width: 6px !important; height: 22px !important; min-width: 0 !important; flex: 0 0 22px !important; align-self: center; transform: none !important; }
  .hfarrow::after, .flowend::after { display: none; }
  div:has(> .curvepath), .rowin:has(> svg[viewBox="0 0 1000 52"]) { display: none !important; }

  /* SMB ladder: the 3D road is a desktop composition; below it, cards stack at natural height */
  .ladder { padding-left: 0 !important; transform: none !important; }
  .road, .orb.st, .gpslab, .gflag, .gpspin { display: none !important; }
  .ladder [style*="height: 264px"] { height: auto !important; }

  /* decorative hero objects
  .helixwrap { width: 200px !important; height: 280px !important; right: 16px !important; opacity: 0.45 !important; }
  .globe { width: 320px !important; height: 320px !important; right: 12px !important; opacity: 0.55 !important; }

  /* back to top sits lower on the side so it does not cover content mid-screen */
  .totop { right: 14px !important; top: auto !important; bottom: 96px !important; transform: none !important; width: 42px !important; height: 42px !important; }
  .totop:hover { transform: scale(1.06) !important; }
}

/* ---------- Phone (<= 720px) ---------- */
@media (max-width: 720px) {
  /* opt-in on phones: a bottom sheet, full width, above the home-indicator area */
  .optin { right: 0; left: 0; bottom: 0; width: auto; border-radius: 16px 16px 0 0; padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); transform: translateY(100%); }
  .optin.is-open { transform: none; }
  .optin-title { font-size: 16px; padding-right: 36px; }
  .optin-body { display: none; }
  .optin-k { margin-bottom: 4px; }
  .optin .pf-optin { grid-template-columns: 1fr auto; }
  .optin .pf-optin .wpcf7-submit { padding: 0 14px; width: auto; }
  .optin .pf-consent { font-size: 12px; margin-top: 8px; }
  .optin .pf-small { display: none; }

  /* journey bar on phones: current step and next only; the full step list lives in the footer card */
  .journey-in { gap: 8px; padding: 6px 16px; flex-wrap: nowrap; }
  .journey-steps { display: none; }
  .journey-here { padding: 4px 0; gap: 6px; min-width: 0; }
  .journey-here .journey-k { display: none; }
  .journey-here::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #5A0FFF; flex: 0 0 auto; }
  .journey-here strong { overflow: hidden; text-overflow: ellipsis; }
  .journey-next { margin-left: auto; padding: 6px 10px; min-height: 40px; gap: 6px; flex: 0 0 auto; }
  .journey-next .journey-k { font-size: 10px; }
  .journey-foot-in { padding: 28px 16px; }
  .journey-foot-next strong { font-size: 19px; }

  /* hero rail: the curved SVG connector is hidden, so give the second row its own vertical link */
  div:has(> .rbox.wh) { margin-top: 0 !important; }
  div:has(> .rbox.wh)::before { content: ''; width: 6px; height: 22px; align-self: center; border-radius: 3px; background: linear-gradient(180deg, #5A0FFF 0%, #00F0D3 100%); box-shadow: 0 2px 3px rgba(6, 10, 31, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.35); }

  /* step ladder: dots and labels stack as a vertical list with full-width tap rows */
  div:has(> sc-for > div > button[aria-label]), div:has(> div > button[aria-label][style*="border-radius: 50%"]) { flex-direction: column !important; align-items: stretch !important; gap: 4px; }
  div:has(> sc-for > div > button[aria-label]) > div[style*="position: absolute"], div:has(> div > button[aria-label][style*="border-radius: 50%"]) > div[style*="position: absolute"] { display: none !important; }
  div:has(> button[aria-label][style*="border-radius: 50%"]) { flex-direction: row !important; align-items: center !important; justify-content: flex-start; gap: 14px !important; min-height: 44px; padding: 2px 4px; }
  div:has(> button[aria-label][style*="border-radius: 50%"]) > button:last-child { font-size: 15px !important; text-align: left; }

  /* every multi-column grid stacks */
  [style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; }
  [style*="grid-template-columns: repeat(3, max-content)"] { grid-template-columns: repeat(auto-fit, minmax(120px, max-content)) !important; }

  /* side-by-side flex rows wrap; vertical stacks and inline icon rows are untouched */
  [style*="display: flex"][style*="justify-content: space-between"]:not([style*="flex-direction: column"]) { flex-wrap: wrap !important; row-gap: 12px !important; }
  [style*="display: flex"][style*="align-items: flex-start"]:not([style*="flex-direction: column"]),
  [style*="display: flex"][style*="align-items: start"]:not([style*="flex-direction: column"]) { flex-wrap: wrap !important; }
  [style*="display: flex"][style*="gap: 32px"]:not([style*="flex-direction: column"]),
  [style*="display: flex"][style*="gap: 40px"]:not([style*="flex-direction: column"]),
  [style*="display: flex"][style*="gap: 48px"]:not([style*="flex-direction: column"]) { flex-wrap: wrap !important; }
  [style*="flex: 0 0"] { flex-basis: auto !important; }
  [style*="min-width: 240px"], [style*="min-width: 280px"], [style*="min-width: 170px"], [style*="min-width: 150px"] { min-width: 0 !important; }

  .innovizz-form .pf-grid { grid-template-columns: minmax(0, 1fr); }

  /* containers: tighter gutters and vertical rhythm */
  [style*="padding: 80px 24px 0"] { padding: 56px 16px 0 !important; }
  [style*="padding: 96px 24px 0"] { padding: 64px 16px 0 !important; }
  [style*="padding: 104px 24px 0"] { padding: 64px 16px 0 !important; }
  [style*="padding: 88px 24px 0"] { padding: 56px 16px 0 !important; }
  [style*="padding: 72px 24px 0"] { padding: 48px 16px 0 !important; }
  [style*="padding: 64px 24px 0"] { padding: 48px 16px 0 !important; }
  [style*="padding: 48px 24px 0"] { padding: 40px 16px 0 !important; }
  [style*="padding: 96px 24px 88px"] { padding: 64px 16px 56px !important; }
  [style*="padding: 96px 24px 72px"] { padding: 64px 16px 48px !important; }
  [style*="padding: 88px 24px 72px"] { padding: 56px 16px 48px !important; }
  [style*="padding: 80px 24px 64px"] { padding: 56px 16px 48px !important; }
  [style*="padding: 72px 24px 10px"] { padding: 48px 16px 8px !important; }
  [style*="padding: 64px 24px 48px"] { padding: 48px 16px 40px !important; }
  [style*="padding: 56px 24px 88px"] { padding: 40px 16px 56px !important; }
  [style*="padding: 96px 24px"] { padding: 64px 16px !important; }
  [style*="padding: 80px 24px"] { padding: 56px 16px !important; }
  [style*="padding: 72px 24px"] { padding: 48px 16px !important; }
  [style*="padding: 64px 24px"] { padding: 48px 16px !important; }
  [style*="padding: 40px 24px"] { padding: 32px 16px !important; }
  [style*="padding: 40px 32px"] { padding: 28px 20px !important; }
  [style*="padding: 18px 24px"] { padding: 14px 16px !important; }
  [style*="padding: 8px 24px"] { padding: 8px 16px !important; }
  [style*="padding: 0 24px"] { padding: 0 16px !important; }
  [style*="padding: 32px 28px"], [style*="padding: 28px 28px"], [style*="padding: 32px 32px"] { padding: 22px 18px !important; }

  /* type scale */
  [style*="font-size: 64px"] { font-size: clamp(34px, 9.5vw, 44px) !important; line-height: 1.08 !important; }
  [style*="font-size: 58px"], [style*="font-size: 56px"] { font-size: clamp(32px, 9vw, 42px) !important; line-height: 1.1 !important; }
  [style*="font-size: 48px"] { font-size: clamp(28px, 8vw, 36px) !important; line-height: 1.15 !important; }
  [style*="font-size: 42px"], [style*="font-size: 40px"] { font-size: clamp(26px, 7.5vw, 32px) !important; line-height: 1.18 !important; }
  [style*="font-size: 38px"], [style*="font-size: 36px"] { font-size: clamp(24px, 7vw, 30px) !important; line-height: 1.2 !important; }
  [style*="font-size: 34px"], [style*="font-size: 32px"] { font-size: clamp(23px, 6.5vw, 28px) !important; line-height: 1.22 !important; }
  [style*="font-size: 30px"], [style*="font-size: 28px"] { font-size: clamp(22px, 6vw, 26px) !important; }
  [style*="font-size: 22px"], [style*="font-size: 20px"] { font-size: 18px !important; }
  [style*="letter-spacing: -0.02em"] { letter-spacing: -0.01em !important; }

  /* buttons fill their row */
  a[class*="cta"] { width: 100%; box-sizing: border-box; justify-content: center; }
  [style*="display: flex"][style*="gap: 12px"] > a[class*="cta"],
  [style*="display: flex"][style*="gap: 14px"] > a[class*="cta"],
  [style*="display: flex"][style*="gap: 16px"] > a[class*="cta"] { width: 100%; }

  /* showreels keep their 1040 x 390 scene ratio */
  .adstage, .adstage.wide, .vstage { height: auto !important; aspect-ratio: 1040 / 390; min-height: 150px; }
  .adstage.wide { padding: 0 !important; }
  .adcap, .vcap { font-size: 10px !important; padding: 6px 10px !important; }
  .adtitle { left: 12px !important; top: 10px !important; }
  .adnum { font-size: 8px !important; letter-spacing: 0.12em !important; }
  .adh { font-size: 14px !important; margin-top: 2px !important; }
  .adsub { font-size: 7px !important; margin-top: 2px !important; }

  /* hero decorations hidden on phone; copy takes the full width */
  .helixwrap, .globe, .gshadow { display: none !important; }

  [style*="height: 280px"] { height: auto !important; min-height: 180px; }

  /* raised proposal panel sits flush */
  .pform { transform: none !important; padding: 24px 18px !important; }

  /* legal pages: aside above the article, not sticky */
  [style*="position: sticky"][style*="top: 96px"], [style*="position: sticky"][style*="top: 104px"] { position: static !important; }

  /* fixed button clear of the thumb zone and the NOVA launcher */
  .totop { bottom: 88px !important; right: 12px !important; }

  [style*="white-space: nowrap"] { white-space: normal !important; }
  [style*="text-align: right"] { text-align: left !important; }
  [style*="width: 280px"], [style*="width: 320px"], [style*="width: 380px"], [style*="width: 420px"] { width: auto !important; max-width: 100%; }

  /* label columns in definition rows keep their width instead of wrapping mid-word */
  [style*="display: flex"] > [style*="min-width: 150px"], [style*="display: flex"] > [style*="min-width: 170px"] { flex: 0 0 104px !important; min-width: 0 !important; }

  /* decorative blooms stay inside the viewport */
  .iglassfield::before, .iglassfield::after, .glassfield::before, .glassfield::after { width: 60vw !important; left: 0 !important; right: auto !important; }
  html, body { overflow-x: clip; }
}

/* ---------- Narrow phones ---------- */
@media (max-width: 400px) {
  [style*="font-size: 64px"], [style*="font-size: 58px"], [style*="font-size: 56px"] { font-size: 30px !important; }
  header.sitehead a img { height: 22px !important; }
}

/* ---------- Print ---------- */
@media print {
  header.sitehead, .totop, .navtoggle, .adstage, .vstage, .helixwrap, .globe { display: none !important; }
  [style*="color: #FFFFFF"] { color: #0B0F2C !important; }
}

/* ---------------------------------------------------------------------------------
   Typography layer. INNOVIZZ Technical Brand Guidelines v4, section 3 and section 10.
   The canvas boards carry their own inline sizes, which ran under the guideline scale
   (H1 56, H2 24 to 42, H3 20 to 30, body 14 to 15.5). This layer maps each inline size
   to the guideline tier and enforces the tier's size, weight, tracking and rhythm.
   Families are untouched: Satoshi display, Inter body and UI, JetBrains Mono data.
   Tiers: H1 64/900/-0.02em, H2 48/700/-0.02em, H3 32/700/-0.015em, Subheader 24/500,
   body 16/400/1.6, UI 16/500 or 600 with +0.01em, labels 14/400, mono labels 12/500/+0.02em.
   Breakpoints: desktop above 1024, tablet 641 to 1024 (56/40/28), mobile up to 640 (40/32/24).
   --------------------------------------------------------------------------------- */
@font-face{font-family:'Satoshi';src:url(../fonts/Satoshi-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
html { font-synthesis: none; }
body { font-family: Inter, system-ui, sans-serif; line-height: 1.6; }
strong, b { font-weight: 600; }
h1, h2, h3 { font-family: 'Satoshi', 'Plus Jakarta Sans', sans-serif; line-height: 1.2 !important; }
h1 { font-weight: 900 !important; letter-spacing: -0.02em !important; }
h2 { font-weight: 700 !important; letter-spacing: -0.02em !important; }
h3 { font-weight: 700 !important; letter-spacing: -0.015em !important; }
/* Subheader tier: the canvas H2s set at 24px are in-copy subheads, not section leads. */
h2[style*="font-size: 24px"] { font-weight: 500 !important; letter-spacing: -0.01em !important; }
/* Body tier: paragraphs set between 14 and 15.5px read as system text; the guideline floor is 16. */
p[style*="font-size: 14px"], p[style*="font-size: 15px"], p[style*="font-size: 15.5px"], .legal p { font-size: 16px !important; line-height: 1.6 !important; }
p[style*="font-size: 13px"] { font-size: 14px !important; line-height: 1.6 !important; }
/* UI tier: buttons 16/600, nav 16/500, both with +0.01em. */
a.cta5, a.cta, .innovizz-form .wpcf7-submit, button.cta5 { font-family: Inter, system-ui, sans-serif !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0.01em !important; }
a.cta { font-weight: 500 !important; }
header.sitehead nav a { font-size: 16px !important; font-weight: 500 !important; letter-spacing: 0.01em !important; }
/* Form controls do not inherit by default; the guideline form input is Inter 16. */
.innovizz-form input, .innovizz-form textarea, .innovizz-form select, .innovizz-form label { font-family: Inter, system-ui, sans-serif; }
.innovizz-form input, .innovizz-form textarea, .innovizz-form select { font-size: 16px; }
.innovizz-form label { font-size: 14px; font-weight: 400; }

/* Monospace roles, revised 17 Oct 2026 after launch review. The canvas used JetBrains Mono as a
   decorative label face (258 instances: eyebrows, "Check it" lines, standards lists, card links).
   Read as a terminal font by reviewers. Mono is now reserved for data: the Evidence Room run board,
   code and pre. Everywhere else the label roles move to Inter.
   Eyebrows and kickers (inline weight 500 or 600): Inter 600, 12px, +0.08em, already uppercase in copy.
   Sentence-case technical lines (inline weight 400): Inter 500 at their size, no tracking. */
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"]:not(pre):not(code) { font-family: Inter, system-ui, sans-serif !important; font-weight: 500 !important; letter-spacing: 0 !important; }
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-weight: 500"],
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-weight: 600"] { font-weight: 600 !important; letter-spacing: 0.08em !important; }
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-size: 11px"],
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-size: 11.5px"] { font-size: 12px !important; }
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-size: 12px"]:not([style*="font-weight"]),
body:not(.page-template-template-evidence-room) [style*="font-family: 'JetBrains Mono'"][style*="font-size: 13px"]:not([style*="font-weight"]) { font-size: 14px !important; }
.journey-k, .journey-foot-k, .optin-k { font-family: Inter, system-ui, sans-serif !important; font-weight: 600 !important; font-size: 12px !important; letter-spacing: 0.08em !important; }
.journey-foot-k span { font-weight: 500; }

/* Residual mono, 19 Oct 2026 review. Class-based and unquoted inline mono that the attribute
   selectors above did not reach: step numbers (.node, .morb), SMB chapter labels (.adnum, .adsub),
   SMB map labels (.gpslab), the corridor buttons on the clinical hub. The showreel captions (.vcap)
   and the SYNTHETIC DATA badges stay mono: they label data renderings, which is the mono role. */
body:not(.page-template-template-evidence-room) [style*="font-family: JetBrains Mono"]:not(pre):not(code) { font-family: Inter, system-ui, sans-serif !important; font-weight: 500 !important; letter-spacing: 0 !important; }
.node, .morb { font-family: 'Satoshi', Inter, system-ui, sans-serif !important; font-weight: 700 !important; letter-spacing: 0 !important; }
.adnum, .adsub, .gpslab { font-family: Inter, system-ui, sans-serif !important; font-weight: 600 !important; letter-spacing: 0.08em !important; }

/* Reading contrast and measure, 19 Oct 2026 review. The canvas set running copy at #707070,
   which reads as a caption colour at paragraph length and thins the page. Paragraph-size copy
   moves to the slate the sub-pages use; captions at 14px and under keep #707070. Lead paragraphs
   sit at 20px with a 1.6 rhythm and a 64 to 72 character measure. */
p[style*="color: #707070"], div[style*="color: #707070"][style*="font-size: 15px"], div[style*="color: #707070"][style*="font-size: 16px"], div[style*="color: #707070"][style*="font-size: 17px"], span[style*="color: #707070"][style*="font-size: 15px"], span[style*="color: #707070"][style*="font-size: 16px"] { color: #4A4F6A !important; }
p[style*="color: #707070"][style*="font-size: 14px"], p[style*="color: #707070"][style*="font-size: 13px"], p[style*="color: #707070"][style*="font-size: 12px"] { color: #707070 !important; }
p[style*="font-size: 19px"], p[style*="font-size: 20px"], p[style*="font-size: 21px"] { font-size: 20px !important; line-height: 1.6 !important; }
p { max-width: 72ch; }
p[style*="max-width"] { max-width: 760px; }
footer p, .journey p, .optin p, form p, .pform p { max-width: none; }

@media (min-width: 1025px) {
  h1, h1[style*="font-size"] { font-size: 64px !important; }
  h2[style*="font-size: 48px"], h2[style*="font-size: 42px"], h2[style*="font-size: 40px"], h2[style*="font-size: 38px"], h2[style*="font-size: 36px"] { font-size: 48px !important; }
  h2[style*="font-size: 34px"], h2[style*="font-size: 32px"], h2[style*="font-size: 30px"], h2[style*="font-size: 28px"], h3[style*="font-size: 30px"], h3[style*="font-size: 28px"], h3[style*="font-size: 26px"] { font-size: 32px !important; }
  h2[style*="font-size: 24px"], h3[style*="font-size: 22px"], h3[style*="font-size: 20px"] { font-size: 24px !important; }
}
@media (min-width: 641px) and (max-width: 1024px) {
  h1, h1[style*="font-size"] { font-size: 56px !important; }
  h2[style*="font-size: 48px"], h2[style*="font-size: 42px"], h2[style*="font-size: 40px"], h2[style*="font-size: 38px"], h2[style*="font-size: 36px"] { font-size: 40px !important; }
  h2[style*="font-size: 34px"], h2[style*="font-size: 32px"], h2[style*="font-size: 30px"], h2[style*="font-size: 28px"], h3[style*="font-size: 30px"], h3[style*="font-size: 28px"], h3[style*="font-size: 26px"] { font-size: 28px !important; }
  h2[style*="font-size: 24px"], h3[style*="font-size: 22px"], h3[style*="font-size: 20px"] { font-size: 24px !important; }
}
@media (max-width: 640px) {
  h1, h1[style*="font-size"] { font-size: 40px !important; }
  h2[style*="font-size: 48px"], h2[style*="font-size: 42px"], h2[style*="font-size: 40px"], h2[style*="font-size: 38px"], h2[style*="font-size: 36px"] { font-size: 32px !important; }
  h2[style*="font-size: 34px"], h2[style*="font-size: 32px"], h2[style*="font-size: 30px"], h2[style*="font-size: 28px"], h3[style*="font-size: 30px"], h3[style*="font-size: 28px"], h3[style*="font-size: 26px"] { font-size: 24px !important; }
  h2[style*="font-size: 24px"], h3[style*="font-size: 22px"], h3[style*="font-size: 20px"] { font-size: 22px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
