/*
  The storefront's and the back office's four fonts, served from this site rather than Google
  Fonts (docs/seo-plan.md §2.10): no third-party stylesheet holding up the first paint, and two
  fewer hosts for a phone to reach. Each is a variable font, so one file covers every weight, and
  each is split as Google splits it - Latin, Latin Extended, Arabic - so a page downloads only
  the scripts it shows. All four are under the SIL Open Font License 1.1 (wwwroot/fonts/OFL-*.txt).
  Generated from fonts.googleapis.com on 2026-10-05.

  One change from Google's: each Arabic file also draws the space and the no-break space
  (U+0020, U+00A0), which it holds, the same width as the Latin file's (feature 66). The two files
  arrive apart, and in between the Arabic words were in the font and the spaces in the phone's,
  which are wider: a title on the edge of a line wrapped onto a second and back, and the page
  moved twice.
*/

/* Baloo Bhaijaan 2, arabic */
@font-face {
    font-family: 'Baloo Bhaijaan 2';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('../fonts/baloo-bhaijaan-2-arabic.woff2') format('woff2');
    unicode-range: U+0020, U+00A0, U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* Baloo Bhaijaan 2, latin-ext */
@font-face {
    font-family: 'Baloo Bhaijaan 2';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('../fonts/baloo-bhaijaan-2-latin-ext.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;
}

/* Baloo Bhaijaan 2, latin */
@font-face {
    font-family: 'Baloo Bhaijaan 2';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('../fonts/baloo-bhaijaan-2-latin.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;
}

/* Cairo, arabic */
@font-face {
    font-family: 'Cairo';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/cairo-arabic.woff2') format('woff2');
    unicode-range: U+0020, U+00A0, U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* Cairo, latin-ext */
@font-face {
    font-family: 'Cairo';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/cairo-latin-ext.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;
}

/* Cairo, latin */
@font-face {
    font-family: 'Cairo';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/cairo-latin.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;
}

/* Fredoka, latin-ext */
@font-face {
    font-family: 'Fredoka';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/fredoka-latin-ext.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;
}

/* Fredoka, latin */
@font-face {
    font-family: 'Fredoka';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/fredoka-latin.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;
}

/* Nunito, latin-ext */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/nunito-latin-ext.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;
}

/* Nunito, latin */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/nunito-latin.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;
}

/*
  Fallbacks for the two Arabic fonts, drawn from the phone's own fonts until Cairo and Baloo
  Bhaijaan 2 arrive (feature 66). On a slow connection the page is drawn first in the phone's
  font, and its lines were a third shorter than Cairo's (1.33 against 1.87 of the font size): when
  Cairo came, every Arabic line grew and the page moved, 0.127 of layout shift on the home page on
  Slow 3G. Each fallback carries its font's own ascent and descent, so a line is as tall before
  the swap as after, and a size-adjust that makes the stand-in about as wide.

  Measured in Chrome on 2026-10-27, per cent of the font size: Cairo rises 130.3 and falls 57.1,
  Baloo Bhaijaan 2 108.0 and 63.2, neither with a line gap. The overrides are scaled by
  size-adjust, so each is written divided by it. The widths were matched against Segoe UI, the
  Windows font; the heights hold for whichever of the fonts below the phone has. Bold has a face of
  its own because Cairo's bold is 7% wider than its regular, and Segoe UI's is not.
*/
@font-face {
    font-family: 'Cairo Fallback';
    font-style: normal;
    font-weight: 400 500;
    src: local('Segoe UI'), local('SegoeUI'), local('Noto Sans Arabic'), local('NotoSansArabic-Regular'), local('Noto Naskh Arabic'), local('NotoNaskhArabic-Regular'), local('Geeza Pro'), local('GeezaPro'), local('Arial'), local('ArialMT'), local('Tahoma');
    size-adjust: 99.59%;
    ascent-override: 130.84%;
    descent-override: 57.34%;
    line-gap-override: 0%;
}

/* Semibold, for the delivery strip above every page: it fits one line of a 360px phone with 2px
   to spare in Cairo, so this face is matched to its mixed Arabic and Latin, 98.4% of Segoe UI
   Semibold, where the bold one below would have wrapped it onto two lines. */
@font-face {
    font-family: 'Cairo Fallback';
    font-style: normal;
    font-weight: 600;
    src: local('Segoe UI Semibold'), local('SegoeUI-Semibold'), local('Noto Sans Arabic SemiBold'), local('NotoSansArabic-SemiBold'), local('Noto Sans Arabic Bold'), local('NotoSansArabic-Bold'), local('Noto Naskh Arabic Bold'), local('NotoNaskhArabic-Bold'), local('Geeza Pro Bold'), local('GeezaPro-Bold'), local('Arial Bold'), local('Arial-BoldMT'), local('Tahoma Bold'), local('Tahoma-Bold');
    size-adjust: 98.4%;
    ascent-override: 132.42%;
    descent-override: 58.03%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Cairo Fallback';
    font-style: normal;
    font-weight: 700 900;
    src: local('Segoe UI Bold'), local('SegoeUI-Bold'), local('Noto Sans Arabic Bold'), local('NotoSansArabic-Bold'), local('Noto Naskh Arabic Bold'), local('NotoNaskhArabic-Bold'), local('Geeza Pro Bold'), local('GeezaPro-Bold'), local('Arial Bold'), local('Arial-BoldMT'), local('Tahoma Bold'), local('Tahoma-Bold');
    size-adjust: 108.21%;
    ascent-override: 120.41%;
    descent-override: 52.77%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Baloo Bhaijaan 2 Fallback';
    font-style: normal;
    font-weight: 400 500;
    src: local('Segoe UI'), local('SegoeUI'), local('Noto Sans Arabic'), local('NotoSansArabic-Regular'), local('Noto Naskh Arabic'), local('NotoNaskhArabic-Regular'), local('Geeza Pro'), local('GeezaPro'), local('Arial'), local('ArialMT'), local('Tahoma');
    size-adjust: 91.11%;
    ascent-override: 118.54%;
    descent-override: 69.37%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Baloo Bhaijaan 2 Fallback';
    font-style: normal;
    font-weight: 600 900;
    src: local('Segoe UI Bold'), local('SegoeUI-Bold'), local('Noto Sans Arabic Bold'), local('NotoSansArabic-Bold'), local('Noto Naskh Arabic Bold'), local('NotoNaskhArabic-Bold'), local('Geeza Pro Bold'), local('GeezaPro-Bold'), local('Arial Bold'), local('Arial-BoldMT'), local('Tahoma Bold'), local('Tahoma-Bold');
    size-adjust: 94.39%;
    ascent-override: 114.42%;
    descent-override: 66.96%;
    line-gap-override: 0%;
}
