/* Vertex Studio â€” vertex-site-v4
   Built from website.svg (508 mm = 1920 px, 1 mm = 3.7795 px).
   At 1200 px and wider every length is the SVG's own value scaled by --u, one 1920th of
   the page width (a container-query unit, so the scrollbar does not count), so the
   margins, gutters and element widths hold as percentages of the page at any width.
   Hairlines are 1 css px (the SVG renders every stroke at 1.00 px).
   Below 1200 px the page reflows: 768-1199 tablet rules, then the phone layout (< 768) built from
   the MOBILE canvas of website.svg (390 px, every length * --m, one 390th of the content width).
   Fonts: JetBrains Mono (100 / 400 / 500 / 700) for the page, Inter (400 / 700)
   for the wordmark and the footer, as the SVG has them. Both self-hosted. */

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("fonts/jetbrains-mono-latin-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/inter-latin-var.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink: #ffffff;
  --blue: #4f9cf9;
  --rule: #2e4e73;
  --mail: #ffe492;
  --desc: #f7f7ee;
  --font: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  --font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  /* one 1920th of the page width */
  --u: calc(100cqw / 1920);
  /* JetBrains Mono letter-spacing, as drawn: pitch = 0.6 em advance + the SVG's letter-spacing */
  --ls-h: calc(-1.07 * var(--u));
  --ls-body: calc(0.4 * var(--u));
  --ls-ct-l: calc(0.33 * var(--u));
  --ls-ct-m: calc(0.36 * var(--u));
  --ls-cli-l: calc(0.33 * var(--u));
  --ls-cli-m: calc(0.36 * var(--u));
  --ls-soon: calc(0.4 * var(--u));
  --ls-bhero: calc(-0.29 * var(--u));
  --ls-b16: calc(-0.32 * var(--u));
}

/* Chrome on Windows rounds every glyph advance to a whole device pixel, so at 100% scaling
   a 16 px JetBrains Mono advance is 10 px instead of 9.6 and a 73-character line runs 4% long.
   At the common integer and quarter device-pixel ratios, take the rounding out of the
   letter-spacing so the pitch equals the SVG's (advance + letter-spacing) exactly. */
@media (resolution: 1dppx)    { :root { --dp: 1px; } }
@media (resolution: 1.25dppx) { :root { --dp: 0.8px; } }
@media (resolution: 1.5dppx)  { :root { --dp: calc(1px / 1.5); } }
@media (resolution: 1.75dppx) { :root { --dp: calc(1px / 1.75); } }
@media (resolution: 2dppx)    { :root { --dp: 0.5px; } }
@media (resolution: 2.5dppx)  { :root { --dp: 0.4px; } }
@media (resolution: 3dppx)    { :root { --dp: calc(1px / 3); } }
@media (resolution: 1dppx), (resolution: 1.25dppx), (resolution: 1.5dppx), (resolution: 1.75dppx), (resolution: 2dppx), (resolution: 2.5dppx), (resolution: 3dppx) {
  :root {
    /* measured: Chrome/DirectWrite rounds the font size to whole device pixels, then the 0.6 em advance */
    --adv-h:     round(nearest, 0.6 * round(nearest, 53.333 * var(--u), var(--dp)), var(--dp));
    --adv-16:    round(nearest, 0.6 * round(nearest, 16 * var(--u), var(--dp)), var(--dp));
    --adv-ct:    round(nearest, 0.6 * round(nearest, 14.667 * var(--u), var(--dp)), var(--dp));
    --adv-cli:   round(nearest, 0.6 * round(nearest, 13.38 * var(--u), var(--dp)), var(--dp));
    --adv-12:    round(nearest, 0.6 * round(nearest, 12 * var(--u), var(--dp)), var(--dp));
    --ls-h:     calc(30.93 * var(--u) - var(--adv-h));
    --ls-body:  calc(10 * var(--u) - var(--adv-16));
    --ls-ct-l:  calc(9.13 * var(--u) - var(--adv-ct));
    --ls-ct-m:  calc(9.16 * var(--u) - var(--adv-ct));
    --ls-cli-l: calc(8.358 * var(--u) - var(--adv-cli));
    --ls-cli-m: calc(8.388 * var(--u) - var(--adv-cli));
    --ls-soon:  calc(7.6 * var(--u) - var(--adv-12));
    --ls-bhero: calc(8.51 * var(--u) - var(--adv-ct));
    --ls-b16:   calc(9.28 * var(--u) - var(--adv-16));
  }
}

* { box-sizing: border-box; }

html { background: #ffffff; }

body {
  margin: 0;
  min-height: 100%;
  container-type: inline-size;
  /* rect523: #070541 at 100% opacity on the left to 68.9% on the right, over white */
  background: linear-gradient(90deg, #070541 0%, rgba(7, 5, 65, 0.6888) 100%);
  color: var(--ink);
  font-family: var(--font);
  font-size: calc(16 * var(--u));
  font-weight: 100;
  letter-spacing: var(--ls-body);
  line-height: calc(18.08 * var(--u));
  -webkit-text-size-adjust: 100%;
}

img { display: block; max-width: 100%; }
picture { display: contents; }          /* <picture> only swaps the file below 768 px */
.br-m { display: none; }                /* phone-only line breaks in headings */
a { color: inherit; }
h1, h2, h3, h4, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }

/* ---- type ------------------------------------------------------------ */

h1, h2 {
  font-size: calc(53.333 * var(--u));
  font-weight: 700;
  letter-spacing: var(--ls-h);
  line-height: calc(87 * var(--u));
}

/* Flow width from the SVG text shape: 739.2 px = 73.92 characters at a 10.0 px pitch
   (9.6 px advance + 0.4 px letter-spacing), in ch so the line breaks match the SVG. */
.lead {
  font-size: calc(16 * var(--u));
  font-weight: 100;
  letter-spacing: var(--ls-body);
  line-height: calc(18.08 * var(--u));
  width: calc(739.2 * var(--u));
}
.lead + .lead { margin-top: calc(18.08 * var(--u)); }   /* the blank line between paragraphs */
.lead.strong, .lead strong { font-weight: 700; }

/* ---- buttons --------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(4 * var(--u));
  background: var(--blue);
  color: var(--ink);
  border-radius: calc(8 * var(--u));
  text-decoration: none;
  white-space: nowrap;
  line-height: 1;
}
.btn img { flex: none; width: calc(12 * var(--u)); height: calc(12 * var(--u)); }
.btn-nav  { position: absolute; font-size: calc(16 * var(--u)); font-weight: 700; letter-spacing: var(--ls-b16); }
.btn-hero { font-size: calc(14.667 * var(--u)); font-weight: 100; letter-spacing: var(--ls-bhero); }
.btn-cta  { font-size: calc(16 * var(--u)); font-weight: 500; letter-spacing: var(--ls-b16); }

/* ---- header ---------------------------------------------------------- */

.site-header { position: relative; border-bottom: 1px solid var(--ink); }
.site-header .brand { position: absolute; }
.brand {
  font-family: var(--font-ui);
  font-size: calc(28 * var(--u));
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}
.site-nav ul, .site-nav li { display: contents; }

/* ---- bands ----------------------------------------------------------- */

.band { position: relative; }
.band h1, .band h2, .band .lead, .band .btn { position: relative; z-index: 1; }
.art { position: absolute; height: auto; }
.divider { width: 100%; }
.divider img { width: 100%; height: 100%; }

/* ---- how we work: three outlined cards ------------------------------- */

.card {
  position: absolute;
  background: none;
  border: 1px solid var(--ink);
  color: var(--ink);
  text-align: left;
}
.card h3, .card .card-sub {
  font-size: calc(14.667 * var(--u));
  font-weight: 700;
  line-height: calc(19.07 * var(--u));
}
.card li { display: flex; align-items: flex-start; margin-bottom: calc(30.24 * var(--u)); }
.card li:last-child { margin-bottom: 0; }
.card li img { flex: none; }
.card li span {
  display: block;
  font-size: calc(13.38 * var(--u));
  font-weight: 100;
  line-height: calc(15.12 * var(--u));
}

/* ---- assistants ------------------------------------------------------ */

.logos li { position: absolute; }
.logos li img { width: 100%; height: 100%; }
.logos .soon {
  position: absolute;
  white-space: nowrap;
  font-size: calc(12 * var(--u));
  font-weight: 100;
  letter-spacing: var(--ls-soon);
  line-height: calc(15.6 * var(--u));
}

/* ---- footer (Inter 12 px, as the SVG has it) ------------------------- */

.site-footer { position: relative; font-family: var(--font-ui); font-size: calc(12 * var(--u)); letter-spacing: calc(-0.24 * var(--u)); line-height: 1; }
.footer-grid { position: relative; height: calc(120 * var(--u)); }
.footer-grid > div { position: absolute; top: 0; }
.footer-grid .brand { font-size: calc(12 * var(--u)); letter-spacing: 0; }
.footer-desc { font-weight: 400; line-height: calc(30 * var(--u)); color: var(--desc); white-space: nowrap; }
.footer-head { font-weight: 700; line-height: 1; white-space: nowrap; }
.footer-grid li a { display: block; font-weight: 400; line-height: calc(37 * var(--u)); text-decoration: none; white-space: nowrap; }
.footer-grid .mail { color: var(--mail); }
.footer-bottom { position: relative; border-top: 1px solid var(--rule); font-weight: 400; }
.footer-bottom > * { position: absolute; }
.footer-bottom a { text-decoration: none; white-space: nowrap; }
.lang { display: flex; align-items: flex-start; white-space: nowrap; }
.footer-operator {
  font-weight: 400;
  line-height: 1.5;
  color: var(--desc);
  padding-top: calc(24 * var(--u));
}
.footer-operator a { text-decoration: none; }

/* ---- derived from the SVG (build_v4.py): every position is svg px * --u ---- */
[id="hero"] { height:calc(572.81 * var(--u)); padding-top:calc(174.1 * var(--u)); }
[id="hero"] h1, [id="hero"] h2 { margin-left:calc(189.3 * var(--u)); }
[id="hero"] h1 + .lead, [id="hero"] h2 + .lead { margin-top:calc(54.6 * var(--u)); }
[id="hero"] .lead { margin-left:calc(190 * var(--u)); }
[id="hero"] .art { left:calc(1135.79 * var(--u)); top:calc(216.84 * var(--u)); width:calc(521.43 * var(--u)); }
[id="hero"] .btn { margin-top:calc(51.9 * var(--u)); margin-left:calc(188 * var(--u)); }
[id="baseline"] { height:calc(572.18 * var(--u)); padding-top:calc(262.5 * var(--u)); }
[id="baseline"] h1, [id="baseline"] h2 { margin-left:calc(1008 * var(--u)); }
[id="baseline"] h1 + .lead, [id="baseline"] h2 + .lead { margin-top:calc(54.3 * var(--u)); }
[id="baseline"] .lead { margin-left:calc(1010.2 * var(--u)); }
[id="baseline"] .art { left:calc(176.91 * var(--u)); top:calc(266.71 * var(--u)); width:calc(606.74 * var(--u)); }
[id="blindspot"] { height:calc(592.17 * var(--u)); padding-top:calc(197.82 * var(--u)); }
[id="blindspot"] h1, [id="blindspot"] h2 { margin-left:calc(218.7 * var(--u)); }
[id="blindspot"] h1 + .lead, [id="blindspot"] h2 + .lead { margin-top:calc(56.9 * var(--u)); }
[id="blindspot"] .lead { margin-left:calc(220.6 * var(--u)); }
[id="blindspot"] .art { left:calc(1271.19 * var(--u)); top:calc(167.63 * var(--u)); width:calc(250.62 * var(--u)); }
[id="gap"] { height:calc(657.83 * var(--u)); padding-top:calc(196.89 * var(--u)); }
[id="gap"] h1, [id="gap"] h2 { margin-left:calc(992 * var(--u)); }
[id="gap"] h1 + .lead, [id="gap"] h2 + .lead { margin-top:calc(54.4 * var(--u)); }
[id="gap"] .lead { margin-left:calc(993.7 * var(--u)); }
[id="gap"] .art { left:calc(310.55 * var(--u)); top:calc(168.55 * var(--u)); width:calc(408.73 * var(--u)); }
[id="infrastructure"] { height:calc(712.8 * var(--u)); padding-top:calc(292.16 * var(--u)); }
[id="infrastructure"] h1, [id="infrastructure"] h2 { margin-left:calc(218.7 * var(--u)); }
[id="infrastructure"] h1 + .lead, [id="infrastructure"] h2 + .lead { margin-top:calc(56.4 * var(--u)); }
[id="infrastructure"] .lead { margin-left:calc(220.4 * var(--u)); }
[id="infrastructure"] .art { left:calc(1198 * var(--u)); top:calc(277.3 * var(--u)); width:calc(401 * var(--u)); }
[id="hit-list"] { height:calc(594.3 * var(--u)); padding-top:calc(257.86 * var(--u)); }
[id="hit-list"] h1, [id="hit-list"] h2 { margin-left:calc(992 * var(--u)); }
[id="hit-list"] h1 + .lead, [id="hit-list"] h2 + .lead { margin-top:calc(55.3 * var(--u)); }
[id="hit-list"] .lead { margin-left:calc(993.7 * var(--u)); }
[id="hit-list"] .art { left:calc(275.73 * var(--u)); top:calc(275.59 * var(--u)); width:calc(455.65 * var(--u)); }
[id="multiple-models"] { height:calc(667.83 * var(--u)); padding-top:calc(227.06 * var(--u)); }
[id="multiple-models"] h1, [id="multiple-models"] h2 { margin-left:calc(217.5 * var(--u)); }
[id="multiple-models"] h1 + .lead, [id="multiple-models"] h2 + .lead { margin-top:calc(56.4 * var(--u)); }
[id="multiple-models"] .lead { margin-left:calc(219.5 * var(--u)); }
[id="multiple-models"] .art { left:calc(1142.67 * var(--u)); top:calc(227.42 * var(--u)); width:calc(506.64 * var(--u)); }
[id="proof-of-movement"] { height:calc(630.46 * var(--u)); padding-top:calc(187.79 * var(--u)); }
[id="proof-of-movement"] h1, [id="proof-of-movement"] h2 { margin-left:calc(990.3 * var(--u)); }
[id="proof-of-movement"] h1 + .lead, [id="proof-of-movement"] h2 + .lead { margin-top:calc(54.3 * var(--u)); }
[id="proof-of-movement"] .lead { margin-left:calc(993.7 * var(--u)); }
[id="proof-of-movement"] .art { left:calc(292.37 * var(--u)); top:calc(268.31 * var(--u)); width:calc(452 * var(--u)); }
[id="how-we-work"] { height:calc(1396.25 * var(--u)); padding-top:calc(258.41 * var(--u)); }
[id="how-we-work"] h1, [id="how-we-work"] h2 { margin-left:calc(777.3 * var(--u)); }
[id="how-we-work"] h1 + .lead, [id="how-we-work"] h2 + .lead { margin-top:calc(71.3 * var(--u)); }
[id="how-we-work"] .lead { margin-left:calc(539.8 * var(--u)); width:calc(842.4 * var(--u)); text-align:center; }
.card-left { left:calc(313.1 * var(--u)); top:calc(583.51 * var(--u)); width:calc(395.2 * var(--u)); height:calc(507 * var(--u)); border-radius:calc(7.95 * var(--u)) / calc(9.85 * var(--u)); padding:calc(57 * var(--u)) 0 0 calc(38.8 * var(--u)); }
.card-left h3, .card-left .card-sub { letter-spacing:var(--ls-ct-l); }
.card-left .card-sub { margin-top:calc(19.03 * var(--u)); }
.card-left ul { margin-top:calc(31.63 * var(--u)); margin-left:calc(0.4 * var(--u)); }
.card-left li img { margin-top:calc(2.4 * var(--u)); width:calc(17.06 * var(--u)); height:calc(17.06 * var(--u)); }
.card-left li span { margin-left:calc(14.84 * var(--u)); width:calc(278.9 * var(--u)); letter-spacing:var(--ls-cli-l); }
.card-mid { left:calc(755.1 * var(--u)); top:calc(571.51 * var(--u)); width:calc(395.1 * var(--u)); height:calc(532.4 * var(--u)); border-radius:calc(7.95 * var(--u)) / calc(10.78 * var(--u)); padding:calc(68.2 * var(--u)) 0 0 calc(27.9 * var(--u)); }
.card-mid h3, .card-mid .card-sub { letter-spacing:var(--ls-ct-m); }
.card-mid .card-sub { margin-top:calc(19.13 * var(--u)); }
.card-mid ul { margin-top:calc(32.33 * var(--u)); margin-left:calc(0.8 * var(--u)); }
.card-mid li img { margin-top:calc(4.3 * var(--u)); width:calc(18.36 * var(--u)); height:calc(18.35 * var(--u)); }
.card-mid li span { margin-left:calc(16.24 * var(--u)); width:calc(286.6 * var(--u)); letter-spacing:var(--ls-cli-m); }
.card-right { left:calc(1198.1 * var(--u)); top:calc(583.51 * var(--u)); width:calc(395.2 * var(--u)); height:calc(507 * var(--u)); border-radius:calc(7.95 * var(--u)) / calc(9.85 * var(--u)); padding:calc(56.5 * var(--u)) 0 0 calc(33.5 * var(--u)); }
.card-right h3, .card-right .card-sub { letter-spacing:var(--ls-ct-l); }
.card-right .card-sub { margin-top:calc(19.13 * var(--u)); }
.card-right ul { margin-top:calc(32.03 * var(--u)); margin-left:calc(0.7 * var(--u)); }
.card-right li img { margin-top:calc(4.1 * var(--u)); width:calc(17.06 * var(--u)); height:calc(17.06 * var(--u)); }
.card-right li span { margin-left:calc(16.84 * var(--u)); width:calc(294 * var(--u)); letter-spacing:var(--ls-cli-l); }
[id="assistants"] { height:calc(664.59 * var(--u)); padding-top:calc(198.09 * var(--u)); }
[id="assistants"] h1, [id="assistants"] h2 { margin-left:calc(670.2 * var(--u)); }
.logos .logo-1 { left:calc(552.7 * var(--u)); top:calc(420.35 * var(--u)); width:calc(150.8 * var(--u)); height:calc(33.18 * var(--u)); }
.logos .logo-2 { left:calc(763.31 * var(--u)); top:calc(422.6 * var(--u)); width:calc(154.08 * var(--u)); height:calc(34.48 * var(--u)); }
.logos .logo-3 { left:calc(991.6 * var(--u)); top:calc(420.48 * var(--u)); width:calc(133.23 * var(--u)); height:calc(30.4 * var(--u)); }
.logos .logo-4 { left:calc(1206.42 * var(--u)); top:calc(425.4 * var(--u)); width:calc(146.01 * var(--u)); height:calc(31.23 * var(--u)); }
.logos .soon { left:calc(1260.9 * var(--u)); top:calc(461.09 * var(--u)); }
[id="diagnostic-first"] { height:calc(687.79 * var(--u)); padding-top:calc(152.46 * var(--u)); }
[id="diagnostic-first"] h2 { margin-left:calc(647.31 * var(--u)); width:calc(600 * var(--u)); text-align:center; }
[id="diagnostic-first"] h2 + .lead { margin-top:calc(53.9 * var(--u)); }
[id="diagnostic-first"] .lead { margin-left:calc(595 * var(--u)); width:calc(739.2 * var(--u)); text-align:center; }
[id="diagnostic-first"] .btn { margin-top:calc(83.24 * var(--u)); margin-left:calc(885 * var(--u)); }
.site-footer { min-height:calc(999.38 * var(--u)); padding-top:calc(367.03 * var(--u)); }
.footer-grid > :nth-child(1) { left:calc(220 * var(--u)); }
.footer-grid > :nth-child(2) { left:calc(615 * var(--u)); }
.footer-grid > :nth-child(3) { left:calc(1010 * var(--u)); }
.footer-grid > :nth-child(4) { left:calc(1405 * var(--u)); }
.footer-desc { margin-top:calc(14.2 * var(--u)); }
.footer-grid ul { margin-top:calc(10.3 * var(--u)); }
.footer-grid { height:calc(146.2 * var(--u)); }
.footer-bottom { margin-top:calc(91.8 * var(--u)); margin-left:calc(220 * var(--u)); width:calc(1480 * var(--u)); height:calc(70.1 * var(--u)); }
.footer-bottom .lang { left:calc(-0.5 * var(--u)); top:calc(49.9 * var(--u)); }
.footer-bottom .lang img:first-child { width:calc(20 * var(--u)); height:calc(20 * var(--u)); }
.footer-bottom .lang span { margin-left:calc(5.5 * var(--u)); margin-top:calc(8.2 * var(--u)); }
.footer-bottom .lang img:last-child { margin-left:calc(26.6 * var(--u)); width:calc(14 * var(--u)); height:calc(8 * var(--u)); margin-top:calc(6 * var(--u)); }
.footer-bottom .terms { left:calc(164 * var(--u)); top:calc(58.1 * var(--u)); }
.footer-bottom .privacy { left:calc(363 * var(--u)); top:calc(58.1 * var(--u)); }
.footer-bottom .copy { left:calc(524 * var(--u)); top:calc(58.1 * var(--u)); }
.footer-bottom .social { left:calc(1464.5 * var(--u)); top:calc(51.9 * var(--u)); width:calc(16 * var(--u)); height:calc(16 * var(--u)); }
.footer-operator { margin-left:calc(220 * var(--u)); width:calc(1480 * var(--u)); }
.site-header { height:calc(136.1 * var(--u)); }
.site-header .brand { left:calc(221.5 * var(--u)); top:calc(54.3 * var(--u)); }
.btn-nav { left:calc(1542 * var(--u)); top:calc(35.6 * var(--u)); width:calc(158 * var(--u)); height:calc(60 * var(--u)); padding-left:calc(18 * var(--u)); padding-right:calc(17 * var(--u)); }
.btn-hero { width:calc(264 * var(--u)); height:calc(63 * var(--u)); padding-left:calc(20 * var(--u)); padding-right:calc(19 * var(--u)); }
.btn-cta { width:calc(150 * var(--u)); height:calc(63 * var(--u)); padding-left:calc(15.5 * var(--u)); padding-right:calc(13.5 * var(--u)); }
.divider-after-hero { height:calc(152.29 * var(--u)); }
.divider-after-baseline { height:calc(205.1 * var(--u)); }
.divider-after-blindspot { height:calc(123.26 * var(--u)); }
.divider-after-gap { height:calc(2 * var(--u)); }
.divider-after-infrastructure { height:calc(80.95 * var(--u)); }
.divider-after-how-we-work { height:calc(2 * var(--u)); }
.divider-after-hit-list { height:calc(121.7 * var(--u)); }
.divider-after-multiple-models { height:calc(103.44 * var(--u)); }
.divider-after-proof-of-movement { height:calc(76.74 * var(--u)); }
.divider-after-assistants { height:calc(32.04 * var(--u)); }
.divider-after-diagnostic-first { height:calc(32.04 * var(--u)); }

/* ---- legal pages (privacy-policy.html, terms.html) -------------------- */

.wrap { max-width: 1920px; margin: 0 auto; padding-inline: clamp(48px, calc(50% - 770px), 190px); }
.legal { padding: 120px 0 160px; font-size: 16px; letter-spacing: 0.4px; line-height: 1.5; }
.legal-inner { max-width: 760px; }
.legal h1 { font-size: 40px; font-weight: 700; letter-spacing: -0.8px; line-height: 52px; }
.legal .updated { margin-top: 24px; font-size: 16px; font-weight: 500; letter-spacing: 0; line-height: 1.5; }
.legal h2 { margin-top: 56px; font-size: 24px; font-weight: 700; letter-spacing: -0.48px; line-height: 32px; }
.legal p, .legal li, .legal address {
  font-family: var(--font-ui);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: -0.2px;
  line-height: 30px;
  color: var(--desc);
}
.legal p { margin-top: 16px; }
.legal ul { margin-top: 16px; padding-left: 24px; list-style: disc; }
.legal li { margin-top: 8px; }
.legal address { margin-top: 16px; font-style: normal; }
.legal a { color: var(--ink); }

/* ====================================================================== */
/* Tablet 768â€“1199: fluid reflow, fixed px type                             */
/* ====================================================================== */

@media (min-width: 768px) and (max-width: 1199px) {
  body { font-size: 16px; letter-spacing: 0.4px; line-height: 18.08px; }
  h1, h2 { font-size: 40px; line-height: 52px; letter-spacing: -0.8px; }
  .lead { font-size: 16px; letter-spacing: 0.4px; line-height: 18.08px; width: auto; max-width: 100%; }
  .lead + .lead { margin-top: 18px; }
  .band { height: auto !important; padding: 96px 48px !important; }
  .band h1, .band h2, .band .lead, .band .btn { margin-left: 0 !important; width: auto !important; }
  .band .lead { margin-top: 32px !important; }
  .band .btn { margin-top: 40px !important; }
  .art { position: static !important; width: 100% !important; margin: 32px 0 0; }
  [id="how-we-work"] h2, [id="how-we-work"] .lead, [id="diagnostic-first"] h2, [id="diagnostic-first"] .lead { text-align: center; }
  .btn { gap: 10px; border-radius: 8px; }
  .btn img { width: 12px; height: 12px; }
  .btn-nav { position: static; width: auto !important; height: 48px !important; padding: 0 16px !important; font-size: 16px; letter-spacing: -0.32px; }
  .btn-hero { width: auto !important; height: 63px !important; padding: 0 20px !important; font-size: 14.667px; letter-spacing: -0.29px; }
  .btn-cta { width: auto !important; height: 63px !important; padding: 0 16px !important; font-size: 16px; letter-spacing: -0.32px; }
  .site-header { height: 104px !important; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; }
  .site-header .brand { position: static; font-size: 28px; }
  .divider { height: auto !important; }
  .divider img { height: auto; }
  .cards { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 24px; margin-top: 48px; align-items: stretch; }
  .card { position: static !important; width: auto !important; height: auto !important; padding: 28px 20px 28px 24px !important; border-radius: 8px !important; }
  .card h3, .card .card-sub { font-size: 14.667px; line-height: 19.07px; letter-spacing: 0.33px !important; }
  .card .card-sub { margin-top: 19px !important; }
  .card ul { margin: 28px 0 0 !important; }
  .card li { margin-bottom: 24px; }
  .card li img { width: 17px !important; height: 17px !important; margin: 2px 0 0 !important; }
  .card li span { margin-left: 14px !important; width: auto !important; font-size: 13.38px; line-height: 15.12px; letter-spacing: 0.33px !important; }
  .logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px 48px; margin-top: 56px; }
  .logos li { position: static !important; width: auto !important; height: auto !important; }
  .logos li img { width: auto; height: 32px; }
  .logos .soon { position: static !important; width: 100% !important; text-align: center; font-size: 12px; letter-spacing: 0.4px; line-height: 15.6px; }
  .site-footer { min-height: 0 !important; padding: 96px 48px 40px !important; font-size: 12px; letter-spacing: -0.24px; }
  .footer-grid { height: auto; display: grid; grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .footer-grid > div { position: static; }
  .footer-grid .brand { font-size: 12px; }
  .footer-desc { margin-top: 12px !important; line-height: 30px; white-space: normal; }
  .footer-grid ul { margin-top: 12px !important; }
  .footer-grid li a { line-height: 37px; }
  .footer-bottom { height: auto !important; margin: 48px 0 0 !important; width: auto !important; padding-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
  .footer-bottom > * { position: static; }
  .footer-bottom .lang { align-items: center; }
  .footer-bottom .lang img:first-child { width: 20px; height: 20px; }
  .footer-bottom .lang span { margin: 0 0 0 6px !important; }
  .footer-bottom .lang img:last-child { width: 14px; height: 8px; margin: 0 0 0 16px !important; }
  .footer-bottom .social { margin-left: auto; width: 16px !important; height: 16px !important; }
  .footer-operator { margin: 0 !important; width: auto !important; padding-top: 24px; }
  .legal { padding: 64px 0 96px; }
}

@media (min-width: 768px) and (max-width: 999px) {
  .cards { grid-template-columns: 1fr; }
}

/* ---- contact (form band, vertex-site-mobile-v1: matched to the desktop canvas) ---- */
/* Heading and intro centred on the page (canvas centre 960); the field column is the canvas's 731.9 px box at
   x 594.1. Labels 16 px / 100 as drawn, fields 49 px with a 6.56 px radius (the message box 121.6 px, 16.5 px),
   Send 111.2 x 63 centred, then the 12 px privacy line. The band's padding-bottom puts the footer wordmark on
   its canvas baseline (10467.5; the band is exactly 65 px taller than form-v2, so the footer keeps its
   sub-pixel phase). Padding, not a fixed height, so the status line can appear. */
[id="contact"] { padding-top:calc(256.5 * var(--u)); padding-bottom:calc(61.05 * var(--u)); }
[id="contact"] h2 { margin-left:calc(590.4 * var(--u)); width:calc(739.2 * var(--u)); text-align:center; }
[id="contact"] h2 + .lead { margin-top:calc(55.7 * var(--u)); }
[id="contact"] .lead { margin-left:calc(590.4 * var(--u)); width:calc(739.2 * var(--u)); text-align:center; }
.contact-form { position:relative; z-index:1; margin-top:calc(82.8 * var(--u)); margin-left:calc(594.1 * var(--u)); width:calc(731.9 * var(--u)); }
.contact-form .field { display:block; margin-bottom:calc(19.7 * var(--u)); }
.contact-form .field span { display:block; margin-bottom:calc(6.5 * var(--u)); font-size:calc(16 * var(--u)); font-weight:100; letter-spacing:calc(0.106 * var(--u)); line-height:calc(20.8 * var(--u)); }
.contact-form input, .contact-form textarea {
  display:block; width:100%; margin:0;
  background:none; border:1px solid var(--ink); border-radius:calc(6.56 * var(--u));
  color:var(--ink); font-family:var(--font); font-size:calc(16 * var(--u)); font-weight:100;
  letter-spacing:var(--ls-body); line-height:calc(18.08 * var(--u));
  padding:0 calc(20 * var(--u));
}
.contact-form input { height:calc(49 * var(--u)); }
.contact-form textarea { height:calc(121.6 * var(--u)); border-radius:calc(16.5 * var(--u)); padding:calc(16 * var(--u)) calc(20 * var(--u)); resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:var(--blue); }
.contact-form .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; }
.form-actions { text-align:center; margin-top:calc(146 * var(--u)); }   /* the last field's margin collapses into this */
.contact-form .btn-cta { width:calc(111.2 * var(--u)); padding-left:calc(26.7 * var(--u)); padding-right:calc(24 * var(--u)); }
.contact-form button.btn { border:0; font-family:var(--font); cursor:pointer; }
.contact-form button.btn:disabled { opacity:.6; cursor:default; }
.form-status { margin-top:calc(12 * var(--u)); min-height:calc(18.08 * var(--u)); text-align:center; font-size:calc(16 * var(--u)); font-weight:100; letter-spacing:var(--ls-body); line-height:calc(18.08 * var(--u)); }
.form-status:empty { margin-top:0; min-height:0; }   /* takes no room until there is something to say */
.form-status.is-error { color:var(--mail); }
.form-status a { color:inherit; }
.form-note { margin-top:calc(35.7 * var(--u)); text-align:center; font-size:calc(12 * var(--u)); font-weight:100; letter-spacing:var(--ls-soon); line-height:calc(13.56 * var(--u)); color:var(--desc); }
.form-status:not(:empty) + .form-note { margin-top:calc(5.6 * var(--u)); }
.form-note a { color:inherit; }

@media (min-width: 768px) and (max-width: 1199px) {
  [id="contact"] h2, [id="contact"] .lead { text-align:center; }
  .contact-form { margin:40px auto 0; width:auto; max-width:739px; }
  .contact-form .field { margin-bottom:24px; }
  .contact-form .field span { margin-bottom:8px; font-size:16px; letter-spacing:0.1px; line-height:20.8px; }
  .contact-form input, .contact-form textarea { border-radius:8px; font-size:16px; letter-spacing:0.4px; line-height:18.08px; padding:0 20px; }
  .contact-form input { height:49px; }
  .contact-form textarea { height:122px; padding:16px 20px; }
  .form-actions { margin-top:48px; }
  .contact-form .btn-cta { width:auto !important; padding:0 24px 0 27px !important; }
  .form-status { margin-top:24px; min-height:18px; font-size:16px; letter-spacing:0.4px; line-height:18.08px; }
  .form-status { margin-top:12px; }
  .form-note { margin-top:24px; font-size:12px; letter-spacing:0.4px; line-height:13.56px; }
  .form-status:not(:empty) + .form-note { margin-top:12px; }
}

/* ====================================================================== */
/* Phone < 768: built from the MOBILE canvas of website.svg (390 px wide)    */
/* Every length is the canvas value * --m (one 390th of the content width),  */
/* so 320-430 px phones scale as one; 431-767 hold a centred 430 px column. */
/* Generated by review/vertex-site-mobile-v2/build_mobile_v2.py.            */
/* ====================================================================== */

@media (max-width: 767px) {
  :root {
    --m: calc(100cqw / 390);
    /* JetBrains Mono pitch = 0.6 em advance + letter-spacing, as the canvas draws it */
    --ls-body-m: calc(0.4 * var(--m));      /* 16 px:     pitch 10     */
    --ls-h37-m:  calc(-0.7467 * var(--m));  /* 37.333 px: pitch 21.653 */
    --ls-ct-m:   calc(0.4 * var(--m));      /* 12.7 px:   pitch 8.02   */
    --ls-cli-m:  calc(0.4 * var(--m));      /* 11.6 px:   pitch 7.36   */
    --ls-12-m:   calc(0.4 * var(--m));      /* 12 px:     pitch 7.6    */
    --ls-b16-m:  calc(-0.32 * var(--m));    /* 16 px buttons: pitch 9.28 */
  }
  /* the same advance-rounding correction as the desktop, at the phone scale */
  @media (resolution: 1dppx), (resolution: 1.25dppx), (resolution: 1.5dppx), (resolution: 1.75dppx), (resolution: 2dppx), (resolution: 2.5dppx), (resolution: 3dppx) {
    :root {
      --ls-body-m: calc(10 * var(--m) - round(nearest, 0.6 * round(nearest, 16 * var(--m), var(--dp)), var(--dp)));
      --ls-h37-m: calc(21.653 * var(--m) - round(nearest, 0.6 * round(nearest, 37.333 * var(--m), var(--dp)), var(--dp)));
      --ls-ct-m: calc(8.02 * var(--m) - round(nearest, 0.6 * round(nearest, 12.7 * var(--m), var(--dp)), var(--dp)));
      --ls-cli-m: calc(7.36 * var(--m) - round(nearest, 0.6 * round(nearest, 11.6 * var(--m), var(--dp)), var(--dp)));
      --ls-12-m: calc(7.6 * var(--m) - round(nearest, 0.6 * round(nearest, 12 * var(--m), var(--dp)), var(--dp)));
      --ls-b16-m: calc(9.28 * var(--m) - round(nearest, 0.6 * round(nearest, 16 * var(--m), var(--dp)), var(--dp)));
    }
  }
  /* 431-767: hold the phone layout as a centred 430 px column; the gradient stays full width */
  @media (min-width: 431px) {
    :root { --m: calc(430px / 390); }
    main, .site-footer { max-width: 430px; margin-inline: auto; }
    .site-header { padding-inline: calc(50% - 215px); }
    .site-header::after { left: calc(50% - 215px); }
  }

  body {
    font-size: calc(16.00 * var(--m)); letter-spacing: var(--ls-body-m); line-height: calc(18.08 * var(--m));
    /* the mobile page rect: #070541 at 100% on the left, 68.9% at 141.2 uu = 533.5 px past the left edge (136.8% of 390) */
    background: linear-gradient(90deg, #070541 0%, rgba(7, 5, 65, 0.6888) 136.84%);
  }
  picture { display: contents; }
  .br-m { display: inline; }

  /* ---- top bar: wordmark left, square Book a call button 158 x 56.2 at (228, 4), 1 px rule x 0-385.9 at y 60, as drawn ---- */
  .site-header { display: flex; align-items: flex-start; height: calc(60.00 * var(--m)); border-bottom: 0; }
  .site-header::after { content: ""; position: absolute; left: 0; bottom: 0; width: calc(385.90 * var(--m)); height: 1px; background: var(--ink); }
  .site-header .brand { position: static; margin-left: calc(24.00 * var(--m)); margin-top: calc(21.70 * var(--m)); font-size: calc(17.73 * var(--m)); }
  .site-nav { margin-left: auto; margin-top: calc(4.00 * var(--m)); margin-right: calc(4.00 * var(--m)); }
  .btn { gap: calc(4.00 * var(--m)); border-radius: calc(8.00 * var(--m)); }
  .btn-nav { position: static; width: calc(158.00 * var(--m)); height: calc(56.20 * var(--m)); padding: 0 calc(13.00 * var(--m)) calc(1.00 * var(--m)) calc(22.00 * var(--m)); font-size: calc(16.00 * var(--m)); letter-spacing: var(--ls-b16-m); border-radius: 0; }
  .btn img { width: calc(12.00 * var(--m)); height: calc(12.00 * var(--m)); }
  .btn-hero { display: none; }   /* the mobile canvas has no hero button */
  .btn-cta { width: calc(150.00 * var(--m)); height: calc(63.00 * var(--m)); padding: calc(2.30 * var(--m)) calc(13.50 * var(--m)) 0 calc(15.50 * var(--m)); font-size: calc(16.00 * var(--m)); letter-spacing: var(--ls-b16-m); }   /* label caps and arrow sit 1.15 px below the box centre, as drawn */

  /* ---- type: every heading 37.33 px on the v2 canvas; the line pitch is set per band ---- */
  h1, h2 { font-size: calc(37.33 * var(--m)); line-height: calc(46.00 * var(--m)); letter-spacing: var(--ls-h37-m); white-space: nowrap; }
  .lead { font-size: calc(16.00 * var(--m)); letter-spacing: var(--ls-body-m); line-height: calc(18.08 * var(--m)); }
  .lead + .lead { margin-top: calc(18.08 * var(--m)); }
  .lead-gap-m { display: block; margin-top: calc(18.08 * var(--m)); }   /* the blank line the canvas has before "Then we talk." */
  .band { height: auto; overflow-x: clip; }
  .art { position: static; height: auto; }

  /* ---- bands: padding-top puts the heading baseline where the canvas has it ---- */
  [id="hero"] { padding-top: calc(112.30 * var(--m)); }
  [id="hero"] h1 { margin-left: calc(22.80 * var(--m)); width: auto; text-align: left; line-height: calc(45.70 * var(--m)); }
  [id="hero"] h1 + .lead { margin-top: calc(89.30 * var(--m)); }
  [id="hero"] .lead { margin-left: calc(23.90 * var(--m)); width: calc(280.00 * var(--m)); text-align: left; }
  [id="hero"] .art { margin-top: calc(96.17 * var(--m)); margin-left: calc(42.98 * var(--m)); width: calc(304.05 * var(--m)); }
  [id="hero"] { padding-bottom: calc(47.38 * var(--m)); }
  .divider-after-hero { height: calc(32.52 * var(--m)); }

  [id="baseline"] { padding-top: calc(88.98 * var(--m)); }
  [id="baseline"] h2 { margin-left: calc(22.40 * var(--m)); width: auto; text-align: left; line-height: calc(50.10 * var(--m)); }
  [id="baseline"] h2 + .lead { margin-top: calc(88.00 * var(--m)); }
  [id="baseline"] .lead { margin-left: calc(23.50 * var(--m)); width: calc(295.00 * var(--m)); text-align: left; }
  [id="baseline"] .art { margin-top: calc(96.11 * var(--m)); margin-left: calc(43.73 * var(--m)); width: calc(302.54 * var(--m)); }
  [id="baseline"] { padding-bottom: calc(49.58 * var(--m)); }
  .divider-after-baseline { height: calc(42.51 * var(--m)); }

  [id="blindspot"] { padding-top: calc(75.31 * var(--m)); }
  [id="blindspot"] h2 { margin-left: calc(22.40 * var(--m)); width: auto; text-align: left; line-height: calc(52.00 * var(--m)); }
  [id="blindspot"] h2 + .lead { margin-top: calc(85.90 * var(--m)); }
  [id="blindspot"] .lead { margin-left: calc(23.60 * var(--m)); width: calc(260.00 * var(--m)); text-align: left; }
  [id="blindspot"] .art { margin-top: calc(97.03 * var(--m)); margin-left: calc(86.96 * var(--m)); width: calc(216.08 * var(--m)); }
  [id="blindspot"] { padding-bottom: calc(66.58 * var(--m)); }
  .divider-after-blindspot { height: calc(26.62 * var(--m)); }

  [id="gap"] { padding-top: calc(77.28 * var(--m)); }
  [id="gap"] h2 { margin-left: calc(22.40 * var(--m)); width: auto; text-align: left; line-height: calc(46.00 * var(--m)); }
  [id="gap"] h2 + .lead { margin-top: calc(90.40 * var(--m)); }
  [id="gap"] .lead { margin-left: calc(23.60 * var(--m)); width: calc(300.00 * var(--m)); text-align: left; }
  [id="gap"] .art { margin-top: calc(95.98 * var(--m)); margin-left: calc(43.78 * var(--m)); width: calc(302.44 * var(--m)); }
  [id="gap"] { padding-bottom: calc(80.16 * var(--m)); }
  .divider-after-gap { height: calc(2.00 * var(--m)); }

  [id="infrastructure"] { padding-top: calc(89.29 * var(--m)); }
  [id="infrastructure"] h2 { margin-left: calc(22.40 * var(--m)); width: calc(340.00 * var(--m)); text-align: left; white-space: normal; line-height: calc(48.00 * var(--m)); }
  [id="infrastructure"] h2 + .lead { margin-top: calc(89.30 * var(--m)); }
  [id="infrastructure"] .lead { margin-left: calc(23.90 * var(--m)); width: calc(295.00 * var(--m)); text-align: left; }
  [id="infrastructure"] .art { margin-top: calc(97.03 * var(--m)); margin-left: calc(43.73 * var(--m)); width: calc(302.55 * var(--m)); }
  [id="infrastructure"] { padding-bottom: calc(70.48 * var(--m)); }
  .divider-after-infrastructure { height: calc(18.03 * var(--m)); }

  [id="how-we-work"] { padding-top: calc(90.02 * var(--m)); }
  [id="how-we-work"] h2 { margin-left: calc(21.30 * var(--m)); width: auto; text-align: left; line-height: calc(46.00 * var(--m)); }
  [id="how-we-work"] h2 + .lead { margin-top: calc(85.40 * var(--m)); }
  [id="how-we-work"] .lead { margin-left: calc(23.50 * var(--m)); width: calc(290.00 * var(--m)); text-align: left; }
  .cards { margin-top: 0; }
  .card { position: static; height: auto; }
  .card h3, .card .card-sub { font-size: calc(12.70 * var(--m)); line-height: calc(16.51 * var(--m)); letter-spacing: var(--ls-ct-m); }
  .card li { margin-bottom: calc(26.22 * var(--m)); }
  .card li span { font-size: calc(11.60 * var(--m)); line-height: calc(13.11 * var(--m)); letter-spacing: var(--ls-cli-m); }
  .card-left { margin-top: calc(116.46 * var(--m)); margin-left: calc(23.70 * var(--m)); width: calc(343.20 * var(--m)); min-height: calc(440.40 * var(--m)); border-radius: calc(6.90 * var(--m)) / calc(8.55 * var(--m)); padding: calc(37.40 * var(--m)) 0 calc(37.08 * var(--m)) calc(45.80 * var(--m)); }
  .card-left .card-sub { margin-top: calc(16.69 * var(--m)); }
  .card-left ul { margin-top: calc(25.79 * var(--m)); margin-left: calc(0.70 * var(--m)); }
  .card-left li img { margin-top: calc(5.30 * var(--m)); margin-bottom: calc(-6.29 * var(--m)); width: calc(14.10 * var(--m)); height: calc(14.10 * var(--m)); }   /* the tick never sets the row height */
  .card-left li span { margin-left: calc(13.20 * var(--m)); width: calc(242.88 * var(--m)); }
  .card-mid { margin-top: calc(95.00 * var(--m)); margin-left: calc(24.70 * var(--m)); width: calc(342.50 * var(--m)); min-height: calc(433.40 * var(--m)); border-radius: calc(6.89 * var(--m)) / calc(8.77 * var(--m)); padding: calc(39.10 * var(--m)) 0 calc(41.09 * var(--m)) calc(36.20 * var(--m)); }
  .card-mid .card-sub { margin-top: calc(16.49 * var(--m)); }
  .card-mid ul { margin-top: calc(26.39 * var(--m)); margin-left: calc(1.00 * var(--m)); }
  .card-mid li img { margin-top: calc(5.30 * var(--m)); margin-bottom: calc(-7.39 * var(--m)); width: calc(15.20 * var(--m)); height: calc(15.20 * var(--m)); }   /* the tick never sets the row height */
  .card-mid li span { margin-left: calc(14.50 * var(--m)); width: calc(250.24 * var(--m)); }
  .card-right { margin-top: calc(93.50 * var(--m)); margin-left: calc(23.10 * var(--m)); width: calc(340.50 * var(--m)); min-height: calc(436.80 * var(--m)); border-radius: calc(6.84 * var(--m)) / calc(8.48 * var(--m)); padding: calc(42.50 * var(--m)) 0 calc(28.58 * var(--m)) calc(41.00 * var(--m)); }
  .card-right .card-sub { margin-top: calc(16.39 * var(--m)); }
  .card-right ul { margin-top: calc(25.89 * var(--m)); margin-left: calc(0.90 * var(--m)); }
  .card-right li img { margin-top: calc(5.30 * var(--m)); margin-bottom: calc(-6.19 * var(--m)); width: calc(14.00 * var(--m)); height: calc(14.00 * var(--m)); }   /* the tick never sets the row height */
  .card-right li span { margin-left: calc(14.90 * var(--m)); width: calc(250.24 * var(--m)); }
  [id="how-we-work"] { padding-bottom: calc(80.11 * var(--m)); }
  .divider-after-how-we-work { height: calc(2.00 * var(--m)); }

  [id="hit-list"] { padding-top: calc(90.69 * var(--m)); }
  [id="hit-list"] h2 { margin-left: calc(22.40 * var(--m)); width: auto; text-align: left; line-height: calc(46.00 * var(--m)); }
  [id="hit-list"] h2 + .lead { margin-top: calc(87.30 * var(--m)); }
  [id="hit-list"] .lead { margin-left: calc(23.20 * var(--m)); width: calc(295.00 * var(--m)); text-align: left; }
  [id="hit-list"] .art { margin-top: calc(95.19 * var(--m)); margin-left: calc(43.84 * var(--m)); width: calc(302.32 * var(--m)); }
  [id="hit-list"] { padding-bottom: calc(53.58 * var(--m)); }
  .divider-after-hit-list { height: calc(25.91 * var(--m)); }

  [id="multiple-models"] { padding-top: calc(91.69 * var(--m)); }
  [id="multiple-models"] h2 { margin-left: calc(22.00 * var(--m)); width: auto; text-align: left; line-height: calc(47.00 * var(--m)); }
  [id="multiple-models"] h2 + .lead { margin-top: calc(90.30 * var(--m)); }
  [id="multiple-models"] .lead { margin-left: calc(23.20 * var(--m)); width: calc(285.00 * var(--m)); text-align: left; }
  [id="multiple-models"] .art { margin-top: calc(95.42 * var(--m)); margin-left: calc(42.62 * var(--m)); width: calc(304.76 * var(--m)); }
  [id="multiple-models"] { padding-bottom: calc(67.70 * var(--m)); }
  .divider-after-multiple-models { height: calc(22.60 * var(--m)); }

  [id="proof-of-movement"] { padding-top: calc(80.17 * var(--m)); }
  [id="proof-of-movement"] h2 { margin-left: calc(21.30 * var(--m)); width: auto; text-align: left; line-height: calc(44.00 * var(--m)); }
  [id="proof-of-movement"] h2 + .lead { margin-top: calc(89.30 * var(--m)); }
  [id="proof-of-movement"] .lead { margin-left: calc(23.50 * var(--m)); width: calc(285.00 * var(--m)); text-align: left; }
  [id="proof-of-movement"] .art { margin-top: calc(94.34 * var(--m)); margin-left: calc(43.35 * var(--m)); width: calc(303.30 * var(--m)); }
  [id="proof-of-movement"] { padding-bottom: calc(72.65 * var(--m)); }
  .divider-after-proof-of-movement { height: calc(17.43 * var(--m)); }

  [id="assistants"] { padding-top: calc(86.04 * var(--m)); }
  [id="assistants"] h2 { margin-left: calc(22.80 * var(--m)); width: auto; text-align: left; line-height: calc(42.00 * var(--m)); }
  .logos { position: relative; height: calc(299.19 * var(--m)); margin-top: 0; }
  .logos .logo-1 { left: calc(23.80 * var(--m)); top: calc(92.90 * var(--m)); width: calc(95.90 * var(--m)); height: auto; }
  .logos .logo-2 { left: calc(157.10 * var(--m)); top: calc(94.30 * var(--m)); width: calc(97.90 * var(--m)); height: auto; }
  .logos .logo-3 { left: calc(23.60 * var(--m)); top: calc(138.50 * var(--m)); width: calc(84.70 * var(--m)); height: auto; }
  .logos .logo-4 { left: calc(159.70 * var(--m)); top: calc(145.70 * var(--m)); width: calc(92.80 * var(--m)); height: auto; }
  .logos .soon { left: calc(194.30 * var(--m)); top: calc(163.90 * var(--m)); font-size: calc(10.45 * var(--m)); line-height: calc(13.59 * var(--m)); letter-spacing: calc(0.10 * var(--m)); }
  [id="assistants"] { padding-bottom: calc(0.00 * var(--m)); }
  .divider-after-assistants { height: calc(8.10 * var(--m)); }

  [id="diagnostic-first"] { padding-top: calc(91.61 * var(--m)); }
  [id="diagnostic-first"] h2 { margin-left: calc(23.50 * var(--m)); width: auto; text-align: left; line-height: calc(47.00 * var(--m)); }
  [id="diagnostic-first"] h2 + .lead { margin-top: calc(88.00 * var(--m)); }
  [id="diagnostic-first"] .lead { margin-left: calc(23.20 * var(--m)); width: calc(270.00 * var(--m)); text-align: left; }
  [id="diagnostic-first"] .btn { margin-top: calc(97.50 * var(--m)); margin-left: calc(120.00 * var(--m)); width: calc(150.00 * var(--m)); height: calc(63.00 * var(--m)); }
  [id="diagnostic-first"] { padding-bottom: calc(76.56 * var(--m)); }
  .divider-after-diagnostic-first { height: calc(8.10 * var(--m)); }

  [id="contact"] { padding-top: calc(87.54 * var(--m)); }
  [id="contact"] h2 { margin-left: calc(21.30 * var(--m)); width: auto; text-align: left; line-height: calc(46.00 * var(--m)); }
  [id="contact"] h2 + .lead { margin-top: calc(88.70 * var(--m)); }
  [id="contact"] .lead { margin-left: calc(23.20 * var(--m)); width: calc(310.00 * var(--m)); text-align: left; }
  .contact-form { margin-top: calc(68.86 * var(--m)); margin-left: calc(24.50 * var(--m)); width: calc(287.60 * var(--m)); }
  .contact-form .field span { margin-bottom: calc(6.40 * var(--m)); font-size: calc(16.00 * var(--m)); font-weight: 100; letter-spacing: calc(0.11 * var(--m)); line-height: calc(20.80 * var(--m)); }
  .contact-form .field:nth-of-type(1) { margin-bottom: calc(7.30 * var(--m)); }
  .contact-form .field:nth-of-type(2) { margin-bottom: calc(6.20 * var(--m)); }
  .contact-form .field:nth-of-type(3) { margin-bottom: calc(7.20 * var(--m)); }
  .contact-form .field:nth-of-type(2) span { margin-bottom: calc(5.50 * var(--m)); }
  .contact-form .field:nth-of-type(3) span { margin-bottom: calc(6.50 * var(--m)); }
  .contact-form .field:nth-of-type(4) span { margin-bottom: calc(5.50 * var(--m)); }
  .contact-form input, .contact-form textarea { border-radius: calc(4.72 * var(--m)); font-size: max(16px, calc(16.00 * var(--m))); letter-spacing: var(--ls-body-m); line-height: calc(18.08 * var(--m)); padding: 0 calc(12.00 * var(--m)); }
  .contact-form input { height: max(44px, calc(35.50 * var(--m))); }   /* canvas 35.5 px; 44 px tap target */
  .contact-form textarea { height: calc(87.70 * var(--m)); min-height: 0; border-radius: calc(11.86 * var(--m)); padding: calc(10.00 * var(--m)) calc(12.00 * var(--m)); }
  .form-actions { margin-top: calc(104.90 * var(--m)); padding-right: calc(1.70 * var(--m)); text-align: right; }
  .contact-form .btn-cta { width: calc(111.20 * var(--m)); height: calc(63.00 * var(--m)); padding-left: calc(26.60 * var(--m)); padding-right: calc(24.00 * var(--m)); border-radius: calc(5.93 * var(--m)) / calc(8.00 * var(--m)); justify-content: space-between; }
  .form-status { margin-top: calc(24.00 * var(--m)); min-height: calc(18.08 * var(--m)); font-size: calc(16.00 * var(--m)); letter-spacing: var(--ls-body-m); line-height: calc(18.08 * var(--m)); text-align: left; }
  .form-note { margin-top: calc(79.70 * var(--m)); margin-left: calc(-1.00 * var(--m)); width: calc(288.80 * var(--m)); text-align: left; font-size: calc(12.00 * var(--m)); letter-spacing: var(--ls-12-m); line-height: calc(13.56 * var(--m)); }
  .form-status:not(:empty) + .form-note { margin-top: calc(37.62 * var(--m)); }   /* status shown: note keeps its place */
  .form-note a { display: inline-block; padding-block: 17px; margin-block: -17px; }   /* 44 px tap height, line unchanged */
  [id="contact"] { padding-bottom: calc(72.00 * var(--m)); }

  /* ---- footer: the desktop content stacked; Inter, same colours; 12 px floor; 44 px tap rows (unchanged from v1) ---- */
  .site-footer { min-height: 0; padding: calc(56.00 * var(--m)) calc(23.20 * var(--m)) calc(32.00 * var(--m)); font-size: max(12px, calc(12.00 * var(--m))); letter-spacing: -0.02em; }
  .footer-grid { height: auto; }
  .footer-grid > div { position: static; }
  .footer-grid > div + div { margin-top: calc(28.00 * var(--m)); }
  .footer-grid .brand { font-size: max(12px, calc(12.00 * var(--m))); }
  .footer-desc { margin-top: calc(10.00 * var(--m)); line-height: 1.7; white-space: normal; }
  .footer-grid ul { margin-top: calc(2.00 * var(--m)); }
  .footer-grid li a { line-height: 44px; }
  .footer-bottom { height: auto; margin: calc(36.00 * var(--m)) 0 0; width: auto; padding-top: calc(4.00 * var(--m)); display: flex; flex-wrap: wrap; align-items: center; column-gap: calc(24.00 * var(--m)); }
  .footer-bottom > * { position: static; }
  .footer-bottom a, .footer-bottom .lang, .footer-bottom .copy { display: flex; align-items: center; min-height: 44px; }
  .footer-bottom .lang img:first-child { width: calc(20.00 * var(--m)); height: calc(20.00 * var(--m)); }
  .footer-bottom .lang span { margin: 0 0 0 calc(6.00 * var(--m)); }
  .footer-bottom .lang img:last-child { width: calc(14.00 * var(--m)); height: calc(8.00 * var(--m)); margin: 0 0 0 calc(12.00 * var(--m)); }
  .footer-bottom .social { width: auto; height: auto; }
  .footer-bottom .social img { width: calc(16.00 * var(--m)); height: calc(16.00 * var(--m)); }
  .footer-operator { margin: 0; width: auto; padding-top: calc(24.00 * var(--m)); }

  /* ---- legal pages ---- */
  .legal { padding: 40px 0 64px; }
  .legal h1 { font-size: 32px; line-height: 40px; letter-spacing: -0.64px; white-space: normal; }
  .legal h2 { margin-top: 40px; font-size: 22px; line-height: 30px; letter-spacing: -0.44px; white-space: normal; }
  .legal p, .legal li, .legal address { font-size: 17px; line-height: 28px; }
}
