/* ==========================================================================
   БСК · Дизайн-система — УТИЛИТЫ
   Подключается ПОСЛЕДНИМ. Только то, чем реально пользуются.
   Правило: если утилита нужна в третий раз — это уже компонент.
   ========================================================================== */

/* --- Текст ------------------------------------------------------------ */
.u-display  { font-family: var(--font-display); font-weight: var(--weight-medium); letter-spacing: var(--tracking-display); }
.u-lead     { font-size: var(--text-lead); line-height: var(--leading-snug); }
.u-small    { font-size: var(--text-small); }
.u-label    { font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-weight: var(--weight-semibold); }
/* Прописные без смены кегля — для кнопок. Разрядка обязательна: без неё
   заглавные слипаются, кириллица страдает от этого сильнее латиницы. */
.u-caps     { text-transform: uppercase; letter-spacing: var(--tracking-label); }
.u-nowrap   { white-space: nowrap; }
.u-balance  { text-wrap: balance; }
.u-measure  { max-width: var(--measure); }

.u-ink        { color: var(--color-ink); }
.u-ink-2      { color: var(--color-ink-2); }
/* Третичный тон — сноски, подписи, дисклеймеры. 6:1 на бумаге, 4,9:1
   на поверхности: проходит AA для основного текста, но применяется
   только к мелкому вспомогательному, не к телу страницы. */
.u-ink-3      { color: var(--color-ink-3); }
.u-primary    { color: var(--color-primary); }
.u-accent     { color: var(--color-accent-700); }
.u-paper      { color: var(--color-paper); }

.u-center     { text-align: center; }
.u-left       { text-align: left; }

/* --- Раскладка -------------------------------------------------------- */
.u-flex       { display: flex; }
.u-grid       { display: grid; }
.u-wrap       { flex-wrap: wrap; }
.u-items-center  { align-items: center; }
.u-items-start   { align-items: flex-start; }
.u-justify-between { justify-content: space-between; }
.u-justify-center  { justify-content: center; }
.u-gap-xs { gap: var(--space-xs); }
.u-gap-sm { gap: var(--space-sm); }
.u-gap-md { gap: var(--space-md); }
.u-gap-lg { gap: var(--space-lg); }
.u-gap-xl { gap: var(--space-xl); }

.u-mt-sm { margin-top: var(--space-sm); }
.u-mt-md { margin-top: var(--space-md); }
.u-mt-lg { margin-top: var(--space-lg); }
.u-mt-xl { margin-top: var(--space-xl); }
.u-mt-2xl{ margin-top: var(--space-2xl); }
.u-mb-md { margin-bottom: var(--space-md); }
.u-mb-lg { margin-bottom: var(--space-lg); }
.u-mb-xl { margin-bottom: var(--space-xl); }
.u-mb-2xl{ margin-bottom: var(--space-2xl); }

.u-full   { width: 100%; }
.u-fit    { width: fit-content; max-width: 100%; }

/* --- Поверхности ------------------------------------------------------ */
.u-bg-paper   { background: var(--color-paper); }
.u-bg-surface { background: var(--color-surface); }
.u-bg-surface-2 { background: var(--color-surface-2); }
.u-bg-dawn    { background: var(--gradient-dawn); }
.u-bg-primary { background: var(--color-primary); color: var(--color-paper); }

.u-round-md   { border-radius: var(--radius-md); }
.u-round-lg   { border-radius: var(--radius-lg); }
.u-round-xl   { border-radius: var(--radius-xl); }
.u-round-pill { border-radius: var(--radius-pill); }
.u-shadow-md  { box-shadow: var(--shadow-md); }

.u-pad-md { padding: var(--space-md); }
.u-pad-lg { padding: var(--space-lg); }
.u-pad-xl { padding: var(--space-xl); }

/* --- Видимость по брейкпоинтам ---------------------------------------- */
/* Брейкпоинты системы: 320 · 480 · 768 · 1024 · 1440 · 1920 */
.u-only-mobile  { display: revert; }
.u-only-desktop { display: none; }
@media (min-width: 1024px) {
  .u-only-mobile  { display: none; }
  .u-only-desktop { display: revert; }
}

/* --- Иконки ----------------------------------------------------------- */
.u-icon    { width: 1.25em; height: 1.25em; fill: currentColor; flex: none; }
.u-icon-sm { width: 1em;    height: 1em; }
.u-icon-lg { width: 2em;    height: 2em; }
.u-icon-xl { width: 3em;    height: 3em; }

/* --- Печать ----------------------------------------------------------- */
@media print {
  .bsk-header, .bsk-actionbar, .bsk-drawer, .bsk-ticker, .bsk-carousel__nav { display: none !important; }
  body { color: #000; background: #fff; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}
