/* ==========================================================================
   Самохостящиеся шрифты. Файлы — commit-нутые подмножества woff2, см.
   tools/copy-fonts.mjs (Docker не запускает npm, поэтому это не пересобирается
   в проде). @font-face объявлен вручную, а не через CSS от fontsource —
   тот тянет все подмножества (греческое, вьетнамское…), нам нужны только
   кириллица и латиница.

   Каждый @font-face ленивый: браузер не скачивает файл, пока на странице
   нет текста, которому он реально нужен — поэтому здесь можно объявить все
   три семьи разом, а не только те, что нужны конкретной странице.
   ========================================================================== */

/* Onest — рабочая лошадь: заголовки, интерфейс, цифры (в т.ч. цены с ₽). */
@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/onest-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/onest-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215;
}
/* ₽ (U+20BD) — единственный "рублёвый" символ на сайте — живёт только в
   latin-ext подмножестве, не в базовом latin. Без этого файла каждая цена
   рисовалась бы запасным шрифтом ради одного символа. */
@font-face {
  font-family: "Onest";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/onest-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+20A0-20AB, U+20AD-20C0;
}

/* Unbounded — только сигнатура: логотип, крупные числа, надзаголовки. */
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/unbounded-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/unbounded-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215;
}

/* Literata — только длинная проза: история пасеки, отзывы, поздравление. */
@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/literata-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/literata-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215;
}

/* Метрически близкие запасные шрифты — swap не должен вызывать заметный
   реflow. Числа подобраны на глаз (Arial/Onest, Georgia/Literata близки по
   ширине); Unbounded — крупный дисплейный шрифт, скачок при подмене
   не задевает обычный текст, отдельный фолбэк ему не нужен. */
@font-face {
  font-family: "Onest Fallback";
  src: local("Arial"), local("Helvetica");
  size-adjust: 104%;
  ascent-override: 96%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Literata Fallback";
  src: local("Georgia");
  size-adjust: 100%;
  ascent-override: 92%;
  descent-override: 22%;
  line-gap-override: 0%;
}
