/* Buraq type layer — self-hosted variable webfonts, shared by both HTML
   surfaces (dashboard + storefront).

   Self-hosted rather than CDN-linked on purpose: config.settings.prod is a
   hardened deploy with no external asset dependency (same reasoning that
   kept the old stylesheet on system-font stacks). These are the OFL
   builds pulled from Google Fonts' own woff2 endpoint and committed to
   the repo, so a running instance makes zero third-party requests.

   All three are VARIABLE fonts — one file spans the whole weight range
   instead of a file per weight, which is why a three-family system costs
   less here than the usual two-family static one:

     Fraunces          opsz 9..144, wght 400..800   67 KB   display
     Familjen Grotesk  wght 400..700                19 KB   body/UI
     JetBrains Mono    wght 100..800                40 KB   numerals/meta

   Fraunces ships four axes upstream (opsz, wght, SOFT, WONK). Only opsz
   and wght are built in here: opsz genuinely earns its bytes on a display
   serif that runs from 13px eyebrows to 56px page titles (it raises stroke
   contrast as size grows, which is the whole reason to use this face),
   while SOFT/WONK cost another 54 KB to alter a handful of letterforms.
   Not a good trade on a booking flow people open on mobile data.

   `font-display: swap` everywhere: a fare or a departure time must be
   readable immediately even if the webfont never arrives. The fallback
   stacks below are ordered so the swap is as small as possible. */

/* ---- Fraunces — display ---------------------------------------------- */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/fraunces-latin.069cb90e11a3.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: "Fraunces";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/fraunces-latin-ext.a04d353989ad.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;
}

/* ---- Familjen Grotesk — body / UI ------------------------------------ */
@font-face {
  font-family: "Familjen Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/familjen-latin.7eb7ec31a3a1.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: "Familjen Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/familjen-latin-ext.f2c82a825501.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;
}

/* ---- JetBrains Mono — numerals, codes, meta -------------------------- */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("../fonts/jetbrains-latin.b058178d7f30.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: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("../fonts/jetbrains-latin-ext.e36841ed93d5.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;
}

/* ---- Bengali script, filling the same gap the Taka face fills for one
   glyph ------------------------------------------------------------------
   Fraunces, Familjen Grotesk and JetBrains Mono cover Latin only — the
   moment the storefront's language switcher activates `bn`, every heading,
   label and button text needs real Bengali letterforms, not tofu or an
   uncontrolled OS substitute. Same fix as the Taka face below, generalised:
   register a second file UNDER THE SAME FAMILY NAME, scoped by unicode-range
   to the Bengali block (plus the ZWJ/ZWNJ control characters conjuncts need
   and the curly quotes translated prose uses) so the browser reaches for it
   only where the Latin file has nothing to offer. --font-display/--font-body
   /--font-mono in tokens.css need no Bengali-specific values at all — a
   heading set in "Fraunces" already renders Bengali correctly.

   Noto Serif Bengali pairs with Fraunces (both display serifs, same 400-800
   weight range); Noto Sans Bengali pairs with Familjen Grotesk AND stands in
   for JetBrains Mono — there is no widely-shipped monospaced Bengali face,
   and a handful of Bengali words inside an otherwise-mono uppercase label
   (see the :lang(bn) override further down) is an acceptable place for that
   compromise, since it's never the tabular digit columns this rule exists
   for. Both instanced to a fixed width axis and subset to just this range —
   full variable files run 460-980 KB; subset lands at 68-120 KB, in the same
   range as the Latin faces below. */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/notoserifbengali-bn.a17dbd589c25.woff2") format("woff2");
  unicode-range: U+0020, U+0980-09FF, U+200C, U+200D, U+2018-201D;
}
@font-face {
  font-family: "Familjen Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/notosansbengali-bn.7490e3d1f2c5.woff2") format("woff2");
  unicode-range: U+0020, U+0980-09FF, U+200C, U+200D, U+2018-201D;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("../fonts/notosansbengali-bn.7490e3d1f2c5.woff2") format("woff2");
  unicode-range: U+0020, U+0980-09FF, U+200C, U+200D, U+2018-201D;
}

/* ---- ৳ (U+09F3) ------------------------------------------------------
   None of the three Latin families above carry the Bengali taka sign, and
   Tenant.currency defaults to BDT — so without this every price on the
   site would drop that one glyph into whatever system font the OS picks,
   next to JetBrains Mono digits. This is Noto Sans Bengali, scoped by
   unicode-range to the single codepoint, so the browser fetches its 1.6 KB
   only on pages that actually render a taka sign and never substitutes it
   for anything else. Declared before the Latin faces in every stack that
   uses it, since unicode-range makes the ordering unambiguous. */
@font-face {
  font-family: "Taka";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/notosansbengali-taka.1348779f08c4.woff2") format("woff2");
  unicode-range: U+09F3;
}
