/* ════════ Prokuro brand layer: shared by the website (/website/index.html) and the platform (/index.html)
   Loaded LAST, so these tokens win over the older layers (style, fiori, fluent, prime).
   One typeface (Inter, OFL, self-hosted in /fonts), one type scale, one motion vocabulary,
   visible keyboard focus. Change a token here and both the site and the platform follow. ════════ */

@font-face {
  font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url("/fonts/inter-latin.woff2") format("woff2-variations"), url("/fonts/inter-latin.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-display: swap; font-weight: 100 900;
  src: url("/fonts/inter-latin-ext.woff2") format("woff2-variations"), url("/fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --font: "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  /* type scale (8 steps) */
  --fs-xs: 12px; --fs-sm: 14px; --fs-base: 16px; --fs-md: 18px; --fs-lg: 21px;
  --fs-xl: clamp(24px, 2.4vw, 30px); --fs-2xl: clamp(30px, 3.4vw, 44px); --fs-3xl: clamp(34px, 4vw, 52px);

  /* text colours (5) */
  --ink: #16203a; --ink-2: #4f5a70; --ink-3: #5b6475; --ink-brand: #175aa3; --ink-ok: #0f7b3f;

  /* spacing on an 8-point grid */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px; --sp-9: 96px;

  /* motion: three durations, one curve */
  --dur-1: 160ms; --dur-2: 320ms; --dur-3: 640ms; --ease: cubic-bezier(.2, .8, .2, 1);
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: var(--font); font-optical-sizing: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
/* Inter: tighter tracking for large text, as display faces are set */
h1, h2, .hx-h1, .sec-head h2 { letter-spacing: -0.022em; }
h3, h4 { letter-spacing: -0.012em; }
/* numbers line up in tables, prices and counters */
.num, td.r, .fee-r b, .mx-gn, .sl-clock b, .hx-live-n b, table .r { font-variant-numeric: tabular-nums; }

/* keyboard focus: always visible, never on mouse click */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid #1f6fc5; outline-offset: 2px; border-radius: 6px;
}
:where(input, select, textarea):focus-visible { outline-offset: 0; }

/* skip link for keyboard and screen-reader users */
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 2147483647; padding: 10px 14px; border-radius: 10px;
  background: #16203a; color: #fff; font: 600 14px var(--font); text-decoration: none; transition: top var(--dur-1) var(--ease); }
.skip-link:focus { top: 12px; }

/* phones: 16 px inputs so iOS Safari never zooms in when a field is tapped */
@media (max-width: 640px) {
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
