/* Шрифт сайта — Onest (OFL 1.1, fonts/onest/OFL.txt). Единственный источник его @font-face (09.10.2026, этап «единый
   стиль», STYLE_SPEC §2.2): раньше одни и те же правила лежали в трёх файлах — lp2.css (12 начертаний), site-header.css (7)
   и site-footer.css (6), а старые страницы рисовали текст шрифтами из Google Fonts.
   Подключают первой таблицей стилей, с preload четырёх файлов первого экрана: lp2-head.ejs (новые посадочные, блог,
   /business, страницы на каркасе page-top.ejs), head.ejs (Tilda- и Bulma-страницы), свой <head> кабинета. Во фрейме
   приложения (appEmbed) файла нет: веб-модалка 1.21 рисуется системным шрифтом.
   Файлы шрифта — из npm-пакета @fontsource/onest 5.3.1: кириллица и латиница 400/500/600/700, unicode-range — как у Google
   Fonts. Начертания extra — своё подмножество из того же пакета (pyftsubset, latin-ext + cyrillic-ext + symbols, сведены
   fontTools.merge): только знаки валют ₽ ₸ ₺ ₼ ₴ и стрелки ← →. Полные latin-ext и symbols весили бы по 8–12 КБ на
   начертание ради одного знака рубля. Каждый файл браузер грузит, только если на странице есть символ из его диапазона.
   Начертаний 300 и 800 нет и не будет: 300 → 400, 800 → 700.
   Файл кэшируется Cloudflare: ссылка идёт с ?v=<хеш содержимого> (ONEST_ASSETS в front.js), после правки нужен рестарт
   front.js. */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/onest/onest-cyrillic-400-normal.woff2) format("woff2"); 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: 500; font-display: swap; src: url(../fonts/onest/onest-cyrillic-500-normal.woff2) format("woff2"); 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: 600; font-display: swap; src: url(../fonts/onest/onest-cyrillic-600-normal.woff2) format("woff2"); 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: 700; font-display: swap; src: url(../fonts/onest/onest-cyrillic-700-normal.woff2) format("woff2"); 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: 400; font-display: swap; src: url(../fonts/onest/onest-latin-400-normal.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: "Onest"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/onest/onest-latin-500-normal.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: "Onest"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/onest/onest-latin-600-normal.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: "Onest"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/onest/onest-latin-700-normal.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: "Onest"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/onest/onest-extra-400-normal.woff2) format("woff2"); unicode-range: U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2190, U+2192; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/onest/onest-extra-500-normal.woff2) format("woff2"); unicode-range: U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2190, U+2192; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/onest/onest-extra-600-normal.woff2) format("woff2"); unicode-range: U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2190, U+2192; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/onest/onest-extra-700-normal.woff2) format("woff2"); unicode-range: U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2190, U+2192; }

/* Метрический запасной шрифт: пока Onest не пришёл (font-display: swap), текст рисует Arial, подогнанный под размеры Onest, —
   строки не перестраиваются при подмене (CLS). Замер 09.10.2026 в Chrome (canvas measureText, 100 px): Onest 400 шире Arial
   на 2,6 % на русской строке и на 4,6 % на английской; Onest 600 и Arial Bold почти одной ширины (−1 % и +0,7 %); ascent/descent
   у Onest 0,97/0,30, у Arial 0,91/0,21. Поэтому два правила: обычный и средний текст — Arial с size-adjust 103 % (основной
   текст сайта русский), полужирный и жирный (заголовки, кнопки) — Arial Bold без увеличения: с общими 103 % заголовки в запасном
   шрифте были шире и переносились иначе (CLS на /vpn/mac 0,036–0,045 при задержке шрифтов 1 с). Overrides — 0,97/0,30 на
   size-adjust. Arial одинаков в Windows и macOS, Liberation Sans в Linux с ним метрически совместим.
   unicode-range — ровно объединение диапазонов Onest: символы, которых в Onest нет (≈, ✓, эмодзи), как и раньше рисует
   следующий шрифт стека (system-ui), а не растянутый Arial. */
@font-face {
	font-family: "Onest Fallback"; font-style: normal; font-weight: 100 500;
	src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 103%; ascent-override: 94%; descent-override: 29%; line-gap-override: 0%;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0301, U+0304, U+0308, U+0329, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2000-206F, U+20AC, U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2116, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Onest Fallback"; font-style: normal; font-weight: 600 900;
	src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("Helvetica Bold");
	size-adjust: 100%; ascent-override: 97%; descent-override: 30%; line-gap-override: 0%;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0301, U+0304, U+0308, U+0329, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2000-206F, U+20AC, U+20B4, U+20B8, U+20BA, U+20BC, U+20BD, U+2116, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Стек шрифта сайта. Им пользуются lp2.css (body), шапка (--sh-font), подвал (--sf-font), page.css и слои старых страниц:
   var(--font). Моноширинный (code, kbd, ключи, коды ТВ) остаётся своим стеком. */
:root { --font: "Onest", "Onest Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
/* Вес «тонкого» текста Tilda (149b62.css: t-text, t-descr и др. — font-weight: var(--font-light, 300)). У Onest нет 300, поэтому
   на страницах сайта — 400 (09.10.2026, STYLE_SPEC §1.2). Без этого файла остаётся 300. */
:root { --font-light: 400; }
/* Шрифт по умолчанию для страниц, где body свой шрифт не задаёт (/thanks: голый <h1>OK</h1> рисовался Times). :where — нулевая
   специфичность: любое правило страницы, Tilda, Bulma или lp2 сильнее. */
:where(body) { font-family: var(--font); }

/* Плашки общих партиалов (cookie-notice, download-notice): их стиль с системным шрифтом вставляет скрипт партиала селектором
   по id (1,0,0). Здесь они в шрифте сайта — (1,0,2) сильнее, сам партиал не трогаем (он общий с другими сайтами). */
html body #ckCookie, html body #ckDl { font-family: var(--font); }
