/* Flex Section Builder — компонент `rich_text`.
   Чистая премиум-типографика статьи. Alice — заголовки, Inter — текст.
   Всё скоуплено под .fx--rich_text. Только токены --fx-*. */

.fx--rich_text .fx-rich {
    margin-inline: 0;
}

/* Блок rich_text занимает всю ширину контейнера секции — колонку не сужаем.
   (ранее .fx-rich / .fx-rich-body ограничивались max-width: var(--fx-rich-col)) */
.fx--rich_text .fx-rich,
.fx--rich_text .fx-rich-body {
    max-width: none;
}

/* ---- заголовок секции ---- */
.fx--rich_text .fx-rich__heading {
    font-size: clamp(1.7rem, 3.4vw, 2.7rem);
    line-height: 1.18;
    letter-spacing: -.01em;
    margin: 0 0 1rem;
}

/* ──────────────────────────────────────────────
   Тело WYSIWYG — стилизуем сгенерированный вывод.
   Скоуплено, голые теги не объявляем глобально.
   ────────────────────────────────────────────── */
.fx--rich_text .fx-rich-body {
    font-family: var(--fx-font-body);
    font-size: clamp(1rem, .55vw + .92rem, 1.13rem);
    line-height: 1.78;
    color: var(--fx-text);
}

/* Абзацы и базовый ритм */
.fx--rich_text .fx-rich-body > :first-child { margin-top: 0; }
.fx--rich_text .fx-rich-body > :last-child { margin-bottom: 0; }

.fx--rich_text .fx-rich-body p {
    margin: 0 0 1.35em;
}

/* Подзаголовки внутри статьи */
.fx--rich_text .fx-rich-body h2,
.fx--rich_text .fx-rich-body h3,
.fx--rich_text .fx-rich-body h4 {
    font-family: var(--fx-font-head);
    color: var(--fx-dark);
    line-height: 1.25;
    margin: 2em 0 .6em;
}
.fx--rich_text .fx-rich-body h2 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); }
.fx--rich_text .fx-rich-body h3 { font-size: clamp(1.2rem, 1.9vw, 1.45rem); }
.fx--rich_text .fx-rich-body h4 { font-size: 1.15rem; }

/* Списки */
.fx--rich_text .fx-rich-body ul,
.fx--rich_text .fx-rich-body ol {
    margin: 0 0 1.35em;
    padding-left: 1.4em;
}
.fx--rich_text .fx-rich-body ul { list-style: none; }
.fx--rich_text .fx-rich-body ol { list-style: decimal; }
.fx--rich_text .fx-rich-body li {
    margin: 0 0 .55em;
    padding-left: .35em;
}
.fx--rich_text .fx-rich-body ol li::marker {
    color: var(--fx-gold-dark);
    font-weight: 600;
}
.fx--rich_text .fx-rich-body ul li {
    position: relative;
}
.fx--rich_text .fx-rich-body ul li::before {
    content: "";
    position: absolute;
    left: -1.05em;
    top: .72em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--fx-grad-gold);
}
.fx--rich_text .fx-rich-body li > ul,
.fx--rich_text .fx-rich-body li > ol {
    margin: .55em 0 .2em;
}

/* Ссылки */
.fx--rich_text .fx-rich-body a {
    color: var(--fx-gold-dark);
    text-decoration: underline;
    text-decoration-color: var(--fx-gold-accent);
    text-underline-offset: .18em;
    text-decoration-thickness: 1px;
    transition: color var(--fx-dur) var(--fx-ease), text-decoration-color var(--fx-dur) var(--fx-ease);
}
.fx--rich_text .fx-rich-body a:hover {
    color: var(--fx-dark);
    text-decoration-color: var(--fx-gold);
}

/* Акценты */
.fx--rich_text .fx-rich-body strong,
.fx--rich_text .fx-rich-body b {
    font-weight: 700;
    color: var(--fx-dark);
}
.fx--rich_text .fx-rich-body em,
.fx--rich_text .fx-rich-body i { font-style: italic; }

/* Цитата */
.fx--rich_text .fx-rich-body blockquote {
    margin: 1.8em 0;
    padding: .4em 0 .4em 1.5em;
    border-left: 3px solid var(--fx-gold);
    font-family: var(--fx-font-head);
    font-size: clamp(1.15rem, 1.6vw, 1.35rem);
    line-height: 1.55;
    font-style: italic;
    color: var(--fx-text);
}
.fx--rich_text .fx-rich-body blockquote p:last-child { margin-bottom: 0; }
.fx--rich_text .fx-rich-body blockquote cite {
    display: block;
    margin-top: .7em;
    font-family: var(--fx-font-body);
    font-size: .9rem;
    font-style: normal;
    color: var(--fx-text-muted);
}

/* Прочие inline-элементы */
.fx--rich_text .fx-rich-body code {
    font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
    font-size: .9em;
    background: var(--fx-border-light);
    border: 1px solid var(--fx-border);
    border-radius: var(--fx-radius-sm);
    padding: .12em .4em;
}
.fx--rich_text .fx-rich-body hr {
    border: 0;
    height: 1px;
    background: var(--fx-border);
    margin: 2.4em 0;
}
.fx--rich_text .fx-rich-body img {
    border-radius: var(--fx-radius);
    margin: 1.6em 0;
    box-shadow: var(--fx-shadow-sm);
}

/* ---- темы ---- */
.fx-theme-dark.fx--rich_text .fx-rich-body { color: var(--fx-text-invert); }
.fx-theme-dark.fx--rich_text .fx-rich-body h2,
.fx-theme-dark.fx--rich_text .fx-rich-body h3,
.fx-theme-dark.fx--rich_text .fx-rich-body h4,
.fx-theme-dark.fx--rich_text .fx-rich-body strong,
.fx-theme-dark.fx--rich_text .fx-rich-body b { color: #fff; }
.fx-theme-dark.fx--rich_text .fx-rich-body a {
    color: var(--fx-gold-bright);
    text-decoration-color: rgba(252, 188, 52, .55);
}
.fx-theme-dark.fx--rich_text .fx-rich-body a:hover {
    color: #fff;
    text-decoration-color: var(--fx-gold-bright);
}
.fx-theme-dark.fx--rich_text .fx-rich-body blockquote {
    border-left-color: var(--fx-gold-bright);
    color: var(--fx-text-invert);
}
.fx-theme-dark.fx--rich_text .fx-rich-body blockquote cite { color: rgba(244, 241, 234, .7); }
.fx-theme-dark.fx--rich_text .fx-rich-body code {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .14);
}
.fx-theme-dark.fx--rich_text .fx-rich-body hr { background: rgba(255, 255, 255, .14); }

.fx-theme-gold.fx--rich_text .fx-rich-body h2,
.fx-theme-gold.fx--rich_text .fx-rich-body h3,
.fx-theme-gold.fx--rich_text .fx-rich-body h4 { color: var(--fx-dark); }

/* ---- адаптив ---- */
@media (max-width: 600px) {
    .fx--rich_text .fx-rich-body { line-height: 1.72; }
    .fx--rich_text .fx-rich-body blockquote { padding-left: 1.1em; }
}

@media (prefers-reduced-motion: reduce) {
    .fx--rich_text .fx-rich-body a { transition: none; }
}
