/* ==========================================================================
   ci46 — оформление контента Букреевского дома
   ========================================================================== */

/* ==========================================================================
   Единая цветовая система сайта. В шаблоне нет собственного переключателя:
   состояние берется из localStorage общей шапки и атрибутов html.
   ========================================================================== */

html {
    --bkx-theme-main:#173f34;--bkx-theme-main-2:#31594d;--bkx-theme-main-3:#71827b;--bkx-theme-rgb:23,63,52;
    --bkx-theme-paper:#f4f2ec;--bkx-theme-paper-2:#f8f6ef;--bkx-theme-card:#fbfaf5;--bkx-theme-soft:#e3e9dc;--bkx-theme-soft-2:#edf0e7;
    --bkx-theme-card-2:#e7ece9;--bkx-theme-card-3:#efe7df;--bkx-theme-muted:#64756e;--bkx-theme-line:#b9c4bd;--bkx-theme-accent:#e6d69a;--bkx-theme-accent-2:#dfe8b7;
}
html[data-bkx-theme="blue"] {
    --bkx-theme-main:#173f5f;--bkx-theme-main-2:#315f80;--bkx-theme-main-3:#718798;--bkx-theme-rgb:23,63,95;
    --bkx-theme-paper:#f2f4f6;--bkx-theme-paper-2:#f6f8fa;--bkx-theme-card:#fbfcfd;--bkx-theme-soft:#dfe8ef;--bkx-theme-soft-2:#e9eff4;
    --bkx-theme-card-2:#e3edf5;--bkx-theme-card-3:#eee8df;--bkx-theme-muted:#657887;--bkx-theme-line:#b9c6cf;--bkx-theme-accent:#e3cf9b;--bkx-theme-accent-2:#d8e5ee;
}
html[data-bkx-theme="green"] {
    --bkx-theme-main:#173f34;--bkx-theme-main-2:#31594d;--bkx-theme-main-3:#71827b;--bkx-theme-rgb:23,63,52;
    --bkx-theme-paper:#f4f2ec;--bkx-theme-paper-2:#f8f6ef;--bkx-theme-card:#fbfaf5;--bkx-theme-soft:#e3e9dc;--bkx-theme-soft-2:#edf0e7;
    --bkx-theme-card-2:#e7ece9;--bkx-theme-card-3:#efe7df;--bkx-theme-muted:#64756e;--bkx-theme-line:#b9c4bd;--bkx-theme-accent:#e6d69a;--bkx-theme-accent-2:#dfe8b7;
}
html[data-bkx-theme="purple"] {
    --bkx-theme-main:#3b2e52;--bkx-theme-main-2:#5a4772;--bkx-theme-main-3:#806f8d;--bkx-theme-rgb:59,46,82;
    --bkx-theme-paper:#f4f1f5;--bkx-theme-paper-2:#f8f5f8;--bkx-theme-card:#fbf9fc;--bkx-theme-soft:#e6dfeb;--bkx-theme-soft-2:#eee8f1;
    --bkx-theme-card-2:#e9e3ef;--bkx-theme-card-3:#f0e6e7;--bkx-theme-muted:#706779;--bkx-theme-line:#c7bdcd;--bkx-theme-accent:#d8c29c;--bkx-theme-accent-2:#e6dcec;
}
html[data-bkx-theme="brown"] {
    --bkx-theme-main:#4e372b;--bkx-theme-main-2:#715342;--bkx-theme-main-3:#8b7568;--bkx-theme-rgb:78,55,43;
    --bkx-theme-paper:#f4f0eb;--bkx-theme-paper-2:#f8f4ef;--bkx-theme-card:#fcfaf7;--bkx-theme-soft:#e7ddd3;--bkx-theme-soft-2:#efe8e1;
    --bkx-theme-card-2:#e9e0d8;--bkx-theme-card-3:#f1e6dc;--bkx-theme-muted:#786a61;--bkx-theme-line:#cbbfb5;--bkx-theme-accent:#d9ba82;--bkx-theme-accent-2:#eadfce;
}
html[data-bkx-theme="orange"] {
    --bkx-theme-main:#8a431f;--bkx-theme-main-2:#aa5f34;--bkx-theme-main-3:#a47d68;--bkx-theme-rgb:138,67,31;
    --bkx-theme-paper:#f6f1eb;--bkx-theme-paper-2:#faf5ef;--bkx-theme-card:#fdfaf6;--bkx-theme-soft:#f0dfcf;--bkx-theme-soft-2:#f5e9dd;
    --bkx-theme-card-2:#f1e4d8;--bkx-theme-card-3:#f6dfd1;--bkx-theme-muted:#806b60;--bkx-theme-line:#d4c1b4;--bkx-theme-accent:#e5b46c;--bkx-theme-accent-2:#f1dfca;
}
html[data-bkx-mode="dark"][data-bkx-theme="blue"] {
    color-scheme:dark;--bkx-theme-main:#eef7fd;--bkx-theme-main-2:#82c4ee;--bkx-theme-main-3:#8dacbf;--bkx-theme-rgb:67,137,184;
    --bkx-theme-paper:#081018;--bkx-theme-paper-2:#0d1721;--bkx-theme-card:#111e2a;--bkx-theme-soft:#152938;--bkx-theme-soft-2:#102330;
    --bkx-theme-card-2:#162634;--bkx-theme-card-3:#1b2530;--bkx-theme-muted:#9db1c0;--bkx-theme-line:#294354;--bkx-theme-accent:#e1c785;--bkx-theme-accent-2:#173a52;
}
html[data-bkx-mode="dark"][data-bkx-theme="green"] {
    color-scheme:dark;--bkx-theme-main:#eef8f3;--bkx-theme-main-2:#88cdb3;--bkx-theme-main-3:#83a99b;--bkx-theme-rgb:61,132,106;
    --bkx-theme-paper:#08110e;--bkx-theme-paper-2:#0d1814;--bkx-theme-card:#11211b;--bkx-theme-soft:#173027;--bkx-theme-soft-2:#10251e;
    --bkx-theme-card-2:#162a23;--bkx-theme-card-3:#202a24;--bkx-theme-muted:#9eb5ac;--bkx-theme-line:#28473c;--bkx-theme-accent:#e2c988;--bkx-theme-accent-2:#193c30;
}
html[data-bkx-mode="dark"][data-bkx-theme="purple"] {
    color-scheme:dark;--bkx-theme-main:#f6f0fb;--bkx-theme-main-2:#c6a3ea;--bkx-theme-main-3:#aa91bd;--bkx-theme-rgb:139,96,183;
    --bkx-theme-paper:#0f0a15;--bkx-theme-paper-2:#16101e;--bkx-theme-card:#1f1728;--bkx-theme-soft:#2a1f36;--bkx-theme-soft-2:#21172c;
    --bkx-theme-card-2:#281d33;--bkx-theme-card-3:#302039;--bkx-theme-muted:#b8a8c4;--bkx-theme-line:#463654;--bkx-theme-accent:#e0c68c;--bkx-theme-accent-2:#3a2850;
}
html[data-bkx-mode="dark"][data-bkx-theme="brown"] {
    color-scheme:dark;--bkx-theme-main:#fbf3ed;--bkx-theme-main-2:#d6aa8d;--bkx-theme-main-3:#b39a89;--bkx-theme-rgb:151,102,73;
    --bkx-theme-paper:#120d0a;--bkx-theme-paper-2:#1a120e;--bkx-theme-card:#241913;--bkx-theme-soft:#312219;--bkx-theme-soft-2:#291b14;
    --bkx-theme-card-2:#2d2018;--bkx-theme-card-3:#33251d;--bkx-theme-muted:#c0aa9b;--bkx-theme-line:#51392c;--bkx-theme-accent:#e3bd7f;--bkx-theme-accent-2:#432a1d;
}
html[data-bkx-mode="dark"][data-bkx-theme="orange"] {
    color-scheme:dark;--bkx-theme-main:#fff3ea;--bkx-theme-main-2:#f0a16d;--bkx-theme-main-3:#c39a83;--bkx-theme-rgb:197,92,42;
    --bkx-theme-paper:#140c08;--bkx-theme-paper-2:#1d110b;--bkx-theme-card:#28170f;--bkx-theme-soft:#3a2115;--bkx-theme-soft-2:#301a10;
    --bkx-theme-card-2:#352016;--bkx-theme-card-3:#3b2419;--bkx-theme-muted:#c5aa9a;--bkx-theme-line:#5a3522;--bkx-theme-accent:#f0c171;--bkx-theme-accent-2:#4b2817;
}

:root {
    --ci46-ink: var(--bkx-theme-main, #173f34);
    --ci46-ink-2: var(--bkx-theme-main-2, #31594d);
    --ci46-ink-3: var(--bkx-theme-main-3, #71827b);
    --ci46-rgb: var(--bkx-theme-rgb, 23, 63, 52);

    --ci46-paper: var(--bkx-theme-paper, #f4f2ec);
    --ci46-paper-2: var(--bkx-theme-paper-2, #f8f6ef);
    --ci46-card: var(--bkx-theme-card, #fbfaf5);
    --ci46-card-2: var(--bkx-theme-card-2, #e7ece9);
    --ci46-card-3: var(--bkx-theme-card-3, #efe7df);
    --ci46-soft: var(--bkx-theme-soft, #e3e9dc);
    --ci46-soft-2: var(--bkx-theme-soft-2, #edf0e7);
    --ci46-muted: var(--bkx-theme-muted, #64756e);
    --ci46-line: var(--bkx-theme-line, #b9c4bd);
    --ci46-accent: var(--bkx-theme-accent, #e6d69a);
    --ci46-accent-2: var(--bkx-theme-accent-2, #dfe8b7);

    --ci46-container-max: 1280px;
    --ci46-reading-max: 920px;
    --ci46-radius: 30px;
    --ci46-radius-sm: 18px;
    --ci46-ease: cubic-bezier(.22, .8, .28, 1);
}

/* --------------------------------------------------------------------------
   Базовая сетка шаблона
   -------------------------------------------------------------------------- */

html {
    scroll-behavior: smooth;
}

body {
    color: var(--ci46-ink);
    background: var(--ci46-paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

a {
    color: var(--ci46-ink-2);
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

a:hover {
    color: var(--ci46-ink);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--ci46-ink-2);
    outline-offset: 3px;
}

.ci46-container {
    width: min(var(--ci46-container-max), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(24px, 4vw, 60px) 0 clamp(52px, 7vw, 100px);
}

/* --------------------------------------------------------------------------
   Главная страница

   Главная собирается внутри Joomla component/SP Page Builder, после чего
   скрипт самой главной переносит готовый #bukreevsky-demo-root в рабочую
   область страницы и добавляет body-класс .bukreevsky-demo-mounted.

   До завершения этого переноса #main-content должен оставаться доступным:
   именно внутри него первоначально находится разметка главной. После
   успешного mount в контейнере остаются только технические оболочки
   ci46/SPPB, которые создают пустое поле из padding/margin. Убираем их
   только после подтверждённого mount, чтобы при ошибке JS содержимое
   главной не исчезло.
   -------------------------------------------------------------------------- */
body.ci46-home-page.bukreevsky-demo-mounted > #main-content {
    display: none !important;
}

/* Внутренние страницы уже получают собственный компактный hero из общей
   шапки. Поэтому дополнительный верхний воздух контейнера шаблона здесь
   дублирует отступ и визуально выглядит как пустая полоса. */
body.bkx-internal-page-mounted:not(.ci46-home-page) > #main-content > .ci46-container {
    padding-top: 0;
}

/* После успешного подключения отдельного внутреннего футера дополнительный
   нижний padding контейнера шаблона больше не нужен. У статьи/списка новостей
   уже есть собственный нижний внутренний отступ, а эти 52–100px превращались
   в пустую полосу непосредственно перед футером. */
body.bkx-custom-footer-mounted:not(.ci46-home-page) > #main-content > .ci46-container {
    padding-bottom: 0;
}


/* --------------------------------------------------------------------------
   Ширина открытого материала и списка новостей

   Плавающая шапка сайта стоит на left/right: 2.2%. Поэтому рабочая область
   материалов и com_newsre использует те же внешние границы: 95.6% viewport.
   Ограничение старого контейнера 1280px для этих двух типов страниц снимаем,
   не затрагивая остальные компоненты шаблона.
   -------------------------------------------------------------------------- */
/* Список новостей остаётся выровнен по внешним границам плавающей шапки. */
body.ci46-newsre-page > #main-content > .ci46-container {
    width: 95.6%;
    max-width: none;
}

/* Открытый материал намеренно уже списка новостей и шапки. На больших
   мониторах карточка не растягивается почти на весь экран: так заголовок,
   вложения и основной текст воспринимаются как единый редакционный материал. */
body.ci46-article-page > #main-content > .ci46-container {
    /* Статья чуть шире прежнего варианта: внешняя карточка лучше связывается
       с широкой сеткой внутреннего hero, но всё ещё не прижимается к краям. */
    width: min(92%, 92rem);
    max-width: 92rem;

    /* После внутреннего hero оставляем явный визуальный интервал до материала. */
    padding-top: 50px;
}

body.ci46-article-page .ci46-breadcrumbs,
body.ci46-article-page .ci46-material-head,
body.ci46-article-page .ci46-component--article {
    width: 100%;
    max-width: none;
}

/* Исходная секция модуля футера после переноса #bukreevsky-footer-root в body
   должна полностью выйти из раскладки. Иначе margin .ci46-block и внутренние
   отступы SP Page Builder продолжают создавать пустое место над футером. */
body.bkx-custom-footer-mounted .ci46-block.bkx-footer-host-collapsed {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* Страховка для старых/закешированных версий модуля шапки: если модуль
   пометил исходный технический host, он не должен участвовать в раскладке. */
body.bkx-internal-page-mounted .ci46-block.bkx-header-host-collapsed {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ci46-block {
    position: relative;
    margin: 0 0 clamp(26px, 4vw, 52px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ci46-block-title {
    margin: 0 0 24px;
    color: var(--ci46-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 3vw, 2.7rem);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.025em;
}

.ci46-row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -12px;
}

.ci46-col {
    min-width: 0;
    padding: 0 12px;
}

.ci46-component {
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ci46-container .moduletable {
    margin: 0 0 24px;
    padding: 22px;
    border: 1px solid rgba(var(--ci46-rgb), .10);
    border-radius: 22px;
    background: var(--ci46-card);
    box-shadow: 0 14px 34px rgba(var(--ci46-rgb), .055);
}

.ci46-side-layout {
    display: flex;
    align-items: flex-start;
    gap: 24px;
}

.ci46-side-layout__content {
    flex: 1 1 auto;
    min-width: 0;
}

.ci46-side-menu {
    position: sticky;
    top: 96px;
    flex: 0 0 220px;
}

/* --------------------------------------------------------------------------
   Хлебные крошки открытого материала
   -------------------------------------------------------------------------- */

.ci46-breadcrumbs {
    width: min(var(--ci46-reading-max), 100%);
    margin: clamp(16px, 1.6vw, 24px) auto clamp(12px, 1.4vw, 18px);
}

.ci46-breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ci46-breadcrumbs__item {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    color: var(--ci46-muted);
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.35;
}

.ci46-breadcrumbs__item:not(:last-child)::after {
    content: "";
    width: 5px;
    height: 5px;
    margin-left: 9px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: .55;
}

.ci46-breadcrumbs__link,
.ci46-breadcrumbs__current {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px;
}

.ci46-breadcrumbs__link {
    color: var(--ci46-ink-2);
    text-decoration: none;
    background: rgba(var(--ci46-rgb), .045);
    transition:
        background .22s var(--ci46-ease),
        color .22s var(--ci46-ease),
        transform .22s var(--ci46-ease);
}

.ci46-breadcrumbs__link:hover {
    color: var(--ci46-ink);
    background: var(--ci46-soft);
    transform: translateY(-1px);
}

.ci46-breadcrumbs__current {
    max-width: min(54vw, 480px);
    overflow: hidden;
    color: var(--ci46-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Заголовок материала формируется самим шаблоном, поэтому он присутствует
   даже если параметр Joomla «Показывать заголовок» выключен. */
.ci46-material-head {
    width: min(1160px, 100%);
    margin: 0 auto clamp(16px, 1.8vw, 24px);
}

.ci46-material-title {
    max-width: 30ch;
    margin: 0;
    color: var(--ci46-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.15vw, 3.55rem);
    font-weight: 400;
    line-height: 1.06;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.ci46-material-kicker {
    width: 100%;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ci46-ink-3);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.ci46-material-kicker > span {
    width: 30px;
    height: 1px;
    background: currentColor;
    opacity: .75;
}

/* --------------------------------------------------------------------------
   Открытый материал Joomla
   -------------------------------------------------------------------------- */

.ci46-component--article {
    width: 100%;
    margin: 0 auto clamp(18px, 1.8vw, 28px);
    padding: clamp(26px, 3.2vw, 50px);
    overflow: hidden;
    border: 1px solid rgba(var(--ci46-rgb), .10);
    border-radius: var(--ci46-radius);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--ci46-rgb), .045), transparent 32rem),
        var(--ci46-card);
    box-shadow:
        0 26px 70px rgba(var(--ci46-rgb), .08),
        inset 0 1px 0 rgba(255, 255, 255, .34);
}

.ci46-component--article .item-page,
.ci46-component--article .com-content-article {
    width: 100%;
    max-width: 100%;
    margin: 0;
    color: var(--ci46-ink);
}

.ci46-component--article .page-header {
    display: none;

    margin: 0 0 clamp(20px, 3vw, 34px);
    padding: 0 0 clamp(20px, 3vw, 30px);
    border: 0;
    border-bottom: 1px solid rgba(var(--ci46-rgb), .11);
}

.ci46-component--article .page-header h1,
.ci46-component--article .page-header h2,
.ci46-component--article h1[itemprop="headline"],
.ci46-component--article h2[itemprop="headline"] {
    max-width: 19ch;
    margin: 0;
    color: var(--ci46-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4.6vw, 4.35rem);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.ci46-component--article .article-info,
.ci46-component--article dl.article-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 clamp(24px, 3vw, 38px);
    padding: 0;
    color: var(--ci46-muted);
    font-size: .78rem;
}

.ci46-component--article .article-info-term {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.ci46-component--article .article-info dd,
.ci46-component--article .article-info > span,
.ci46-component--article .article-info__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 7px 11px;
    border: 1px solid rgba(var(--ci46-rgb), .09);
    border-radius: 999px;
    background: var(--ci46-soft-2);
    color: var(--ci46-muted);
}

.ci46-component--article .article-info a {
    color: inherit;
    text-decoration: none;
}

.ci46-component--article .item-image,
.ci46-component--article figure {
    margin: clamp(24px, 4vw, 42px) 0;
}

.ci46-component--article .item-image img,
.ci46-component--article .com-content-article__body img,
.ci46-component--article .item-page > img,
.ci46-component--article figure img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    border-radius: clamp(16px, 2vw, 24px);
    box-shadow: 0 18px 44px rgba(var(--ci46-rgb), .12);
}

.ci46-component--article .item-image img {
    width: 100%;
    max-height: min(66vh, 720px);
    object-fit: cover;
}

.ci46-component--article figcaption {
    margin-top: 10px;
    color: var(--ci46-muted);
    font-size: .78rem;
    line-height: 1.5;
}

.ci46-component--article p {
    max-width: 82ch;
    margin: 0 auto 1.25em;
    color: var(--ci46-ink);
    font-size: clamp(1rem, .35vw + .94rem, 1.095rem);
    line-height: 1.82;
    text-wrap: pretty;
}

.ci46-component--article p:first-of-type {
    font-size: clamp(1.08rem, .55vw + 1rem, 1.24rem);
    line-height: 1.72;
}

.ci46-component--article h2,
.ci46-component--article h3,
.ci46-component--article h4,
.ci46-component--article h5 {
    max-width: 34ch;
    margin: 1.55em auto .65em;
    color: var(--ci46-ink);
    line-height: 1.12;
    text-wrap: balance;
}

.ci46-component--article h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 2.6vw, 2.75rem);
    font-weight: 400;
    letter-spacing: -.025em;
}

.ci46-component--article h3 {
    font-size: clamp(1.25rem, 1.8vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -.015em;
}

.ci46-component--article h4,
.ci46-component--article h5 {
    font-size: 1.1rem;
    font-weight: 750;
}

.ci46-component--article ul,
.ci46-component--article ol {
    max-width: 82ch;
    margin: 1.1rem auto 1.55rem;
    padding-left: 1.35rem;
}

.ci46-component--article li {
    margin: .5rem 0;
    padding-left: .25rem;
    line-height: 1.72;
}

.ci46-component--article li::marker {
    color: var(--ci46-ink-2);
    font-weight: 800;
}

.ci46-component--article blockquote {
    position: relative;
    max-width: 76ch;
    margin: clamp(24px, 3vw, 36px) auto;
    padding: 20px 24px 20px 28px;
    border: 0;
    border-left: 3px solid var(--ci46-ink-2);
    border-radius: 0 var(--ci46-radius-sm) var(--ci46-radius-sm) 0;
    background: var(--ci46-soft-2);
    color: var(--ci46-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.08rem, 1.2vw, 1.32rem);
    line-height: 1.65;
}

.ci46-component--article hr {
    margin: clamp(32px, 5vw, 56px) 0;
    border: 0;
    border-top: 1px solid rgba(var(--ci46-rgb), .14);
}

.ci46-component--article a:not(.btn):not(.dropdown-item) {
    color: var(--ci46-ink-2);
    text-decoration-color: rgba(var(--ci46-rgb), .35);
}

.ci46-component--article a:not(.btn):not(.dropdown-item):hover {
    color: var(--ci46-ink);
    text-decoration-color: currentColor;
}

/* Таблицы
   Важно: table нельзя делать display:block. В таком режиме внешний блок
   растягивался на 100%, а внутренняя table-grid оставалась по ширине
   содержимого. Из-за этого справа возникало большое пустое поле и визуально
   терялась правая граница. Оставляем нативный table layout и растягиваем
   именно сетку колонок на всю ширину области материала. */
.ci46-component--article table {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: clamp(24px, 4vw, 42px) 0;
    table-layout: auto;
    border: 1px solid rgba(var(--ci46-rgb), .13) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 18px;
    background: var(--ci46-paper-2);
    box-sizing: border-box;
    overflow: hidden;
}

/* У таблицы только одна внешняя рамка — на самом table. Сбрасываем все
   исходные/inline-границы крайних ячеек, чтобы они не рисовали второй
   прямоугольник поверх скруглённого контура. */
.ci46-component--article table th,
.ci46-component--article table td {
    min-width: 0;
    padding: 13px 15px;
    border: 0 !important;
    text-align: left;
    vertical-align: top;
    line-height: 1.55;
    overflow-wrap: anywhere;
    background-clip: padding-box;
}

.ci46-component--article table th {
    background: var(--ci46-soft);
    color: var(--ci46-ink);
    font-size: .82rem;
    font-weight: 800;
}

/* Только внутренние разделители: слева/сверху у соседних ячеек. Так внешняя
   верхняя и левая линии никогда не дублируются. */
.ci46-component--article table tr > * + * {
    border-left: 1px solid rgba(var(--ci46-rgb), .09) !important;
}

.ci46-component--article table tr + tr > * {
    border-top: 1px solid rgba(var(--ci46-rgb), .09) !important;
}

/* Ячейки в углах повторяют радиус внешней таблицы. */
.ci46-component--article table tr:first-child > *:first-child {
    border-top-left-radius: 17px;
}

.ci46-component--article table tr:first-child > *:last-child {
    border-top-right-radius: 17px;
}

.ci46-component--article table tr:last-child > *:first-child {
    border-bottom-left-radius: 17px;
}

.ci46-component--article table tr:last-child > *:last-child {
    border-bottom-right-radius: 17px;
}

/* На узких экранах таблица остаётся настоящей таблицей. Если автор материала
   задал слишком широкие колонки, горизонтальную прокрутку принимает оболочка
   текста, а не сама <table> — это не ломает расчёт ширины колонок. */
body.ci46-article-page .ci46-component--article .com-content-article__body {
    max-width: 100%;
}

@media (max-width: 760px) {
    body.ci46-article-page .ci46-component--article .com-content-article__body {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    body.ci46-article-page .ci46-component--article table {
        min-width: 100%;
    }
}

/* Файлы и вложения */
.ci46-component--article a[href$=".pdf" i],
.ci46-component--article a[href$=".doc" i],
.ci46-component--article a[href$=".docx" i],
.ci46-component--article a[href$=".xls" i],
.ci46-component--article a[href$=".xlsx" i],
.ci46-component--article a[href$=".zip" i] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    margin: 3px 0;
    padding: 8px 12px;
    border: 1px solid rgba(var(--ci46-rgb), .12);
    border-radius: 12px;
    background: var(--ci46-soft-2);
    font-weight: 700;
    text-decoration: none !important;
    overflow-wrap: anywhere;
}

.ci46-component--article a[href$=".pdf" i]::before,
.ci46-component--article a[href$=".doc" i]::before,
.ci46-component--article a[href$=".docx" i]::before,
.ci46-component--article a[href$=".xls" i]::before,
.ci46-component--article a[href$=".xlsx" i]::before,
.ci46-component--article a[href$=".zip" i]::before {
    content: "";
    width: 9px;
    height: 12px;
    flex: 0 0 auto;
    border: 1.5px solid currentColor;
    border-radius: 2px;
    opacity: .75;
}

/* Кнопки действий Joomla */
.ci46-component--article .icons,
.ci46-component--article .com-content-article__toolbar {
    margin-bottom: 18px;
}

.ci46-component--article .btn,
.ci46-component--article button,
.ci46-component--article .dropdown-toggle {
    border-radius: 999px;
}

.ci46-component--article .btn:not(.btn-danger):not(.btn-warning) {
    border-color: rgba(var(--ci46-rgb), .14);
    background: var(--ci46-soft-2);
    color: var(--ci46-ink);
}

/* Теги */
.ci46-component--article .tags,
.ci46-component--article .com-content-article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 30px 0 0;
    padding: 22px 0 0;
    border-top: 1px solid rgba(var(--ci46-rgb), .11);
}

.ci46-component--article .tags > li,
.ci46-component--article .tags > span {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ci46-component--article .tags a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 11px;
    border: 1px solid rgba(var(--ci46-rgb), .12);
    border-radius: 999px;
    background: var(--ci46-soft-2);
    color: var(--ci46-ink-2);
    font-size: .76rem;
    font-weight: 750;
    text-decoration: none;
}

/* Предыдущий / следующий материал */
.ci46-component--article .pagenavigation {
    margin-top: clamp(34px, 5vw, 58px);
    padding-top: 24px;
    border-top: 1px solid rgba(var(--ci46-rgb), .11);
}

.ci46-component--article .pagenavigation .pagination {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
}

.ci46-component--article .pagenavigation li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ci46-component--article .pagenavigation a {
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: 12px 18px;
    border: 1px solid rgba(var(--ci46-rgb), .12);
    border-radius: 16px;
    background: var(--ci46-soft-2);
    color: var(--ci46-ink);
    font-size: .82rem;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
    transition:
        transform .22s var(--ci46-ease),
        background .22s var(--ci46-ease);
}

.ci46-component--article .pagenavigation a:hover {
    background: var(--ci46-soft);
    transform: translateY(-2px);
}

/* Сообщения Joomla внутри материала */
.ci46-component--article .alert {
    margin: 22px 0;
    padding: 15px 18px;
    border: 1px solid rgba(var(--ci46-rgb), .16);
    border-radius: 16px;
    background: var(--ci46-soft-2);
    color: var(--ci46-ink);
}

/* --------------------------------------------------------------------------
   Служебный футер позиции Joomla. Если используется отдельный фирменный
   футер Букреевского дома, эта область вообще не выводится без модулей.
   -------------------------------------------------------------------------- */

.ci46-footer {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

/* --------------------------------------------------------------------------
   Тёмный режим глобальной шапки сайта.
   У шаблона больше нет собственного переключателя темы.
   -------------------------------------------------------------------------- */

html[data-bkx-mode="dark"] body {
    background: var(--ci46-paper);
    color: var(--ci46-ink);
}

html[data-bkx-mode="dark"] .ci46-component--article {
    border-color: rgba(255, 255, 255, .08);
    box-shadow:
        0 28px 74px rgba(0, 0, 0, .28),
        inset 0 1px 0 rgba(255, 255, 255, .035);
}

html[data-bkx-mode="dark"] .ci46-component--article .item-image img,
html[data-bkx-mode="dark"] .ci46-component--article .com-content-article__body img,
html[data-bkx-mode="dark"] .ci46-component--article figure img {
    box-shadow: 0 18px 42px rgba(0, 0, 0, .28);
}

/* --------------------------------------------------------------------------
   Адаптивность
   -------------------------------------------------------------------------- */

@media (max-width: 1180px) {
    body.ci46-article-page .ci46-component--article {
        --ci46-article-copy-max: 100%;
    }
}

@media (max-width: 900px) {
    .ci46-container {
        width: min(100% - 32px, var(--ci46-container-max));
    }

    body.ci46-article-page > #main-content > .ci46-container {
        width: min(94%, 92rem);
    }

    .ci46-side-layout {
        display: block;
    }

    .ci46-side-menu {
        position: static;
        width: 100%;
        margin-bottom: 20px;
    }

    .ci46-component--article {
        border-radius: 24px;
        padding: clamp(22px, 5vw, 38px);
    }
}

@media (max-width: 768px) {
    .ci46-material-title {
        max-width: 100%;
        font-size: clamp(1.85rem, 7.5vw, 2.75rem);
        line-height: 1.08;
    }

    .ci46-row {
        flex-direction: column;
        margin: 0;
    }

    .ci46-col {
        width: 100% !important;
        padding: 0;
    }

    .ci46-block {
        margin-bottom: 28px;
    }

    .ci46-breadcrumbs__current {
        max-width: 66vw;
    }

    .ci46-component--article .page-header h1,
    .ci46-component--article .page-header h2,
    .ci46-component--article h1[itemprop="headline"],
    .ci46-component--article h2[itemprop="headline"] {
        max-width: 100%;
        font-size: clamp(2rem, 10vw, 3.3rem);
    }

    .ci46-component--article p {
        font-size: 1rem;
        line-height: 1.75;
    }
}

@media (max-width: 560px) {
    .ci46-container {
        width: min(100% - 20px, var(--ci46-container-max));
        padding-top: 18px;
    }

    body.ci46-article-page > #main-content > .ci46-container {
        width: calc(100% - 20px);
        padding-top: 30px;
    }

    .ci46-component--article {
        padding: 20px 18px 26px;
        border-radius: 20px;
    }

    .ci46-breadcrumbs {
        margin-bottom: 12px;
    }

    .ci46-breadcrumbs__list {
        gap: 5px 6px;
    }

    .ci46-breadcrumbs__item {
        font-size: .72rem;
    }

    .ci46-breadcrumbs__link,
    .ci46-breadcrumbs__current {
        min-height: 28px;
        padding: 4px 8px;
    }

    .ci46-breadcrumbs__item:not(:last-child)::after {
        margin-left: 6px;
    }

    .ci46-breadcrumbs__current {
        max-width: 58vw;
    }

    .ci46-component--article .article-info,
    .ci46-component--article dl.article-info {
        gap: 6px;
    }

    .ci46-component--article .article-info dd,
    .ci46-component--article .article-info > span,
    .ci46-component--article .article-info__item {
        width: auto;
        min-height: 30px;
        padding: 5px 8px;
        font-size: .72rem;
    }

    .ci46-component--article blockquote {
        padding: 18px 18px 18px 20px;
    }

    .ci46-component--article .pagenavigation .pagination {
        grid-template-columns: 1fr;
    }
}

/* --------------------------------------------------------------------------
   Уменьшение движения
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

html[data-bkx-motion="off"] *,
html[data-bkx-motion="off"] *::before,
html[data-bkx-motion="off"] *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

/* ==========================================================================
   V8 — современная редакционная страница материала
   --------------------------------------------------------------------------
   Внешняя сетка остаётся частью общего шаблона. Ниже меняется только сама
   статья: заголовок становится ближе к типографике основного сайта, карточка
   легче, текст — спокойнее, а стандартный Joomla prev/next превращается в
   полноценную навигацию по публикациям.
   ========================================================================== */

body.ci46-article-page .ci46-breadcrumbs {
    display: none !important;
}

body.ci46-article-page {
    --ci46-article-reading: 76ch;
    --ci46-article-radius: 30px;
    --ci46-article-shadow: 0 24px 70px rgba(var(--ci46-rgb), .075);
}

/* Хлебные крошки — отдельная лёгкая строка над материалом. */
body.ci46-article-page .ci46-breadcrumbs {
    margin-top: clamp(18px, 1.6vw, 24px);
    margin-bottom: clamp(14px, 1.3vw, 20px);
}

body.ci46-article-page .ci46-breadcrumbs__list {
    gap: 6px 8px;
}

body.ci46-article-page .ci46-breadcrumbs__item {
    font-size: .75rem;
    font-weight: 700;
}

body.ci46-article-page .ci46-breadcrumbs__link,
body.ci46-article-page .ci46-breadcrumbs__current {
    min-height: 31px;
    padding: 5px 11px;
    border: 1px solid rgba(var(--ci46-rgb), .065);
    border-radius: 999px;
}

body.ci46-article-page .ci46-breadcrumbs__link {
    background: rgba(var(--ci46-rgb), .035);
}

body.ci46-article-page .ci46-breadcrumbs__link:hover {
    border-color: rgba(var(--ci46-rgb), .13);
    background: rgba(var(--ci46-rgb), .075);
}

body.ci46-article-page .ci46-breadcrumbs__current {
    border-color: transparent;
    background: transparent;
}

/* Заголовочная зона: современный sans-serif, как крупные заголовки сайта. */
body.ci46-article-page .ci46-material-head {
    width: 100%;
    margin: 0 auto clamp(22px, 2.2vw, 32px);
}

body.ci46-article-page .ci46-material-kicker {
    margin-bottom: 12px;
    color: var(--ci46-muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .18em;
}

body.ci46-article-page .ci46-material-kicker > span {
    width: 26px;
    opacity: .55;
}

body.ci46-article-page .ci46-material-title {
    max-width: 22ch;
    margin: 0;
    color: var(--ci46-ink);
    font-family: inherit;
    font-size: clamp(2.05rem, 3.1vw, 3.45rem);
    font-weight: 650;
    line-height: 1.045;
    letter-spacing: -.042em;
    text-wrap: balance;
}

/* Основная карточка: меньше «рамки», больше ощущения редакционного листа. */
body.ci46-article-page .ci46-component--article {
    position: relative;
    margin-bottom: clamp(22px, 2vw, 30px);
    padding: clamp(28px, 3vw, 46px);
    overflow: hidden;
    border: 1px solid rgba(var(--ci46-rgb), .075);
    border-radius: var(--ci46-article-radius);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--ci46-rgb), .035), transparent 34rem),
        linear-gradient(180deg, var(--ci46-card) 0%, var(--ci46-paper-2) 100%);
    box-shadow: var(--ci46-article-shadow);
}

body.ci46-article-page .ci46-component--article::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    left: clamp(28px, 3vw, 46px);
    right: clamp(28px, 3vw, 46px);
    height: 1px;
    background: linear-gradient(90deg, rgba(var(--ci46-rgb), .20), rgba(var(--ci46-rgb), 0));
    pointer-events: none;
}

body.ci46-article-page .ci46-component--article > *,
body.ci46-article-page .ci46-component--article .item-page,
body.ci46-article-page .ci46-component--article .com-content-article {
    position: relative;
    z-index: 1;
}

/* Читаемая колонка. Изображения, таблицы и служебные блоки по-прежнему могут
   занимать всю ширину карточки. */
body.ci46-article-page .ci46-component--article p,
body.ci46-article-page .ci46-component--article ul,
body.ci46-article-page .ci46-component--article ol,
body.ci46-article-page .ci46-component--article h2,
body.ci46-article-page .ci46-component--article h3,
body.ci46-article-page .ci46-component--article h4,
body.ci46-article-page .ci46-component--article h5,
body.ci46-article-page .ci46-component--article blockquote {
    max-width: var(--ci46-article-reading);
}

body.ci46-article-page .ci46-component--article p {
    color: color-mix(in srgb, var(--ci46-ink) 86%, var(--ci46-muted));
    font-size: clamp(1rem, .24vw + .96rem, 1.075rem);
    line-height: 1.78;
}

body.ci46-article-page .ci46-component--article p:first-of-type {
    font-size: clamp(1.04rem, .35vw + 1rem, 1.16rem);
    line-height: 1.74;
}

body.ci46-article-page .ci46-component--article h2 {
    font-family: inherit;
    font-size: clamp(1.65rem, 2vw, 2.3rem);
    font-weight: 650;
    letter-spacing: -.03em;
}

body.ci46-article-page .ci46-component--article h3 {
    font-size: clamp(1.25rem, 1.35vw, 1.55rem);
    font-weight: 700;
}

body.ci46-article-page .ci46-component--article blockquote {
    border-left-width: 2px;
    background: rgba(var(--ci46-rgb), .04);
    font-family: inherit;
    font-size: clamp(1.05rem, 1vw, 1.2rem);
}

/* Изображения — без тяжёлой тени, ближе к общей мягкой визуальной системе. */
body.ci46-article-page .ci46-component--article .item-image img,
body.ci46-article-page .ci46-component--article .com-content-article__body img,
body.ci46-article-page .ci46-component--article .item-page > img,
body.ci46-article-page .ci46-component--article figure img {
    border: 1px solid rgba(var(--ci46-rgb), .07);
    border-radius: 22px;
    box-shadow: 0 16px 38px rgba(var(--ci46-rgb), .09);
}

/* Вложения: превращаем стандартные технические строки в спокойные карточки. */
body.ci46-article-page .ci46-component--article :is(
    .attachmentsContainer,
    .attachmentsList,
    .article-attachments,
    [class*="attachment"]
) {
    max-width: 100%;
}

body.ci46-article-page .ci46-component--article :is(
    .attachmentsContainer,
    .attachmentsList,
    .article-attachments
) {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(var(--ci46-rgb), .09);
}

/* --------------------------------------------------------------------------
   Joomla prev / next → карточки «Продолжить чтение»
   Разметку классов и чистый текст добавляет скрипт в index.php.
   -------------------------------------------------------------------------- */

body.ci46-article-page .ci46-component--article .pagenavigation.bkx-article-nav {
    max-width: none;
    margin: clamp(34px, 4vw, 52px) 0 0;
    padding: clamp(24px, 2.6vw, 34px) 0 0;
    border-top: 1px solid rgba(var(--ci46-rgb), .10);
}

body.ci46-article-page .bkx-article-nav__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

body.ci46-article-page .bkx-article-nav__kicker {
    color: var(--ci46-muted);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body.ci46-article-page .bkx-article-nav__heading {
    color: var(--ci46-ink);
    font-size: clamp(1.05rem, 1.1vw, 1.2rem);
    font-weight: 700;
    letter-spacing: -.02em;
}

body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
    padding: 0;
}

body.ci46-article-page .bkx-article-nav__item {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__link {
    position: relative;
    display: flex;
    min-height: 176px;
    height: 100%;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 22px 22px 20px;
    overflow: hidden;
    border: 1px solid rgba(var(--ci46-rgb), .09);
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(var(--ci46-rgb), .035), rgba(var(--ci46-rgb), 0) 55%),
        var(--ci46-paper-2);
    color: var(--ci46-ink);
    box-shadow: 0 9px 28px rgba(var(--ci46-rgb), .045);
    text-align: left;
    text-decoration: none;
    transition:
        transform .24s var(--ci46-ease),
        border-color .24s var(--ci46-ease),
        box-shadow .24s var(--ci46-ease),
        background .24s var(--ci46-ease);
}

body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__link:hover {
    transform: translateY(-3px);
    border-color: rgba(var(--ci46-rgb), .17);
    background:
        linear-gradient(145deg, rgba(var(--ci46-rgb), .07), rgba(var(--ci46-rgb), .01) 58%),
        var(--ci46-card);
    box-shadow: 0 18px 42px rgba(var(--ci46-rgb), .09);
}

body.ci46-article-page .bkx-article-nav__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
}

body.ci46-article-page .bkx-article-nav__direction {
    color: var(--ci46-muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.25;
    text-transform: uppercase;
}

body.ci46-article-page .bkx-article-nav__arrow {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(var(--ci46-rgb), .10);
    border-radius: 50%;
    background: rgba(var(--ci46-rgb), .055);
    color: var(--ci46-ink);
    font-size: 1rem;
    line-height: 1;
    transition:
        transform .24s var(--ci46-ease),
        background .24s var(--ci46-ease);
}

body.ci46-article-page .bkx-article-nav__link:hover .bkx-article-nav__arrow {
    background: rgba(var(--ci46-rgb), .11);
}

body.ci46-article-page .bkx-article-nav__item--prev .bkx-article-nav__link:hover .bkx-article-nav__arrow {
    transform: translateX(-3px);
}

body.ci46-article-page .bkx-article-nav__item--next .bkx-article-nav__link:hover .bkx-article-nav__arrow {
    transform: translateX(3px);
}

body.ci46-article-page .bkx-article-nav__title {
    display: block;
    max-width: 34ch;
    color: var(--ci46-ink);
    font-size: clamp(.98rem, .42vw + .92rem, 1.08rem);
    font-weight: 700;
    line-height: 1.42;
    letter-spacing: -.012em;
    text-wrap: pretty;
}

body.ci46-article-page .bkx-article-nav__action {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    padding-top: 18px;
    color: var(--ci46-ink-2);
    font-size: .76rem;
    font-weight: 750;
}

/* Если JS не сработал, стандартная pagenavigation всё равно выглядит аккуратно. */
body.ci46-article-page .ci46-component--article .pagenavigation:not(.bkx-article-nav) .pagination {
    gap: 14px;
}

body.ci46-article-page .ci46-component--article .pagenavigation:not(.bkx-article-nav) a {
    min-height: 96px;
    padding: 18px 20px;
    border-radius: 20px;
    background: var(--ci46-paper-2);
    text-align: left;
}

/* Тёмный режим наследует hue общей шапки. */
html[data-bkx-mode="dark"] body.ci46-article-page .ci46-component--article {
    border-color: rgba(255, 255, 255, .07);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--ci46-rgb), .09), transparent 34rem),
        var(--ci46-card);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .24);
}

html[data-bkx-mode="dark"] body.ci46-article-page .ci46-component--article p {
    color: color-mix(in srgb, var(--ci46-ink) 88%, var(--ci46-muted));
}

html[data-bkx-mode="dark"] body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__link {
    border-color: rgba(255, 255, 255, .07);
    background:
        linear-gradient(145deg, rgba(var(--ci46-rgb), .09), transparent 58%),
        var(--ci46-paper-2);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .15);
}

@media (max-width: 900px) {
    body.ci46-article-page .ci46-material-title {
        max-width: 100%;
        font-size: clamp(2rem, 7vw, 3.1rem);
    }

    body.ci46-article-page .ci46-component--article {
        padding: clamp(24px, 5vw, 34px);
        border-radius: 26px;
    }

    body.ci46-article-page .ci46-component--article::before {
        left: clamp(24px, 5vw, 34px);
        right: clamp(24px, 5vw, 34px);
    }

    body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__grid {
        grid-template-columns: 1fr;
    }

    body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__link {
        min-height: 150px;
    }
}

@media (max-width: 560px) {
    body.ci46-article-page .ci46-material-title {
        font-size: clamp(1.85rem, 9vw, 2.7rem);
        line-height: 1.06;
    }

    body.ci46-article-page .ci46-component--article {
        padding: 22px 18px 24px;
        border-radius: 21px;
    }

    body.ci46-article-page .ci46-component--article::before {
        left: 18px;
        right: 18px;
    }

    body.ci46-article-page .bkx-article-nav__head {
        display: block;
        margin-bottom: 13px;
    }

    body.ci46-article-page .bkx-article-nav__heading {
        display: block;
        margin-top: 5px;
    }

    body.ci46-article-page .ci46-component--article .pagenavigation .bkx-article-nav__link {
        min-height: 142px;
        padding: 18px;
        border-radius: 18px;
    }

    body.ci46-article-page .bkx-article-nav__top {
        margin-bottom: 14px;
    }
}

/* ========================================================================== 
   BUKREEVSKY ARTICLE V9 — макет в стиле основного сайта
   Заголовок внутри карточки, компактнее текст, meta/share, соседние публикации
   с изображениями и современный блок вложений.
   ========================================================================== */

body.ci46-article-page {
    --ci46-article-page-max: 1320px;
    --ci46-article-copy-max: 1180px;
    --ci46-article-card-radius: 30px;
}

body.ci46-article-page > #main-content > .ci46-container {
    width: min(91.5%, var(--ci46-article-page-max));
    max-width: var(--ci46-article-page-max);
}

/* Хлебные крошки — отдельная лёгкая строка перед карточкой. */
body.ci46-article-page .ci46-breadcrumbs {
    width: 100%;
    margin: clamp(18px, 1.7vw, 26px) auto 16px;
    padding: 0;
}

body.ci46-article-page .ci46-breadcrumbs__list {
    gap: 7px;
}

body.ci46-article-page .ci46-breadcrumbs__item {
    display: inline-flex;
    align-items: center;
}

body.ci46-article-page .ci46-breadcrumbs__item:not(:last-child)::after {
    content: none;
    display: none;
    margin: 0;
}

body.ci46-article-page .ci46-breadcrumbs__link,
body.ci46-article-page .ci46-breadcrumbs__current {
    min-height: 30px;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: .72rem;
    line-height: 1.2;
}

body.ci46-article-page .ci46-breadcrumbs__link {
    border: 1px solid rgba(var(--ci46-rgb), .075);
    background: rgba(var(--ci46-rgb), .035);
    box-shadow: 0 5px 15px rgba(var(--ci46-rgb), .025);
}

body.ci46-article-page .ci46-breadcrumbs__current {
    max-width: min(52vw, 520px);
    overflow: hidden;
    border: 1px solid transparent;
    background: rgba(var(--ci46-rgb), .018);
    color: var(--ci46-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Главная карточка материала. */
body.ci46-article-page .ci46-component--article {
    position: relative;
    margin: 0 auto clamp(22px, 2.2vw, 32px);
    padding: clamp(28px, 2.7vw, 42px);
    overflow: hidden;
    border: 1px solid rgba(var(--ci46-rgb), .075);
    border-radius: var(--ci46-article-card-radius);
    background:
        radial-gradient(circle at 94% 0%, rgba(var(--ci46-rgb), .038), transparent 32rem),
        linear-gradient(180deg, color-mix(in srgb, var(--ci46-card) 97%, white) 0%, var(--ci46-paper-2) 100%);
    box-shadow:
        0 24px 64px rgba(var(--ci46-rgb), .065),
        inset 0 1px 0 rgba(255, 255, 255, .48);
}

body.ci46-article-page .ci46-component--article::before {
    display: none;
}

/* Заголовочная зона теперь находится внутри карточки. */
body.ci46-article-page .ci46-material-head {
    width: 100%;
    margin: 0 0 clamp(22px, 2.4vw, 32px);
    padding: 0 0 clamp(22px, 2.3vw, 30px);
    border-bottom: 1px solid rgba(var(--ci46-rgb), .085);
}

body.ci46-article-page .bkx-article-meta {
    display: flex;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 18px;
    min-height: 36px;
}

/* Если внутренний hero уже показывает то же название пункта меню-материала,
   повторный H1 внутри карточки скрыт сервером. В этом режиме мета-строка
   становится самостоятельной шапкой без лишнего пустого пространства. */
body.ci46-article-page .ci46-material-head--menu-title-duplicate {
    margin-bottom: clamp(18px, 1.8vw, 24px);
    padding-bottom: 0;
    border-bottom: 0;
}

body.ci46-article-page .ci46-material-head--menu-title-duplicate .bkx-article-meta {
    margin-bottom: 0;
}

body.ci46-article-page .bkx-article-meta__category {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(var(--ci46-rgb), .085);
    color: var(--ci46-ink);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

body.ci46-article-page .bkx-article-meta__date {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ci46-muted);
    font-size: .8rem;
    font-weight: 650;
}

body.ci46-article-page .bkx-article-meta__calendar {
    position: relative;
    width: 15px;
    height: 15px;
    border: 1.5px solid currentColor;
    border-radius: 4px;
    opacity: .72;
}

body.ci46-article-page .bkx-article-meta__calendar::before,
body.ci46-article-page .bkx-article-meta__calendar::after {
    content: "";
    position: absolute;
    top: -3px;
    width: 2px;
    height: 5px;
    border-radius: 2px;
    background: currentColor;
}

body.ci46-article-page .bkx-article-meta__calendar::before { left: 3px; }
body.ci46-article-page .bkx-article-meta__calendar::after { right: 3px; }

body.ci46-article-page .bkx-article-share {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    margin-left: auto;
    padding: 7px 13px;
    border: 1px solid rgba(var(--ci46-rgb), .09);
    border-radius: 11px;
    background: color-mix(in srgb, var(--ci46-card) 94%, white);
    color: var(--ci46-ink);
    box-shadow: 0 7px 18px rgba(var(--ci46-rgb), .04);
    font: inherit;
    font-size: .76rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform .22s var(--ci46-ease), border-color .22s var(--ci46-ease), background .22s var(--ci46-ease);
}

body.ci46-article-page .bkx-article-share:hover {
    transform: translateY(-1px);
    border-color: rgba(var(--ci46-rgb), .18);
    background: var(--ci46-card);
}

body.ci46-article-page .bkx-article-share__icon {
    font-size: 1rem;
    line-height: 1;
}

body.ci46-article-page .ci46-material-title {
    max-width: 29ch;
    margin: 0;
    color: var(--ci46-ink);
    font-family: inherit;
    font-size: clamp(2.15rem, 3vw, 3.55rem);
    font-weight: 690;
    line-height: 1.025;
    letter-spacing: -.044em;
    text-wrap: balance;
}

/* Joomla может дублировать собственные title/meta — шаблон уже выводит их сам. */
body.ci46-article-page .ci46-component--article .page-header,
body.ci46-article-page .ci46-component--article h1[itemprop="headline"],
body.ci46-article-page .ci46-component--article h2[itemprop="headline"] {
    display: none !important;
}

/* Joomla article становится прозрачным контейнером без второго padding. */
body.ci46-article-page .ci46-component--article .item-page,
body.ci46-article-page .ci46-component--article .com-content-article {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Текст — шире и ближе к левому краю карточки, как на макете. */
body.ci46-article-page .ci46-component--article p,
body.ci46-article-page .ci46-component--article ul,
body.ci46-article-page .ci46-component--article ol,
body.ci46-article-page .ci46-component--article h2,
body.ci46-article-page .ci46-component--article h3,
body.ci46-article-page .ci46-component--article h4,
body.ci46-article-page .ci46-component--article h5,
body.ci46-article-page .ci46-component--article blockquote {
    width: min(100%, var(--ci46-article-copy-max));
    max-width: min(100%, var(--ci46-article-copy-max));
    margin-left: 0;
    margin-right: auto;
}

body.ci46-article-page .ci46-component--article p {
    margin-top: 0;
    margin-bottom: .85em;
    color: color-mix(in srgb, var(--ci46-ink) 84%, var(--ci46-muted));
    font-size: clamp(.98rem, .18vw + .95rem, 1.055rem);
    line-height: 1.62;
    text-wrap: pretty;
}

body.ci46-article-page .ci46-component--article p:first-of-type {
    font-size: clamp(1rem, .25vw + .97rem, 1.09rem);
    line-height: 1.6;
}

body.ci46-article-page .ci46-component--article h2 {
    margin-top: 1.65em;
    margin-bottom: .6em;
    font-family: inherit;
    font-size: clamp(1.55rem, 1.7vw, 2rem);
    font-weight: 700;
    letter-spacing: -.027em;
}

body.ci46-article-page .ci46-component--article h3 {
    margin-top: 1.45em;
    margin-bottom: .55em;
}

body.ci46-article-page .ci46-component--article ul,
body.ci46-article-page .ci46-component--article ol {
    margin-top: .8rem;
    margin-bottom: 1.15rem;
}

/* Обычная Joomla meta-информация не должна отнимать место, если шаблон уже дал дату/категорию. */
body.ci46-article-page .ci46-component--article .article-info,
body.ci46-article-page .ci46-component--article dl.article-info {
    display: none !important;
}

/* Скрываем стандартный prev/next только после успешной установки нашей навигации. */
body.bkx-custom-article-nav-mounted.ci46-article-page .ci46-component--article .pagenavigation {
    display: none !important;
}

/* --------------------------------------------------------------------------
   Соседние публикации — реальные данные Joomla + изображения.
   -------------------------------------------------------------------------- */
body.ci46-article-page .bkx-neighbor-nav {
    width: 100%;
    margin: clamp(34px, 3.4vw, 46px) 0 0;
    padding: clamp(24px, 2.4vw, 30px) 0 0;
    border-top: 1px solid rgba(var(--ci46-rgb), .085);
}

body.ci46-article-page .bkx-neighbor-nav__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 14px;
}

body.ci46-article-page .bkx-neighbor-nav__kicker {
    color: var(--ci46-muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body.ci46-article-page .bkx-neighbor-nav__head strong {
    color: var(--ci46-ink);
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: -.02em;
}

body.ci46-article-page .bkx-neighbor-nav__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
    gap: 14px;
}

body.ci46-article-page .bkx-neighbor-card {
    position: relative;
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr) 38px;
    gap: 15px;
    min-height: 118px;
    align-items: center;
    padding: 12px 14px;
    overflow: hidden;
    border: 1px solid rgba(var(--ci46-rgb), .085);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(var(--ci46-rgb), .025), transparent 56%),
        color-mix(in srgb, var(--ci46-card) 94%, white);
    color: var(--ci46-ink);
    box-shadow: 0 8px 24px rgba(var(--ci46-rgb), .035);
    text-decoration: none;
    transition: transform .22s var(--ci46-ease), border-color .22s var(--ci46-ease), box-shadow .22s var(--ci46-ease);
}

body.ci46-article-page .bkx-neighbor-card:hover {
    transform: translateY(-2px);
    border-color: rgba(var(--ci46-rgb), .16);
    box-shadow: 0 15px 34px rgba(var(--ci46-rgb), .075);
}

body.ci46-article-page .bkx-neighbor-card__media {
    display: block;
    width: 94px;
    height: 82px;
    overflow: hidden;
    border-radius: 13px;
    background: var(--ci46-soft-2);
}

body.ci46-article-page .bkx-neighbor-card__media img {
    width: 100%;
    height: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    box-shadow: none !important;
    object-fit: cover;
}

body.ci46-article-page .bkx-neighbor-card__media--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ci46-muted);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
}

body.ci46-article-page .bkx-neighbor-card__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    padding: 4px 0;
}

body.ci46-article-page .bkx-neighbor-card__label {
    margin-bottom: 7px;
    color: var(--ci46-muted);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

body.ci46-article-page .bkx-neighbor-card__title {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ci46-ink);
    font-size: clamp(.92rem, .3vw + .88rem, 1.02rem);
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: -.014em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.ci46-article-page .bkx-neighbor-card__date {
    margin-top: auto;
    padding-top: 7px;
    color: var(--ci46-muted);
    font-size: .7rem;
    font-weight: 600;
}

body.ci46-article-page .bkx-neighbor-card__arrow {
    grid-column: 3;
    grid-row: 1;
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    justify-self: end;
    border: 1px solid rgba(var(--ci46-rgb), .10);
    border-radius: 50%;
    background: rgba(var(--ci46-rgb), .045);
    color: var(--ci46-ink);
    font-size: .95rem;
    transition: transform .22s var(--ci46-ease), background .22s var(--ci46-ease);
}

body.ci46-article-page .bkx-neighbor-card__media,
body.ci46-article-page .bkx-neighbor-card__content {
    grid-row: 1;
}

body.ci46-article-page .bkx-neighbor-card--prev .bkx-neighbor-card__media { grid-column: 1; }
body.ci46-article-page .bkx-neighbor-card--prev .bkx-neighbor-card__content { grid-column: 2; }
body.ci46-article-page .bkx-neighbor-card--next .bkx-neighbor-card__media { grid-column: 1; }
body.ci46-article-page .bkx-neighbor-card--next .bkx-neighbor-card__content { grid-column: 2; }

body.ci46-article-page .bkx-neighbor-card--prev:hover .bkx-neighbor-card__arrow { transform: translateX(-2px); }
body.ci46-article-page .bkx-neighbor-card--next:hover .bkx-neighbor-card__arrow { transform: translateX(2px); }

/* --------------------------------------------------------------------------
   Вложения — компактный нижний блок, а не ещё одна большая секция.
   -------------------------------------------------------------------------- */
body.ci46-article-page .ci46-component--article :is(
    .attachmentsContainer,
    .article-attachments,
    .attachmentsList,
    [class*="attachments-container"],
    [class*="articleattachments"]
) {
    width: 100%;
    max-width: 100%;
    margin: clamp(20px, 2.3vw, 30px) 0 clamp(30px, 3vw, 42px);
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

body.ci46-article-page .bkx-article-attachments__label {
    margin: 0 0 9px;
    color: var(--ci46-muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body.ci46-article-page .ci46-component--article :is(
    .attachmentsContainer,
    .article-attachments,
    .attachmentsList,
    [class*="attachments-container"],
    [class*="articleattachments"]
) a {
    border-radius: 14px !important;
    box-shadow: none !important;
}

/* Тёмный режим. */
html[data-bkx-mode="dark"] body.ci46-article-page .ci46-component--article {
    border-color: rgba(255, 255, 255, .07);
    background:
        radial-gradient(circle at 94% 0%, rgba(var(--ci46-rgb), .09), transparent 32rem),
        var(--ci46-card);
    box-shadow: 0 26px 72px rgba(0, 0, 0, .24);
}

html[data-bkx-mode="dark"] body.ci46-article-page .bkx-article-share,
html[data-bkx-mode="dark"] body.ci46-article-page .bkx-neighbor-card {
    border-color: rgba(255, 255, 255, .075);
    background: var(--ci46-card);
}

@media (max-width: 900px) {
    body.ci46-article-page > #main-content > .ci46-container {
        width: min(94%, var(--ci46-article-page-max));
    }

    body.ci46-article-page .ci46-component--article {
        padding: 26px;
        border-radius: 24px;
    }

    body.ci46-article-page .ci46-material-title {
        max-width: 100%;
        font-size: clamp(2rem, 6.8vw, 3rem);
    }

    body.ci46-article-page .bkx-neighbor-nav__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    body.ci46-article-page .ci46-breadcrumbs__current {
        display: none;
    }

    body.ci46-article-page .ci46-component--article {
        padding: 22px 18px 24px;
        border-radius: 20px;
    }

    body.ci46-article-page .bkx-article-meta {
        align-items: flex-start;
        flex-wrap: wrap;
        margin-bottom: 15px;
    }

    body.ci46-article-page .bkx-article-share {
        width: 36px;
        min-height: 36px;
        margin-left: auto;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }

    body.ci46-article-page .bkx-article-share__text {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0) !important;
    }

    body.ci46-article-page .ci46-material-title {
        font-size: clamp(1.8rem, 9vw, 2.55rem);
        line-height: 1.05;
    }

    body.ci46-article-page .ci46-component--article p {
        font-size: 1rem;
        line-height: 1.62;
    }

    body.ci46-article-page .bkx-neighbor-nav__head {
        display: block;
    }

    body.ci46-article-page .bkx-neighbor-nav__head strong {
        display: block;
        margin-top: 4px;
    }

    body.ci46-article-page .bkx-neighbor-card {
        grid-template-columns: 76px minmax(0, 1fr) 34px;
        gap: 11px;
        min-height: 104px;
        padding: 10px;
        border-radius: 16px;
    }

    body.ci46-article-page .bkx-neighbor-card__media {
        width: 76px;
        height: 72px;
        border-radius: 11px;
    }

    body.ci46-article-page .bkx-neighbor-card__arrow {
        width: 32px;
        height: 32px;
    }
}

/* ========================================================================== 
   V13 — точное выравнивание открытой статьи по внутреннему hero
   --------------------------------------------------------------------------
   Hero внутренних страниц использует горизонтальный padding 5%, а его inner
   — width:min(86rem,100%). Поэтому на desktop реальная рабочая ширина hero
   равна min(90vw,86rem). Эти правила намеренно находятся В САМОМ КОНЦЕ файла
   и имеют !important: в старых блоках шаблона остаются более специфичные
   правила bkx-internal-page-mounted (padding-top:0) и V9 (max-width:1320px).
   ========================================================================== */

body.ci46-article-page.bkx-internal-page-mounted
> #main-content
> .ci46-container {
    width: min(90%, 86rem) !important;
    max-width: 86rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 50px !important;
}

/* На планшете hero переходит с 5% на 4% бокового padding, то есть его
   внутренняя рабочая ширина становится 92%. Синхронизируем статью с ним. */
@media (max-width: 899px) {
    body.ci46-category-list-page .bkx-category-list__actions {
        padding-left: 0;
    }
    body.ci46-article-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container {
        width: min(92%, 86rem) !important;
        max-width: 86rem !important;
        padding-top: 40px !important;
    }
}

/* На телефоне hero имеет боковой padding 1.1rem. Повторяем эту же сетку. */
@media (max-width: 620px) {
    body.ci46-article-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container {
        width: calc(100% - 2.2rem) !important;
        max-width: none !important;
        padding-top: 28px !important;
    }
}

/* ========================================================================== 
   V14 — стандартный Joomla category-list как карточки материалов
   --------------------------------------------------------------------------
   Страница категории com_content/view=category получает body-класс
   .ci46-category-list-page в index.php. Сетка повторяет внутренний hero:
   min(90%, 86rem), а стандартная Joomla-таблица визуально превращается в
   адаптивный список карточек без изменения com_content и его override.
   ========================================================================== */

body.ci46-category-list-page.bkx-internal-page-mounted
> #main-content
> .ci46-container {
    width: min(90%, 86rem) !important;
    max-width: 86rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 50px !important;
}

body.ci46-category-list-page .ci46-component,
body.ci46-category-list-page .com-content-category.category-list,
body.ci46-category-list-page .content-category,
body.ci46-category-list-page .bkx-category-list__form {
    width: 100%;
    max-width: none;
}

body.ci46-category-list-page .com-content-category.category-list,
body.ci46-category-list-page .content-category {
    margin: 0;
    padding: 0;
}

body.ci46-category-list-page .bkx-category-list__form {
    margin: 0;
    padding-bottom: 18px;
}

body.ci46-category-list-page .content-category > h2,
body.ci46-category-list-page .content-category > h3,
body.ci46-category-list-page .content-category > .page-header,
body.ci46-category-list-page .content-category > legend,
body.ci46-category-list-page .content-category > fieldset > legend {
    margin: 0 0 18px !important;
    color: var(--ci46-ink);
}

/* Верхняя служебная зона списка. */
body.ci46-category-list-page .bkx-category-list__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin: 0 0 28px;
    padding: 0 2px;
}

body.ci46-category-list-page .bkx-category-list__intro {
    min-width: 0;
}

body.ci46-category-list-page .bkx-category-list__eyebrow {
    display: block;
    margin: 0 0 8px;
    color: var(--ci46-muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .17em;
    text-transform: uppercase;
}

body.ci46-category-list-page .bkx-category-list__intro strong {
    display: block;
    margin: 0;
    color: var(--ci46-ink);
    font-size: clamp(1.65rem, 2.4vw, 2.45rem);
    font-weight: 600;
    line-height: 1.06;
    letter-spacing: -.035em;
}

body.ci46-category-list-page .bkx-category-list__intro p {
    max-width: 58ch;
    margin: 8px 0 0;
    color: var(--ci46-muted);
    font-size: 15px;
    line-height: 1.55;
}

body.ci46-category-list-page .bkx-category-list__actions {
    flex: 0 0 auto;
    padding-left: 16px;
}

body.ci46-category-list-page .bkx-category-list__limit-host {
    display: flex !important;
    align-items: center;
    gap: 10px;
    width: auto !important;
    margin: 0 !important;
    padding: 7px 10px 7px 18px !important;
    color: var(--ci46-muted);
    background: color-mix(in srgb, var(--ci46-card) 92%, transparent);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 64%, transparent);
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(var(--ci46-rgb), .045);
    font-size: 13px;
    line-height: 1.2;
}

body.ci46-category-list-page .bkx-category-list__limit-host label,
body.ci46-category-list-page .bkx-category-list__limit-host .control-label {
    margin: 0 4px 0 0 !important;
    color: var(--ci46-muted);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

body.ci46-category-list-page .bkx-category-list__limit {
    width: auto;
    min-width: 72px;
    min-height: 36px;
    margin: 0 !important;
    padding: 0 34px 0 13px;
    color: var(--ci46-ink);
    background-color: var(--ci46-card);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 72%, transparent);
    border-radius: 999px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

/* Сбрасываем Bootstrap/Joomla table layout и строим карточную сетку. */
body.ci46-category-list-page .bkx-category-list__table {
    display: block;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    box-shadow: none !important;
}

/* Заголовки колонок сохраняем для accessibility, но визуально не показываем. */
body.ci46-category-list-page .bkx-category-list__table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

body.ci46-category-list-page .bkx-category-list__table tbody {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 18px;
    width: 100%;
    margin-bottom: 28px;
}

body.ci46-category-list-page .bkx-category-card {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 1fr auto;
    min-width: 0;
    min-height: 196px;
    margin: 0 !important;
    padding: 24px 24px 22px !important;
    color: var(--ci46-ink);
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--ci46-rgb), .07), transparent 42%),
        linear-gradient(180deg,
            color-mix(in srgb, var(--ci46-card) 97%, white 3%) 0%,
            color-mix(in srgb, var(--ci46-card) 93%, var(--ci46-paper-2) 7%) 100%);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 63%, transparent) !important;
    border-radius: 24px;
    box-shadow: 0 12px 36px rgba(var(--ci46-rgb), .055);
    overflow: hidden;
    isolation: isolate;
    transition:
        transform .28s var(--ci46-ease),
        box-shadow .28s var(--ci46-ease),
        border-color .28s var(--ci46-ease),
        background-color .28s var(--ci46-ease);
}

body.ci46-category-list-page .bkx-category-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--ci46-ink-2) 82%, transparent),
        color-mix(in srgb, var(--ci46-accent) 76%, transparent));
    opacity: .72;
}

body.ci46-category-list-page .bkx-category-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--ci46-ink-2) 28%, var(--ci46-line)) !important;
    box-shadow: 0 20px 54px rgba(var(--ci46-rgb), .095);
}

body.ci46-category-list-page .bkx-category-card > td,
body.ci46-category-list-page .bkx-category-card > th {
    width: auto !important;
    min-width: 0;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    vertical-align: top;
}

body.ci46-category-list-page .bkx-category-card__title {
    position: relative;
    z-index: 2;
    grid-column: 1 / -1;
    padding-right: 0 !important;
}

body.ci46-category-list-page .bkx-category-card__shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    width: 100%;
}

body.ci46-category-list-page .bkx-category-card.has-media .bkx-category-card__shell {
    grid-template-columns: 104px minmax(0, 1fr);
    column-gap: 16px;
}

body.ci46-category-list-page .bkx-category-card__media {
    display: none;
    width: 104px;
    aspect-ratio: 1 / 1;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(var(--ci46-rgb), .08), rgba(var(--ci46-rgb), .02));
    border: 1px solid rgba(var(--ci46-rgb), .10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}

body.ci46-category-list-page .bkx-category-card.has-media .bkx-category-card__media {
    display: grid;
    place-items: center;
}

body.ci46-category-list-page .bkx-category-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.ci46-category-list-page .bkx-category-card__media.is-file {
    padding: 12px;
    text-align: left;
    color: var(--ci46-ink);
}

body.ci46-category-list-page .bkx-category-card__file-ext {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 26px;
    margin-bottom: 10px;
    padding: 0 10px;
    border-radius: 999px;
    color: var(--ci46-card);
    background: var(--ci46-ink-2);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

body.ci46-category-list-page .bkx-category-card__file-name {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--ci46-muted);
    font-size: 12px;
    line-height: 1.35;
}

body.ci46-category-list-page .bkx-category-card__body {
    position: relative;
    min-width: 0;
    padding-right: 58px;
}

body.ci46-category-list-page .bkx-category-card__type {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    margin: 0 0 14px;
    padding: 0 10px;
    color: var(--ci46-ink-2);
    background: rgba(var(--ci46-rgb), .075);
    border: 1px solid rgba(var(--ci46-rgb), .08);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
}

body.ci46-category-list-page .bkx-category-card__link {
    position: static;
    display: block;
    max-width: none;
    margin: 0;
    color: var(--ci46-ink) !important;
    font-size: clamp(1.08rem, 1.45vw, 1.36rem);
    font-weight: 650;
    line-height: 1.22;
    letter-spacing: -.02em;
    text-decoration: none !important;
    text-wrap: pretty;
}

body.ci46-category-list-page .bkx-category-card__link:hover {
    color: var(--ci46-ink-2) !important;
}

/* Увеличиваем кликабельную область до всей карточки. */
body.ci46-category-list-page .bkx-category-card__link::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
}

body.ci46-category-list-page .bkx-category-card__arrow {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--ci46-ink-2);
    background: color-mix(in srgb, var(--ci46-paper-2) 72%, transparent);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 72%, transparent);
    border-radius: 50%;
    transition:
        color .25s var(--ci46-ease),
        background-color .25s var(--ci46-ease),
        transform .25s var(--ci46-ease);
}

body.ci46-category-list-page .bkx-category-card:hover .bkx-category-card__arrow {
    color: var(--ci46-card);
    background: var(--ci46-ink-2);
    transform: translate(2px, -2px);
}

/* Автор в публичном списке не несёт полезной навигационной информации.
   Значение остаётся в HTML, но визуально не занимает место. */
body.ci46-category-list-page .bkx-category-card__author {
    display: none !important;
}

body.ci46-category-list-page .bkx-category-card__hits {
    position: relative;
    z-index: 2;
    grid-column: 1;
    align-self: end;
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
    width: max-content !important;
    margin-top: 18px !important;
    color: var(--ci46-muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}

body.ci46-category-list-page .bkx-category-card__hits::before {
    content: "";
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    background: var(--ci46-ink-2);
    border-radius: 50%;
    opacity: .52;
}

/* Joomla/Bootstrap иногда добавляет badge внутрь hits — нейтрализуем старый вид. */
body.ci46-category-list-page .bkx-category-card__hits .badge {
    padding: 0 !important;
    color: inherit !important;
    background: transparent !important;
    border: 0 !important;
    font: inherit !important;
}

/* Пустые служебные строки и старые striped/hover фоны не должны проявляться. */
body.ci46-category-list-page .bkx-category-list__table.table-striped > tbody > tr:nth-of-type(odd) > *,
body.ci46-category-list-page .bkx-category-list__table.table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: transparent;
    --bs-table-bg-state: transparent;
    --bs-table-bg-type: transparent;
    background: transparent !important;
    color: inherit !important;
}

/* Пагинация — та же спокойная геометрия, что у остальных элементов сайта. */
body.ci46-category-list-page .bkx-category-pagination,
body.ci46-category-list-page .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 28px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.ci46-category-list-page .pagination ul,
body.ci46-category-list-page .pagination .pagination-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.ci46-category-list-page .pagination li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

body.ci46-category-list-page .pagination a,
body.ci46-category-list-page .pagination span {
    display: grid;
    place-items: center;
    min-width: 40px;
    min-height: 40px;
    padding: 0 12px;
    color: var(--ci46-ink-2);
    background: var(--ci46-card);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 72%, transparent);
    border-radius: 999px;
    text-decoration: none;
}

body.ci46-category-list-page .pagination .active span,
body.ci46-category-list-page .pagination [aria-current="page"] {
    color: var(--ci46-card);
    background: var(--ci46-ink-2);
    border-color: var(--ci46-ink-2);
}

/* При отсутствии JS оставляем базовую таблицу читаемой, но после enhancement
   скрываем лишний текстовый header старой Joomla-таблицы. */
body.ci46-category-list-page.bkx-category-list-mounted .bkx-category-list__table {
    opacity: 1;
}

@media (max-width: 899px) {
    body.ci46-category-list-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container {
        width: min(92%, 86rem) !important;
        max-width: 86rem !important;
        padding-top: 40px !important;
    }

    body.ci46-category-list-page .bkx-category-list__head {
        align-items: flex-start;
        gap: 18px;
    }

    body.ci46-category-list-page .bkx-category-card {
        min-height: 176px;
    }
}

@media (max-width: 680px) {
    body.ci46-category-list-page .bkx-category-list__head {
        display: block;
        margin-bottom: 18px;
    }

    body.ci46-category-list-page .bkx-category-list__actions {
        margin-top: 15px;
    }

    body.ci46-category-list-page .bkx-category-list__limit-host {
        width: max-content !important;
        max-width: 100%;
    }

    body.ci46-category-list-page .bkx-category-list__table tbody {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    body.ci46-category-list-page .bkx-category-card {
        min-height: 156px;
        padding: 20px 18px 18px !important;
        border-radius: 20px;
    }

    body.ci46-category-list-page .bkx-category-card.has-media .bkx-category-card__shell {
        grid-template-columns: 88px minmax(0, 1fr);
        column-gap: 14px;
    }

    body.ci46-category-list-page .bkx-category-card__media {
        width: 88px;
        border-radius: 16px;
    }

    body.ci46-category-list-page .bkx-category-card__arrow {
        width: 38px;
        height: 38px;
    }
}

@media (max-width: 620px) {
    body.ci46-category-list-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container {
        width: calc(100% - 2.2rem) !important;
        max-width: none !important;
        padding-top: 28px !important;
    }

    body.ci46-category-list-page .bkx-category-list__intro strong {
        font-size: clamp(1.5rem, 7.6vw, 2rem);
    }

    body.ci46-category-list-page .bkx-category-list__intro p {
        font-size: 14px;
    }
}

html[data-bkx-motion="off"] body.ci46-category-list-page .bkx-category-card,
html[data-bkx-motion="off"] body.ci46-category-list-page .bkx-category-card__arrow {
    transition: none !important;
}

/* ========================================================================== 
   V17 — theme-tinted article/category surfaces + category polish
   ========================================================================== */

/* Фон содержательной части внутренних страниц теперь зависит от выбранной
   цветовой темы, а не выглядит как отдельная светло-жёлтая подложка. */
body.ci46-article-page > #main-content,
body.ci46-category-list-page > #main-content {
    background:
        radial-gradient(ellipse at 8% 0%, rgba(var(--ci46-rgb), .115), transparent 42rem),
        radial-gradient(ellipse at 96% 34%, rgba(var(--ci46-rgb), .055), transparent 34rem),
        linear-gradient(
            180deg,
            color-mix(in srgb, var(--ci46-paper) 90%, var(--ci46-ink-2) 10%) 0%,
            color-mix(in srgb, var(--ci46-paper) 96%, var(--ci46-ink-2) 4%) 46%,
            var(--ci46-paper) 100%
        );
}

/* Карточка статьи остаётся светлее фоновой плоскости, но также получает
   оттенок текущей темы. */
body.ci46-article-page .ci46-component--article {
    background:
        radial-gradient(circle at 96% 0%, rgba(var(--ci46-rgb), .085), transparent 30rem),
        linear-gradient(
            180deg,
            color-mix(in srgb, var(--ci46-card) 95%, var(--ci46-ink-2) 5%) 0%,
            color-mix(in srgb, var(--ci46-paper-2) 96%, var(--ci46-ink-2) 4%) 100%
        );
}

/* То же визуальное семейство для карточек списка материалов. */
body.ci46-category-list-page .bkx-category-card {
    background:
        radial-gradient(circle at 100% 0%, rgba(var(--ci46-rgb), .105), transparent 46%),
        linear-gradient(
            180deg,
            color-mix(in srgb, var(--ci46-card) 94%, var(--ci46-ink-2) 6%) 0%,
            color-mix(in srgb, var(--ci46-paper-2) 97%, var(--ci46-ink-2) 3%) 100%
        );
}

/* Запрошенная поправка служебного label Joomla. */
label.visually-hidden {
    padding-left: 15px !important;
}

/* Заголовки и label карточек всегда выравниваются по левому краю независимо
   от Bootstrap/Joomla text-align у table/th. */
body.ci46-category-list-page .bkx-category-card__title,
body.ci46-category-list-page .bkx-category-card__shell,
body.ci46-category-list-page .bkx-category-card__body,
body.ci46-category-list-page .bkx-category-card__type,
body.ci46-category-list-page .bkx-category-card__link {
    text-align: left !important;
}

body.ci46-category-list-page .bkx-category-card__body {
    justify-self: stretch;
    align-self: start;
}

body.ci46-category-list-page .bkx-category-card__type {
    justify-content: flex-start;
    align-self: flex-start;
}

/* Чуть спокойнее миниатюры: фото показываем как полноценное превью, файл —
   как компактную документную карточку. */
body.ci46-category-list-page .bkx-category-card__media {
    background:
        radial-gradient(circle at 22% 12%, rgba(var(--ci46-rgb), .12), transparent 68%),
        color-mix(in srgb, var(--ci46-card) 90%, var(--ci46-ink-2) 10%);
    border-color: color-mix(in srgb, var(--ci46-line) 74%, transparent);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.34),
        0 8px 24px rgba(var(--ci46-rgb), .06);
}

body.ci46-category-list-page .bkx-category-card__media img {
    transition: transform .36s var(--ci46-ease);
}

body.ci46-category-list-page .bkx-category-card:hover .bkx-category-card__media img {
    transform: scale(1.025);
}

body.ci46-category-list-page .bkx-category-card__media.is-file {
    align-content: center;
    justify-items: start;
}

/* Пагинация. Старое правило стилизовало каждый вложенный span, поэтому у
   стрелок появлялся второй круг. Теперь круг только у непосредственного
   control, а символы стрелок рисуются собственными glyph и не зависят от
   иконочных шрифтов Joomla/Bootstrap. */
body.ci46-category-list-page .com-content-category__navigation,
body.ci46-category-list-page .bkx-category-pagination {
    width: 100%;
    margin: 34px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.ci46-category-list-page .com-content-category__navigation {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

body.ci46-category-list-page .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

body.ci46-category-list-page .pagination ul,
body.ci46-category-list-page .pagination .pagination-list,
body.ci46-category-list-page ul.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

body.ci46-category-list-page .pagination li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

body.ci46-category-list-page .pagination li > a,
body.ci46-category-list-page .pagination li > span {
    display: grid !important;
    place-items: center;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    color: var(--ci46-ink-2) !important;
    background: color-mix(in srgb, var(--ci46-card) 94%, transparent) !important;
    border: 1px solid color-mix(in srgb, var(--ci46-line) 72%, transparent) !important;
    border-radius: 999px !important;
    box-shadow: 0 7px 20px rgba(var(--ci46-rgb), .045) !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

/* Полностью нейтрализуем старый второй круг у внутренних span/icon. */
body.ci46-category-list-page .pagination li > a > span,
body.ci46-category-list-page .pagination li > span > span {
    min-width: 0 !important;
    min-height: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.ci46-category-list-page .pagination .bkx-pagination-glyph {
    display: inline-block !important;
    color: currentColor;
    font-size: 1.55rem;
    font-weight: 500;
    line-height: .8;
    transform: translateY(-1px);
}

body.ci46-category-list-page .pagination li > a:hover {
    color: var(--ci46-card) !important;
    background: var(--ci46-ink-2) !important;
    border-color: var(--ci46-ink-2) !important;
    transform: translateY(-1px);
}

body.ci46-category-list-page .pagination .active > a,
body.ci46-category-list-page .pagination .active > span,
body.ci46-category-list-page .pagination [aria-current="page"] {
    color: var(--ci46-card) !important;
    background: var(--ci46-ink-2) !important;
    border-color: var(--ci46-ink-2) !important;
}

body.ci46-category-list-page .pagination .disabled > a,
body.ci46-category-list-page .pagination .disabled > span {
    opacity: .46;
    cursor: default;
    pointer-events: none;
}

body.ci46-category-list-page .com-content-category__counter,
body.ci46-category-list-page .pagination-counter,
body.ci46-category-list-page .counter {
    margin: 0 !important;
    color: var(--ci46-muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

/* Дополнительный воздух перед футером — отдельно для статьи и для списка
   материалов, т.к. глобальный footer-fix специально обнуляет base padding. */
body.ci46-article-page.bkx-internal-page-mounted
> #main-content
> .ci46-container,
body.ci46-category-list-page.bkx-internal-page-mounted
> #main-content
> .ci46-container {
    padding-bottom: clamp(72px, 7vw, 108px) !important;
}

body.ci46-category-list-page .bkx-category-list__form {
    padding-bottom: 0;
}

/* Dark mode: сохраняем оттенок темы, но не высветляем фон. */
html[data-bkx-mode="dark"] body.ci46-article-page > #main-content,
html[data-bkx-mode="dark"] body.ci46-category-list-page > #main-content {
    background:
        radial-gradient(ellipse at 8% 0%, rgba(var(--ci46-rgb), .15), transparent 42rem),
        radial-gradient(ellipse at 96% 34%, rgba(var(--ci46-rgb), .08), transparent 34rem),
        linear-gradient(
            180deg,
            color-mix(in srgb, var(--ci46-paper) 93%, var(--ci46-ink-2) 7%) 0%,
            var(--ci46-paper) 100%
        );
}

@media (max-width: 680px) {
    body.ci46-article-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container,
    body.ci46-category-list-page.bkx-internal-page-mounted
    > #main-content
    > .ci46-container {
        padding-bottom: 54px !important;
    }

    body.ci46-category-list-page .com-content-category__navigation,
    body.ci46-category-list-page .bkx-category-pagination {
        margin-top: 28px !important;
    }

    body.ci46-category-list-page .pagination li > a,
    body.ci46-category-list-page .pagination li > span {
        min-width: 38px !important;
        min-height: 38px !important;
        padding: 0 10px !important;
    }
}


/* ========================================================================== 
   V18 — category caption + guaranteed pagination arrows
   ========================================================================== */

/* Joomla добавляет доступный caption «Материалы». В карточном layout он не
   должен превращаться в отдельную видимую строку непосредственно над сеткой. */
body.ci46-category-list-page .bkx-category-list__table > caption,
body.ci46-category-list-page .com-content-category__table > caption {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Старые нативные кнопки направления Joomla скрываются после того, как JS
   построил собственные prev/next. Так не возникает ни пустых контролов,
   ни двух окружностей вокруг одной стрелки. */
body.ci46-category-list-page .pagination .bkx-pagination-native-direction {
    display: none !important;
}

body.ci46-category-list-page .pagination .bkx-pagination-direction {
    display: block !important;
}

body.ci46-category-list-page .pagination .bkx-pagination-control {
    position: relative;
    display: grid !important;
    place-items: center;
    min-width: 42px !important;
    width: 42px !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 !important;
}

body.ci46-category-list-page .pagination .bkx-pagination-svg {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    overflow: visible;
    pointer-events: none;
}

body.ci46-category-list-page .pagination .bkx-pagination-control > .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 680px) {
    body.ci46-category-list-page .pagination .bkx-pagination-control {
        min-width: 38px !important;
        width: 38px !important;
        min-height: 38px !important;
        height: 38px !important;
    }
}


/* ========================================================================== 
   V19 — native Joomla pagination glyphs
   --------------------------------------------------------------------------
   Joomla 4/5 выводит пустые span.icon-angle-* и ожидает иконочный шрифт.
   Используем эти же нативные контролы, но показываем собственные глифы.
   Внешняя окружность остаётся только у .page-link.
   ========================================================================== */
body.ci46-category-list-page .bkx-category-list__limit-host.bkx-category-pagination {
    /* страховка для закешированного DOM старой версии */
    width: auto;
}

body.ci46-category-list-page .bkx-category-pagination .pagination,
body.ci46-category-list-page .bkx-category-pagination-list {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* Старый JS мог поставить этот класс на нативные first/prev/next/last.
   Больше не прячем такие элементы. */
body.ci46-category-list-page .pagination .bkx-pagination-native-direction {
    display: list-item !important;
}

body.ci46-category-list-page .pagination .bkx-pagination-native-glyph,
body.ci46-category-list-page .pagination .icon-angle-left,
body.ci46-category-list-page .pagination .icon-angle-right,
body.ci46-category-list-page .pagination .icon-angle-double-left,
body.ci46-category-list-page .pagination .icon-angle-double-right {
    display: inline-grid !important;
    place-items: center;
    width: 18px !important;
    min-width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: currentColor !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 18px !important;
    text-indent: 0 !important;
    overflow: visible !important;
}

/* CSS fallback: стрелка остаётся видимой даже если JS не успел записать
   символ внутрь пустого icon-angle-* span. */
body.ci46-category-list-page .pagination .icon-angle-double-left:empty::before { content: "«" !important; }
body.ci46-category-list-page .pagination .icon-angle-left:empty::before { content: "‹" !important; }
body.ci46-category-list-page .pagination .icon-angle-right:empty::before { content: "›" !important; }
body.ci46-category-list-page .pagination .icon-angle-double-right:empty::before { content: "»" !important; }

body.ci46-category-list-page .pagination .icon-angle-double-left::before,
body.ci46-category-list-page .pagination .icon-angle-left::before,
body.ci46-category-list-page .pagination .icon-angle-right::before,
body.ci46-category-list-page .pagination .icon-angle-double-right::before {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

/* Вложенный icon/span никогда не получает собственную окружность. */
body.ci46-category-list-page .pagination .page-link > .bkx-pagination-native-glyph,
body.ci46-category-list-page .pagination .page-link > [class*="icon-angle-"] {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ========================================================================== 
   V20 — category cards: attachment badges instead of previews
   ========================================================================== */

/* В списке материалов больше не показываем миниатюры. Информация о вложениях
   живёт в компактном правом блоке под стрелкой перехода. */
body.ci46-category-list-page .bkx-category-card__media {
    display: none !important;
}

body.ci46-category-list-page .bkx-category-card.has-media .bkx-category-card__shell,
body.ci46-category-list-page .bkx-category-card__shell {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: start;
    width: 100%;
}

body.ci46-category-list-page .bkx-category-card__body {
    min-width: 0;
    padding-right: 58px;
}

body.ci46-category-list-page .bkx-category-card.has-attachments .bkx-category-card__body {
    padding-right: 120px;
}

body.ci46-category-list-page .bkx-category-card__aside {
    position: absolute;
    z-index: 4;
    top: 0;
    right: 0;
    display: flex;
    width: 106px;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    pointer-events: none;
}

body.ci46-category-list-page .bkx-category-card__arrow {
    position: relative;
    top: auto;
    right: auto;
    flex: 0 0 auto;
}

body.ci46-category-list-page .bkx-category-card__files {
    display: flex;
    max-width: 106px;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    color: var(--ci46-muted);
}

body.ci46-category-list-page .bkx-category-card__files[hidden] {
    display: none !important;
}

body.ci46-category-list-page .bkx-category-card__file-types {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
    max-width: 106px;
}

body.ci46-category-list-page .bkx-category-card__file-type,
body.ci46-category-list-page .bkx-category-card__file-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 23px;
    padding: 0 8px;
    border-radius: 999px;
    line-height: 1;
    white-space: nowrap;
}

body.ci46-category-list-page .bkx-category-card__file-type {
    color: var(--ci46-ink-2);
    background: color-mix(in srgb, var(--ci46-paper-2) 76%, transparent);
    border: 1px solid color-mix(in srgb, var(--ci46-line) 76%, transparent);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .075em;
}

body.ci46-category-list-page .bkx-category-card__file-type--more {
    letter-spacing: 0;
}

body.ci46-category-list-page .bkx-category-card__file-count {
    color: var(--ci46-card);
    background: var(--ci46-ink-2);
    border: 1px solid var(--ci46-ink-2);
    box-shadow: 0 6px 16px rgba(var(--ci46-rgb), .12);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .01em;
}

body.ci46-category-list-page .bkx-category-card:hover .bkx-category-card__file-type {
    border-color: color-mix(in srgb, var(--ci46-ink-2) 24%, var(--ci46-line));
}

body.ci46-category-list-page .bkx-category-card:hover .bkx-category-card__file-count {
    background: var(--ci46-ink);
    border-color: var(--ci46-ink);
}

@media (max-width: 680px) {
    body.ci46-category-list-page .bkx-category-card.has-media .bkx-category-card__shell {
        grid-template-columns: minmax(0, 1fr);
        column-gap: 0;
    }

    body.ci46-category-list-page .bkx-category-card.has-attachments .bkx-category-card__body {
        padding-right: 112px;
    }

    body.ci46-category-list-page .bkx-category-card__aside,
    body.ci46-category-list-page .bkx-category-card__files,
    body.ci46-category-list-page .bkx-category-card__file-types {
        max-width: 98px;
        width: 98px;
    }

    body.ci46-category-list-page .bkx-category-card__file-type,
    body.ci46-category-list-page .bkx-category-card__file-count {
        min-height: 22px;
        padding: 0 7px;
    }
}

@media (max-width: 430px) {
    body.ci46-category-list-page .bkx-category-card.has-attachments .bkx-category-card__body {
        padding-right: 0;
    }

    body.ci46-category-list-page .bkx-category-card__aside {
        position: relative;
        top: auto;
        right: auto;
        width: 100%;
        max-width: none;
        margin-top: 18px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    body.ci46-category-list-page .bkx-category-card__files {
        width: auto;
        max-width: calc(100% - 52px);
        flex: 1 1 auto;
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
    }

    body.ci46-category-list-page .bkx-category-card__file-types {
        width: auto;
        max-width: none;
    }
}
