/* ============================================================================
   Own Dine — self-hosted webfonts
   ----------------------------------------------------------------------------
   IBM Plex Sans and IBM Plex Mono, SIL Open Font License 1.1 (see LICENSE.txt
   in fonts/). Free to use, embed and redistribute.

   WHY SELF-HOSTED, NOT GOOGLE FONTS
   Loading fonts from fonts.googleapis.com sends every visitor's IP address to
   Google. German courts have ruled that a GDPR breach, and Own Dine is a data
   PROCESSOR acting for each provider (spec §15) — so it must not leak their
   customers' data to a third party for the sake of a typeface. Serving the
   files ourselves is also faster: one fewer DNS lookup and TLS handshake on a
   phone, on a page where the customer is trying to order dinner.

   PAYLOAD
   Six files, ~352 KB total. Do not load all six in the customer widget — see
   the note at the bottom.

   USAGE
     <link rel="stylesheet" href="/brand/fonts.css">
     <link rel="stylesheet" href="/brand/tokens.css">

   Serve the fonts/ directory with a long cache lifetime; the files never
   change. They also need CORS headers if ever served from a different origin
   to the page.
   ========================================================================== */

/* ---- IBM Plex Sans ------------------------------------------------------- */

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/IBMPlexSans-Regular.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/IBMPlexSans-Medium.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/IBMPlexSans-SemiBold.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;               /* the wordmark's "Own" */
  font-display: swap;
  src: url('fonts/IBMPlexSans-Bold.woff2') format('woff2');
}

/* ---- IBM Plex Mono — order numbers, prices, times ------------------------ */

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/IBMPlexMono-Medium.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/IBMPlexMono-SemiBold.woff2') format('woff2');
}

/* ============================================================================
   KEEPING THE CUSTOMER WIDGET LIGHT

   Most takeaway orders come from a phone, often on mobile data (spec §16), and
   every kilobyte sits between a hungry customer and a completed order. The Hub
   can afford all six faces; the customer widget should not load them all.

   For the widget, load only:
     IBMPlexSans-Regular   (400)  — body
     IBMPlexSans-SemiBold  (600)  — item names, buttons, totals
     IBMPlexMono-SemiBold  (600)  — prices
   That is ~181 KB instead of ~352 KB.

   Bold 700 is only needed where the wordmark appears — and the wordmark should
   barely appear in the customer flow at all (OWNDINE-BRAND.md §1). Prefer the
   outlined SVG wordmark there, which needs no font at all.

   `font-display: swap` is deliberate: text renders immediately in a fallback
   and swaps when the webfont arrives. Never let a missing font hide an order
   total.
   ========================================================================== */
