/* Классы текста, которые администратор выбирает в редакторе (UpterioTextEditorWidget, upcc93).
   Те же правила подключаются в самом редакторе, поэтому в контент ложатся только эти классы, а не style.

   !important намеренно: набор закрытый и задан администратором явно, он должен побеждать
   селекторы тем вида «#main h2», по специфичности их не перебить.

   Размеры — токены в :root, тема вправе переопределить их в своём css/theme.css.
   Цвета берут токен темы, если он есть (палитры задают только primary/accent), иначе запасное значение;
   в тёмной схеме запасные светлее. Значения запасных проверены на контраст ≥ 4.5:1 с #fff / #1e293b. */

:root {
    --text-size-eyebrow: .8125rem;
    --text-size-h1: clamp(2rem, 4vw, 3rem);
    --text-size-h2: clamp(1.625rem, 3vw, 2.25rem);
    --text-size-h3: clamp(1.375rem, 2.4vw, 1.75rem);
    --text-size-h4: 1.25rem;
    --text-size-h5: 1.0625rem;
    --text-size-body: var(--font-size-main, 1rem);
    --text-size-lead: 1.1875rem;
    --text-size-small: .875rem;
    --text-weight-heading: 600;
}

/* размер */
.text-size-eyebrow { font-size: var(--text-size-eyebrow) !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
.text-size-h1 { font-size: var(--text-size-h1) !important; line-height: 1.15 !important; font-weight: var(--text-weight-heading) !important; }
.text-size-h2 { font-size: var(--text-size-h2) !important; line-height: 1.2 !important; font-weight: var(--text-weight-heading) !important; }
.text-size-h3 { font-size: var(--text-size-h3) !important; line-height: 1.25 !important; font-weight: var(--text-weight-heading) !important; }
.text-size-h4 { font-size: var(--text-size-h4) !important; line-height: 1.3 !important; font-weight: var(--text-weight-heading) !important; }
.text-size-h5 { font-size: var(--text-size-h5) !important; line-height: 1.35 !important; font-weight: var(--text-weight-heading) !important; }
.text-size-body { font-size: var(--text-size-body) !important; line-height: 1.6 !important; font-weight: 400 !important; }
.text-size-lead { font-size: var(--text-size-lead) !important; line-height: 1.6 !important; font-weight: 400 !important; }
.text-size-small { font-size: var(--text-size-small) !important; line-height: 1.5 !important; font-weight: 400 !important; }

/* цвет */
.text-color-accent { color: var(--accent-text-color, #0f766e) !important; }
.text-color-secondary { color: var(--secondary-text-color, #475569) !important; }
.text-color-muted { color: var(--disabled-text-color, #6b7280) !important; }
.text-color-warning { color: var(--warn-text-color, #b45309) !important; }
.text-color-alert { color: var(--red-text-color, #b91c1c) !important; }
.text-color-success { color: var(--green-text-color, #15803d) !important; }
.text-color-inverse { color: var(--white-text-color, #ffffff) !important; }
body.scheme-dark .text-color-accent { color: var(--accent-text-color, #2dd4bf) !important; }
body.scheme-dark .text-color-secondary { color: var(--secondary-text-color, #cbd5e1) !important; }
body.scheme-dark .text-color-muted { color: var(--disabled-text-color, #94a3b8) !important; }
body.scheme-dark .text-color-warning { color: var(--warn-text-color, #fbbf24) !important; }
body.scheme-dark .text-color-alert { color: var(--red-text-color, #f87171) !important; }
body.scheme-dark .text-color-success { color: var(--green-text-color, #4ade80) !important; }

/* выравнивание блока */
.text-align-left { text-align: left !important; }
.text-align-center { text-align: center !important; }
.text-align-right { text-align: right !important; }
.text-align-justify { text-align: justify !important; }
