/* EchoFit — the one font stylesheet (type round, 13 Oct 2026; owner Option A).
   Every surface links this file: the member app (bundled from index.html),
   the coach portals, admin, and the public pages (landing, pricing, founding,
   legal, trainers, the coach's public page, /simple).

   Latin  Archivo (Omnibus-Type, OFL), ONE variable source, wght 300-900 and
          wdth 70-100, cut into two files by unicode-range (scripts/fonts/
          build-archivo.py): archivo-core.woff2 (ASCII + the symbols the app
          writes; preloaded) and archivo-ext.woff2 (accented Latin-1 letters;
          fetched only when one renders).
   Arabic IBM Plex Sans Arabic (IBM, OFL) 400/600/700, the Arabic subset only:
          an English session never downloads it, and Latin letters and digits
          inside Arabic text come from Archivo, so a number reads the same in
          both languages. Plex has no 800: a heavier request draws 700.

   THREE ROLES, one file. The same Archivo bytes are declared under three
   family names, each with its own width (font-stretch descriptor: a variable
   face renders at the element's width clamped to the face's range, so a
   single value pins it). tokens.css maps the roles:
     'Archivo'          --font-text     reading width 95 (a touch under Archivo's
                                        100, which sets wider than Inter did;
                                        font-stretch can narrow it to 70)
     'Archivo Display'  --font-display  condensed 88: titles, buttons, the hero
     'Archivo Num'      --font-num      condensed 80: weights, reps, timers, big
                                        numbers — tabular (Archivo's default
                                        figures are already fixed-width)
   The browser fetches each file once, whatever the number of families.
   Licences: OFL.txt in this folder. */

/* ── Archivo: text (width 95) ───────────────────────────────────────────── */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 300 900; font-stretch: 70% 95%; font-display: swap; src: url('./archivo-core.woff2') format('woff2'); unicode-range: U+0020-007E, U+00A0, U+00A3, U+00A7, U+00A9, U+00AB, U+00AE, U+00B0-00B3, U+00B7, U+00BB, U+00BD, U+00D7, U+00F7, U+2009, U+2011, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2122, U+2190-2194, U+2212, U+2248, U+2260, U+2264-2265; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 300 900; font-stretch: 70% 95%; font-display: swap; src: url('./archivo-ext.woff2') format('woff2'); unicode-range: U+00A1-00A2, U+00A4-00A6, U+00A8, U+00AA, U+00AC-00AD, U+00AF, U+00B4-00B6, U+00B8-00BA, U+00BC, U+00BE-00D6, U+00D8-00F6, U+00F8-00FF, U+0131, U+0152-0153, U+0178; }

/* ── Archivo: display (condensed 88) ──────────────────────────────────────── */
@font-face { font-family: 'Archivo Display'; font-style: normal; font-weight: 300 900; font-stretch: 88%; font-display: swap; src: url('./archivo-core.woff2') format('woff2'); unicode-range: U+0020-007E, U+00A0, U+00A3, U+00A7, U+00A9, U+00AB, U+00AE, U+00B0-00B3, U+00B7, U+00BB, U+00BD, U+00D7, U+00F7, U+2009, U+2011, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2122, U+2190-2194, U+2212, U+2248, U+2260, U+2264-2265; }
@font-face { font-family: 'Archivo Display'; font-style: normal; font-weight: 300 900; font-stretch: 88%; font-display: swap; src: url('./archivo-ext.woff2') format('woff2'); unicode-range: U+00A1-00A2, U+00A4-00A6, U+00A8, U+00AA, U+00AC-00AD, U+00AF, U+00B4-00B6, U+00B8-00BA, U+00BC, U+00BE-00D6, U+00D8-00F6, U+00F8-00FF, U+0131, U+0152-0153, U+0178; }

/* ── Archivo: numbers (condensed 80, tabular) ─────────────────────────────── */
@font-face { font-family: 'Archivo Num'; font-style: normal; font-weight: 300 900; font-stretch: 80%; font-display: swap; src: url('./archivo-core.woff2') format('woff2'); unicode-range: U+0020-007E, U+00A0, U+00A3, U+00A7, U+00A9, U+00AB, U+00AE, U+00B0-00B3, U+00B7, U+00BB, U+00BD, U+00D7, U+00F7, U+2009, U+2011, U+2013-2014, U+2018-2019, U+201C-201E, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2122, U+2190-2194, U+2212, U+2248, U+2260, U+2264-2265; }
@font-face { font-family: 'Archivo Num'; font-style: normal; font-weight: 300 900; font-stretch: 80%; font-display: swap; src: url('./archivo-ext.woff2') format('woff2'); unicode-range: U+00A1-00A2, U+00A4-00A6, U+00A8, U+00AA, U+00AC-00AD, U+00AF, U+00B4-00B6, U+00B8-00BA, U+00BC, U+00BE-00D6, U+00D8-00F6, U+00F8-00FF, U+0131, U+0152-0153, U+0178; }

/* ── IBM Plex Sans Arabic 400 600 700 (Arabic subset) ─────────────────────── */
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url('./ibm-plex-sans-arabic-400-arabic.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url('./ibm-plex-sans-arabic-600-arabic.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url('./ibm-plex-sans-arabic-700-arabic.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
