/* =========================================================================
   Cifrum — компоненты в стиле premium news media.
   Версия 2.0 — широкий layout, крупные шрифты, премиальный header.
   ========================================================================= */

/* =========================================================================
   0. ФИКС ширины: убрать Astra container, сделать всё на 1480px
   ========================================================================= */
body.home .site-content > .ast-container,
body.single .site-content > .ast-container,
body.archive .site-content > .ast-container,
body.search .site-content > .ast-container,
body.error404 .site-content > .ast-container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
}

body.home #primary,
body.single #primary,
body.archive #primary,
body.search #primary {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.home .site-content,
body.archive .site-content,
body.search .site-content {
    background: var(--cf-bg-soft);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body.single .site-content { background: #fff !important; padding-top: 0 !important; padding-bottom: 0 !important; }

/* Обычные страницы (О проекте / Редакция / Контакты / Конфиденциальность) */
body.page .site-content > .ast-container,
body.page #primary {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.page .site-content {
    background: #fff !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Глобальный широкий контейнер */
.cf-wide {
    max-width: 1480px;
    margin: 0 auto;
    padding: 0 32px;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 1024px) {
    .cf-wide { padding: 0 24px; }
}

@media (max-width: 768px) {
    .cf-wide { padding: 0 16px; }
}

/* =========================================================================
   1. ПОЛНОСТЬЮ ПРЯЧЕМ Astra header — у нас своя кастомная шапка ниже
   ========================================================================= */
.ast-above-header,
.ast-above-header-bar,
.site-above-header-wrap,
.ast-primary-header-bar,
.site-primary-header-wrap,
.ast-mobile-header-wrap,
.main-header-bar-wrap,
#masthead {
    display: none !important;
}

/* Убираем preserve-space от Astra */
body.ast-header-break-point #content,
body.ast-header-break-point .site-content { padding-top: 0 !important; }

/* ---- ВЫКЛЮЧЕННЫЕ Astra-стили выше — оставлены закомментированными ниже ---- */
.ast-above-header-bar--legacy {
    background: var(--cf-bg-soft) !important;
    border-bottom: 1px solid var(--cf-border) !important;
    font-size: var(--cf-fz-xs) !important;
    color: var(--cf-text-muted) !important;
    padding: 0 !important;
    min-height: 36px !important;
}

.ast-above-header-bar .ast-builder-grid-row,
.ast-above-header-wrap .ast-builder-grid-row {
    min-height: 36px !important;
    padding: 4px 0 !important;
}

.ast-above-header-bar a {
    color: var(--cf-text-soft) !important;
    font-weight: 500 !important;
}

.ast-above-header-bar a:hover { color: var(--cf-blue-600) !important; }

/* Прячем колоночки above, если они пустые */
.ast-above-header-section.ast-above-header-section-1:empty,
.ast-above-header-section.ast-above-header-section-2:empty { display: none !important; }

/* === ОСНОВНОЙ HEADER === */
.ast-primary-header-bar,
.site-primary-header-wrap {
    background: #fff !important;
    border-bottom: 1px solid var(--cf-border) !important;
    box-shadow: 0 2px 12px rgba(15, 28, 63, 0.04);
    padding: 0 !important;
}

.ast-primary-header-bar .ast-builder-grid-row,
.site-primary-header-wrap .ast-builder-grid-row {
    min-height: 84px !important;
    padding: 12px 0 !important;
}

/* Контейнер шапки на нашу ширину */
.main-header-bar .ast-container,
.ast-above-header-bar .ast-container,
.ast-primary-header-bar .ast-container,
.site-above-footer-wrap .ast-container,
.site-primary-footer-wrap .ast-container,
.site-below-footer-wrap .ast-container {
    max-width: 1480px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
}

@media (max-width: 1024px) {
    .main-header-bar .ast-container,
    .ast-above-header-bar .ast-container,
    .ast-primary-header-bar .ast-container { padding-left: 24px !important; padding-right: 24px !important; }
}

/* === ЛОГОТИП === */
.ast-site-identity { padding: 0 !important; }

.site-logo-img img,
.ast-site-identity .site-logo-img img,
.custom-logo-link img {
    max-height: 56px !important;
    width: auto !important;
    height: auto !important;
    transition: opacity var(--cf-transition);
}

.custom-logo-link:hover img { opacity: 0.85; }

/* Если показывается текстовый title — стиль */
.site-title a,
.ast-site-title-wrap .site-title a {
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    color: var(--cf-blue-700) !important;
    letter-spacing: -0.02em !important;
    line-height: 1 !important;
}

.site-title a:hover { color: var(--cf-blue-600) !important; }

/* === ГЛАВНОЕ МЕНЮ === */
.main-header-menu,
.main-header-bar .ast-builder-menu-1 .menu,
.ast-builder-menu-1 .main-header-menu {
    font-size: var(--cf-fz-base) !important;
    gap: 4px !important;
}

.main-navigation .menu-item > a,
.main-header-menu > .menu-item > a,
.main-header-bar .main-header-menu .menu-link {
    font-size: 1.02rem !important;
    font-weight: 600 !important;
    color: var(--cf-blue-700) !important;
    padding: 10px 18px !important;
    letter-spacing: -0.005em !important;
    transition: all var(--cf-transition);
    position: relative;
    border-radius: 8px;
}

.main-navigation .menu-item > a:hover,
.main-header-menu > .menu-item > a:hover,
.main-header-menu > .menu-item.menu-item-has-children:hover > a {
    color: var(--cf-blue-600) !important;
    background: rgba(61, 88, 187, 0.06);
}

.main-navigation .menu-item.current-menu-item > a,
.main-navigation .menu-item.current-menu-ancestor > a,
.main-header-menu > .menu-item.current-menu-item > a {
    color: var(--cf-blue-600) !important;
}

.main-navigation .menu-item.current-menu-item > a::after,
.main-header-menu > .menu-item.current-menu-item > a::after {
    content: '';
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 4px;
    height: 3px;
    background: var(--cf-blue-600);
    border-radius: 3px;
}

/* WPML legacy footer-switcher — прячем (дублирует переключатель в шапке) */
.wpml-ls-statics-footer,
.wpml-ls-legacy-list-horizontal:not(.cf-util-langs) {
    display: none !important;
}

/* =========================================================================
   1B. КАСТОМНАЯ ШАПКА .cf-site-header — тёмный фон #212121 + орнамент
   ========================================================================= */
.cf-site-header {
    background: linear-gradient(180deg, #0f1c3f 0%, #131f49 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.20);
    position: sticky;
    top: 0;
    z-index: 100;
    /* overflow: visible — иначе обрезает выпадашку «Все»; орнамент удерживается inset:0 */
    overflow: visible;
    isolation: isolate;
    transition: box-shadow 250ms ease;
}

/* Дополнительная страховка — ::before орнамент бесшумно обрезаем сам по себе */
.cf-site-header::before { overflow: hidden; }

/* Тонкий казахский орнамент-паттерн в фоне — 5.5% непрозрачности */
.cf-site-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/header-pattern.svg');
    background-repeat: repeat;
    background-size: 200px 100px;
    opacity: 0.055;
    pointer-events: none;
    z-index: 0;
}

.cf-site-header > .cf-wide {
    position: relative;
    z-index: 1;
}

/* Sticky-shrink: при скролле шапка становится компактнее */
body.cf-scrolled .cf-site-header {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.40);
}

body.cf-scrolled .cf-site-header__row {
    min-height: 72px !important;
    padding: 10px 0 !important;
}

body.cf-scrolled .cf-site-header__logo {
    height: 44px !important;
}

body.cf-scrolled .cf-site-header__brand-text {
    font-size: 1.25rem !important;
}

body.cf-scrolled .cf-site-header__brand-tagline {
    display: none;
}

body.cf-scrolled .cf-site-header__row,
.cf-site-header__row,
.cf-site-header__logo,
.cf-site-header__brand-text {
    transition: min-height 200ms ease, padding 200ms ease, height 200ms ease, font-size 200ms ease;
}

.cf-site-header__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 96px;       /* премиальная компактная высота */
    gap: 24px;
    padding: 16px 0;
}

.cf-site-header__brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    flex-shrink: 0;
    color: #fff;
}

.cf-site-header__logo {
    height: 58px;
    width: auto;
    max-width: 80px;
    display: block;
    filter: drop-shadow(0 4px 12px rgba(61, 88, 187, 0.35));
}

.cf-site-header__brand-lockup {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    line-height: 1;
}

.cf-site-header__brand-text {
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff !important;
    letter-spacing: -0.02em;
    line-height: 1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.40);
}

.cf-site-header__brand-tagline {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.75) !important;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.50);
}

.cf-site-header__brand:hover { color: rgba(255, 255, 255, 0.85); }
.cf-site-header__brand:hover .cf-site-header__brand-text { color: rgba(255, 255, 255, 0.85) !important; }
.cf-site-header__brand:hover .cf-site-header__brand-tagline { color: rgba(255, 255, 255, 0.60) !important; }

@media (max-width: 575px) {
    .cf-site-header__brand-tagline { display: none; }
}

/* Основное меню в шапке убрано — всё содержимое в бургер-панели */
.cf-site-header__main { display: none !important; }

/* Утилитарные ссылки удалены из шапки — их больше нет в DOM */
.cf-util-link { display: none; }

/* =========================================================================
   1B-bis. ВЫРАВНИВАНИЕ ПРАВОГО БЛОКА ШАПКИ
   Все 3 кнопки (поиск / RU-EN / бургер) — строго одна высота, одна линия.
   ========================================================================= */
.cf-site-header__utility {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;   /* единая центральная ось */
    justify-content: flex-end;
    height: 44px !important;
    gap: 10px;
    flex-shrink: 0;
    line-height: 1 !important;        /* убираем baseline-смещение текстов */
}

.cf-site-header__utility > .cf-search-btn,
.cf-site-header__utility > .cf-util-langs,
.cf-site-header__utility > .cf-util-socials,
.cf-site-header__utility > .cf-burger {
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    box-sizing: border-box !important;
    align-self: center !important;
    margin: 0 !important;
    vertical-align: middle !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
}

/* ---- КНОПКА ПОИСКА — solid blue #3d58bb + soft glow ---- */
.cf-search-btn {
    width: 44px !important;
    height: 44px !important;
    border: 0;
    background: var(--cf-blue-600);     /* #3d58bb */
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background var(--cf-transition), box-shadow var(--cf-transition), transform var(--cf-transition);
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(61, 88, 187, 0.30);
}

.cf-search-btn svg { width: 20px; height: 20px; }

.cf-search-btn:hover {
    background: var(--cf-blue-500);
    box-shadow: 0 6px 22px rgba(61, 88, 187, 0.55);
    transform: translateY(-1px);
}

.cf-search-btn:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgba(61, 88, 187, 0.40);
}

/* ---- ПЕРЕКЛЮЧАТЕЛЬ ЯЗЫКОВ KZ/RU/EN ---- */
.cf-util-langs {
    display: inline-flex;
    align-items: stretch;
    height: 44px !important;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    background: transparent;
    overflow: hidden;
    flex-shrink: 0;
    box-sizing: border-box;
    gap: 2px;
}

.cf-util-lang,
.cf-util-lang:link,
.cf-util-lang:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 100% !important;
    padding: 0 12px;
    color: rgba(255, 255, 255, 0.70);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 8px;
    transition: background var(--cf-transition), color var(--cf-transition);
}

.cf-util-lang:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
.cf-util-lang.is-active {
    background: #ffffff !important;
    color: #0f1c3f !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.20);
}

/* ---- СОЦИАЛЬНЫЕ ИКОНКИ В ШАПКЕ ---- */
.cf-util-socials {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 44px;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
}

.cf-util-social,
.cf-util-social:link,
.cf-util-social:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 44px;
    height: 44px;
    overflow: hidden;
    border-radius: 14px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 8px 18px rgba(3, 11, 34, 0.18);
    transition: background var(--cf-transition), border-color var(--cf-transition), box-shadow var(--cf-transition), color var(--cf-transition);
    text-decoration: none;
}

.cf-util-social::before {
    content: "";
    position: absolute;
    left: 11px;
    right: 11px;
    bottom: 7px;
    height: 2px;
    border-radius: 999px;
    background: #6f8cff;
    opacity: 0.88;
    transform: scaleX(0.55);
    transform-origin: center;
    transition: transform var(--cf-transition), opacity var(--cf-transition), background var(--cf-transition);
}

.cf-util-social svg {
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
    display: block;
    transition: opacity var(--cf-transition);
}

.cf-util-social:hover,
.cf-util-social:focus-visible {
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: 0 10px 26px rgba(3, 10, 31, 0.32);
    color: #0f1c3f;
}

.cf-util-social:hover::before,
.cf-util-social:focus-visible::before {
    opacity: 1;
    transform: scaleX(1);
}
.cf-util-social:hover svg,
.cf-util-social:focus-visible svg {
    opacity: 1;
}

.cf-util-social:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.74);
    outline-offset: 1px;
}

.cf-util-social--facebook::before { background: #1877f2; }
.cf-util-social--twitter::before { background: #ffffff; }
.cf-util-social--vk::before { background: #0077ff; }
.cf-util-social--youtube::before { background: #ff0033; }
.cf-util-social--telegram::before { background: #27a7e7; }

.cf-util-social--youtube svg { width: 19px; }

/* Мобильная: скрываем социалки на узких экранах — место в шапке нужно для лого/бургера */
@media (max-width: 768px) {
    .cf-util-socials { display: none; }
}

/* =========================================================================
   1C. ПОИСКОВЫЙ OVERLAY — fullscreen, премиальный
   ========================================================================= */
.cf-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(15, 28, 63, 0.96);
    backdrop-filter: blur(14px);
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 14vh;
    animation: cf-fade-in 220ms ease;
}

.cf-search-overlay:not([hidden]) { display: flex; }

.cf-search-overlay__close {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.20);
    background: rgba(255, 255, 255, 0.10);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--cf-transition);
    backdrop-filter: blur(12px);
}

.cf-search-overlay__close:hover {
    background: rgba(255, 255, 255, 0.20);
    border-color: rgba(255, 255, 255, 0.45);
    transform: scale(1.05);
}

.cf-search-overlay__inner {
    max-width: 760px;
    width: 92%;
    text-align: center;
}

.cf-search-overlay__eyebrow {
    display: block;
    color: rgba(255, 255, 255, 0.70);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 22px;
}

.cf-search-overlay__form {
    display: flex;
    gap: 14px;
    align-items: stretch;
    margin-bottom: 18px;
}

.cf-search-overlay__input {
    flex: 1;
    background: #ffffff !important;            /* СПЛОШНОЙ БЕЛЫЙ ФОН */
    border: 2px solid #ffffff !important;
    border-radius: 14px;
    padding: 22px 28px;
    color: #0e1117 !important;                  /* тёмный текст — отличный контраст */
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.3;
    outline: none;
    transition: box-shadow var(--cf-transition), border-color var(--cf-transition);
    font-family: inherit;
    -webkit-appearance: none;
    appearance: none;
    min-width: 0;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.30);
}

.cf-search-overlay__input::placeholder {
    color: #6b7280;
    font-weight: 400;
}

.cf-search-overlay__input:focus {
    border-color: var(--cf-blue-500) !important;
    box-shadow: 0 0 0 4px rgba(64, 83, 212, 0.30), 0 12px 36px rgba(0, 0, 0, 0.30);
}

.cf-search-overlay__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.cf-search-overlay__submit {
    width: 64px;
    height: auto;
    min-height: 64px;
    border-radius: 14px;
    background: var(--cf-blue-600);
    color: #fff;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--cf-transition), transform var(--cf-transition);
    flex-shrink: 0;
}

.cf-search-overlay__submit:hover {
    background: var(--cf-blue-500);
    transform: translateX(2px);
}

.cf-search-overlay__hint {
    margin: 0;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.88rem;
    font-weight: 400;
}

.cf-search-overlay__hint kbd {
    display: inline-block;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 4px;
    padding: 2px 8px;
    font-family: 'JetBrains Mono', Menlo, monospace;
    font-size: 0.78rem;
    color: #fff;
    margin: 0 2px;
}

html.cf-search-open { overflow: hidden; }

@keyframes cf-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (max-width: 768px) {
    .cf-search-overlay { padding-top: 10vh; }
    .cf-search-overlay__form { flex-direction: column; gap: 10px; }
    .cf-search-overlay__input { padding: 16px 20px; font-size: 1.05rem; }
    .cf-search-overlay__submit { width: 100%; min-height: 52px; }
    .cf-search-overlay__close { top: 14px; right: 14px; width: 42px; height: 42px; }
}

/* ---- БУРГЕР — прозрачный тёмный, тонкая рамка ---- */
.cf-burger {
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(255, 255, 255, 0.20);
    background: rgba(0, 0, 0, 0.20);
    border-radius: 12px;
    flex-shrink: 0;
    box-sizing: border-box;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    padding: 0;
    transition: background var(--cf-transition), border-color var(--cf-transition);
}

.cf-burger:hover {
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.35);
}

.cf-burger__line {
    width: 20px;
    height: 2px;
    background: #ffffff;                     /* всегда белые */
    border-radius: 2px;
    transition: transform 250ms ease, opacity 200ms ease, background 200ms ease;
}

.cf-burger:hover .cf-burger__line { background: #e5e7ee; }  /* на hover — светло-серые */

.cf-burger[aria-expanded="true"] {
    background: var(--cf-blue-700);
    border-color: var(--cf-blue-700);
}

.cf-burger[aria-expanded="true"] .cf-burger__line { background: #fff; }

.cf-burger[aria-expanded="true"] .cf-burger__line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}
.cf-burger[aria-expanded="true"] .cf-burger__line:nth-child(2) { opacity: 0; }
.cf-burger[aria-expanded="true"] .cf-burger__line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* ---- БУРГЕР-ПАНЕЛЬ ---- */
.cf-burger-panel {
    background: var(--cf-blue-700);
    color: #fff;
    border-top: 1px solid rgba(255,255,255,0.10);
    animation: cf-slide-down 220ms ease;
}

.cf-burger-panel[hidden] { display: none; }

.cf-burger-panel__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;                  /* без gap — разделители даются через border-left */
    padding: 14px 0;
}

/* Базовая ссылка панели — БЕЛЫЕ буквы (важно: бьём Astra link-color) */
.cf-burger-link,
.cf-burger-link:link,
.cf-burger-link:visited {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    background: transparent !important;
    color: #ffffff !important;
    font-size: 0.98rem;                /* единый размер с .cf-hubs__item */
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.2;
    border: 1px solid transparent;
    border-radius: 0;
    transition: color var(--cf-transition), background var(--cf-transition);
}

/* Hover — мягкий периwinkle, без фона */
.cf-burger-link:hover,
.cf-burger-link:focus-visible {
    color: #a4b5e8 !important;
    background: transparent !important;
}

/* Активный пункт — белый фон, тёмный текст, КВАДРАТНАЯ рамка */
.cf-burger-link.is-current,
.cf-burger-link.is-current:link,
.cf-burger-link.is-current:visited {
    background: #ffffff !important;
    color: var(--cf-blue-700) !important;
    border-radius: 4px;
}

.cf-burger-link.is-current:hover {
    background: #ffffff !important;
    color: var(--cf-blue-700) !important;
}

/* Утилитарные ссылки (Наша миссия / Конф. / Контакты) — тот же белый, чуть мельче */
.cf-burger-link--util,
.cf-burger-link--util:link,
.cf-burger-link--util:visited {
    font-size: 0.95rem;
    font-weight: 500;
    color: #ffffff !important;
}

.cf-burger-link--util:hover {
    color: #a4b5e8 !important;
}

/* Белые вертикальные разделители между соседними ссылками
   (кроме случая, когда активная — у неё своя рамка) */
.cf-burger-panel__row > a + a:not(.is-current) {
    border-left: 1px solid rgba(255, 255, 255, 0.25);
}

/* Большая визуальная отбивка между основными и utility */
.cf-burger-panel__sep {
    height: 24px;
    width: 1px;
    background: rgba(255, 255, 255, 0.35);
    margin: 0 8px;
    align-self: center;
}

/* (форма поиска внутри бургера удалена — поиск теперь в overlay в шапке) */

/* =========================================================================
   КОНТАКТНАЯ ФОРМА .cf-contact
   ========================================================================= */
.cf-contact {
    max-width: 760px;
    margin: 40px auto 0;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 18px;
    padding: 38px 40px;
    box-shadow: 0 12px 36px rgba(15, 28, 63, 0.06);
}

.cf-contact__head { margin-bottom: 28px; text-align: center; }

.cf-contact__title {
    font-size: 1.7rem;
    color: var(--cf-blue-700);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0 0 8px;
}

.cf-contact__sub {
    color: var(--cf-text-muted);
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
}

.cf-contact__form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.cf-contact__row {
    display: grid;
    gap: 18px;
}

.cf-contact__row--two {
    grid-template-columns: 1fr 1fr;
}

@media (max-width: 575px) {
    .cf-contact { padding: 26px 22px; border-radius: 14px; }
    .cf-contact__row--two { grid-template-columns: 1fr; }
}

/* --- Поля ввода ---------------------------------------------------------- */
.cf-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cf-field__label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cf-blue-700);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.cf-field__req {
    color: var(--cf-red-500);
    font-weight: 700;
}

.cf-field__input {
    width: 100%;
    font-family: var(--cf-font-sans);
    font-size: 1rem;
    color: var(--cf-blue-700);
    background: var(--cf-bg-soft);
    border: 1.5px solid var(--cf-border);
    border-radius: 10px;
    padding: 14px 16px;
    line-height: 1.4;
    transition: border-color var(--cf-transition), background var(--cf-transition), box-shadow var(--cf-transition);
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
}

.cf-field__input::placeholder { color: var(--cf-text-muted); }

.cf-field__input:hover {
    background: #fff;
    border-color: rgba(61, 88, 187, 0.30);
}

.cf-field__input:focus {
    outline: 0;
    background: #fff;
    border-color: var(--cf-blue-600);
    box-shadow: 0 0 0 4px rgba(64, 83, 212, 0.15);
}

.cf-field__input:invalid:not(:placeholder-shown) {
    border-color: rgba(231, 47, 45, 0.50);
}

.cf-field__textarea {
    resize: vertical;
    min-height: 130px;
    font-family: var(--cf-font-sans);
    line-height: 1.55;
}

.cf-field__select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230f1c3f'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 20px 20px;
    padding-right: 44px;
    cursor: pointer;
}

/* --- Honeypot ------------------------------------------------------------ */
.cf-contact__hp {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* --- Согласие (checkbox) ------------------------------------------------- */
.cf-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    user-select: none;
}

.cf-consent input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.cf-consent__box {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: 2px solid var(--cf-border);
    border-radius: 6px;
    background: var(--cf-bg-soft);
    transition: all var(--cf-transition);
    position: relative;
    margin-top: 2px;
}

.cf-consent:hover .cf-consent__box {
    border-color: var(--cf-blue-600);
}

.cf-consent input[type="checkbox"]:checked + .cf-consent__box {
    background: var(--cf-blue-600);
    border-color: var(--cf-blue-600);
}

.cf-consent input[type="checkbox"]:checked + .cf-consent__box::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 7px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
}

.cf-consent input[type="checkbox"]:focus-visible + .cf-consent__box {
    box-shadow: 0 0 0 4px rgba(64, 83, 212, 0.20);
}

.cf-consent__text {
    color: var(--cf-text-soft);
    font-size: 0.92rem;
    line-height: 1.5;
}

.cf-consent__text a {
    color: var(--cf-blue-600);
    text-decoration: underline;
    text-decoration-color: rgba(61, 88, 187, 0.40);
    text-underline-offset: 3px;
}

.cf-consent__text a:hover { color: var(--cf-blue-500); }

/* --- Кнопка отправки ----------------------------------------------------- */
.cf-contact__row--submit {
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: center;
}

.cf-contact__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--cf-blue-600);
    color: #fff;
    border: 0;
    border-radius: 10px;
    padding: 16px 28px;
    font-size: 1.02rem;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--cf-transition), transform var(--cf-transition), box-shadow var(--cf-transition);
    justify-self: start;
    font-family: var(--cf-font-sans);
}

.cf-contact__submit:hover {
    background: var(--cf-blue-500);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(61, 88, 187, 0.25);
}

.cf-contact__submit:active { transform: translateY(0); }

.cf-contact__submit:disabled,
.cf-contact__submit.is-loading {
    background: var(--cf-text-muted);
    cursor: wait;
    pointer-events: none;
}

.cf-contact__submit.is-loading .cf-contact__submit-text::after {
    content: '…';
    margin-left: 4px;
}

.cf-contact__submit svg { transition: transform var(--cf-transition); }
.cf-contact__submit:hover svg { transform: translateX(3px); }

/* --- Статус (успех / ошибка) -------------------------------------------- */
.cf-contact__status {
    font-size: 0.95rem;
    line-height: 1.5;
    padding: 0;
    color: var(--cf-text-soft);
}

.cf-contact__status:not(:empty) {
    padding: 14px 18px;
    border-radius: 10px;
}

.cf-contact__status.is-success {
    background: rgba(34, 197, 94, 0.10);
    border: 1px solid rgba(34, 197, 94, 0.30);
    color: #166534;
}

.cf-contact__status.is-error {
    background: rgba(231, 47, 45, 0.08);
    border: 1px solid rgba(231, 47, 45, 0.30);
    color: #991b1b;
}

@media (max-width: 575px) {
    .cf-contact__title { font-size: 1.4rem; }
    .cf-contact__submit { width: 100%; justify-content: center; }
}

/* =========================================================================
   СТРАНИЦЫ (О проекте / Редакция / Контакты / Конфиденциальность)
   ========================================================================= */
.cf-page { background: #fff; }

.cf-page-hero {
    padding: 34px 0 22px;
    background: linear-gradient(180deg, var(--cf-bg-soft) 0%, #fff 100%);
    border-bottom: 1px solid var(--cf-border);
}

body.page .cf-page-hero .cf-wide,
body.page .cf-page-body .cf-wide {
    max-width: 1060px;
}

.cf-page-hero .cf-breadcrumbs {
    color: var(--cf-text-muted);
    font-size: 0.92rem;
    margin-bottom: 14px;
}

.cf-page-hero .cf-breadcrumbs a { color: var(--cf-text-muted); }
.cf-page-hero .cf-breadcrumbs a:hover { color: var(--cf-blue-600); }
.cf-page-hero .cf-breadcrumbs .separator { margin: 0 6px; opacity: 0.5; }

.cf-page-hero__title {
    font-size: clamp(2rem, 3.4vw, 2.85rem) !important;
    line-height: 1.12 !important;
    color: var(--cf-blue-700) !important;
    letter-spacing: 0 !important;
    margin: 4px 0 14px !important;
    font-weight: 800 !important;
    font-family: var(--cf-font-sans) !important;
    max-width: 780px;
}

.cf-page-hero__excerpt {
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--cf-text-soft);
    margin: 0;
    max-width: 720px;
}

.cf-page-hero__media {
    margin: 28px 0 0;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 16px 36px rgba(15, 28, 63, 0.10);
}

.cf-page-hero__media img {
    width: 100%;
    height: auto;
    display: block;
}

/* --- Тело страницы ----------------------------------------------------- */
.cf-page-body { padding: 36px 0 72px; }

.cf-page-content,
body.page article.cf-page-content {
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
    font-family: var(--cf-font-sans) !important;
    font-size: 1.06rem;
    line-height: 1.68;
    color: #1c2030;
}

/* Типографика контента страниц — мягче статьи, но в одной системе */
.cf-page-content > * { margin-bottom: 1.12em; }

.cf-page-content > :where(p, h2, h3, h4, ul, ol, blockquote, hr) {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.cf-page-content > :where(.cf-contact, figure, .wp-block-image, .wp-block-table, .wp-block-columns, .wp-block-group, table) {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}

.cf-page-content p {
    margin: 0 auto 1.12em !important;
    color: #1c2030;
    text-align: left;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
}

.cf-page-content h2 {
    font-size: 1.54rem !important;
    color: var(--cf-blue-700) !important;
    font-weight: 800 !important;
    margin: 1.55em auto 0.55em !important;
    letter-spacing: 0 !important;
    line-height: 1.25;
}

.cf-page-content h3 {
    font-size: 1.22rem !important;
    color: var(--cf-blue-700) !important;
    font-weight: 700 !important;
    margin: 1.45em auto 0.48em !important;
    letter-spacing: 0 !important;
}

.cf-page-content h4 {
    font-size: 1.1rem !important;
    color: var(--cf-blue-700) !important;
    font-weight: 700 !important;
    margin: 1.35em auto 0.4em !important;
}

.cf-page-content ul,
.cf-page-content ol {
    padding-left: 1.4em;
    margin-top: 0;
    margin-bottom: 1.12em;
    box-sizing: border-box;
}

.cf-page-content li { margin-bottom: 0.5em; }
.cf-page-content ul > li::marker { color: var(--cf-blue-600); font-size: 1.05em; }

.cf-page-content a {
    color: var(--cf-blue-600);
    text-decoration: none;
    background-image: linear-gradient(transparent 86%, rgba(61, 88, 187, 0.30) 86%);
    background-size: 100% 100%;
    transition: background-image var(--cf-transition), color var(--cf-transition);
}

.cf-page-content a:hover {
    color: var(--cf-blue-500);
    background-image: linear-gradient(transparent 50%, rgba(61, 88, 187, 0.18) 50%);
}

.cf-page-content strong { color: var(--cf-blue-700); font-weight: 700; }

.cf-page-content blockquote {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    padding: 22px 28px 22px 62px;
    background: var(--cf-bg-soft);
    border-radius: 12px;
    border-left: 4px solid var(--cf-blue-600);
    font-family: var(--cf-font-serif);
    font-size: 1.15rem;
    color: var(--cf-blue-700);
    font-style: italic;
    position: relative;
}

.cf-page-content blockquote::before {
    content: '“';
    position: absolute;
    left: 14px;
    top: 4px;
    font-family: var(--cf-font-serif);
    font-size: 4rem;
    line-height: 1;
    color: var(--cf-blue-600);
    opacity: 0.30;
    font-weight: 700;
}

.cf-page-content blockquote p { margin: 0 0 0.5em; }
.cf-page-content blockquote p:last-child { margin-bottom: 0; }

.cf-page-content hr {
    border: none;
    height: 1px;
    background: rgba(15, 28, 63, 0.10);
    background-image: none;
    margin: 2.2em auto;
    max-width: 320px;
    opacity: 1;
}

.cf-page-content img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.cf-page-content table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 12px;
    overflow: hidden;
}

.cf-page-content th {
    text-align: left;
    padding: 12px 16px;
    background: var(--cf-bg-soft);
    color: var(--cf-blue-700);
    font-weight: 700;
    border-bottom: 2px solid var(--cf-border);
}

.cf-page-content td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--cf-border);
}

.cf-page-content tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 768px) {
    .cf-page-hero { padding: 28px 0 20px; }
    .cf-page-hero__excerpt { font-size: 1.05rem; }
    .cf-page-body { padding: 30px 0 58px; }
    .cf-page-content { font-size: 1.01rem; line-height: 1.64; }
    .cf-page-content h2 { font-size: 1.4rem !important; }
    .cf-page-content h3 { font-size: 1.18rem !important; }
}

@keyframes cf-slide-down {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Утилитарные ссылки только на десктопе. В мобильном — всё в бургере. */
@media (max-width: 991px) {
    .cf-util-link { display: none; }
    .cf-burger-panel__row { padding: 12px 0; }
}

@media (max-width: 768px) {
    .cf-site-header__row { min-height: 64px; gap: 10px; padding: 8px 0; }
    .cf-site-header__logo { height: 40px; }
    .cf-site-header__brand-text { font-size: 1.15rem; }
    .cf-site-header__brand-tagline { display: none; }   /* тег скрыт на мобиле */
    .cf-util-langs { height: 38px !important; padding: 3px; }
    .cf-util-lang { min-width: 32px; padding: 0 8px; font-size: 0.74rem; }
    .cf-search-btn,
    .cf-burger { width: 38px !important; height: 38px !important; border-radius: 10px; }
    .cf-search-btn svg { width: 18px; height: 18px; }
    .cf-burger__line { width: 18px; }
    .cf-burger-link { font-size: 0.95rem; padding: 8px 18px; }

    /* Hubs на мобиле — компактнее, бегущая строка отключена, обычный горизонтальный скролл */
    .cf-hubs__layout { padding: 6px 0; gap: 8px; }
    .cf-hubs__item { padding: 8px 12px; font-size: 0.92rem; }
    .cf-hubs__count { min-width: 20px; height: 20px; font-size: 0.7rem; }

    .cf-hubs__marquee {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -webkit-mask-image: none;
                mask-image: none;
    }
    .cf-hubs__marquee::-webkit-scrollbar { display: none; }
    .cf-hubs__track { animation: none; gap: 4px; }
}

@media (max-width: 480px) {
    .cf-site-header__row { min-height: 56px; }
    .cf-site-header__brand-text { display: none; }      /* только лого без бренда на узких */
}

@media (max-width: 480px) {
    .cf-site-header__brand-text { display: none; } /* На очень узких — только логотип */
}

/* Когда бургер открыт — заблокировать прокрутку body на маленьких экранах */
@media (max-width: 768px) {
    html.cf-burger-open { overflow: hidden; }
}

/* === СОЦ-ИКОНКИ В ШАПКЕ — видимые на белом фоне === */
.ast-header-social-1-wrap,
.ast-header-social-wrap {
    gap: 8px;
}

.ast-header-social-wrap .ast-builder-social-element,
.ast-builder-social-element.header-social-item {
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--cf-bg-soft) !important;
    color: var(--cf-blue-700) !important;
    border: 1px solid var(--cf-border) !important;
    transition: all var(--cf-transition) !important;
}

.ast-header-social-wrap .ast-builder-social-element:hover,
.ast-builder-social-element.header-social-item:hover {
    background: var(--cf-blue-600) !important;
    color: #fff !important;
    border-color: var(--cf-blue-600) !important;
    transform: translateY(-2px);
}

.ast-header-social-wrap .ast-builder-social-element svg,
.ast-builder-social-element.header-social-item svg,
.ast-header-social-wrap .ast-builder-social-element .ahfb-svg-iconset,
.ast-builder-social-element.header-social-item .ahfb-svg-iconset {
    width: 16px !important;
    height: 16px !important;
    fill: currentColor !important;
    color: inherit !important;
}

.ast-header-social-wrap .ast-builder-social-element svg path,
.ast-builder-social-element.header-social-item svg path {
    fill: currentColor !important;
}

/* Тоже самое для футера — но на тёмном они должны быть светлыми */
.site-footer .ast-builder-social-element.footer-social-item,
.site-footer .ast-footer-social-wrap .ast-builder-social-element {
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,0.10) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.18) !important;
    transition: all var(--cf-transition) !important;
}

.site-footer .ast-builder-social-element.footer-social-item:hover,
.site-footer .ast-footer-social-wrap .ast-builder-social-element:hover {
    background: var(--cf-blue-600) !important;
    border-color: var(--cf-blue-600) !important;
    transform: translateY(-2px);
}

.site-footer .ast-builder-social-element svg,
.site-footer .ast-builder-social-element svg path { fill: currentColor !important; color: inherit !important; }

/* Sticky shrink-эффект */
.ast-header-break-point .main-header-bar-wrap.float-header-active {
    box-shadow: 0 4px 16px rgba(15, 28, 63, 0.10);
}

.ast-header-break-point .main-header-bar-wrap.float-header-active .ast-primary-header-bar .ast-builder-grid-row {
    min-height: 64px !important;
}

/* =========================================================================
   2. ХАБЫ — горизонтальная навигация табами
   ========================================================================= */
.cf-hubs {
    background: #0c1639;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    padding: 0;
}

/* Внешний flex: «Все» слева (по краю логотипа) + бегущая строка до края бургера */
.cf-hubs__layout {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
}

/* Пин «Все» — обёртка для позиционирования выпадающего меню */
.cf-hubs__pin-wrap {
    position: relative;
    flex: 0 0 auto;
}

/* Сам пин — без левого паддинга, иконка/текст начинаются ровно с края контейнера */
.cf-hubs__pin {
    flex: 0 0 auto;
    padding-left: 0 !important;
    cursor: pointer;
    border: none;
    background: transparent;
    font: inherit;
    appearance: none;
    -webkit-appearance: none;
}
.cf-hubs__pin.is-active::after {   /* подчёркивание у активного «Все» — без левого отступа */
    left: 0 !important;
}

/* Шеврон рядом с «Все» — поворачивается при открытии */
.cf-hubs__chevron {
    display: inline-flex;
    align-items: center;
    margin-left: 2px;
    opacity: 0.75;
    transition: transform 200ms ease, opacity 200ms ease;
}
.cf-hubs__chevron svg { display: block; }
.cf-hubs__pin:hover .cf-hubs__chevron { opacity: 1; }
.cf-hubs__pin[aria-expanded="true"] {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.06);
}
.cf-hubs__pin[aria-expanded="true"] .cf-hubs__chevron {
    transform: rotate(180deg);
    opacity: 1;
}

/* Выпадающее меню — белая карточка под кнопкой, выровнена по левому краю «Все» */
.cf-hubs__menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 280px;
    max-width: calc(100vw - 32px);
    background: #ffffff;
    border-radius: 14px;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.45),
        0 4px 16px rgba(0, 0, 0, 0.25),
        0 0 0 1px rgba(15, 28, 63, 0.06);
    padding: 8px;
    z-index: 9999;
    animation: cf-hubs-menu-in 180ms ease;
    transform-origin: top left;
}
.cf-hubs__menu[hidden] { display: none; }

@keyframes cf-hubs-menu-in {
    from { opacity: 0; transform: translateY(-6px) scale(0.985); }
    to   { opacity: 1; transform: translateY(0)   scale(1);     }
}

.cf-hubs__menu-inner {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.cf-hubs__menu-item,
.cf-hubs__menu-item:link,
.cf-hubs__menu-item:visited {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    color: #0f1c3f !important;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    white-space: nowrap;
    transition: background 160ms ease, color 160ms ease;
}
.cf-hubs__menu-item .cf-hubs__icon {
    color: inherit;
    opacity: 0.65;
    flex-shrink: 0;
}
.cf-hubs__menu-item .cf-hubs__name { flex: 1 1 auto; }
.cf-hubs__menu-item:hover {
    background: rgba(61, 88, 187, 0.08);
    color: var(--cf-blue-600) !important;
}
.cf-hubs__menu-item:hover .cf-hubs__icon { opacity: 1; }
.cf-hubs__menu-item.is-active {
    background: rgba(61, 88, 187, 0.10);
    color: var(--cf-blue-600) !important;
}
.cf-hubs__menu-item.is-active .cf-hubs__icon { opacity: 1; }

/* Бейджи внутри выпадашки — светлая версия */
.cf-hubs__menu-item .cf-hubs__count {
    background: rgba(15, 28, 63, 0.08);
    color: rgba(15, 28, 63, 0.7);
}
.cf-hubs__menu-item:hover .cf-hubs__count,
.cf-hubs__menu-item.is-active .cf-hubs__count {
    background: var(--cf-blue-600);
    color: #ffffff;
}

@media (max-width: 768px) {
    .cf-hubs__menu { min-width: 240px; }
}

@media (prefers-reduced-motion: reduce) {
    .cf-hubs__menu { animation: none; }
    .cf-hubs__chevron { transition: none; }
}

/* Окно бегущей строки — занимает всё оставшееся место до правого края (бургер) */
.cf-hubs__marquee {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}

/* Сама лента — две одинаковые копии пунктов, плавная прокрутка на -50% */
.cf-hubs__track {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    will-change: transform;
    animation: cf-hubs-marquee 50s linear infinite;
}

.cf-hubs__marquee:hover .cf-hubs__track,
.cf-hubs__marquee:focus-within .cf-hubs__track {
    animation-play-state: paused;
}

@keyframes cf-hubs-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .cf-hubs__track { animation: none; }
}

.cf-hubs__item,
.cf-hubs__item:link,
.cf-hubs__item:visited {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 16px;
    border-radius: 10px;
    color: rgba(255, 255, 255, 0.78) !important;
    font-size: 0.98rem;
    font-weight: 600;
    white-space: nowrap;
    transition: color var(--cf-transition), background var(--cf-transition);
    flex-shrink: 0;
    letter-spacing: -0.005em;
    text-decoration: none;
    position: relative;
}

.cf-hubs__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    opacity: 0.7;
    transition: opacity var(--cf-transition);
}

.cf-hubs__icon svg { display: block; }

.cf-hubs__item:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.04);
}

.cf-hubs__item:hover .cf-hubs__icon { opacity: 1; }

/* Активный пункт — белый текст + синее подчёркивание */
.cf-hubs__item.is-active,
.cf-hubs__item.is-active:link,
.cf-hubs__item.is-active:visited {
    color: #ffffff !important;
    background: transparent !important;
    box-shadow: none;
}

.cf-hubs__item.is-active .cf-hubs__icon { opacity: 1; color: var(--cf-blue-500); }

/* Подчёркивающая линия — синий акцент #3d58bb */
.cf-hubs__item.is-active::after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: -2px;
    height: 3px;
    background: var(--cf-blue-600);     /* #3d58bb */
    border-radius: 3px 3px 0 0;
}

/* Круглые бейджи со счётчиками — premium style */
.cf-hubs__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;             /* идеальный круг/пилюля */
    background: rgba(255, 255, 255, 0.10);
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    box-sizing: border-box;
}

.cf-hubs__item:hover .cf-hubs__count {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}

.cf-hubs__item.is-active .cf-hubs__count {
    background: var(--cf-blue-600);    /* фирменный синий бейдж у активного */
    color: #ffffff;
}

/* =========================================================================
   3. ПОЛОСА «СРОЧНО»
   ========================================================================= */
.cf-breaking-wrap {
    padding-top: 20px;
}

/* =========================================================================
   3B. HERO «Главное сегодня» — 1 крупный лид + 3 малых
   ========================================================================= */
.cf-hero2 {
    padding: 20px 0 8px;
}

.cf-hero2__head { margin-bottom: 16px; }

.cf-hero2__heading {
    margin: 0 0 6px;
    font-size: clamp(1.4rem, 2.2vw, 1.75rem);
    color: var(--cf-blue-700);
    letter-spacing: -0.02em;
}

.cf-hero2__sub {
    margin: 0;
    color: var(--cf-text-muted);
    font-size: 0.98rem;
}

.cf-hero2__grid {
    display: grid;
    grid-template-columns: 1.8fr 1fr;     /* левая колонка больше — меньше пустоты справа */
    gap: 20px;                             /* меньше зазор */
    align-items: stretch;
}

.cf-hero2__lead {
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 16px;
    overflow: hidden;
    transition: box-shadow var(--cf-transition), border-color var(--cf-transition), transform var(--cf-transition);
    display: flex;
    flex-direction: column;
}

.cf-hero2__lead:hover {
    box-shadow: 0 16px 32px rgba(15, 28, 63, 0.10);
    border-color: rgba(61, 88, 187, 0.30);
    transform: translateY(-2px);
}

.cf-hero2__lead-media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--cf-bg-soft);
}

.cf-hero2__lead-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cf-hero2__lead:hover .cf-hero2__lead-media img { transform: scale(1.04); }

.cf-hero2__lead-body {
    padding: 18px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.cf-hero2__lead-title {
    margin: 4px 0 0;
    font-size: clamp(1.55rem, 2.6vw, 2.1rem);
    line-height: 1.2;
    color: var(--cf-blue-700);
    letter-spacing: -0.02em;
    font-weight: 800;
}

.cf-hero2__lead-title a { color: inherit; }
.cf-hero2__lead-title a:hover { color: var(--cf-blue-600); }

.cf-hero2__lead-excerpt {
    margin: 0;
    color: var(--cf-text-soft);
    font-size: 1.02rem;
    line-height: 1.55;
}

.cf-hero2__rail {
    display: grid;
    gap: 0;
    align-content: stretch;
    grid-template-rows: repeat(5, 1fr);   /* 5 равных по высоте — заполняют всю колонку лида */
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 12px;
    overflow: hidden;
}

.cf-hero2__small {
    background: transparent;
    border: 0;
    border-radius: 0;
    display: grid;
    grid-template-columns: 86px 1fr;       /* квадратное превью 86×86 */
    column-gap: 14px;
    align-items: center;
    padding: 14px;
    min-height: 0;
    transition: background var(--cf-transition);
    position: relative;
}

/* Если у поста нет картинки — карточка занимает всю ширину без зарезервированной колонки */
.cf-hero2__small:not(:has(.cf-hero2__small-media)) {
    grid-template-columns: 1fr;
}

.cf-hero2__small + .cf-hero2__small {
    border-top: 1px solid var(--cf-border);  /* разделитель только между, не сверху первой */
}

.cf-hero2__small:hover {
    background: rgba(61, 88, 187, 0.04);
}

.cf-hero2__small-media {
    overflow: hidden;
    width: 86px;
    height: 86px;
    aspect-ratio: 1 / 1;                    /* строгий КВАДРАТ */
    border-radius: 10px;
    background: var(--cf-bg-soft);
    flex-shrink: 0;
}

.cf-hero2__small-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 600ms ease;
}

.cf-hero2__small:hover .cf-hero2__small-media img { transform: scale(1.06); }

.cf-hero2__small-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
    min-width: 0;
}

.cf-hero2__small-title {
    margin: 2px 0;
    font-size: 0.95rem;
    line-height: 1.3;
    color: var(--cf-blue-700);
    font-weight: 700;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cf-hero2__small-title a { color: inherit; }
.cf-hero2__small-title a:hover { color: var(--cf-blue-600); }

@media (max-width: 991px) {
    .cf-hero2__grid { grid-template-columns: 1fr; }
    .cf-hero2__lead-title { font-size: 1.55rem; }
}

@media (max-width: 575px) {
    .cf-hero2__small { grid-template-columns: 90px 1fr; }
    .cf-hero2__small-title { font-size: 0.95rem; }
}

/* =========================================================================
   3C. SECTION BLOCKS на главной (рубрики)
   ========================================================================= */
.cf-block { margin: 36px 0; }
.cf-block:first-of-type { margin-top: 8px; }

.cf-block__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--cf-blue-700);
}

.cf-block__title {
    margin: 0;
    font-size: 1.55rem;
    letter-spacing: -0.015em;
}

.cf-block__title a {
    color: var(--cf-blue-700);
}

.cf-block__title a:hover {
    color: var(--cf-blue-600);
}

.cf-block__more {
    color: var(--cf-blue-600);
    font-size: 0.92rem;
    font-weight: 600;
    white-space: nowrap;
}

.cf-block__more:hover { color: var(--cf-blue-500); text-decoration: underline; }

.cf-block__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.cf-tile {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow var(--cf-transition), border-color var(--cf-transition);
}

.cf-tile:hover {
    box-shadow: 0 10px 22px rgba(15, 28, 63, 0.08);
    border-color: rgba(61, 88, 187, 0.25);
}

.cf-tile__media {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--cf-bg-soft);
}

.cf-tile__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 600ms ease;
}

.cf-tile:hover .cf-tile__media img { transform: scale(1.05); }

.cf-tile__body {
    padding: 12px 14px 14px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.cf-tile__title {
    margin: 2px 0 0;
    font-size: 1.02rem;
    line-height: 1.3;
    color: var(--cf-blue-700);
    font-weight: 700;
}

.cf-tile__title a { color: inherit; }
.cf-tile__title a:hover { color: var(--cf-blue-600); }

.cf-tile__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--cf-text-muted);
    margin-top: auto;
}

@media (max-width: 768px) {
    .cf-block__grid { grid-template-columns: 1fr; }
    .cf-tile { grid-template-columns: 110px 1fr; }
}

/* =========================================================================
   3D. Shell на главной (main + side)
   ========================================================================= */
.cf-home .cf-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    padding: 12px 0 56px;
    align-items: start;
}

.cf-shell__main { min-width: 0; }

.cf-shell__side {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 100px;
    align-self: start;
}

@media (max-width: 1180px) {
    .cf-home .cf-shell { grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; }
}

@media (max-width: 991px) {
    .cf-home .cf-shell { grid-template-columns: 1fr; gap: 28px; }
    .cf-shell__side { position: static; }
}

/* =========================================================================
   4. SHELL — основной двухколоночный layout
   ========================================================================= */
.cf-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 40px;
    padding: 28px 0 80px;
    align-items: start;
}

@media (max-width: 1180px) {
    .cf-shell { grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; }
}

@media (max-width: 991px) {
    .cf-shell { grid-template-columns: 1fr; gap: 28px; padding-bottom: 60px; }
}

/* =========================================================================
   5. ЛЕНТА .cf-feed
   ========================================================================= */
.cf-feed { display: flex; flex-direction: column; gap: 20px; }

.cf-post {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 28px;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 16px;
    padding: 22px;
    transition: box-shadow var(--cf-transition), border-color var(--cf-transition), transform var(--cf-transition);
}

.cf-post:hover {
    box-shadow: 0 16px 32px rgba(15, 28, 63, 0.10);
    border-color: rgba(61, 88, 187, 0.35);
    transform: translateY(-2px);
}

.cf-post__media {
    display: block;
    overflow: hidden;
    border-radius: 12px;
    aspect-ratio: 4 / 3;
    background: var(--cf-bg-soft);
}

.cf-post__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cf-post:hover .cf-post__media img { transform: scale(1.06); }

.cf-post__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    justify-content: center;
}

.cf-post__title {
    font-size: 1.55rem !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    font-weight: 700;
    color: var(--cf-blue-700);
    letter-spacing: -0.015em;
}

.cf-post__title a { color: inherit; }
.cf-post__title a:hover { color: var(--cf-blue-600); }

.cf-post__excerpt {
    margin: 0;
    color: var(--cf-text-soft);
    font-size: 1.05rem;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cf-post__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.92rem;
    color: var(--cf-text-muted);
    margin-top: auto;
    padding-top: 6px;
}

.cf-post__author { color: var(--cf-blue-700); font-weight: 600; }
.cf-post__dot { opacity: 0.5; }

/* LEAD карточка — большая, картинка сверху во всю ширину */
.cf-post--lead {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    overflow: hidden;
}

.cf-post--lead .cf-post__media {
    border-radius: 16px 16px 0 0;
    aspect-ratio: 16 / 8;
}

.cf-post--lead .cf-post__body {
    padding: 28px 32px 32px;
    gap: 14px;
}

.cf-post--lead .cf-post__title {
    font-size: 2.2rem !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em;
}

.cf-post--lead .cf-post__excerpt {
    font-size: 1.15rem;
    -webkit-line-clamp: 4;
}

/* HUB-плашка */
.cf-hub-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--cf-blue-600);
    background: rgba(61, 88, 187, 0.10);
    padding: 5px 11px;
    border-radius: 5px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    align-self: flex-start;
    transition: all var(--cf-transition);
}

.cf-hub-pill:hover,
.cf-hub-pill:focus-visible,
a.cf-hub-pill:hover,
a.cf-hub-pill:focus-visible {
    background: var(--cf-blue-600) !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

.cf-feed__more {
    text-align: center;
    padding: 20px 0;
}

.cf-feed__more .cf-btn {
    padding: 14px 32px;
    font-size: 1rem;
}

@media (max-width: 768px) {
    .cf-post { grid-template-columns: 1fr; gap: 14px; padding: 14px; }
    .cf-post__media { aspect-ratio: 16 / 9; }
    .cf-post__title { font-size: 1.25rem !important; }
    .cf-post__excerpt { font-size: 0.98rem; -webkit-line-clamp: 2; }
    .cf-post--lead .cf-post__title { font-size: 1.55rem !important; }
    .cf-post--lead .cf-post__body { padding: 20px 20px 24px; }
    .cf-post--lead .cf-post__excerpt { font-size: 1.02rem; }
}

/* =========================================================================
   6. САЙДБАР — премиальный редизайн
   ========================================================================= */
.cf-side {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: sticky;
    top: 100px;
    align-self: start;
}

@media (max-width: 991px) {
    .cf-side { position: static; top: auto; }
}

/* Карточка виджета — больше воздуха, мягкая тень, тонкий синий акцент сверху */
.cf-widget {
    background: #fff;
    border: 1px solid rgba(15, 28, 63, 0.06);
    border-radius: 18px;
    padding: 26px 26px 22px;
    position: relative;
    box-shadow: 0 2px 14px rgba(15, 28, 63, 0.04);
    transition: box-shadow 220ms ease;
}

.cf-widget:hover {
    box-shadow: 0 8px 28px rgba(15, 28, 63, 0.08);
}

/* Заголовок виджета — крупнее, тёмно-синий, синий акцент-палочка слева */
.cf-widget__title {
    margin: 0 0 18px;
    font-size: 1.02rem;
    text-transform: none;
    letter-spacing: -0.01em;
    color: var(--cf-blue-700);
    font-weight: 800;
    padding: 0 0 14px 14px;
    border-bottom: 1px solid rgba(15, 28, 63, 0.08);
    position: relative;
    line-height: 1.25;
}

.cf-widget__title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 4px;
    height: 22px;
    background: var(--cf-blue-600);
    border-radius: 2px;
}

.cf-widget__text { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--cf-text-soft); }
.cf-widget__link {
    display: inline-block;
    margin-top: 12px;
    font-weight: 600;
    color: var(--cf-blue-600);
    font-size: 0.95rem;
}

/* Популярное — нумерованный список с круглыми синими бейджами */
.cf-popular {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: cf-pop;
}

.cf-popular__item {
    display: grid;
    grid-template-columns: 42px 1fr;
    column-gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(15, 28, 63, 0.06);
    align-items: start;
    counter-increment: cf-pop;
}

.cf-popular__item:last-child { border-bottom: 0; padding-bottom: 0; }
.cf-popular__item:first-child { padding-top: 4px; }

/* Круглый синий бейдж с номером */
.cf-popular__num {
    grid-row: 1 / 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--cf-blue-600) 0%, var(--cf-blue-500) 100%);
    color: #ffffff;
    font-family: var(--cf-font-sans);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(61, 88, 187, 0.30);
    flex-shrink: 0;
}

/* Первые 3 — крупнее и насыщеннее */
.cf-popular__item:nth-child(1) .cf-popular__num { background: linear-gradient(135deg, #e72f2d 0%, #ff5e44 100%); box-shadow: 0 3px 10px rgba(231, 47, 45, 0.30); }
.cf-popular__item:nth-child(2) .cf-popular__num { background: linear-gradient(135deg, #3d58bb 0%, #5570d8 100%); }
.cf-popular__item:nth-child(3) .cf-popular__num { background: linear-gradient(135deg, #4053d4 0%, #6c80e8 100%); }

.cf-popular__title {
    color: var(--cf-blue-700);
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.38;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 180ms ease;
}

.cf-popular__title:hover { color: var(--cf-blue-600); }

.cf-popular__date {
    font-size: 0.78rem;
    color: var(--cf-text-muted);
    margin-top: 6px;
    font-weight: 500;
}

.cf-widget--telegram { padding: 0; border: none; }

.cf-tg-card {
    background: linear-gradient(135deg, #3d58bb 0%, #4053d4 100%);
    color: #fff;
    border-radius: 16px;
    padding: 26px 24px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.cf-tg-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/ornament-divider.svg');
    background-repeat: repeat;
    background-size: 240px 24px;
    opacity: 0.12;
    pointer-events: none;
}

.cf-tg-card > * { position: relative; }

.cf-tg-card__icon { margin: 0 auto 10px; display: block; }

.cf-tg-card h3 {
    margin: 0 0 10px;
    font-size: 1.1rem;
    color: #fff;
    font-weight: 700;
}

.cf-tg-card p {
    margin: 0 0 18px;
    font-size: 0.95rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.92);
}

.cf-btn--white {
    background: #fff;
    color: var(--cf-blue-700);
    border-color: #fff;
    font-weight: 700;
}

.cf-btn--white:hover {
    background: var(--cf-blue-700);
    color: #fff;
    border-color: var(--cf-blue-700);
}

.cf-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cf-cloud__item {
    display: inline-block;
    padding: 6px 11px;
    border-radius: 6px;
    background: var(--cf-bg-soft);
    color: var(--cf-blue-700);
    font-size: 0.86rem;
    transition: all var(--cf-transition);
}

.cf-cloud__item:hover { background: var(--cf-blue-600); color: #fff; }

/* =========================================================================
   7. ARCHIVE / CATEGORY hero
   ========================================================================= */
.cf-archive-hero {
    background: linear-gradient(135deg, var(--cf-blue-700) 0%, var(--cf-blue-600) 100%);
    color: #fff;
    padding: 56px 0 48px;
    position: relative;
    overflow: hidden;
}

.cf-archive-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/ornament-divider.svg');
    background-repeat: repeat;
    background-size: 240px 24px;
    opacity: 0.10;
    pointer-events: none;
}

.cf-archive-hero .cf-wide { position: relative; }

.cf-archive-hero__eyebrow {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.82rem;
    font-weight: 700;
    color: rgba(255,255,255,0.75);
    margin-bottom: 10px;
}

.cf-archive-hero__title {
    font-size: clamp(2rem, 4.5vw, 3rem);
    color: #fff;
    margin: 0 0 12px;
    letter-spacing: -0.025em;
    font-weight: 800;
}

.cf-archive-hero__desc {
    max-width: 800px;
    font-size: 1.1rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.88);
    margin-bottom: 10px;
}

.cf-archive-hero__count {
    color: rgba(255,255,255,0.7);
    font-size: 0.95rem;
    margin: 0;
    font-weight: 500;
}

.cf-pagination {
    margin: 44px 0 0;
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}

.cf-pagination a,
.cf-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid var(--cf-border);
    background: #fff;
    color: var(--cf-blue-700);
    font-weight: 600;
    font-size: 0.95rem;
    transition: all var(--cf-transition);
}

.cf-pagination a:hover { background: var(--cf-blue-600); color: #fff; border-color: var(--cf-blue-600); }
.cf-pagination .current { background: var(--cf-blue-700); color: #fff; border-color: var(--cf-blue-700); }

.cf-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--cf-text-muted);
    font-size: 1.1rem;
}

/* =========================================================================
   8. SINGLE POST — широкий layout, всё выровнено по ширине изображения
   ========================================================================= */
.cf-single { background: #fff; }

/* --- HERO внутри колонки (на всю ширину колонки = ширину изображения) ---- */
.cf-single-hero {
    padding: 28px 0 24px;
    background: #fff;
    border-bottom: 1px solid var(--cf-border);
    margin-bottom: 28px;
}

.cf-breadcrumbs { color: var(--cf-text-muted); font-size: 0.92rem; margin-bottom: 14px; }
.cf-breadcrumbs a { color: var(--cf-text-muted); }
.cf-breadcrumbs a:hover { color: var(--cf-blue-600); }
.cf-breadcrumbs .separator { margin: 0 6px; opacity: 0.5; }

.cf-hub-pill--lg {
    font-size: 0.85rem;
    padding: 7px 14px;
}

.cf-single-hero__title {
    font-size: clamp(2.1rem, 4.4vw, 3.2rem) !important;
    line-height: 1.12 !important;
    color: var(--cf-blue-700);
    letter-spacing: -0.025em;
    margin: 16px 0 20px !important;
    font-weight: 800;
}

.cf-single-hero__excerpt {
    font-size: 1.32rem;
    line-height: 1.5;
    color: var(--cf-text-soft);
    margin: 0 0 26px;
    font-weight: 400;
}

.cf-single-hero__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    padding-top: 18px;
    border-top: 1px solid var(--cf-border);
}

.cf-single-hero__meta {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--cf-text-muted);
    font-size: 0.95rem;
    flex-wrap: wrap;
}

.cf-author__avatar { border-radius: 50%; width: 44px; height: 44px; }
.cf-meta__author { display: flex; flex-direction: column; line-height: 1.2; }
.cf-meta__by { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.7; }
.cf-meta__author a { color: var(--cf-blue-700); font-weight: 700; font-size: 1rem; }
.cf-meta__divider { width: 4px; height: 4px; border-radius: 50%; background: var(--cf-border); display: inline-block; }
.cf-meta__date, .cf-meta__read { font-weight: 500; }
.cf-meta__read { color: var(--cf-blue-700); font-weight: 600; }

/* --- INLINE SHARE (горизонтальный, прям в шапке статьи) ------------------ */
.cf-share-inline {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}

.cf-share-inline__item {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--cf-border);
    background: #fff;
    color: var(--cf-blue-700);
    transition: all var(--cf-transition);
    cursor: pointer;
}

.cf-share-inline__item:hover {
    background: #ffffff;
    color: var(--cf-blue-600);
    border-color: var(--cf-blue-600);
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(61, 88, 187, 0.20);
}
.cf-share-inline__item:hover svg {
    transform: scale(1.18);
}
.cf-share-inline__item svg {
    transition: transform 220ms ease;
}

.cf-share-inline--lg .cf-share-inline__item {
    width: 48px;
    height: 48px;
}

/* --- SHELL — main column + sidebar --------------------------------------- */
.cf-single-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 460px;
    gap: 56px;
    padding: 32px 0 56px;
    align-items: start;
}

@media (max-width: 1280px) {
    .cf-single-shell { grid-template-columns: minmax(0, 1fr) 400px; gap: 44px; }
}

@media (max-width: 1080px) {
    .cf-single-shell { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
}

@media (max-width: 991px) {
    .cf-single-shell { grid-template-columns: 1fr; gap: 32px; padding-bottom: 40px; }
}

.cf-single-col {
    min-width: 0;
}

/* Featured image — на всю ширину колонки, с hover-zoom */
.cf-single-featured {
    margin: 0 0 32px;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 16px 36px rgba(15, 28, 63, 0.10);
    position: relative;
}

.cf-single-featured img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
    will-change: transform;
}

.cf-single-featured:hover img,
.cf-single-featured:focus-within img {
    transform: scale(1.05);
}

.cf-single-featured__caption {
    margin: 10px 4px 0;
    color: var(--cf-text-muted);
    font-size: 0.92rem;
    font-style: italic;
}

/* =========================================================================
   ПРЕМИАЛЬНАЯ ТИПОГРАФИКА СТАТЬИ
   Высокая специфичность + !important на ключевых свойствах —
   чтобы Astra и плагины НЕ ПЕРЕБИЛИ.
   ========================================================================= */

/* --- Container на всю ширину колонки (= ширине изображения) ------------- */
body.single .cf-single-content,
body.single article.cf-single-content,
body.single .cf-single article.cf-single-content,
body.single .cf-single article.ast-article-single,
body.single .cf-single .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-family: var(--cf-font-sans) !important;
    font-size: 1.2rem !important;
    line-height: 1.55 !important;       /* плотный межстрочный, как у Tengri News */
    color: #1c2030 !important;
    letter-spacing: -0.003em !important;
    font-weight: 400 !important;
}

/* Прямые дети — снимаем любые внешние max-width */
.cf-single-content > p,
.cf-single-content > h2,
.cf-single-content > h3,
.cf-single-content > h4,
.cf-single-content > h5,
.cf-single-content > h6,
.cf-single-content > ul,
.cf-single-content > ol,
.cf-single-content > blockquote,
.cf-single-content > figure,
.cf-single-content > div,
.cf-single-content > pre,
.cf-single-content > hr,
.cf-single-content > .wp-block-image,
.cf-single-content > .wp-block-quote,
.cf-single-content > .wp-block-pullquote {
    max-width: none !important;
    width: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.single .cf-single-content > * { margin-bottom: 0.9em; }

/* =========================================================================
   ГАРАНТИЯ ШИРИНЫ: статья = ширина featured-картинки (= ширина колонки)
   Высокая специфичность через html body.single .cf-single-col > ...
   ========================================================================= */
html body.single .cf-single-col > .cf-single-content,
html body.single .cf-single-col > article.cf-single-content,
html body.single .cf-single-col > article.ast-article-single {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
}

/* Прямые дети статьи — растягиваем на 100% колонки */
html body.single .cf-single-col > .cf-single-content > *,
html body.single .cf-single-col > article.cf-single-content > *,
html body.single article.cf-single-content > p,
html body.single article.cf-single-content > h1,
html body.single article.cf-single-content > h2,
html body.single article.cf-single-content > h3,
html body.single article.cf-single-content > h4,
html body.single article.cf-single-content > h5,
html body.single article.cf-single-content > h6,
html body.single article.cf-single-content > ul,
html body.single article.cf-single-content > ol,
html body.single article.cf-single-content > figure,
html body.single article.cf-single-content > blockquote,
html body.single article.cf-single-content > div,
html body.single article.cf-single-content > .wp-block-image,
html body.single article.cf-single-content > .wp-block-heading {
    max-width: 100% !important;
    width: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Картинки внутри статьи — на всю ширину колонки */
html body.single article.cf-single-content figure.wp-block-image,
html body.single article.cf-single-content figure.wp-block-image img {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* --- ПАРАГРАФЫ — плотный ритм + выравнивание по ширине (justify) -------- */
body.single .cf-single-content p {
    margin: 0 0 0.9em !important;
    text-rendering: optimizeLegibility;
    word-spacing: 0.01em;
    font-size: inherit !important;
    line-height: inherit !important;
    color: #1c2030 !important;
    font-family: var(--cf-font-sans) !important;
    text-align: justify;
    text-align-last: left;          /* последняя строка — слева, чтобы не растягивалась */
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
}

/* Первый параграф — вводка: чуть крупнее, плотнее */
body.single .cf-single-content > p:first-of-type {
    font-size: 1.3rem !important;
    line-height: 1.5 !important;
    color: #0f1c3f !important;
    font-weight: 500 !important;
    letter-spacing: -0.006em !important;
    margin-bottom: 1.1em !important;
    text-align: justify;
    text-align-last: left;
}

/* Drop-cap (буквица) на первом параграфе */
body.single .cf-single-content > p:first-of-type::first-letter {
    font-family: var(--cf-font-serif) !important;
    font-size: 4.5em !important;
    float: left !important;
    line-height: 0.88 !important;
    padding: 8px 16px 0 0 !important;
    color: var(--cf-blue-600) !important;
    font-weight: 700 !important;
    letter-spacing: -0.04em !important;
}

/* --- ЗАГОЛОВКИ — плотный ритм, меньше воздуха ---------------------------- */
body.single .cf-single-content h2 {
    font-size: 1.85rem !important;
    margin: 1.5em 0 0.5em !important;
    color: var(--cf-blue-700) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.18 !important;
    padding-top: 0 !important;
    background: none !important;
    text-transform: none !important;
}

/* Тонкая синяя черта-акцент над H2 — компактнее */
body.single .cf-single-content h2::before {
    content: '' !important;
    display: block !important;
    width: 40px !important;
    height: 3px !important;
    background: var(--cf-blue-600) !important;
    border-radius: 2px !important;
    margin-bottom: 12px !important;
}

body.single .cf-single-content h3 {
    font-size: 1.4rem !important;
    margin: 1.3em 0 0.4em !important;
    color: var(--cf-blue-700) !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em !important;
    line-height: 1.25 !important;
}

body.single .cf-single-content h4 {
    font-size: 1.18rem !important;
    margin: 1.2em 0 0.35em !important;
    color: var(--cf-blue-700) !important;
    font-weight: 700 !important;
    letter-spacing: -0.005em !important;
}

body.single .cf-single-content h5,
body.single .cf-single-content h6 {
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--cf-blue-600) !important;
    margin: 1.2em 0 0.4em !important;
    font-weight: 700 !important;
}

/* --- АКЦЕНТЫ В ТЕКСТЕ --------------------------------------------------- */
.cf-single-content strong,
.cf-single-content b {
    color: var(--cf-blue-700);
    font-weight: 700;
}

.cf-single-content em,
.cf-single-content i {
    font-style: italic;
    color: #2a3148;
}

.cf-single-content mark {
    background: linear-gradient(transparent 62%, rgba(231, 47, 45, 0.22) 62%);
    color: inherit;
    padding: 0 2px;
    border-radius: 2px;
}

.cf-single-content small {
    font-size: 0.88rem;
    color: var(--cf-text-muted);
}

.cf-single-content sup,
.cf-single-content sub {
    font-size: 0.72em;
    line-height: 0;
    vertical-align: baseline;
    position: relative;
}
.cf-single-content sup { top: -0.5em; }
.cf-single-content sub { bottom: -0.3em; }

/* --- СПИСКИ — плотный ритм ---------------------------------------------- */
.cf-single-content ul,
.cf-single-content ol {
    padding-left: 1.4em;
    margin: 0 0 1em;
}

.cf-single-content li {
    margin-bottom: 0.35em;
    padding-left: 6px;
}
.cf-single-content li:last-child { margin-bottom: 0; }

/* Вложенные списки — компактнее */
.cf-single-content li ul,
.cf-single-content li ol {
    margin-top: 0.6em;
    margin-bottom: 0.4em;
}

/* Кастомный буллет — квадрат премиально */
.cf-single-content ul > li::marker {
    color: var(--cf-blue-600);
    font-size: 1.1em;
    content: '▪  ';
}

/* Нумерованный список — кружок с цифрой */
.cf-single-content ol {
    list-style: none;
    counter-reset: cflist;
    padding-left: 0;
}

.cf-single-content ol > li {
    counter-increment: cflist;
    position: relative;
    padding-left: 44px;
    min-height: 30px;
}

.cf-single-content ol > li::before {
    content: counter(cflist);
    position: absolute;
    left: 0;
    top: 1px;
    width: 30px;
    height: 30px;
    background: var(--cf-blue-600);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    font-feature-settings: 'tnum';
}

/* Изображения в контенте — обёртка имеет hover-zoom */
.cf-single-content figure,
.cf-single-content .wp-block-image,
.cf-single-content figure.wp-block-image {
    overflow: hidden;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(15, 28, 63, 0.08);
    margin: 1.6em 0;
    background: transparent;
}

.cf-single-content figure > img,
.cf-single-content .wp-block-image > img,
.cf-single-content figure > a > img,
.cf-single-content .wp-block-image > a > img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
    will-change: transform;
}

.cf-single-content figure:hover > img,
.cf-single-content .wp-block-image:hover > img,
.cf-single-content figure:hover > a > img,
.cf-single-content .wp-block-image:hover > a > img,
.cf-single-content figure:focus-within > img,
.cf-single-content .wp-block-image:focus-within > img {
    transform: scale(1.05);
}

/* Картинки БЕЗ figure-обёртки (классический редактор) — масштабируем напрямую */
.cf-single-content > p > img,
.cf-single-content > img {
    border-radius: 14px;
    height: auto;
    max-width: 100%;
    box-shadow: 0 8px 24px rgba(15, 28, 63, 0.08);
    transition: transform 500ms ease, box-shadow 500ms ease;
    will-change: transform;
}

.cf-single-content > p > img:hover,
.cf-single-content > img:hover {
    transform: scale(1.03);
    box-shadow: 0 16px 40px rgba(15, 28, 63, 0.16);
}

/* Поскольку фигура имеет overflow:hidden и border-radius, у figcaption убираем
   собственный radius наверху, чтобы он сливался с картинкой в единую карточку */
.cf-single-content figure figcaption,
.cf-single-content .wp-block-image figcaption {
    margin-top: 0 !important;
    border-radius: 0 !important;
}

/* =========================================================================
   8B. HOVER ИКОНКА «УВЕЛИЧИТЬ» на изображениях в статьях
   ========================================================================= */
.cf-single-featured,
.cf-single-content figure,
.cf-single-content .wp-block-image {
    position: relative;
}

.cf-single-featured::after,
.cf-single-content figure::after,
.cf-single-content .wp-block-image::after {
    content: '';
    position: absolute;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: rgba(15, 28, 63, 0.85);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 10-.7.7l.27.28v.79l5 5 1.5-1.5-5-5zm-6 0a4.5 4.5 0 110-9 4.5 4.5 0 010 9z'/><path d='M7 9.5h5V11H7zm2.25-1.75v3.5h1.5v-3.5z'/></svg>");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 22px 22px;
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 250ms ease, transform 250ms ease;
    pointer-events: none;
    z-index: 2;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(6px);
}

.cf-single-featured:hover::after,
.cf-single-content figure:hover::after,
.cf-single-content .wp-block-image:hover::after {
    opacity: 1;
    transform: scale(1);
}

/* Картинки без figure — иконку на них не повесить (нет обёртки),
   но cursor: zoom-in уже подсказывает кликабельность */

/* =========================================================================
   8C. ЛАЙТБОКС
   ========================================================================= */
.cf-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
}

.cf-lightbox.is-open { display: flex; }

.cf-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 12, 28, 0.94);
    backdrop-filter: blur(8px);
    animation: cf-lb-fade 200ms ease;
}

.cf-lightbox__stage {
    position: relative;
    margin: 0;
    z-index: 1;
    max-width: 92vw;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    animation: cf-lb-zoom-in 250ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cf-lightbox__img {
    max-width: 92vw;
    max-height: 80vh;
    width: auto;
    height: auto;
    object-fit: contain;
    cursor: zoom-in;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
    background: #fff;
    transition: transform 250ms ease;
}

.cf-lightbox__img.is-zoomed {
    max-width: none;
    max-height: none;
    cursor: zoom-out;
    transform: scale(1);
}

.cf-lightbox__caption {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.98rem;
    line-height: 1.55;
    margin: 0;
    text-align: center;
    max-width: 720px;
    padding: 0 24px;
    font-style: italic;
}

.cf-lightbox__close,
.cf-lightbox__prev,
.cf-lightbox__next,
.cf-lightbox__zoom {
    position: absolute;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.20);
    color: #fff;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 2;
    transition: background var(--cf-transition), border-color var(--cf-transition), transform var(--cf-transition);
    backdrop-filter: blur(12px);
}

.cf-lightbox__close:hover,
.cf-lightbox__prev:hover,
.cf-lightbox__next:hover,
.cf-lightbox__zoom:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.45);
}

.cf-lightbox__close { top: 22px; right: 22px; }
.cf-lightbox__zoom { top: 22px; right: 86px; }

.cf-lightbox__prev,
.cf-lightbox__next {
    top: 50%;
    margin-top: -24px;
    width: 56px;
    height: 56px;
}

.cf-lightbox__prev { left: 22px; }
.cf-lightbox__next { right: 22px; }

.cf-lightbox__counter {
    position: absolute;
    top: 26px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 7px 16px;
    border-radius: 999px;
    z-index: 2;
    backdrop-filter: blur(8px);
}

html.cf-lightbox-open { overflow: hidden; }

@keyframes cf-lb-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes cf-lb-zoom-in {
    from { opacity: 0; transform: scale(0.96); }
    to   { opacity: 1; transform: scale(1); }
}

@media (max-width: 768px) {
    .cf-lightbox__close { top: 14px; right: 14px; width: 42px; height: 42px; }
    .cf-lightbox__zoom { top: 14px; right: 66px; width: 42px; height: 42px; }
    .cf-lightbox__counter { top: 18px; padding: 6px 12px; font-size: 0.8rem; }
    .cf-lightbox__prev,
    .cf-lightbox__next {
        width: 44px; height: 44px;
        bottom: 80px; top: auto;
        margin-top: 0;
    }
    .cf-lightbox__prev { left: 16px; }
    .cf-lightbox__next { right: 16px; }
    .cf-lightbox__caption { font-size: 0.9rem; padding: 0 16px; }
    .cf-lightbox__img { max-height: 70vh; }
}

.cf-single-content figcaption,
.cf-single-content .wp-block-image figcaption,
.cf-single-content figure figcaption {
    text-align: center;
    color: var(--cf-text-muted);
    font-size: 0.95rem;
    font-style: italic;
    line-height: 1.55;
    margin-top: 14px !important;
    padding: 18px 28px !important;
    background: var(--cf-bg-soft);
    border-radius: 12px;
    border: none !important;
}

/* --- ЦИТАТЫ (blockquote) — премиально, с большой декоративной кавычкой --- */
body.single .cf-single-content blockquote,
body.single .cf-single-content .wp-block-quote {
    position: relative !important;
    margin: 2em 0 !important;
    padding: 28px 32px 28px 70px !important;
    background: linear-gradient(135deg, var(--cf-bg-soft) 0%, rgba(244, 246, 251, 0.5) 100%) !important;
    border-radius: 14px !important;
    border-left: 4px solid var(--cf-blue-600) !important;
    border-right: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    font-family: var(--cf-font-serif) !important;
    font-size: 1.25rem !important;
    line-height: 1.55 !important;
    color: var(--cf-blue-700) !important;
    font-style: italic !important;
    font-weight: 400 !important;
}

/* Большая декоративная кавычка */
body.single .cf-single-content blockquote::before,
body.single .cf-single-content .wp-block-quote::before {
    content: '“' !important;
    position: absolute !important;
    left: 14px !important;
    top: 0 !important;
    font-family: var(--cf-font-serif) !important;
    font-size: 5rem !important;
    line-height: 1 !important;
    color: var(--cf-blue-600) !important;
    opacity: 0.30 !important;
    font-style: normal !important;
    font-weight: 700 !important;
}

.cf-single-content blockquote p { margin: 0 0 0.6em; }
.cf-single-content blockquote p:last-child { margin-bottom: 0; }

.cf-single-content blockquote cite {
    display: block;
    margin-top: 12px;
    font-family: var(--cf-font-sans);
    font-style: normal;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cf-text-muted);
    letter-spacing: 0.02em;
}

.cf-single-content blockquote cite::before { content: '— '; }

/* Pull-quote (большие Gutenberg-цитаты) */
.cf-single-content .wp-block-pullquote {
    border-top: 3px solid var(--cf-blue-600);
    border-bottom: 3px solid var(--cf-blue-600);
    border-left: 0;
    background: transparent;
    padding: 32px 0;
    margin: 2.4em 0;
    text-align: center;
}

.cf-single-content .wp-block-pullquote::before { display: none; }

.cf-single-content .wp-block-pullquote p {
    font-family: var(--cf-font-serif);
    font-size: 1.7rem;
    line-height: 1.4;
    color: var(--cf-blue-700);
    font-style: italic;
    font-weight: 400;
    margin: 0;
}

/* --- ССЫЛКИ — премиальное подчёркивание ----------------------------------- */
.cf-single-content a {
    color: var(--cf-blue-600);
    text-decoration: none;
    background-image: linear-gradient(transparent 86%, rgba(61, 88, 187, 0.30) 86%);
    background-size: 100% 100%;
    transition: background-image var(--cf-transition), color var(--cf-transition);
    padding-bottom: 1px;
    border: 0;
}

.cf-single-content a:hover {
    color: var(--cf-blue-500);
    background-image: linear-gradient(transparent 50%, rgba(61, 88, 187, 0.18) 50%);
}

/* Авто-ссылки из плагина Cifrum Internal Links — пунктирное подчёркивание,
   чтобы пользователь визуально отличал внутреннюю авто-перелинковку от обычных ссылок */
.cf-single-content a.cifrum-il {
    background-image: none;
    border-bottom: 1px dashed rgba(61, 88, 187, 0.55);
    padding-bottom: 0;
}
.cf-single-content a.cifrum-il:hover {
    background-image: none;
    border-bottom-color: var(--cf-blue-500);
    border-bottom-style: solid;
}

/* --- КОД / PRE / KBD ----------------------------------------------------- */
.cf-single-content pre,
.cf-single-content code,
.cf-single-content kbd,
.cf-single-content samp {
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 0.92em;
    font-feature-settings: 'liga' 0;
}

.cf-single-content pre {
    background: #0e1117;
    color: #e8eaf0;
    padding: 22px 26px;
    border-radius: 12px;
    overflow-x: auto;
    line-height: 1.55;
    font-size: 0.95rem;
    box-shadow: 0 8px 24px rgba(15, 28, 63, 0.12);
    margin: 1.8em 0;
}

.cf-single-content code {
    background: var(--cf-bg-soft);
    color: var(--cf-blue-700);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 500;
    border: 1px solid rgba(61, 88, 187, 0.10);
}

.cf-single-content pre code {
    background: transparent;
    color: inherit;
    padding: 0;
    border: 0;
    font-size: inherit;
}

.cf-single-content kbd {
    display: inline-block;
    padding: 2px 8px;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-bottom-width: 2px;
    border-radius: 4px;
    color: var(--cf-blue-700);
    font-size: 0.85em;
    font-weight: 600;
    line-height: 1;
}

/* --- HR — простая тонкая линия (без орнамента) -------------------------- */
.cf-single-content hr {
    border: none;
    height: 1px;
    background: rgba(15, 28, 63, 0.10);
    background-image: none;
    margin: 2.6em auto;
    max-width: 360px;
    opacity: 1;
}

/* =========================================================================
   IRP «Материал по теме» — красная карточка с белой внутренней рамкой
   Бьём встроенные inline-стили плагина через :has() + !important
   ========================================================================= */
.cf-single-content a:has(> div > span.ctaText),
.cf-single-content a:has(> div > span.postTitle) {
    display: block !important;
    position: relative;
    margin: 1.8em 0 !important;
    padding: 0 !important;
    background: #4055c8 !important;
    border: none !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 22px rgba(64, 85, 200, 0.28) !important;
    text-decoration: none !important;
    overflow: hidden !important;
    transition: background 220ms ease,
                transform 220ms ease,
                box-shadow 220ms ease !important;
    font-weight: normal !important;
}

.cf-single-content a:has(> div > span.ctaText):hover {
    background: #3548b0 !important;
    box-shadow: 0 10px 30px rgba(64, 85, 200, 0.40) !important;
    transform: translateY(-1px);
}

/* Белая внутренняя рамка — отступ 9px от края, плавная */
.cf-single-content a:has(> div > span.ctaText)::before {
    content: '';
    position: absolute;
    inset: 9px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 8px;
    pointer-events: none;
    transition: border-color 220ms ease;
}
.cf-single-content a:has(> div > span.ctaText):hover::before {
    border-color: rgba(255, 255, 255, 0.85);
}

/* Стрелочка → справа от карточки — белая */
.cf-single-content a:has(> div > span.ctaText)::after {
    content: '→';
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    opacity: 0.85;
    transition: transform 220ms ease, opacity 220ms ease;
    pointer-events: none;
    z-index: 1;
}
.cf-single-content a:has(> div > span.ctaText):hover::after {
    transform: translateY(-50%) translateX(4px);
    opacity: 1;
}

/* Внутренний контейнер плагина — паддинги внутри рамки */
.cf-single-content a:has(> div > span.ctaText) > div {
    padding: 22px 68px 22px 28px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    position: relative;
    z-index: 1;
}

/* Бейдж «МАТЕРИАЛ ПО ТЕМЕ» — мелкий белый капс с прозрачностью */
.cf-single-content a span.ctaText {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.2 !important;
}

/* Заголовок связанной статьи — белый, чёткий */
.cf-single-content a span.postTitle {
    color: #ffffff !important;
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    display: inline-block !important;
    letter-spacing: -0.005em;
}
.cf-single-content a:has(> div > span.ctaText):hover span.postTitle {
    color: #ffffff !important;
}

/* Убираем лишний &nbsp; визуально — флекс уже разделяет */
.cf-single-content a:has(> div > span.ctaText) > div br,
.cf-single-content a:has(> div > span.ctaText) > div::after { content: none; }

@media (max-width: 575px) {
    .cf-single-content a:has(> div > span.ctaText) > div {
        padding: 18px 56px 18px 22px !important;
    }
    .cf-single-content a:has(> div > span.ctaText)::after { right: 22px; font-size: 1.3rem; }
    .cf-single-content a:has(> div > span.ctaText)::before { inset: 7px; }
    .cf-single-content a span.postTitle { font-size: 1rem !important; }
}

/* --- ТАБЛИЦЫ ------------------------------------------------------------ */
.cf-single-content table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 1.8em 0;
    font-size: 1rem;
    line-height: 1.5;
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 12px;
    overflow: hidden;
}

.cf-single-content thead { background: var(--cf-bg-soft); }

.cf-single-content th {
    text-align: left;
    padding: 14px 18px;
    font-weight: 700;
    color: var(--cf-blue-700);
    font-size: 0.92rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 2px solid var(--cf-border);
}

.cf-single-content td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--cf-border);
    vertical-align: top;
}

.cf-single-content tbody tr:last-child td { border-bottom: 0; }
.cf-single-content tbody tr:hover { background: rgba(61, 88, 187, 0.03); }

/* --- DETAILS / SUMMARY (раскрывающийся блок) ---------------------------- */
.cf-single-content details {
    background: var(--cf-bg-soft);
    border: 1px solid var(--cf-border);
    border-radius: 12px;
    padding: 16px 22px;
    margin: 1.5em 0;
}

.cf-single-content summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--cf-blue-700);
    font-size: 1.05rem;
    list-style: none;
    padding-right: 24px;
    position: relative;
}

.cf-single-content summary::-webkit-details-marker { display: none; }

.cf-single-content summary::after {
    content: '+';
    position: absolute;
    right: 0;
    top: -2px;
    font-size: 1.4rem;
    color: var(--cf-blue-600);
    transition: transform var(--cf-transition);
}

.cf-single-content details[open] summary::after { content: '−'; }

.cf-single-content details > *:not(summary) { margin-top: 14px; }

/* --- TOC (LuckyWP) — премиальный блок оглавления ------------------------ */
.cf-single-content .lwptoc {
    background: var(--cf-bg-soft);
    border: 1px solid var(--cf-border);
    border-radius: 14px;
    padding: 22px 26px;
    margin: 2em 0;
    box-shadow: 0 4px 12px rgba(15, 28, 63, 0.04);
}

.cf-single-content .lwptoc_header {
    font-size: 0.85rem !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cf-text-muted) !important;
    font-weight: 700 !important;
    margin-bottom: 14px !important;
}

.cf-single-content .lwptoc_title {
    color: var(--cf-blue-700) !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
}

.cf-single-content .lwptoc_items a {
    color: var(--cf-blue-700) !important;
    background: none !important;
    font-weight: 500;
}

.cf-single-content .lwptoc_items a:hover {
    color: var(--cf-blue-600) !important;
    background-image: linear-gradient(transparent 86%, rgba(61, 88, 187, 0.30) 86%) !important;
}

/* --- Embeds / video / iframe -------------------------------------------- */
.cf-single-content .wp-block-embed,
.cf-single-content .wp-block-video {
    margin: 1.8em 0;
}

.cf-single-content .wp-block-embed__wrapper,
.cf-single-content iframe {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 28, 63, 0.10);
}

.cf-single-content audio {
    width: 100%;
    margin: 1em 0;
}

/* =========================================================================
   МОБИЛЬНАЯ АДАПТАЦИЯ ТИПОГРАФИКИ — детально
   ========================================================================= */
@media (max-width: 768px) {
    .cf-single-content {
        font-size: 1.08rem;
        line-height: 1.5;
        letter-spacing: 0;
    }

    /* На мобильных justify создаёт большие зазоры — выравниваем по левому краю */
    body.single .cf-single-content p,
    body.single .cf-single-content > p:first-of-type,
    .cf-page-content p {
        text-align: left !important;
    }

    /* Лид и drop-cap */
    .cf-single-content > p:first-of-type {
        font-size: 1.16rem;
        line-height: 1.5;
        margin-bottom: 1em;
    }
    .cf-single-content > p:first-of-type::first-letter {
        font-size: 3.6em;
        padding: 6px 12px 0 0;
    }

    /* Заголовки */
    .cf-single-content h2 {
        font-size: 1.55rem;
        margin: 1.8em 0 0.6em;
    }
    .cf-single-content h2::before {
        width: 36px;
        height: 3px;
        margin-bottom: 12px;
    }
    .cf-single-content h3 { font-size: 1.25rem; margin: 1.5em 0 0.5em; }
    .cf-single-content h4 { font-size: 1.1rem; margin: 1.3em 0 0.4em; }
    .cf-single-content h5, .cf-single-content h6 { font-size: 0.95rem; }

    /* Цитаты */
    .cf-single-content blockquote,
    .cf-single-content .wp-block-quote {
        padding: 22px 22px 22px 56px;
        font-size: 1.1rem;
        margin: 1.6em 0;
    }
    .cf-single-content blockquote::before,
    .cf-single-content .wp-block-quote::before {
        font-size: 4rem;
        left: 8px;
    }

    /* Pull-quote */
    .cf-single-content .wp-block-pullquote {
        padding: 24px 0;
        margin: 1.8em 0;
    }
    .cf-single-content .wp-block-pullquote p {
        font-size: 1.35rem;
        line-height: 1.35;
    }

    /* Списки */
    .cf-single-content ul,
    .cf-single-content ol { padding-left: 1.2em; }
    .cf-single-content ol { padding-left: 0; }
    .cf-single-content ol > li { padding-left: 38px; }
    .cf-single-content ol > li::before {
        width: 26px;
        height: 26px;
        font-size: 0.78rem;
    }
    .cf-single-content li { margin-bottom: 0.5em; }

    /* Код */
    .cf-single-content pre {
        padding: 16px 18px;
        font-size: 0.85rem;
        border-radius: 10px;
        margin: 1.4em -16px;        /* выезжает за края для лучшей читаемости */
        border-radius: 0;
    }
    .cf-single-content code { font-size: 0.85em; padding: 1px 6px; }

    /* Таблицы — горизонтальный скролл (иначе ломают вёрстку на мобиле) */
    .cf-single-content table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        font-size: 0.92rem;
        border-radius: 10px;
    }
    .cf-single-content th,
    .cf-single-content td {
        padding: 10px 14px;
        white-space: normal;
        min-width: 120px;
    }

    /* HR-орнамент — чуть уменьшим */
    .cf-single-content hr { max-width: 280px; margin: 2em auto; }

    /* Figcaption */
    .cf-single-content figcaption,
    .cf-single-content .wp-block-image figcaption,
    .cf-single-content figure figcaption {
        padding: 14px 18px !important;
        font-size: 0.88rem !important;
    }

    /* Details/summary */
    .cf-single-content details { padding: 14px 16px; }
    .cf-single-content summary { font-size: 0.98rem; }

    /* TOC */
    .cf-single-content .lwptoc { padding: 16px 18px; }
}

/* Очень узкие экраны (≤480px) */
@media (max-width: 480px) {
    .cf-single-content { font-size: 1.04rem; line-height: 1.65; }
    .cf-single-content > p:first-of-type { font-size: 1.12rem; }
    .cf-single-content > p:first-of-type::first-letter { font-size: 3.2em; padding-right: 10px; }
    .cf-single-content h2 { font-size: 1.4rem; }
    .cf-single-content h3 { font-size: 1.15rem; }
    .cf-single-content blockquote,
    .cf-single-content .wp-block-quote {
        padding: 18px 18px 18px 48px;
        font-size: 1.02rem;
    }
    .cf-single-content blockquote::before,
    .cf-single-content .wp-block-quote::before { font-size: 3.4rem; left: 6px; }
    .cf-single-content .wp-block-pullquote p { font-size: 1.15rem; }
}

/* --- Share footer (повтор кнопок внизу) ---------------------------------- */
.cf-share-footer {
    margin: 36px 0 8px;
    padding: 24px 28px;
    border: 1px solid var(--cf-border);
    border-radius: 14px;
    background: var(--cf-bg-soft);
    text-align: center;
}

.cf-share-footer__label {
    display: block;
    color: var(--cf-text-soft);
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 14px;
}

/* --- Tags + author box --------------------------------------------------- */
.cf-tags {
    margin: 32px 0 16px;
    padding: 20px 0;
    border-top: 1px solid var(--cf-border);
    border-bottom: 1px solid var(--cf-border);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cf-tags__label {
    color: var(--cf-text-muted);
    font-size: 0.88rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.cf-tag {
    display: inline-block;
    padding: 6px 13px;
    border-radius: 6px;
    background: var(--cf-bg-soft);
    color: var(--cf-blue-700);
    font-size: 0.9rem;
    font-weight: 500;
    transition: all var(--cf-transition);
}

.cf-tag:hover { background: var(--cf-blue-600); color: #fff; transform: translateY(-1px); }

/* =========================================================================
   CIFRUM-TAGS-BOX — премиум-блок «Темы материала» (Tengri-style chips)
   ========================================================================= */
.cifrum-tags-box {
    margin: 36px 0 20px;
    padding: 24px 0 22px;
    border-top: 1px solid rgba(15, 28, 63, 0.10);
    border-bottom: 1px solid rgba(15, 28, 63, 0.10);
}

.cifrum-tags-title {
    margin: 0 0 14px;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--cf-blue-600);
    line-height: 1;
}

.cifrum-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.cifrum-tag-chip,
.cifrum-tag-chip:link,
.cifrum-tag-chip:visited {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    background: #f4f6fb;
    color: var(--cf-blue-700);
    border: 1px solid rgba(15, 28, 63, 0.05);
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    line-height: 1;
    letter-spacing: -0.005em;
    transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.cifrum-tag-chip:hover,
.cifrum-tag-chip:focus-visible {
    background: var(--cf-blue-600);
    color: #ffffff;
    border-color: var(--cf-blue-600);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(61, 88, 187, 0.28);
}

@media (max-width: 575px) {
    .cifrum-tags-box { margin: 28px 0 16px; padding: 18px 0 16px; }
    .cifrum-tag-chip { padding: 7px 12px; font-size: 0.84rem; }
    .cifrum-tags-title { font-size: 0.7rem; }
}

/* =========================================================================
   CIFRUM-DISCLAIMER-BOX — Редакционное уведомление и отказ от ответственности
   ========================================================================= */
/* Высокая специфичность через body.single .cf-single-content — иначе общие
   правила статей (font-size: 1.2rem, line-height: 1.55) перебивают через !important. */
body.single .cf-single-content .cifrum-disclaimer-box,
.cifrum-disclaimer-box {
    margin: 24px 0 14px;
    padding: 12px 16px 10px;
    background: linear-gradient(180deg, #f6f8fc 0%, #f1f4fa 100%);
    border: 1px solid rgba(15, 28, 63, 0.07);
    border-left: 3px solid var(--cf-blue-600);
    border-radius: 8px;
    position: relative;
}

body.single .cf-single-content .cifrum-disclaimer-box__eyebrow,
.cifrum-disclaimer-box__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0 0 5px;
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--cf-blue-600);
    line-height: 1;
}

body.single .cf-single-content .cifrum-disclaimer-box__eyebrow svg,
.cifrum-disclaimer-box__eyebrow svg { width: 11px; height: 11px; }

body.single .cf-single-content .cifrum-disclaimer-box .cifrum-disclaimer-box__title,
.cifrum-disclaimer-box .cifrum-disclaimer-box__title {
    margin: 0 0 5px !important;
    font-size: 0.74rem !important;
    font-weight: 700 !important;
    color: var(--cf-blue-700) !important;
    line-height: 1.25 !important;
    padding-top: 0 !important;
    background: none !important;
    letter-spacing: -0.005em !important;
}
body.single .cf-single-content .cifrum-disclaimer-box .cifrum-disclaimer-box__title::before,
.cifrum-disclaimer-box .cifrum-disclaimer-box__title::before { display: none !important; content: none !important; }

body.single .cf-single-content .cifrum-disclaimer-box p,
.cifrum-disclaimer-box p {
    margin: 0 0 3px !important;
    font-size: 0.7rem !important;
    line-height: 1.35 !important;
    color: var(--cf-text-soft) !important;
    font-weight: 400 !important;
    text-align: left !important;
    text-align-last: left !important;
    hyphens: none !important;
    letter-spacing: 0 !important;
}
body.single .cf-single-content .cifrum-disclaimer-box p:last-child,
.cifrum-disclaimer-box p:last-child { margin-bottom: 0 !important; }

/* Первый параграф дисклеймера НЕ должен получать drop-cap */
body.single .cf-single-content .cifrum-disclaimer-box p:first-of-type::first-letter,
.cifrum-disclaimer-box p:first-of-type::first-letter {
    font-family: inherit !important;
    font-size: inherit !important;
    float: none !important;
    line-height: inherit !important;
    padding: 0 !important;
    color: inherit !important;
    font-weight: inherit !important;
}

@media (max-width: 575px) {
    body.single .cf-single-content .cifrum-disclaimer-box,
    .cifrum-disclaimer-box { padding: 10px 14px 8px; }
    body.single .cf-single-content .cifrum-disclaimer-box p,
    .cifrum-disclaimer-box p { font-size: 0.66rem !important; }
}

/* =========================================================================
   CIFRUM-COMMENTS-SECTION — стилизованный блок комментариев
   ========================================================================= */
.cifrum-comments-section {
    margin: 40px 0 0;
    padding: 32px 0 8px;
    border-top: 1px solid rgba(15, 28, 63, 0.08);
}

.cifrum-comments-title {
    margin: 0 0 22px;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--cf-blue-700);
    letter-spacing: -0.015em;
    line-height: 1.3;
    position: relative;
    padding-left: 14px;
}
.cifrum-comments-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 4px;
    height: 22px;
    background: var(--cf-blue-600);
    border-radius: 2px;
}

/* Список комментариев */
.cifrum-comments-section .comment-list,
.cifrum-comments-section ol.commentlist,
.cifrum-comments-section ul.comment-list {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
}

.cifrum-comments-section .comment-list .children {
    list-style: none;
    padding-left: 28px;
    margin: 14px 0 0;
    border-left: 2px solid rgba(61, 88, 187, 0.15);
}

.cifrum-comments-section .comment,
.cifrum-comments-section .pingback,
.cifrum-comments-section .trackback,
.cifrum-comment-card {
    padding: 18px 22px;
    margin: 0 0 14px;
    background: #ffffff;
    border: 1px solid rgba(15, 28, 63, 0.08);
    border-radius: 12px;
    box-shadow: 0 1px 6px rgba(15, 28, 63, 0.03);
    transition: box-shadow 200ms ease, border-color 200ms ease;
    list-style: none;
}

.cifrum-comments-section .comment:hover,
.cifrum-comment-card:hover {
    border-color: rgba(61, 88, 187, 0.20);
    box-shadow: 0 4px 14px rgba(15, 28, 63, 0.06);
}

.cifrum-comments-section .comment-author,
.cifrum-comments-section .comment-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    font-size: 0.92rem;
}

.cifrum-comments-section .comment-author .avatar,
.cifrum-comments-section img.avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
}

.cifrum-comments-section .comment-author .fn,
.cifrum-comments-section .comment-author cite,
.cifrum-comments-section .comment-author b {
    font-weight: 700;
    color: var(--cf-blue-700);
    font-style: normal;
}

.cifrum-comments-section .comment-meta,
.cifrum-comments-section .comment-metadata,
.cifrum-comments-section .comment-meta a {
    font-size: 0.78rem;
    color: var(--cf-text-muted);
    font-weight: 500;
    text-decoration: none;
}

.cifrum-comments-section .comment-content,
.cifrum-comments-section .comment-body p {
    margin: 8px 0 0;
    font-size: 0.96rem;
    line-height: 1.55;
    color: #1c2030;
}

.cifrum-comments-section .reply,
.cifrum-comments-section .comment-reply-link {
    display: inline-block;
    margin-top: 10px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(61, 88, 187, 0.08);
    color: var(--cf-blue-600);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 180ms ease, color 180ms ease;
}
.cifrum-comments-section .comment-reply-link:hover {
    background: var(--cf-blue-600);
    color: #ffffff;
}

/* Форма комментария */
.cifrum-comment-form,
.cifrum-comments-section .comment-respond {
    margin: 28px 0 0;
    padding: 24px 26px;
    background: #f6f8fc;
    border: 1px solid rgba(15, 28, 63, 0.07);
    border-radius: 14px;
}

.cifrum-comments-section .comment-reply-title {
    margin: 0 0 16px;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cf-blue-700);
}

.cifrum-comments-section .comment-form-comment,
.cifrum-comments-section .comment-form-author,
.cifrum-comments-section .comment-form-email,
.cifrum-comments-section .comment-form-url {
    margin: 0 0 14px;
}

.cifrum-comments-section .comment-form label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--cf-blue-700);
    letter-spacing: 0.01em;
}

.cifrum-comments-section .comment-form input[type="text"],
.cifrum-comments-section .comment-form input[type="email"],
.cifrum-comments-section .comment-form input[type="url"],
.cifrum-comments-section .comment-form textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid rgba(15, 28, 63, 0.12);
    border-radius: 10px;
    background: #ffffff;
    font: inherit;
    font-size: 0.95rem;
    color: #1c2030;
    line-height: 1.4;
    transition: border-color 180ms ease, box-shadow 180ms ease;
    box-sizing: border-box;
}

.cifrum-comments-section .comment-form input:focus,
.cifrum-comments-section .comment-form textarea:focus {
    outline: none;
    border-color: var(--cf-blue-600);
    box-shadow: 0 0 0 3px rgba(61, 88, 187, 0.15);
}

.cifrum-comments-section .comment-form textarea {
    min-height: 120px;
    resize: vertical;
}

.cifrum-comments-section .form-submit { margin: 8px 0 0; }

.cifrum-comments-section .comment-form .submit,
.cifrum-comment-submit {
    display: inline-flex;
    align-items: center;
    padding: 12px 28px;
    background: linear-gradient(135deg, var(--cf-blue-600) 0%, var(--cf-blue-500) 100%);
    color: #ffffff !important;
    border: none;
    border-radius: 999px;
    font: inherit;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(61, 88, 187, 0.28);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.cifrum-comments-section .comment-form .submit:hover,
.cifrum-comment-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(61, 88, 187, 0.40);
}

.cifrum-comments-section .comment-notes,
.cifrum-comments-section .logged-in-as {
    font-size: 0.82rem;
    color: var(--cf-text-muted);
    margin: 0 0 14px;
}

.cifrum-comments-section .comment-form-cookies-consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.82rem;
    color: var(--cf-text-soft);
    margin: 4px 0 14px;
}
.cifrum-comments-section .comment-form-cookies-consent input { margin-top: 3px; }
.cifrum-comments-section .comment-form-cookies-consent label {
    margin: 0 !important;
    font-weight: 400 !important;
    color: var(--cf-text-soft) !important;
    font-size: 0.82rem !important;
}

.cifrum-comments-section .no-comments,
.cifrum-comments-section .nocomments {
    margin: 0 0 20px;
    padding: 16px 20px;
    background: #f6f8fc;
    border-radius: 10px;
    color: var(--cf-text-soft);
    font-size: 0.92rem;
}

@media (max-width: 575px) {
    .cifrum-comments-section { padding: 24px 0 8px; }
    .cifrum-comments-title { font-size: 1.2rem; }
    .cifrum-comments-section .comment { padding: 14px 16px; }
    .cifrum-comments-section .comment-respond { padding: 18px 18px; }
    .cifrum-comments-section .comment-form .submit { width: 100%; justify-content: center; }
}

.cf-author-box {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 22px;
    padding: 28px;
    margin: 32px 0;
    background: var(--cf-bg-soft);
    border-radius: 16px;
    border: 1px solid var(--cf-border);
}

.cf-author-box__avatar { border-radius: 50%; width: 80px; height: 80px; }
.cf-author-box__eyebrow { font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--cf-text-muted); font-weight: 600; }
.cf-author-box__name { margin: 4px 0 8px; font-size: 1.3rem; color: var(--cf-blue-700); font-weight: 700; }
.cf-author-box__name a { color: inherit; }
.cf-author-box__bio { margin: 0; color: var(--cf-text-soft); font-size: 1rem; line-height: 1.6; }

@media (max-width: 768px) {
    .cf-single-hero { padding: 24px 0 18px; }
    .cf-single-hero__title { font-size: 1.85rem !important; }
    .cf-single-hero__excerpt { font-size: 1.1rem; }
    .cf-single-hero__bar { flex-direction: column; align-items: flex-start; }
    .cf-single-content { font-size: 1.08rem; line-height: 1.7; }
    .cf-single-content > p:first-of-type::first-letter { font-size: 2.8em; padding-right: 8px; }
    .cf-single-content h2 { font-size: 1.5rem; }
    .cf-single-content h3 { font-size: 1.2rem; }
    .cf-single-featured img { border-radius: 12px; }
    .cf-author-box { grid-template-columns: 60px 1fr; padding: 18px; gap: 14px; }
    .cf-author-box__avatar { width: 60px; height: 60px; }
}

/* --- SIDEBAR variant для single ------------------------------------------ */
.cf-side--single {
    top: 100px;
}

/* --- Mini-list (7 материалов из рубрики) --------------------------------- */
.cf-widget__title-link {
    float: right;
    font-size: 0.78rem;
    color: var(--cf-blue-600);
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(61, 88, 187, 0.08);
    transition: background 180ms ease, color 180ms ease;
}

.cf-widget__title-link:hover {
    color: #ffffff;
    background: var(--cf-blue-600);
}

.cf-mini-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.cf-mini-list__item {
    display: grid;
    grid-template-columns: 92px 1fr;
    column-gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(15, 28, 63, 0.06);
    align-items: start;
}

.cf-mini-list__item:last-child { border-bottom: 0; padding-bottom: 0; }
.cf-mini-list__item:first-child { padding-top: 4px; }

.cf-mini-list__thumb {
    display: block;
    width: 92px;
    height: 70px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--cf-bg-soft);
    position: relative;
    box-shadow: 0 1px 6px rgba(15, 28, 63, 0.08);
}

.cf-mini-list__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cf-mini-list__item:hover .cf-mini-list__thumb img { transform: scale(1.08); }

.cf-mini-list__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.cf-mini-list__title {
    color: var(--cf-blue-700);
    font-size: 0.96rem;
    font-weight: 600;
    line-height: 1.38;
    letter-spacing: -0.005em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 180ms ease;
}

.cf-mini-list__title:hover { color: var(--cf-blue-600); }
.cf-mini-list__date { font-size: 0.78rem; color: var(--cf-text-muted); margin-top: auto; font-weight: 500; }

/* --- "Читайте также" в конце ---------------------------------------------- */
.cf-related {
    background: var(--cf-bg-soft);
    padding: 56px 0 64px;
    border-top: 1px solid var(--cf-border);
}

.cf-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 26px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--cf-blue-700);
}

.cf-section__title {
    font-size: 1.7rem;
    margin: 0;
    color: var(--cf-blue-700);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.cf-grid { display: grid; gap: 22px; }
.cf-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .cf-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px)  { .cf-grid--4 { grid-template-columns: 1fr; } }

.cf-card {
    background: #fff;
    border: 1px solid var(--cf-border);
    border-radius: 14px;
    overflow: hidden;
    transition: all var(--cf-transition);
    display: flex;
    flex-direction: column;
}

.cf-card:hover {
    box-shadow: var(--cf-shadow-md);
    transform: translateY(-2px);
    border-color: rgba(61, 88, 187, 0.30);
}

.cf-card__media {
    overflow: hidden;
    aspect-ratio: 3 / 2;
    background: var(--cf-bg-soft);
}

.cf-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 600ms ease;
}

.cf-card:hover .cf-card__media img { transform: scale(1.05); }

.cf-card__body {
    padding: 16px 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.cf-card__title {
    font-size: 1.05rem;
    line-height: 1.35;
    margin: 4px 0 0;
    color: var(--cf-blue-700);
    font-weight: 700;
}

.cf-card__title a { color: inherit; }
.cf-card__title a:hover { color: var(--cf-blue-600); }

.cf-card__date {
    font-size: 0.82rem;
    color: var(--cf-text-muted);
    margin-top: auto;
}

/* =========================================================================
   9. ФУТЕР — Astra footer полностью скрыт, рендерим свой .cf-footer
   ========================================================================= */
.site-footer,
.site-above-footer-wrap,
.site-primary-footer-wrap,
.site-below-footer-wrap,
#colophon {
    display: none !important;
}

/* Скрываем заодно лишний WPML-блок если вылез */
.wpml-ls-statics-footer { display: none !important; }

/* ===== НОВЫЙ ПОДВАЛ ===== */
.cf-footer {
    background: var(--cf-blue-700);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
    line-height: 1.6;
}

.cf-footer a { color: rgba(255, 255, 255, 0.85); text-decoration: none; transition: color var(--cf-transition); }
.cf-footer a:hover { color: #fff; }

/* ---- CTA-полоса (Telegram) ---- */
.cf-footer-cta {
    background: linear-gradient(135deg, #3d58bb 0%, #4053d4 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}

.cf-footer-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/ornament-divider.svg');
    background-repeat: repeat;
    background-size: 240px 24px;
    opacity: 0.10;
    pointer-events: none;
}

.cf-footer-cta__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 36px 0;
    flex-wrap: wrap;
}

.cf-footer-cta__text { flex: 1; min-width: 280px; }

.cf-footer-cta__title {
    margin: 0 0 6px;
    color: #fff;
    font-size: clamp(1.3rem, 2.2vw, 1.8rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.cf-footer-cta__sub {
    margin: 0;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
}

.cf-footer-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    color: var(--cf-blue-700) !important;
    padding: 14px 26px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 1rem;
    transition: transform var(--cf-transition), box-shadow var(--cf-transition);
    flex-shrink: 0;
}

.cf-footer-cta__btn:hover {
    color: var(--cf-blue-700) !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.20);
}

.cf-footer-cta__btn svg { color: var(--cf-blue-600); }

/* ---- Простые разделители в подвале ---- */
.cf-footer-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.10);
    background-image: none;
    opacity: 1;
}

/* ---- Основные 4 колонки ---- */
.cf-footer-main { padding: 48px 0 40px; }

.cf-footer-main__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 40px;
}

.cf-footer-col__title {
    color: #fff !important;
    font-size: 0.95rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.10em !important;
    margin: 0 0 16px !important;
    font-weight: 700 !important;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

/* Brand-колонка */
.cf-footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    margin-bottom: 14px;
}

.cf-footer-brand img {
    height: 40px;
    width: auto;
    max-width: 50px;
}

.cf-footer-brand__name {
    font-size: 1.4rem;
    font-weight: 800;
    color: #fff !important;
    letter-spacing: -0.02em;
}

.cf-footer-brand__desc {
    margin: 0 0 18px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 360px;
}

.cf-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cf-footer-social__item {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff !important;
    transition: all var(--cf-transition);
}

.cf-footer-social__item:hover {
    background: var(--cf-blue-600);
    border-color: var(--cf-blue-600);
    color: #fff !important;
    transform: translateY(-2px);
}

/* Списки */
.cf-footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.cf-footer-list li {
    padding: 6px 0;
    line-height: 1.5;
    border: 0 !important;
    margin: 0 !important;
}

.cf-footer-list a {
    color: rgba(255, 255, 255, 0.82) !important;
    transition: color var(--cf-transition), padding var(--cf-transition);
    display: inline-block;
}

.cf-footer-list a:hover { color: #fff !important; padding-left: 4px; }

.cf-footer-list--contacts li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.cf-footer-list--contacts li:last-child { border-bottom: 0 !important; }

.cf-footer-list__label {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

.cf-footer-list__link-bold {
    color: var(--cf-blue-500) !important;
    font-weight: 600;
    padding: 8px 0 !important;
}

.cf-footer-list__link-bold:hover { color: #fff !important; padding-left: 4px !important; }

/* ---- Bottom-bar ---- */
.cf-footer-bottom {
    padding: 24px 0 28px;
    background: rgba(0, 0, 0, 0.18);
}

.cf-footer-bottom__inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 24px;
    align-items: center;
}

.cf-footer-copy {
    margin: 0 0 6px;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.92rem;
    font-weight: 500;
}

.cf-footer-copy strong { color: #fff; font-weight: 700; }

.cf-footer-license {
    margin: 0;
    color: rgba(255, 255, 255, 0.60);
    font-size: 0.82rem;
    line-height: 1.55;
}

.cf-footer-license strong { color: rgba(255, 255, 255, 0.85); font-weight: 700; }

.cf-footer-mini {
    display: flex;
    justify-content: flex-end;
    gap: 22px;
    flex-wrap: wrap;
}

.cf-footer-mini a {
    color: rgba(255, 255, 255, 0.65) !important;
    font-size: 0.85rem;
    font-weight: 500;
    position: relative;
}

.cf-footer-mini a:hover { color: #fff !important; }

.cf-footer-mini a + a::before {
    content: '·';
    position: absolute;
    left: -13px;
    color: rgba(255, 255, 255, 0.30);
}

/* ---- Адаптив ---- */
@media (max-width: 991px) {
    .cf-footer-main__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
    .cf-footer-cta__inner { flex-direction: column; align-items: flex-start; padding: 28px 0; }
    .cf-footer-bottom__inner { grid-template-columns: 1fr; }
    .cf-footer-mini { justify-content: flex-start; }
}

@media (max-width: 575px) {
    .cf-footer-main__grid { grid-template-columns: 1fr; gap: 28px; }
    .cf-footer-main { padding: 36px 0 32px; }
    .cf-footer-cta__title { font-size: 1.3rem; }
}

/* Legacy Astra rules (старый код) — оставлены закомментированы / нейтрализованы */
.cf-footer--legacy {
    background: var(--cf-blue-700) !important;
    color: rgba(255,255,255,0.88);
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .widget-title {
    color: #fff !important;
    font-size: 0.95rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 16px !important;
    font-weight: 700 !important;
}

.site-footer a { color: rgba(255,255,255,0.85) !important; }
.site-footer a:hover { color: #fff !important; text-decoration: underline; }

.site-footer .widget ul { list-style: none; padding: 0; }
.site-footer .widget ul li { margin-bottom: 10px; border: none !important; padding: 0 !important; line-height: 1.5; font-size: 0.95rem; }

.site-above-footer-wrap {
    padding: 48px 0 36px !important;
    position: relative;
}

.site-above-footer-wrap::before {
    content: '';
    display: block;
    position: absolute;
    left: 0; right: 0; top: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.10);
    background-image: none;
    opacity: 1;
}

.site-below-footer-wrap {
    border-top: 1px solid rgba(255,255,255,0.10);
    font-size: 0.9rem !important;
    padding: 22px 0 !important;
}
