/* ==========================================================================
   Self-hosted type.

   Both families are sanctioned by brand-guidelines.md, which picked IBM Plex
   partly for bilingual fitness. Self-hosted rather than loaded from Google
   Fonts: a third-party font request on every page view is a dependency and a
   privacy question the site does not need, and the strict
   Content-Security-Policy has no font-src beyond 'self'.

   Latin is the variable build, because the design system uses 650 as its
   heading weight and a static 600/700 pair cannot render it. Arabic has no
   variable build, so it ships as four static weights -- 400, 500, 600, 700 --
   which is what the design actually asks for.

   font-display: swap throughout. The fallback stacks in tokens.css are
   metrically close enough that the swap is not a jump, and a page that shows
   nothing while a font loads is worse than one that reflows slightly.
   ========================================================================== */

/* ---- Latin: Inter, variable 100-900 ---- */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin-wght-normal.260c81a4759b.woff2") format("woff2-variations");
  /* Latin, Latin Extended-A, punctuation and currency. Nothing else is set
     in this family. */
  unicode-range: U+0000-00FF, U+0100-024F, U+0259, U+1E00-1EFF, U+2000-206F,
                 U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- Arabic: IBM Plex Sans Arabic, four static weights ---- */
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-arabic-arabic-400-normal.4fa3d81d41ab.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891,
                 U+0898-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-arabic-arabic-500-normal.106892212ea7.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891,
                 U+0898-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  /* The design asks for 650 on headings. With static faces the nearest is
     600, and declaring the range here is what makes the browser choose it
     rather than synthesising a bolder weight. */
  font-weight: 600 690;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-arabic-arabic-600-normal.64891a810259.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891,
                 U+0898-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-arabic-arabic-700-normal.a4390abc98c2.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891,
                 U+0898-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FEFF;
}

/* ---- Client quotes only: the one deliberate contrast point in the system.
       Italic only, because that is the only cut used, and shipping the roman
       as well would be 50KB nobody sees. ---- */
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-wght-italic.d40e4e4ee088.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20AB;
}
