/* ─────────────────────────────────────────────────────────────────────────────
   credit-hire.ai — TYPE LAYER
   Self-hosted. No external font host is contacted by any page on this site.

   WHY SELF-HOSTED, AND NOT GOOGLE FONTS:
   1. Law firms and insurers routinely block fonts.googleapis.com at the firewall.
      Those are precisely the users who must not see a broken page.
   2. A call to Google Fonts discloses the visitor's IP to Google. A German court
      has held that unlawful under GDPR. For a platform that tells practitioners
      "your documents never reach our servers", an external font call is an own
      goal waiting to be found by an opponent.
   3. Self-hosted is faster: no third-party DNS, TLS handshake or redirect chain.

   WHY THE FALLBACK FACES BELOW:
   A webfont always arrives late, and may never arrive. The usual result is that
   text reflows when it lands — headings jump, tables shift. The two @font-face
   blocks marked FALLBACK fix that: they take the LOCAL font (Georgia, Arial) and
   override its vertical metrics to match the webfont exactly, so a line of text
   occupies the same height either way. If the webfont is blocked, the letters look
   a little different; nothing moves. That is the difference between "degrades" and
   "distorts".

   The override percentages are MEASURED from the .woff2 files with fontkit
   (unitsPerEm 1000 in both families) — they are not estimates:
     Spectral 600      ascent 105.90%  descent 46.30%  line-gap 0%
     IBM Plex Sans 400 ascent 102.50%  descent 27.50%  line-gap 0%
   size-adjust is tuned so the fallback's x-height approximates the webfont's
   (Spectral x-height 0.454em vs Georgia's larger; Plex 0.516em vs Arial's).
   ───────────────────────────────────────────────────────────────────────────── */

/* ── Spectral — the voice. Headlines, tile titles, pull quotes, numerals. ── */
@font-face {
  font-family: 'Spectral';
  src: url('fonts/spectral-latin-500-normal.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  src: url('fonts/spectral-latin-600-normal.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── IBM Plex Sans — the instrument face. Labels, forms, tables, money. ── */
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('fonts/ibm-plex-sans-latin-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── FALLBACK FACES — metric-matched, so nothing moves if the webfont is late
      or blocked. These are the load-bearing part of "not distorted". ── */
@font-face {
  font-family: 'Spectral Fallback';
  src: local('Georgia'), local('Times New Roman'), local('Times');
  ascent-override: 105.90%;
  descent-override: 46.30%;
  line-gap-override: 0%;
  size-adjust: 92%;   /* Georgia runs large; pull it back toward Spectral's x-height */
}
@font-face {
  font-family: 'Plex Fallback';
  src: local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  ascent-override: 102.50%;
  descent-override: 27.50%;
  line-gap-override: 0%;
  size-adjust: 100%;  /* Arial's x-height is close to Plex's; no adjustment needed */
}
