/* cosmo-design-fix v8 · 30.07.2026 · возврат ховера «как было» + лечим прыжки текста · классические селекторы · Graphite Teal */
:root{--ax-action-radius:12px;--ax-ring:0 0 0 3px rgba(29,81,88,.16);--ax-f-body:16px}:root{--ax-f-body:clamp(16px,0.94rem+0.2vw,17.5px);--ax-f-lead:17px}:root{--ax-f-lead:clamp(1.06rem,1rem+0.35vw,1.2rem)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [role="button"]:focus-visible, summary:focus-visible{outline:2px solid #1d5158;outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*, *::before, *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}.ce-hero-header, .ce-about-header, .ce-requirements-header, .ce-courses-header, .ce-stats-header, .ce-sessions-header, .ce-credentials-head, .ce-certificates-head, .kcew-head, .kcef-head, .kcev-head, .ce-seo-head, .kcearticles-head, .kcereviews-head, .kcefaq-head, .kcecontact-head{width:100%;margin-inline:auto;text-align:center}.ce-hero-kicker, .ce-about-kicker, .ce-requirements-kicker, .ce-courses-kicker, .ce-stats-kicker, .ce-sessions-kicker, .ce-credentials-kicker, .ce-certificates-kicker, .kcew-kicker, .kcef-kicker, .kcev-kicker, .ce-seo-kicker, .kcearticles-kicker, .kcereviews-kicker, .kcefaq-kicker, .kcenews-kicker, .kcecontact-kicker{display:block;width:100%;margin-inline:auto;color:#1d5158;font-size:12.5px;font-weight:800;line-height:1.4;letter-spacing:.12em;text-align:center;text-transform:uppercase}.ce-main-headline, .ce-about-title, .ce-requirements-title, .ce-courses-title, .ce-stats-title, .ce-sessions-title, .ce-credentials-title, .ce-certificates-title, .kcew-title, .kcef-title, .kcev-title, .ce-seo-title, .kcearticles-title, .kcereviews-title, .kcefaq-title, .kcecontact-title, .kcefinal-title{display:block;width:100%;margin-inline:auto;text-align:center}.ce-hero-lead, .ce-about-lead, .ce-requirements-lead, .ce-courses-lead, .ce-stats-lead, .ce-sessions-lead, .ce-credentials-lead, .ce-certificates-lead, .kcew-lead, .kcef-lead, .kcev-lead, .ce-seo-intro, .kcearticles-lead, .kcereviews-lead, .kcefaq-lead, .kcecontact-lead{display:block;width:100%;margin-left:auto;margin-right:auto;text-align:center}.ce-hero-actions, .ce-about-actions, .ce-requirements-actions, .ce-courses-actions, .ce-sessions-hero__actions, .ce-sessions-actions, .ce-credentials-actions, .kcef-actions, .kcev-actions, .ce-seo-actions, .kcenews-actions, .kcecontact-actions, .kcefinal-actions, .kcebasic-actions{margin-left:auto;margin-right:auto;text-align:center}.ce-main-headline{color:#172124;font-family:"Manrope","Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:46px;font-weight:800;line-height:1.1;letter-spacing:-0.028em;text-wrap:balance}.ce-main-headline{font-size:clamp(42px,1.4rem+3.2vw,66px)}.ce-about-title, .ce-requirements-title, .ce-courses-title, .ce-stats-title, .ce-sessions-title, .ce-credentials-title, .ce-certificates-title, .kcew-title, .kcef-title, .kcev-title, .kcereviews-title, .kcefaq-title, .kcecontact-title, .kcearticles-title, .kcebasic-title, .ce-seo-title, .kcefinal-title{font-family:"Manrope","Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:34px;font-weight:800;line-height:1.16;letter-spacing:-0.026em;text-wrap:balance}.ce-about-title, .ce-requirements-title, .ce-courses-title, .ce-stats-title, .ce-sessions-title, .ce-credentials-title, .ce-certificates-title, .kcew-title, .kcef-title, .kcev-title, .kcereviews-title, .kcefaq-title, .kcecontact-title, .kcearticles-title, .kcebasic-title, .ce-seo-title, .kcefinal-title{font-size:clamp(32px,1.3rem+1.8vw,46px)}.home-v4-page .home-campaigns-head h2, .home-v4-page .home-v4-head h2, .home-v4-page .home-documentary-head h2, .home-v4-page .home-news-head-v2 h2{font-size:32px;font-weight:800;line-height:1.16;letter-spacing:-0.026em;font-size:clamp(32px,1.3rem+1.8vw,46px)}.home-v4-page .home-video-module-head-v2 h3, .home-v4-page .home-library-subhead h3{font-size:24px;font-weight:800;line-height:1.2;letter-spacing:-0.02em;font-size:clamp(24px,1.2rem+1vw,32px)}.ce-hero-lead{font-size:17px;font-size:clamp(1.05rem,1rem+0.35vw,1.2rem);line-height:1.72}.ce-btn, .ce-btn--primary, .ce-btn--dark, .ce-btn--ghost, .ce-about-btn, .ce-about-btn--primary, .ce-about-btn--dark, .ce-req-btn, .ce-req-btn--primary, .ce-req-btn--dark, .ce-req-btn--ghost, .ce-courses-btn, .ce-courses-btn--primary, .ce-courses-btn--dark, .ce-courses-btn--ghost, .ce-sessions-btn, .ce-sessions-btn--primary, .ce-sessions-btn--dark, .ce-sessions-btn--ghost, .ce-credentials-btn, .kcef-btn, .kcef-btn--primary, .kcef-btn--dark, .kcev-btn, .kcecontact-btn, .kcefinal-btn, .kcenews-btn, .kcebasic-btn, .ce-seo-btn, .axc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;text-align:center;text-decoration:none;-webkit-text-fill-color:currentColor;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.ce-btn--primary, .ce-btn--dark, .ce-about-btn--primary, .ce-about-btn--dark, .ce-req-btn--primary, .ce-req-btn--dark, .ce-courses-btn--primary, .ce-courses-btn--dark, .ce-sessions-btn--primary, .ce-sessions-btn--dark, .ce-credentials-btn--primary, .kcef-btn--primary, .kcef-btn--dark, .kcev-btn--primary, .kcecontact-btn--primary, .kcecontact-btn--dark, .kcefinal-btn--primary, .kcefinal-btn--dark, .kcenews-btn, .ce-seo-btn--primary, .axc-btn--primary{color:#fff;background:#1d5158;border-color:#1d5158;-webkit-text-fill-color:#fff}.ce-btn--primary:hover, .ce-btn--dark:hover, .ce-about-btn--primary:hover, .ce-about-btn--dark:hover, .ce-req-btn--primary:hover, .ce-req-btn--dark:hover, .ce-courses-btn--primary:hover, .ce-courses-btn--dark:hover, .ce-sessions-btn--primary:hover, .ce-sessions-btn--dark:hover, .ce-credentials-btn--primary:hover, .kcef-btn--primary:hover, .kcef-btn--dark:hover, .kcev-btn--primary:hover, .kcecontact-btn--primary:hover, .kcecontact-btn--dark:hover, .kcefinal-btn--primary:hover, .kcefinal-btn--dark:hover, .kcenews-btn:hover, .ce-seo-btn--primary:hover, .axc-btn--primary:hover{color:#fff;background:#235659;border-color:#235659;box-shadow:0 12px 28px -8px rgba(23,33,36,.32);transform:translateY(-1px);-webkit-text-fill-color:#fff}.ce-btn--ghost, .ce-req-btn--ghost, .ce-courses-btn--ghost, .ce-sessions-btn--ghost, .kcecontact-btn--outline, .kcefinal-btn--outline{color:#1d5158;background:#fff;border-color:#718c86;-webkit-text-fill-color:#1d5158}.ce-btn--ghost:hover, .ce-req-btn--ghost:hover, .ce-courses-btn--ghost:hover, .ce-sessions-btn--ghost:hover, .kcecontact-btn--outline:hover, .kcefinal-btn--outline:hover{color:#1d5158;background:rgba(29,81,88,.08);border-color:#1d5158;-webkit-text-fill-color:#1d5158}button, input[type="submit"]{border-radius:12px}#go-top{position:fixed;right:28px;bottom:24px;z-index:2400;display:grid;place-items:center;width:48px;height:48px;margin:0;padding:0;font-size:0;line-height:0;color:#1d5158;background:rgba(255,255,255,.92);border:1px solid #d2dedb;border-radius:50%;box-shadow:0 10px 30px -8px rgba(23,33,36,.28),0 0 0 5px rgba(29,81,88,.06);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s ease,visibility .3s ease,transform .3s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}#go-top::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}#go-top:hover, #go-top:focus-visible{color:#fff;background:#1d5158;border-color:#1d5158;box-shadow:0 14px 34px -8px rgba(23,33,36,.36)}@media (max-width:640px){#go-top{right:14px;bottom:16px;width:44px;height:44px}}html, body{background-color:#f7f9f8}body.module-news, body.module-blog, body.module-publ, body.module-load{background-color:#f7f9f8;--ax-bg:#f7f9f8;--ax-section-bg:#f7f9f8}#wrapper, #content, #main-content{background-color:transparent}body.module-news #content, body.module-blog #content, body.module-publ #content, body.module-load #content{color:#172124;background-color:transparent}body.module-news .news-archive-section, body.module-blog .blog-hub, body.module-publ .publ-hub, body.module-load .load-hub{background-color:transparent}body.module-news .news-shell, body.module-blog .blog-shell, body.module-publ .publ-shell, body.module-load .load-shell{color:#172124;background-color:#fff;border:1px solid #e3eae8;border-radius:24px}.home-route-section, .home-library-section, .home-documentary-section--white{background:#f7f9f8}.home-v4-page .ce-courses-section--editorial-v3 .ce-course-media{background:#eef3f2}body #header.site-header #menu .uMenuRoot>li>ul{background:#fff;border-color:#d2dedb;border-radius:16px;box-shadow:0 24px 54px -12px rgba(8,25,29,.28)}body #header.site-header #menu .uMenuRoot>li>ul a{border-radius:10px}body #header.site-header #menu .uMenuRoot>li>ul a:hover, body #header.site-header #menu .uMenuRoot>li>ul a:focus-visible{color:#1d5158;background:#eef3f2;-webkit-text-fill-color:#1d5158}#cosmo-cookie-banner{background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #d2dedb;box-shadow:0 -14px 40px rgba(23,33,36,.12)}h1, h2, .ce-main-headline, .home-v4-head h2{text-wrap:balance}body.home-v4-page .ce-hero-section{padding-top:72px;padding-top:clamp(72px,9vw,112px)}body.home-v4-page .ce-hero-header{margin-bottom:clamp(28px,3.4vw,44px)}.ce-requirements-note{color:#235659;background:#eef3f2;border:0;border-left:3px solid #9ccdc8;border-radius:10px;padding:14px 16px}body.home-page .kcereview-text, body.home-v4-page .kcereview-text{font-size:16.5px}.kcereview-role, .kcereview-source{font-size:14px}.ce-requirements-note{margin-top:18px;padding:10px 0 10px 14px;color:#235659;background:transparent;border:0;border-left:3px solid #9ccdc8;border-radius:0}.ce-about-card, .ce-requirements-card, .ce-course-card, .ce-stats-card, .ce-story-card, .ce-session-format-card, .ce-sessions-info-card, .ce-certificate-card, .kcereview-card, .kcef-card{transition:border-color .25s ease,box-shadow .25s ease}/* v8-fix · баг бандла: ":where(...карточки) :hover" с пробелом применялся к КАЖДОМУ наведённому элементу ВНУТРИ карточки — текст/заголовки/ссылки прыгали и покрывались тенью. Гасим это точечно, карточке возвращаем её штатный мягкий ховер */.ce-about-card *:hover, .ce-requirements-card *:hover, .ce-course-card *:hover, .ce-stats-card *:hover, .ce-story-card *:hover, .ce-session-format-card *:hover, .ce-credentials-card *:hover, .ce-certificate-card *:hover, .kcew-card *:hover, .kcef-card *:hover, .kcev-card *:hover, .kcecontact-card *:hover, .kcereview-card *:hover, .kcearticle-card *:hover{box-shadow:none;transform:none}body.home-v4-page .home-video-playlist-v2>a *:hover{box-shadow:none;transform:none}.ce-requirements-note:hover{border-left-color:#9ccdc8}.ce-about-card:hover, .ce-requirements-card:hover, .ce-course-card:hover, .ce-stats-card:hover, .ce-story-card:hover, .ce-session-format-card:hover, .ce-credentials-card:hover, .ce-certificate-card:hover, .kcew-card:hover, .kcef-card:hover, .kcev-card:hover, .kcecontact-card:hover, .kcereview-card:hover, .kcearticle-card:hover{border-color:var(--ax-border-hover,#9ccdc8);box-shadow:var(--ax-shadow-hover,0 4px 10px rgba(23,33,36,.05),0 22px 48px rgba(23,33,36,.1));transform:translateY(-2px)}/* v8-fix-2 · модульные карточки (news/blog/publ/load): та же поломка с пробелом — гасим наведение на ВНУТРЕННИЕ элементы, зум картинки новости возвращаем явно */
body.module-news .news-card *:hover, body.module-blog .blog-card *:hover, body.module-publ .publ-card *:hover, body.module-load .load-card *:hover{box-shadow:none;transform:none}body.module-news .news-card:hover .news-card__image, body.module-blog .blog-card:hover .blog-card__image, body.module-publ .publ-card:hover .publ-card__image{transform:scale(1.025)}/* === v12 ЭТАЛОН: превью по ВСЕЙ высоте карточки на /news/ /blog/ /publ/ (десктоп >768px). Рамка пришита к верху и низу карточки (absolute top/bottom — механика 2006 года, работает в любых старых браузерах, полосы невозможны). Ширина единая 310px на всех трёх страницах. Структура страниц, мобильная вёрстка (<769px), тексты — не тронуты. === */
@media (min-width:769px){body.module-news .news-card, body.module-blog .blog-card, body.module-publ .publ-card{display:block !important;position:relative}body.module-news .news-card__media, body.module-blog .blog-card__media, body.module-publ .publ-card__media{position:absolute;left:0;top:0;bottom:0;width:310px;height:auto !important;min-height:0;aspect-ratio:auto !important;overflow:hidden}body.module-news .news-card__body, body.module-blog .blog-card__body, body.module-publ .publ-card__body{margin-left:310px}body.module-news .news-card__image, body.module-blog .blog-card__image, body.module-publ .publ-card__image, body.module-blog .blog-card__media img, body.module-publ .publ-card__media img{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%;min-height:0;margin:0;object-fit:cover}
}
@media (min-width:769px){body.module-blog .blog-feed #allEntries>div:first-child .blog-card, body.module-publ .publ-feed #allEntries>div:first-child .publ-card{display:block !important}body.module-blog .blog-feed #allEntries>div:first-child .blog-card__media, body.module-publ .publ-feed #allEntries>div:first-child .publ-card__media{position:absolute !important;left:0 !important;top:0 !important;bottom:0 !important;width:310px !important;height:auto !important;min-height:0 !important;aspect-ratio:auto !important;overflow:hidden}
}
@media (min-width:769px){body.module-news .news-card__image, body.module-blog .blog-card__image, body.module-publ .publ-card__image, body.module-blog .blog-card__media img, body.module-publ .publ-card__media img{max-height:none !important;max-width:none !important}
}
@media (min-width:769px){body.module-news .news-card__image, body.module-blog .blog-card__image, body.module-publ .publ-card__image, body.module-blog .blog-card__media img, body.module-publ .publ-card__media img{aspect-ratio:auto !important;width:100% !important;height:100% !important}
}/* === cosmo-book-modal v1 · 30.07.2026 ===
   Заголовок и быстрые контакты в штатном окне «Записаться» (#popupmf-1).
   Сама форма не изменяется. Совместимо со старыми браузерами (без :is()/aspect-ratio/gap). */
.popupmf .cbm-head{display:block;margin:0;padding:2px 4px 14px;text-align:left}.popupmf .cbm-kicker{margin:0 0 6px;font-size:11.5px;line-height:1.35;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.62)}.popupmf .cbm-title{margin:0 0 8px;font-size:21px;line-height:1.25;font-weight:700;color:#fff}.popupmf .cbm-sub{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.8)}.popupmf .cbm-quick{margin:0;padding:0;list-style:none}.popupmf .cbm-quick li{display:inline-block;vertical-align:top;margin:0 8px 8px 0;padding:0}.popupmf .cbm-quick a{display:inline-block;margin:0;padding:9px 15px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:transparent;color:#fff !important;font-size:13px;line-height:1;font-weight:600;text-decoration:none !important;box-shadow:none;transition:background-color .2s ease,border-color .2s ease}.popupmf .cbm-quick a:hover, .popupmf .cbm-quick a:focus{border-color:rgba(255,255,255,.7);background-color:rgba(255,255,255,.12)}
@media (max-width:480px){.popupmf .cbm-title{font-size:19px}.popupmf .cbm-sub{font-size:13px}.popupmf .cbm-quick a{padding:8px 13px;font-size:12.5px}}/* ===== Мобильная шапка · 31.07 · 3 точечных фикса (бургер, меню, лента) — НЕ УДАЛЯТЬ ===== */
/* 1) бургер: убираем тёмный дублёр-значок от маски .la-bars (tools.min.css), остаётся белый svg */
body #header.site-header #menu .menu-icon{-webkit-mask-image:none;mask-image:none}/* 2) открытое меню — поверх якорной ленты (лента была z999 > шапка z100 и перекрывала первые пункты) */
body .ax-nav{z-index:90}/* 3) якорная лента на мобильном: начинается с «Начать» и листается свайпом (раньше первые 3 пункта обрезались) */
@media (max-width:768px){body .home-v4-nav .ax-nav-list{justify-content:flex-start !important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-left:16px;padding-right:16px}body .home-v4-nav .ax-nav-list::-webkit-scrollbar{display:none}
}/* ===== /Обложки-страховка ===== */


/* Мобильная высота внутренней шапки — единая на всех страницах · 31.07 */
@media (max-width:700px){body .header-bg.header-bg--inner{height:300px !important}}/* ===== Меню 1025–1400px: одна строка · 31.07 — НЕ УДАЛЯТЬ ===== */
/* Было: 10 пунктов × отступы 17px → «ЕЩЕ» проваливалось на 2-ю строку на ноутбуках 1280px. Стало: компактные отступы, одна строка. */
@media (min-width:1025px) and (max-width:1400px){body #header.site-header #menu .uMenuRoot > li > a{padding-left:10px;padding-right:10px}
}/* ===== /Меню-одна-строка ===== */

/* ===== Крошки: единый стык с шапкой · «закрывашка» снизу · 01.08 — НЕ УДАЛЯТЬ ===== */
/* Дизайн-логика: герой и полоска крошек = один тёмный блок, закрывается бирюзовой линией СНИЗУ. */
body .path{border-top:none !important}body.home-page .path{border-bottom:1px solid rgba(156,205,200,.34) !important;position:relative}/* ===== Моб. аудит 01.08 — НЕ УДАЛЯТЬ ===== */
/* «Ручка» левого сайдбара (.sidebar-arrow) на мобильных висит у левого края и ЗАКРЫВАЕТ полоску хлебных крошек
   и начало контента. Меню на мобильных уже есть (бургер), поэтому дублирующую ручку прячем до 768px включительно. */
/* УДАЛЕНО 11.08.2026 — см. блок 34: это правило прятало единственную кнопку доступа к сайдбару на телефоне *//* ===== ШАПКА 1-в-1 НА ВСЕХ СТРАНИЦАХ · 01.08 — НЕ УДАЛЯТЬ ===== */
/* Эталон = главная. Десктоп уже одинаков везде (замерено). Ниже: цвет верхней полосы, мобильная шапка, разделитель крошек. */

/* 1) Верхняя контактная полоса (десктоп/планшет): цвет как на главной (#172124), на внутренних был темнее #0F1A1D */
@media (min-width:701px){body .top-line{background-color:#172124 !important}}/* 2) Разделитель хлебных крошек — единый «›» везде: на части страниц стояла иконка-стрелка (las), перекрашиваем её в текстовый символ — в точности как span.sep (12.48px, #9CCDC8, w600, вертикально по середине). */
body .path .cnt i.las.la-arrow-right{font-style:normal;display:inline-block;margin:0 7px !important;padding:0 !important;color:#9CCDC8;background:none !important;background-image:none;background-color:transparent;mask-image:none;-webkit-mask-image:none;font-size:12.48px;font-weight:600;font-family:inherit;width:auto;height:auto;line-height:normal;vertical-align:middle}body .path .cnt i.las.la-arrow-right::before{content:'›';font-family:inherit}body .path .cnt i.las.la-arrow-right::after{content:none}/* 3) Мобильная шапка (≤768px) = компактная, как на главной: без верх. полосы и соцсетей, логотип+название в потоке на тёмном фоне, панель бургер+«Записаться» (44px, 116px) в рамке-плашке */
@media (max-width:700px){body:not(.home-v4-page) .top-line, body:not(.home-v4-page) #header.site-header .hsoc{display:none}body:not(.home-v4-page) #header.site-header{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:100;display:block;min-height:154px;height:auto;margin:0 !important;padding:14px 0 78px !important;background:#172124 !important}body:not(.home-v4-page) #header.site-header > .cnt.header-meta{display:flex;width:calc(100% - 24px) !important;min-height:54px;align-items:center;justify-content:center;margin:0 12px !important;padding:4px 0 !important}body:not(.home-v4-page) #header.site-header .header-brand{display:flex;align-items:center;justify-content:flex-start;margin:0 !important;min-width:0;max-width:100%;text-align:left}body:not(.home-v4-page) #header.site-header .header-brand__mark{display:grid;place-items:center !important;width:46px;height:46px;flex-basis:46px;padding:2px !important;background:#0E2B30 !important;border:1px solid #DCE9E6 !important;border-radius:50% !important}body:not(.home-v4-page) #header.site-header #menu:not(.scroll){position:absolute;top:auto;right:0;bottom:12px;left:0;width:100%;height:auto;margin:0 !important;padding:0 !important}body:not(.home-v4-page) #header.site-header #menu > .cnt{display:flex;width:calc(100% - 24px);min-height:58px;align-items:center;justify-content:space-between;margin:0 12px !important;padding:6px !important;background:#2A3B40 !important;border:1px solid #526267 !important;border-radius:12px !important}body:not(.home-v4-page) #header.site-header #menu .menu-icon{align-self:center;width:44px;height:44px}body #header.site-header #menu .hcall{flex:0 0 auto;margin-left:auto}body #header.site-header #menu .hcall > a{align-self:center;width:auto;min-width:116px;max-width:none;flex:0 0 auto !important;height:44px;padding:0 14px}
}/* ===== /Шапка-унификация ===== */

/* ===== Герой 1-в-1 · изображение главной на ВСЕХ страницах · 01.08 — НЕ УДАЛЯТЬ ===== */
/* ДЕСКТОП/планшет (≥769px) на внутренних = обложка главной-desk (compact), БЕЗ градиента{background-position:center center !important;background-size:cover !important;background-repeat:no-repeat !important}/* нижний делитель внутренних = как на главной (6px #1D5158), вместо высокой тёмной растяжки */
body .header-bg.header-bg--inner::after{height:6px !important;bottom:0;background:#1D5158 !important}/* стык с крошками как на главной: в JPG-обложке вниз впечатана бирюзовая полоса — прячем её ПОД крошки на всех страницах */
body .header-bg.header-bg--inner{margin-bottom:-13px !important}body .path{position:relative}body .path{border-bottom:1px solid rgba(156,205,200,.34) !important}/* ===== /Герой-1-в-1 ===== */

/* ===== Гармонизация шапки · верх-полоса = крошки (58px), ровный текст меню · 01.08 — НЕ УДАЛЯТЬ ===== */
/* Только десктоп/планшет (≥769px). Мобильную шапку не трогаем (там верхней полосы нет). */
@media (min-width:701px){/* 1) верхняя контактная полоса 58px, содержимое по центру по вертикали */
body .top-line{height:58px !important}body .top-line > .cnt{display:flex;align-items:center;height:58px;min-height:58px}/* 2) шапка absolute — отступ под новую высоту верхней полосы (было 51) */body #header.site-header{top:58px}/* 3) полоса крошек 58px, содержимое по центру (было 65) */
body .path{min-height:58px !important;padding-top:0 !important;padding-bottom:0 !important}body .path > .cnt{display:flex;align-items:center;flex-wrap:wrap;min-height:58px}
}/* 4) меню «одной строкой» есть только с 1280px (≤1279 — их бургер-аккордеон, не трогаем).
   Все пункты — единая высота 44px, текст по центру (было: «КУРСЫ/СЕАНСЫ» без «+» сидели выше). */
@media (min-width:1280px){body #header.site-header #menu .uMenuRoot{display:flex;align-items:center}body #header.site-header #menu .uMenuRoot > li{display:block}body #header.site-header #menu .uMenuRoot > li > a{display:inline-flex !important;align-items:center !important;height:44px !important;padding-top:0 !important;padding-bottom:0 !important}
}/* ===== /Пилюля-стекло ===== */

/* ===== Полосы верх + крошки: гарантированно один фон #172124 · 01.08 — НЕ УДАЛЯТЬ ===== */
/* Пишем обеим полосам ОДИНАКОВЫЙ набор объявлений, чтобы ни в одном браузере фон не разошёлся, и снимаем любые слои/фильтры/вуали/псевдоэлементы, способные затемнить полосу (у неё полоса шла ~20% темнее). */
body .top-line, body .path{background-color:#172124 !important;background-image:none;box-shadow:none !important;filter:none;-webkit-filter:none;backdrop-filter:none;-webkit-backdrop-filter:none}body .path{position:relative;z-index:3}body .path::before, body .path::after{content:none;display:none;background:none !important}/* ===== /Полосы-единый-фон ===== */

/* ===== Форма записи $MFORM_10$ · контраст + гармонизация · 01.08 — НЕ УДАЛЯТЬ ===== */
/* 1) Ссылки «Политика/Соглашение»: контраст был 2.2:1 (#5C6B6F на #163F46) → бренд-бирюза (~6.5:1) */
.popupmf a{color:#9CCDC8 !important}.popupmf a:hover, .popupmf a:focus{color:#DCE9E6 !important}/* 2) Плейсхолдеры полей — читаемый графит #526267 (был бледный серо-бирюзовый) на светлом поле */
.popupmf input::placeholder, .popupmf textarea::placeholder{color:#526267;opacity:1}.popupmf input::-webkit-input-placeholder, .popupmf textarea::-webkit-input-placeholder{color:#526267;opacity:1}.popupmf input::-moz-placeholder, .popupmf textarea::-moz-placeholder{color:#526267 !important;opacity:1 !important}/* 3) Карточка формы — в едином стиле пилюли меню: радиус 16, тонкая светлая кромка, мягкая тень */
.popupmf{border-radius:16px !important;border:1px solid rgba(244,247,246,.22);box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden}/* 4) Картинка кода безопасности — в стиле полей */.popupmf img[src*="secure"]{border-radius:8px}/* ===== /Форма-контраст ===== */

/* ===== Планшет 701–1120: компактная шапка 340px (убирает пустое место после меню) · 02.08 — НЕ УДАЛЯТЬ ===== */
@media (min-width:769px) and (max-width:1120px){body .header-bg.header-bg--inner{height:340px !important;min-height:340px !important;max-height:340px !important}
}/* ===== /Планшет-шапка ===== */

/* ===== Мобильная: фото первой секции целиком (соотношение 680/750 вместо сплюснутого 1200/630) · 02.08 — НЕ УДАЛЯТЬ ===== */
@media (max-width:768px){body.home-v4-page .home-v4-hero .ce-hero-image{aspect-ratio:680/750}
}/* ===== /Мобильное фото ===== */

/* ===== Мобильная ≤700: шапка 220px — убирает пустое место, глобус виден почти целиком · 02.08 — НЕ УДАЛЯТЬ ===== */
@media (max-width:700px){body .header-bg.header-bg--inner{height:220px !important;min-height:220px !important;max-height:220px !important}
}/* ===== /Мобильная-шапка ===== */

/* ===== Единые-Кнопки · 02.08.2026 ===== */
/* у всех кнопок сайта одна геометрия: отступы, радиус, шрифт, высота */.home-v3-button, .ce-btn, .ce-about-btn, .kcev-btn, .kcecontact-btn, .home-share-button, .kcebasic-btn, .kcef-btn{
 min-height:46px !important;padding:12px 22px !important;border-radius:12px !important;
 font-size:.95rem !important;font-weight:700 !important;line-height:1.2 !important;
 letter-spacing:.01em;display:inline-flex !important;align-items:center !important;justify-content:center !important;text-align:center !important}
@media (max-width:640px){.home-v3-button, .ce-btn, .ce-about-btn, .kcev-btn, .kcecontact-btn, .home-share-button, .kcebasic-btn, .kcef-btn{
 min-height:44px !important;padding:11px 18px !important;font-size:.9rem !important}
}/* ===== /Единые-Кнопки ===== */

/* ===== Шапка-без-картинки на мобильных и планшетах · v27 · 02.08.2026 ===== */
/* ≤1024: внутренняя шапка без тёмного фона — компактно на всех страницах */
@media (min-width:769px) and (max-width:1024px){body .header-bg, body .header-bg.header-bg--inner{display:block;background-image:none !important;background:#172124;height:152px !important;min-height:152px;max-height:152px;padding:0 !important;margin:0 !important}body .header-bg.header-bg--inner::after{display:none !important;content:none !important}
}
@media (min-width:901px) and (max-width:1024px){body .header-bg, body .header-bg.header-bg--inner{height:190px !important;min-height:190px !important;max-height:190px !important}
}
@media (max-width:700px){body .header-bg.header-bg--inner::after{display:none !important;content:none !important}body .header-bg, body .header-bg.header-bg--inner{display:none !important;height:0 !important;min-height:0 !important;max-height:0 !important;padding:0 !important;margin:0 !important}
}/* ===== /Шапка-без-картинки ===== */

/* ===== Зелёная линия ::after под шапкой убрана ПОЛНОСТЬЮ, на всех ширинах (десктоп включительно) · v29 · 02.08.2026 ===== */
body#body .header-bg.header-bg--inner::after{display:none;content:none;background:none !important;background-color:transparent !important;height:0 !important;border:0 !important;border-top:0 !important}верх мигает светлым.
   Кладём тёмную полосу на контейнер, который парсится сразу (#wrapper на страницах модуля, .site-shell на страницах курсов).
   ВЫСОТА СТРОГО ПО СТУПЕНЯМ РЕАЛЬНОЙ ШАПКИ (синхронно блоку «Шапка-без-картинки» выше): полоса всегда прячется
   под тёмные .path/пилюли и НИКОГДА не светит хвостом ниже. Финальный вид = v29, вспышки нет. */body#body #wrapper{background-color:transparent;background-image:linear-gradient(to bottom,#172124 0px,#172124 560px,rgba(23,33,36,0) 560px);background-repeat:no-repeat}
@media (max-width:1439px){body#body #wrapper{background-image:linear-gradient(to bottom,#172124 0px,#172124 530px,rgba(23,33,36,0) 530px)}}
@media (max-width:1199px){body#body #wrapper{background-image:linear-gradient(to bottom,#172124 0px,#172124 447px,rgba(23,33,36,0) 447px)}}
@media (max-width:1024px){body#body #wrapper{background-image:linear-gradient(to bottom,#172124 0px,#172124 240px,rgba(23,33,36,0) 240px)}}
@media (max-width:900px){body#body #wrapper{background-image:linear-gradient(to bottom,#172124 0px,#172124 202px,rgba(23,33,36,0) 202px)}}
@media (max-width:768px){body#body #wrapper{background-image:none}}/* === /v31.3 === */
/* === v31.4 Герой-плитка главной: перенос инлайн-блока «Баланс первой секции» из редактора === */
.ce-hero-section .ce-hero-layout{align-items:stretch!important}
@media (min-width:981px){.ce-hero-section .ce-hero-layout{grid-template-columns:1.15fr 0.85fr!important}}.ce-hero-section .ce-hero-media{background:var(--ax-surface)!important;border:1px solid var(--ax-border-soft)!important;box-shadow:var(--ax-shadow)!important;border-radius:var(--ax-radius-card)!important;display:flex;flex-direction:column}.ce-hero-section .ce-hero-media::after{display:none}.ce-hero-section .ce-hero-media picture{flex-grow:1}.ce-hero-section .ce-hero-image{min-height:100%!important;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:var(--ax-radius-card) var(--ax-radius-card) 0 0!important}.ce-hero-section .ce-hero-media figcaption{padding:12px 16px;font-size:.8rem;color:var(--ax-text-soft);text-align:center;background:var(--ax-surface);border-radius:0 0 var(--ax-radius-card) var(--ax-radius-card)}/* === /v31.4 === */
/* === v31.5 Шапка на планшете у модулей (news/blog/forum/load/video/photo): телефонный блок больше не наползает на меню — как на остальных страницах === */
@media (min-width:769px) and (max-width:1120px){body#body .site-header .hphone{display:none}}/* === /v31.5 === */

/* ===== Шапки без фоновых изображений · 05.08 — сплошной фирменный фон ===== */
/* По просьбе владельца: космо-обложки отключены во ВСЕХ шапках — картинки больше не запрашиваются.
   Фон = фирменный графит #172124. Градиентные ::after сохранены (мягкий переход к низу).
   ОТКАТ = удалить этот блок целиком. */
body .header-bg, body .header-bg.header-bg--inner, body:not(.home-v4-page) #header.site-header, body #header.site-header{
  background-image:none !important;
  background-color:#172124 !important;
}
@media (max-width:700px){body .header-bg.header-bg--inner{
    background-image:none !important;
    background-color:#172124 !important;
  }
}/* ===== /ПЛАНШЕТ-ТЕКСТ-БАННЕРА — конец блока · 05.08 ===== */

/* === v14 · 06.08.2026 · блок исправлений аудита: ghost-кнопки, фокус, go-top, cookie-гард, submenu-toggle 44px, ссылки в legacy-текстах. Добавлено в конец, правила v13 не изменялись. === */

/* 1. Ghost-кнопки: цвет текста приводим к тёмному (был рассинхрон color/fill) */body .ce-btn.ce-btn--ghost, body .ce-req-btn--ghost, body .ce-courses-btn--ghost, body .ce-sessions-btn--ghost, body .ce-credentials-btn--ghost, body .kcev-btn--ghost, body .ce-seo-btn--ghost, body .kcecontact-btn--outline, body .kcefinal-btn--outline, body .kcebasic-btn--secondary, body .axc-btn--outline{color:#1D5158 !important;-webkit-text-fill-color:#1D5158 !important;background:#FFFFFF !important;background-color:#FFFFFF !important;border-color:#718C86 !important}body .ce-btn.ce-btn--ghost:hover, body .ce-req-btn--ghost:hover, body .ce-courses-btn--ghost:hover, body .ce-sessions-btn--ghost:hover, body .ce-credentials-btn--ghost:hover, body .kcev-btn--ghost:hover, body .ce-seo-btn--ghost:hover, body .kcecontact-btn--outline:hover, body .kcefinal-btn--outline:hover, body .kcebasic-btn--secondary:hover, body .axc-btn--outline:hover{color:#1D5158 !important;-webkit-text-fill-color:#1D5158 !important;background:rgba(29,81,88,.08) !important;background-color:rgba(29,81,88,.08) !important;border-color:#1D5158 !important}/* 2. Клавиатурный фокус: шапка, меню, хлебные крошки */
body .top-line a:focus-visible, body #header.site-header .header-brand:focus-visible, body #header.site-header .hphone a:focus-visible, body #header.site-header .hphone:focus-visible, body #header.site-header #menu .uMenuRoot>li>a:focus-visible, body #header.site-header #menu .hcall>a:focus-visible, body #header.site-header .menu-icon:focus-visible, body #header.site-header .submenu-toggle:focus-visible{outline:2px solid #DCE9E6 !important;outline-offset:3px !important}body .path a:focus-visible, body .ax-nav a:focus-visible{outline:2px solid #1D5158 !important;outline-offset:3px !important}/* 3. Go-top поднят над sticky-панелью (только мобильный) */
@media (max-width:700px){#go-top{bottom:calc(80px + env(safe-area-inset-bottom,0px)) !important}
}/* 4. Cookie-баннер: защита от ухода за экран при мелком окне/крупном тексте */
body #cosmo-cookie-banner{max-height:min(80vh,560px);overflow-y:auto}/* 5. Кнопка раскрытия подменю: 40 -> 44px */
.submenu-toggle{width:44px;height:44px;min-width:44px;min-height:44px}/* HOTFIX 08.08.2026 — сайдбар Новости + Друзья сайта шрифт не видно — v13.1 *//* HOTFIX 08.08.2026 v13.2 — сайдбар Новости: шрифт не видно — усиленный фикс */#sidebar .sbx-latest-list a, #sidebar .sbx-latest-list a strong, #sidebar .catsTd a{
  color: #172124 !important;
  -webkit-text-fill-color: #172124;
  opacity: 1;
}#sidebar .sbx-latest-list a > span{
  color: #526267 !important;
}/* ============================================================================
   ПУСТАЯ ТЁМНАЯ ПОЛОСА ПОД ШАПКОЙ — УБИРАЕМ
   08.08.2026 · добавить в конец cosmo-design-fix-v13.min.css
   ============================================================================

   ЧТО ВИДИТ ЧЕЛОВЕК.

   На внутренних страницах между меню и хлебными крошками — тёмная
   полоса высотой ~110 px, в которой ничего нет. На главной её нет.

   Замер элемента .header-bg.header-bg--inner:

       высота             300 px
       background-image   none        ← картинки нет
       background-color   #172124
       содержимое         пусто

   ВАЖНО — ПОЧЕМУ ЕГО НЕЛЬЗЯ ПРОСТО СКРЫТЬ.

   Сначала я написала display:none и проверила в браузере.
   Результат: контент наехал на меню, заголовок страницы оказался
   ПОД шапкой. Замер показал отрицательный зазор −188 px.

   Причина: #header и #menu стоят position:absolute — они вынуты
   из потока и НЕ занимают места. Место под них в потоке держит
   именно .header-bg. Это не декорация, а распорка.

   Убрать её нельзя. Нужно задать ей высоту ровно по низу меню.

   РАСЧЁТ.

       низ #menu на внутренних страницах  = 239–246 px
       верх .header-bg                     = 51–58 px
       нужная высота = 246 − 51 = 195

   Первая попытка со значением 200 px дала на Базовом и Мастере
   зазор −1 px: там шапка выше на 7 px, чем на модульных страницах
   (58 px против 51 из-за правила top-line 58px!important в fix-v13).
   Проверено замером — ставим 210 px, тогда запас есть везде.

   Было 300 px → станет 210 px. Пустая полоса сокращается со 110
   до ~20 px, шапка смыкается с крошками, как на главной.

   Специфичность: body[class][class] = (0,2,1) плюс !important —
   иначе не перебить clamp(250px,20.8vw,300px)!important из бандла.

   ЕСЛИ ЗАХОТИТЕ ВЕРНУТЬ ФОТОФОН ШАПКИ — удалите этот блок
   и задайте .header-bg--inner нужную картинку через background-image.
   ========================================================================== */

body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner{
  height: 210px !important;
  min-height: 210px;
  max-height: 210px;
  background-image: none !important;
  background-color: #172124 !important;
}/* Псевдоэлемент-градиент внизу блока: фона нет, градиент не нужен */
body[class][class] .header-bg.header-bg--inner::after{
  display: none;
  content: none;
  height: 0 !important;
}/* Планшет: шапка ниже, распорку тоже уменьшаем.
   Замер: низ меню при 1024 px = 232 px, верх блока 51 px → 185 px. */
@media (max-width: 1024px){body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner{
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
  }
}/* Телефон: меню сворачивается в бургер, шапка низкая.
   Замер: низ меню при 390 px = 150 px → 155 px с запасом. */
@media (max-width: 700px){body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner{
    height: 155px !important;
    min-height: 155px !important;
    max-height: 155px !important;
  }
}/* ============================================================================
   ФОН ШАПКИ — ЕДИНЫЙ НА ВСЕХ СТРАНИЦАХ
   08.08.2026 · добавить в САМЫЙ КОНЕЦ cosmo-design-fix-v13.min.css
   ============================================================================

   ЗАДАЧА. Вернуть снимок Земли в шапку: на главной (там текст
   «Обучение и курсы по методике В.А. Петрова») и на внутренних
   страницах, где текста нет. Картинка одна и та же — вид единый.

   ── ПРО СПЕЦИФИЧНОСТЬ (почему селекторы такие длинные) ──

   Фон сейчас погашен сразу несколькими правилами, чтобы телефон не качал десктопный файл:

       header-desktop-1920x480.webp    58 КБ   ≥1025 px
       header-tablet-1200x320.webp     34 КБ   701–1024 px
       header-mobile-780x260.webp      18 КБ   ≤700 px

   Исходник был 2320×464 и весил 147 КБ. Десктопная версия —
   58 КБ, то есть в 2, 5 раза легче при том же виде.

   ── ПРО ЗАТЕМНЕНИЕ ──

   Градиент кладём ПЕРВЫМ слоем в том же background-image.
   Так он не создаёт отдельный псевдоэлемент{
  background-image:
    linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)), image-set(url('/images/header/header-desktop-1920x480.webp') type('image/webp'), url('/images/header/header-desktop-1920x480.jpg')  type('image/jpeg')) !important;
  background-position: center 42% !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
  background-color: #172124 !important;
}/* ВНУТРЕННИЕ — блок .header-bg */
body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner, body#body#body[class] .header-bg.header-bg--inner{
  background-image:
    linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)),
    image-set(url('/images/header/header-desktop-1920x480.webp') type('image/webp'),
              url('/images/header/header-desktop-1920x480.jpg')  type('image/jpeg')) !important;
  background-position: center 42% !important;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-color: #172124 !important;
}body[class][class] .header-bg.header-bg--inner{
  background-image:
    linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)),
    url('/images/header/header-desktop-1920x480.jpg') !important;
}body[class][class] .header-bg.header-bg--inner{
  background-image:
    linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)),
    image-set(url('/images/header/header-desktop-1920x480.webp') type('image/webp'),
              url('/images/header/header-desktop-1920x480.jpg')  type('image/jpeg')) !important;
}/* ПЛАНШЕТ 701–1024 — файл 34 КБ вместо 58 */
@media (max-width: 1024px){body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner{
    background-image:
      linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)),
      image-set(url('/images/header/header-tablet-1200x320.webp') type('image/webp'),
                url('/images/header/header-tablet-1200x320.jpg')  type('image/jpeg')) !important;
    background-position: center 45% !important;
  }
}/* ТЕЛЕФОН ≤700 — файл 18 КБ */
@media (max-width: 700px){body[class][class] .header-bg, body[class][class] .header-bg.header-bg--inner{
    background-image:
      linear-gradient(rgba(8,18,22,.55), rgba(8,18,22,.75)),
      image-set(url('/images/header/header-mobile-780x260.webp') type('image/webp'),
                url('/images/header/header-mobile-780x260.jpg')  type('image/jpeg')) !important;
    background-position: center 48% !important;
  }
}/* Псевдоэлемент-градиент внизу блока не нужен — затемнение уже
   встроено в background-image. Иначе получится двойное потемнение. */
body[class][class] .header-bg.header-bg--inner::after{
  display: none !important;
  content: none !important;
  height: 0 !important;
}/* ============================================================================
   ШАПКА БЕЗ ИЗОБРАЖЕНИЙ — СПЛОШНОЙ ФИРМЕННЫЙ ФОН
   08.08.2026 · добавить в САМЫЙ КОНЕЦ cosmo-design-fix-v13.min.css
   ============================================================================

   ЗАДАЧА. Убрать любые картинки из шапки на всех страницах.
   Остаётся ровный тёмный фон #172124 — тот же, что у верхней
   контактной полосы и самой шапки. Вид единый, а не декорация.

   Проверено: при display:none контент наезжает на меню, заголовок уходит под шапку (зазор −188 px).

   Поэтому блок остаётся, но становится ровной заливкой нужной высоты:

       десктоп   210 px   (низ меню 246 − верх блока 51 = 195, +15 запас)
       планшет   190 px
       телефон   155 px

   ── ПРО ГРАДИЕНТ-ВУАЛЬ ──

   Псевдоэлемент ::after внизу блока тоже убираем: он был нужен{
  background-image: none !important;
  background-color: #172124 !important;
}/* 2. ВНУТРЕННИЕ — блок-распорка под шапкой */
body[class][class][class] .header-bg, body[class][class][class] .header-bg.header-bg--inner, body#body#body[class][class] .header-bg.header-bg--inner{
  background-image: none !important;
  background-color: #172124 !important;
  height: 210px !important;
  min-height: 210px;
  max-height: 210px;
}/* 3. САМА ШАПКА И ВЕРХНЯЯ ПОЛОСА — ровный фон без картинок */
body[class][class][class] #header.site-header, body[class][class][class] .top-line{
  background-image: none !important;
  background-color: #172124 !important;
}/* 4. Вуаль внизу блока не нужна — фотографии больше нет */
body[class][class][class] .header-bg.header-bg--inner::after{
  display: none;
  content: none;
  height: 0 !important;
  background: none !important;
}/* ── ПЛАНШЕТ ── */
@media (max-width: 1024px){body[class][class][class] .header-bg, body[class][class][class] .header-bg.header-bg--inner{
    height: 190px !important;
    min-height: 190px;
    max-height: 190px;
  }
}/* ── ТЕЛЕФОН ── меню сворачивается в бургер, шапка ниже */
@media (max-width: 700px){body[class][class][class] .header-bg, body[class][class][class] .header-bg.header-bg--inner{
    height: 155px !important;
    min-height: 155px !important;
    max-height: 155px !important;
  }
}/* ============================================================================
   СТРЕЛКИ В ССЫЛКАХ — АНИМАЦИЯ ПРИ НАВЕДЕНИИ
   08.08.2026 · добавить в конец cosmo-design-fix-v13.min.css
   ============================================================================

   ЧТО БЫЛО НЕ ТАК.

   В секциях «С чего начать обучение», «Редакционная библиотека»
   и «Видеотека» стрелка → при наведении не двигалась.

   Замер в браузере показал разницу:

       .kcearticle-arrow      transition: transform .18s   ✅ работает
       .ce-feature-link::after transition: transform .18s   ✅ работает
       .home-route-card em     transition: all              ❌ не работает

   Причина: в карточках «Что вы хотите сделать сейчас?» стрелка
   вписана ПРОСТЫМ ТЕКСТОМ внутрь <em>:

       <em>Начать обучение →</em>

   Для браузера это часть строки, а не отдельный элемент. Сдвинуть
   её отдельно от текста нельзя — двигался бы весь текст целиком.
   У .ce-feature-link стрелка рисуется псевдоэлементом ::after, поэтому там анимация есть.

   ЧТО СДЕЛАНО В РАЗМЕТКЕ.

   Стрелка вынесена в отдельный элемент (42 замены на трёх страницах):

       <em>Начать обучение <span class="home-route-arrow">&rarr;</span></em>

   Теперь ей можно задать собственный transform.

   ЧТО ДЕЛАЕТ ЭТОТ ФАЙЛ.

   Добавляет анимацию новому классу и заодно подтягивает
   секции библиотеки и видеотеки к тому же поведению — чтобы
   стрелки везде на сайте вели себя одинаково.

   Ни одного !important: класс новый, конфликтовать не с чем.
   ========================================================================== */

/* Базовое состояние: стрелка чуть отделена от текста */.home-route-arrow{
  display: inline-block;
  margin-left: 6px;
  line-height: 1;
  transition: transform .18s cubic-bezier(.16, 1, .3, 1);
  will-change: transform;
}/* Сдвиг при наведении на всю карточку или ссылку */.home-route-card:hover .home-route-arrow, .home-route-card:focus-visible .home-route-arrow{
  transform: translateX(4px);
}/* Библиотека и видеотека: ссылки .home-book-item и .home-video-featured-v2
   стрелки не имели вовсе — добавляем её псевдоэлементом, как уже сделано у .ce-feature-link */.home-library-section .home-book-item::after{
  content: "→";
  display: inline-block;
  margin-left: 6px;
  line-height: 1;
  transition: transform .18s cubic-bezier(.16, 1, .3, 1);
}.home-library-section .home-book-item:hover::after, .home-library-section .home-book-item:focus-visible::after{
  transform: translateX(4px);
}/* Уважаем системную настройку «уменьшить движение».
   Людям с вестибулярными нарушениями анимация мешает. */
@media (prefers-reduced-motion: reduce){.home-route-arrow, .home-library-section .home-book-item::after{
    transition: none;
  }.home-route-card:hover .home-route-arrow, .home-library-section .home-book-item:hover::after{
    transform: none;
  }
}/* ============================================================
   ДОПОЛНЕНИЕ К cosmo-design-fix-v13.min.css
   Дата: 2026-08-09
   Добавить В КОНЕЦ файла /css/cosmo-design-fix-v13.min.css
   и сменить метку на ?v=57 во всех шаблонах.

   Три исправления:
     1. Съехавшая шапка на /courses и /obuchenie-kosmoenergetike
     2. Карточки приклеились к описанию в секции «Программа обучения»
     3. Секция «Экспедиции» белая, а вся страница #F7F9F8
   ============================================================ */


/* ------------------------------------------------------------
   1. СЪЕХАВШАЯ ШАПКА НА /courses И /obuchenie-kosmoenergetike

   В ЭТОМ ФАЙЛЕ НЕ ЛЕЧИТСЯ — И НЕ ДОЛЖНА.

   Причина не в CSS, потому
   что в fix-v13 её высота задана как
       body[class][class] .header-bg { height:210px !important }
   Перебивать чужой !important ради этого не нужно.

   Правильное место правки — одна строка в шаблоне AHEADER.
   Подробно: файл ПРАВКА-ШАПКИ-AHEADER.md
------------------------------------------------------------ */


/* ------------------------------------------------------------
   2. КАРТОЧКИ ПРИКЛЕИЛИСЬ К ОПИСАНИЮ

   ПЕРВОПРИЧИНА (замерено).
   .ce-courses-lead   margin-bottom: 0
   .ce-courses-header margin-bottom: 0
   Зазор между низом абзаца и верхом карточки = 0 px.

   Текст «Каждая ступень изучается отдельно…» упирался прямо
   в белую карточку «Что входит в Базовый курс».

   РЕШЕНИЕ. Отступ задаём шапке секции, а не абзацу: так он не
   удвоится, если внутри шапки несколько абзацев.
   Вес (0,2,0) перекрывает :where(...) из бандла — у :where вес НОЛЬ.
------------------------------------------------------------ */
.ce-courses-section .ce-courses-header, .ce-about-section   .ce-about-header, .ce-requirements-section .ce-requirements-header, .ce-sessions-section .ce-sessions-header, .ce-stats-section   .ce-stats-header, .ce-credentials-section .ce-credentials-head, .ce-certificates-section .ce-certificates-head, .kcef-section .kcef-head, .kcev-section .kcev-head, .kcereviews-section .kcereviews-head, .kcefaq-section .kcefaq-head, .kcearticles-section .kcearticles-head, .kcecontact-section .kcecontact-head{
  margin-bottom: clamp(28px, 3.4vw, 46px);
}/* Карточка первой ступени — свой верхний отступ, она идёт сразу за шапкой */
.ce-courses-section .kcebasic-card{
  margin-top: clamp(8px, 1.2vw, 16px);
}/* Подсказка «Проведите в сторону» не должна липнуть к карточке сверху */
.ce-courses-section .ce-courses-swipe-hint, .home-library-section .home-books-swipe-hint, .kcereviews-section .kcereviews-swipe-hint, .ce-certificates-section .ce-certificates-swipe-hint{
  margin-top: clamp(24px, 2.8vw, 38px);
  margin-bottom: clamp(10px, 1.2vw, 16px);
}/* ------------------------------------------------------------
   3. ФОН СЕКЦИИ «ЭКСПЕДИЦИИ» ОТЛИЧАЕТСЯ ОТ СТРАНИЦЫ

   ПЕРВОПРИЧИНА (замерено).
   Все 22 секции страницы:      rgb(247, 249, 248)  = #F7F9F8
   Секция #expeditions:         rgb(255, 255, 255)  = #FFFFFF

   Белый даёт модификатор home-documentary-section--white. На главной
   он уместен — там секции чередуются светлыми полосами. На страницах
   ступеней всё полотно одного тона, и белая врезка выглядит чужой.

   РЕШЕНИЕ. Возвращаем секции общий фон страницы — только на страницах
   ступеней (у них класс course-page). Главную не трогаем.
------------------------------------------------------------ */
body.course-page .home-expedition-section.home-documentary-section--white, body.course-page .home-documentary-section--white{
  background-color: #F7F9F8;
}/* Медиа-блок внутри остаётся светлым — так карточка читается на фоне */
body.course-page .home-expedition-section .home-documentary-media{
  background-color: #FFFFFF;
}/* ------------------------------------------------------------
   4. МЕЛОЧЬ: подпись под фото экспедиции
   .sr-only прячет её от глаз, но у некоторых страниц класс был утерян
   и текст «Документальная фотография из архива» показывался как абзац.
   Приводим к единому виду.
------------------------------------------------------------ */
body.course-page .home-documentary-media figcaption.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}


/* ------------------------------------------------------------
   14. СЕКЦИЯ «НАУЧНАЯ БАЗА» (#science) — ОБЛОЖКА СОРАЗМЕРНА ТЕКСТУ

   Обложка сборника вертикальная (640x960, соотношение 2:3).
   При ширине колонки 742 px она вытягивалась до 1112 px, тогда как
   колонка с тремя карточками занимала 661 px. Разница 451 px —
   под текстом висела пустота, секция выглядела разъехавшейся.

   Лечение: ограничиваем высоту картинки и обрезаем по центру сверху
   (заголовок сборника и выходные данные остаются видны), плюс слегка
   перераспределяем колонки в пользу текста.

   Вес селектора (0,3,1) перебивает бандл (0,2,1) — !important не нужен.
   ------------------------------------------------------------ */
body.filosofiya-page #science .home-documentary-media img {
  max-height: 620px;
  object-fit: cover;
  object-position: center top;
}

/* Колонка с обложкой чуть уже: пропорция 0.92 / 1.08 вместо 1.15 / 0.85 */
body.filosofiya-page #science .home-documentary-layout {
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
}

/* До 1024 px бандл складывает колонки в одну.
   Правило grid-template-columns выше отменяем, иначе на телефоне
   первая колонка сжимается до нуля и обложка пропадает.
   Высоту ограничиваем мягче — картинка на всю ширину экрана. */
@media (max-width: 1024px) {
  body.filosofiya-page #science .home-documentary-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  body.filosofiya-page #science .home-documentary-media img {
    max-height: 520px;
  }
}


/* ------------------------------------------------------------
   15. ФИЛОСОФИЯ: ЕДИНЫЙ ФОН, КНОПКИ И СТРЕЛКИ

   Три находки после проверки страницы в браузере.
   ------------------------------------------------------------ */

/* 15.1. ФОН СЕКЦИИ «ЭКСПЕДИЦИИ АКАДЕМИИ» ВЫБИВАЛСЯ ИЗ РЯДА.

   Замер: 22 секции страницы имеют фон #F7F9F8, и только #expeditions —
   чистый белый #FFFFFF. Причина — модификатор home-documentary-section--white
   в разметке: правило бандла .home-v4-page .home-documentary-section--white
   красит секцию в белый, а карточки внутри — наоборот, в #F7F9F8.
   Получалась инверсия: светлые карточки на белом фоне почти сливались,
   а сама секция «вырезалась» из общего полотна страницы.

   Секция #science использует тот же модификатор --soft и выглядит правильно.
   Приводим #expeditions к тому же виду: фон полотна, карточки белые.
   Вес (0,3,0) перебивает бандл (0,2,0) — !important не нужен. */
body.filosofiya-page #expeditions.home-documentary-section--white {
  background: #F7F9F8;
}
body.filosofiya-page #expeditions .home-documentary-info > article {
  background: #FFFFFF;
}
body.filosofiya-page #expeditions .home-documentary-media {
  background: #EEF3F2;
}

/* 15.2. КНОПКИ ПОД СЕКЦИЯМИ БЫЛИ БЕСЦВЕТНЫЕ И ПРИЖАТЫ К КАРТОЧКАМ.

   Правила заливки .home-v3-button в бандле записаны через body.home-page.
   На Философии класс body другой (filosofiya-page), поэтому обе кнопки
   оставались прозрачными: главное действие ничем не отличалось
   от второстепенного. Отступ сверху был 24 px — кнопки «прилипали»
   к нижнему краю карточек.

   Возвращаем нормальную пару «залитая + контурная» и даём воздух. */
body.filosofiya-page .home-documentary-actions {
  margin-top: 40px;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
body.filosofiya-page .home-documentary-actions .home-v3-button {
  color: #FFFFFF;
  background: #1D5158;
  border: 1px solid #1D5158;
}
body.filosofiya-page .home-documentary-actions .home-v3-button:hover,
body.filosofiya-page .home-documentary-actions .home-v3-button:focus-visible {
  color: #FFFFFF;
  background: #235659;
  border-color: #235659;
}
body.filosofiya-page .home-documentary-actions .home-v3-button--outline {
  color: #1D5158;
  background: #FFFFFF;
  border-color: #718C86;
}
body.filosofiya-page .home-documentary-actions .home-v3-button--outline:hover,
body.filosofiya-page .home-documentary-actions .home-v3-button--outline:focus-visible {
  color: #172124;
  background: #EEF3F2;
  border-color: #1D5158;
}

/* 15.3. ЛИШНЯЯ СТРЕЛКА ПОД КАРТОЧКАМИ КНИГ.

   В разделе 12 этого файла стрелка вешалась на .home-book-item::after —
   то есть на всю карточку, а не на ссылку внутри. В результате под
   каждой книгой висела вторая, «сиротская» стрелка отдельной строкой:
   одна в ссылке «Читать о книге →», вторая — сама по себе внизу.

   Убираем псевдоэлемент с карточки и переносим анимацию на настоящую
   ссылку, у которой стрелка уже есть в тексте. */
body.filosofiya-page .home-library-section .home-book-item::after {
  content: none;
}
body.filosofiya-page .home-library-section .home-book-item > div > a {
  transition: transform .18s cubic-bezier(.16, 1, .3, 1);
}
body.filosofiya-page .home-library-section .home-book-item:hover > div > a {
  transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
  body.filosofiya-page .home-library-section .home-book-item > div > a,
  body.filosofiya-page .home-library-section .home-book-item:hover > div > a {
    transition: none;
    transform: none;
  }
}


/* ------------------------------------------------------------
   16. КОНТАКТЫ: БЛОК БЫСТРОЙ СВЯЗИ В ПЕРВОМ ЭКРАНЕ

   Четыре кнопки («Позвонить», Telegram, WhatsApp, «Оставить заявку»)
   использовали сетку .kcecontact-channel-grid-v4, которая в бандле
   рассчитана на узкую колонку внутри карточки и ставила кнопки
   в один столбец на всю ширину. В первом экране это выглядело
   как четыре полосы одна под другой.

   Раскладываем в строку с переносом: на ПК — одна линия,
   на телефоне — по две в ряд. Это главная точка конверсии
   для трафика с Яндекс.Директа, она должна читаться сразу.
   ------------------------------------------------------------ */
body.contacts-page .axc-quick-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}
/* Бандл задаёт .kcecontact-btn { width:100% } — это верно внутри узкой
   карточки, но здесь растягивает каждую кнопку на всю строку.
   Возвращаем ширину по содержимому. Вес (0,3,0) перебивает (0,1,0). */
body.contacts-page .axc-quick-actions .kcecontact-btn {
  width: auto;
  max-width: none;
  flex: 0 1 auto;
  min-height: 48px;
}

/* Телефон: кнопки шире и по две в ряд, палец попадает уверенно */
@media (max-width: 620px) {
  body.contacts-page .axc-quick-actions .kcecontact-btn {
    width: auto;
    flex: 1 1 calc(50% - 12px);
    min-width: 150px;
  }
  /* Главное действие — звонок — всегда на всю ширину сверху */
  body.contacts-page .axc-quick-actions .kcecontact-btn--primary {
    flex: 1 1 100%;
  }
}


/* ------------------------------------------------------------
   17. СТРАНИЦА КНИГ: ОТСТУПЫ СЕКЦИЙ И ШИРИНА ЗАГОЛОВКА

   17.1. Секции #books-catalog и #books-guide идут без класса
   секции-обёртки (они внутри article.books-page-v3), поэтому
   вертикальных отступов у них нет: замер показал padding-top 0
   при 100–115 px у остальных 12 секций. Блоки «слипались».

   17.2. На телефоне header.books-page-v3__hero оказался шире
   экрана — внутри длинное слово «cosmoenergetics.ru» и заголовок
   без переносов. Разрешаем перенос и убираем распор.
   ------------------------------------------------------------ */
body.books-page #books-catalog,
body.books-page #books-guide {
  padding-block: clamp(56px, 6vw, 88px);
}

/* Бандл задаёт .books-page-v3__hero { max-width:920px }, но на узком
   экране блок всё равно раздувался до 1057 px: внутри неразрывные
   строки («cosmoenergetics.ru», длинные заголовки), а у родителя
   article.books-page-v3 нет min-width:0, поэтому он не ужимал ребёнка.
   Фиксируем ширину по родителю и разрешаем перенос длинных слов. */
body.books-page .books-page-v3,
body.books-page .books-page-v3__container {
  min-width: 0;
}
/* .books-page-v3 — это grid. По умолчанию его ячейки имеют
   min-width:auto и не сжимаются уже своего содержимого, поэтому
   hero распирал колонку до 920 px при экране 366. Разрешаем сжатие. */
body.books-page .books-page-v3 > * {
  min-width: 0;
  max-width: 100%;
}
body.books-page .books-page-v3__hero {
  width: 100%;
  max-width: min(920px, 100%);
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}
body.books-page .books-page-v3__hero h1,
body.books-page .books-page-v3__kicker,
body.books-page .books-page-v3__lead {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* ------------------------------------------------------------
   18. СЕКЦИИ #rules И #seo-text НА «ИНФОРМАЦИИ О САЙТЕ»

   В бандле отступы для класса kcef-section заданы правилом
   #formats.kcef-section, #video.kcev-section — привязка идёт
   к идентификаторам, а не к классу. Секции #rules и #seo-text
   используют тот же класс, но с другими id, поэтому остались
   с padding 0 и прилипли к соседям.
   ------------------------------------------------------------ */
body.siteinfo-page #rules.kcef-section,
body.siteinfo-page #seo-text.kcef-section {
  display: block;
  position: relative;
  width: 100%;
  padding-block: var(--ax-section-space);
  color: var(--ax-text);
  background: var(--ax-section-bg);
}


/* ------------------------------------------------------------
   19. СТРАНИЦА КНИГ: СЕТКА КАК НА ОСТАЛЬНЫХ СТРАНИЦАХ

   Как устроено на Философии, Контактах, О преподавателях (эталон):
     секция ............ left 0,  width 1440  — фон во всю ширину окна
     контейнер внутри .. left 40, width 1360  — контент ограничен

   Как было на Книгах (моя прошлая правка — ошибка):
     секция ............ left 80, width 1280  — сужена сама секция
   Из-за этого фон секций не доходил до краёв окна, и страница
   выглядела иначе, чем весь остальной сайт.

   Причина: все секции Книг лежат внутри обёртки
   .books-page-v3__container с max-width 1360 — она не давала
   секциям растянуться. Снимаем ограничение с обёртки и возвращаем
   его туда, где оно на всех страницах — на контейнеры внутри секций.
   ------------------------------------------------------------ */

/* 19.1. Обёртка страницы — во всю ширину, без ограничений и полей */
body#body#body.books-page #main-content .books-page-v3__container,
body#body#body.books-page #main-content .books-page-v3 {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

/* 19.2. Внутренние контейнеры секций работают штатно, как в бандле:
   ширина 1360 с боковыми полями. Никаких обнулений — они и дают
   тот самый левый край 40 px, что на остальных страницах. */

/* 19.3. Секции без своего контейнера (hero, каталог, «как выбрать»)
   получают ту же сетку вручную. */
body#body#body.books-page #main-content .books-page-v3__hero,
body#body#body.books-page #main-content #books-catalog > *,
body#body#body.books-page #main-content #books-guide > * {
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  padding-inline: clamp(20px, 3vw, 40px);
}
body#body#body.books-page #main-content #books-catalog,
body#body#body.books-page #main-content #books-guide {
  padding-inline: 0;
}

/* #books-guide — сетка из карточек. Обёртки внутри неё тоже должны
   идти по общей сетке 1360, иначе карточки прижимаются к левому краю
   (замер показывал контент на 0 вместо 40). */
body#body#body.books-page #main-content #books-guide {
  display: block;
}
body#body#body.books-page #main-content #books-guide > .books-page-v3__guide-grid,
body#body#body.books-page #main-content #books-guide > div,
body#body#body.books-page #main-content #books-guide > article {
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  padding-inline: clamp(20px, 3vw, 40px);
  box-sizing: border-box;
}

/* 19.4. Отступ сверху у первого экрана.
   .books-page-v3__hero — это <header> внутри <article>, а не секция,
   поэтому вертикальные отступы бандла до него не доходили:
   замер показывал padding-top 0 при 100–120 px у соседей. */
body#body#body.books-page #main-content .books-page-v3__hero {
  padding-block: clamp(56px, 6vw, 96px) clamp(32px, 3.5vw, 56px);
}

/* ============================================================
   20. ЕДИНАЯ ТИПОГРАФИКА В ТЕКСТЕ СЕКЦИЙ
   Стандартная шкала, кратная 4.

   ЗАЧЕМ. Замер 8 страниц показал разнобой:
     H1 ...... 46 / 57.12 / 61.76 / 66.08 px
     H2 ...... 10 размеров: 22.9 ... 53.6
     H3 ...... 16 размеров: 18.4 ... 34.9
     кикеры .. 7 вариантов: 11.5 ... 13.15 px, вес 500-800
   Причина: каждое семейство секций (kcefaq-, home-v4-, ce-courses-,
   books-page-v3-, kcecontact-) задаёт свои значения.

   ШКАЛА (роль — ПК / мобильный / вес / межстрочный):
     H1 hero .......... 64 / 36 / 700 / 1.08
     H1 обычный ....... 56 / 34 / 700 / 1.10
     H2 большой ....... 44 / 30 / 700 / 1.15
     H2 обычный ....... 40 / 28 / 700 / 1.18
     H3 ............... 30 / 22 / 700 / 1.25
     H4 ............... 24 / 18 / 700 / 1.30
     Заголовок карточки 22 / 18 / 700 / 1.30
     Лид .............. 24 / 19 / 500 / 1.45
     Текст большой .... 18 / 16 / 400 / 1.65
     Текст основной ... 16 / 16 / 400 / 1.65
     Текст карточки ... 15 / 15 / 400 / 1.60
     Малый текст ...... 14 / 14 / 500 / 1.50
     Kicker / label ... 12 / 12 / 800 / 1.30

   КОЭФФИЦИЕНТЫ vw подобраны так, чтобы на опорной ширине 1440 px
   получались ровно значения шкалы: 64 / 44 / 30 / 24 / 22 / 18,
   а не остатки вычислений вроде 60.5 или 43.2.
     H1 ... 64/1440 = 4.444vw
     H2 ... 44/1440 = 3.056vw
     H3 ... 30/1440 = 2.083vw
     H4 ... 24/1440 = 1.667vw
     карточка 22/1440 = 1.528vw
     лид ... 24/1440 = 1.667vw
     текст . 18/1440 = 1.25vw

   ГРАНИЦЫ ПРАВКИ. Все селекторы начинаются с #main-content.
   Проверено замером: из 55 заголовков страницы 49 внутри
   #main-content, а 6 вне его — 5 в футере (АНО, Навигация,
   Соцсети, Контакты, Об Академии) и 1 в попапе записи.
   Шапка, меню, футер и сайдбар под правило НЕ попадают.

   ВЕС СЕЛЕКТОРА. body#body#body#body повторён четырежды намеренно.
   В бандле есть правила вида
     body#body#body.home-v4-page #contacts .kcecontact-...-v4 > h3
   с весом (0,5,2) — они перебивали версию патча с весом (0,5,1)
   и давали 34.4 px. Четвёртый #body даёт (0,6,1) и решает это
   специфичностью — !important не нужен.
   ============================================================ */

/* 20.0. Переменные шкалы */
body#body#body#body #main-content {
  --text-xs: 12px;
  --text-sm: 14px;
  --text-card: 15px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-lead: 24px;

  --title-card: 22px;
  --title-h4: 24px;
  --title-h3: 30px;
  --title-h2: 40px;
  --title-h2-xl: 44px;
  --title-h1: 56px;
  --title-hero: 64px;
}

/* 20.1. H1 — 34 -> 64 px, вес 700, межстрочный 1.08 */
body#body#body#body #main-content :is(h1, .ce-main-headline, .basic-hero-title-v5) {
  font-family: var(--ax-font-heading);
  font-size: clamp(34px, 4.444vw, 64px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.03em;
}

/* 20.2. H2 — 28 -> 44 px, вес 700, межстрочный 1.15 */
body#body#body#body #main-content h2 {
  font-family: var(--ax-font-heading);
  font-size: clamp(28px, 3.056vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.022em;
}

/* 20.3. H3 — 22 -> 30 px, вес 700, межстрочный 1.25 */
body#body#body#body #main-content h3 {
  font-family: var(--ax-font-heading);
  font-size: clamp(22px, 2.083vw, 30px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.016em;
}

/* 20.4. H4 — 18 -> 24 px, вес 700, межстрочный 1.3 */
body#body#body#body #main-content h4 {
  font-family: var(--ax-font-heading);
  font-size: clamp(18px, 1.667vw, 24px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.012em;
}

/* 20.5. Заголовок карточки — 18 -> 22 px.
   Карточка не должна спорить с заголовком секции. */
body#body#body#body #main-content :is(article, li, figure, details) :is(h2, h3, h4) {
  font-size: clamp(18px, 1.528vw, 22px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

/* 20.6. Лид — 19 -> 24 px, вес 500, межстрочный 1.45 */
body#body#body#body #main-content :is(
  .ce-hero-lead, .kcefaq-lead, .kcecontact-lead, .kcearticles-lead,
  .kcereviews-lead, .ce-requirements-lead, .ce-courses-lead,
  .ce-about-lead, .ce-credentials-lead, .home-v4-lead, .home-v3-lead,
  .kcef-lead, .kcev-lead, .kcenews-lead, .ce-seo-lead,
  .books-page-v3__lead, .axc-lead, .kcew-lead, .kcefinal-lead,
  .basic-hero-subtitle-v5, .ce-section-lead
) {
  font-size: clamp(19px, 1.667vw, 24px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
}

/* 20.7. Основной текст секций — 16 -> 18 px, вес 400, межстрочный 1.65 */
body#body#body#body #main-content :is(section, article) p:not([class*="kicker"]):not([class*="lead"]):not([class*="meta"]):not([class*="badge"]) {
  font-size: clamp(16px, 1.25vw, 18px);
  font-weight: 400;
  line-height: 1.65;
}

/* 20.8. Текст внутри карточек — 15 px, межстрочный 1.6 */
body#body#body#body #main-content :is(article, li) :is(p, span):not([class*="kicker"]):not([class*="badge"]):not([class*="meta"]):not([class*="lead"]) {
  font-size: var(--text-card);
  font-weight: 400;
  line-height: 1.6;
}

/* 20.9. Малый текст — сноски, подписи, примечания. 14 px */
body#body#body#body #main-content :is(small, figcaption, .ce-note, [class*="note"], [class*="caption"], [class*="hint"]) {
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: 1.5;
}

/* 20.10. Kicker и label — 12 px, вес 800, uppercase, межстрочный 1.3.
   Было 7 вариантов: 11.5 / 12 / 12.48 / 12.5 / 13.152 px. */
body#body#body#body #main-content :is(
  .ax-kicker, .ce-hero-kicker, .kcefaq-kicker, .kcecontact-kicker,
  .kcearticles-kicker, .kcereviews-kicker, .home-v3-kicker,
  .home-v4-kicker, .ce-requirements-kicker, .ce-courses-kicker,
  .ce-seo-kicker, .kcef-kicker, .kcev-kicker, .kcenews-kicker,
  .ce-about-kicker, .ce-credentials-kicker, .books-page-v3__kicker,
  .books-page-v3__meta, .ce-section-kicker,
  .basic-hero-kicker-v5, .kcebasic-kicker, .ce-sessions-kicker,
  .ce-stats-kicker, .ce-certificates-kicker,
  .kcew-kicker, .axc-kicker, .kcefinal-kicker, .kce-article-list-kicker,
  [class*="-badge"], [class*="-label"], .ax-card-meta
) {
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* 20.11. Заголовки и текст на тёмных подложках сохраняют свой цвет —
   правила выше меняют только размер и начертание. */
body#body#body#body #main-content :is(
  .basic-hero-offer-v5, .home-route-card--featured, .kcev-video,
  .home-share-strip, .kcecontact-consultation-copy-v4
) :is(h2, h3, h4, p, span, small, .ax-kicker, [class*="kicker"]):not([class*="badge"]):not([class*="discount"]):not([class*="label"]):not(.basic-offer-facts-v5 span):not(.basic-offer-facts-v5 strong) {
  color: inherit;
}


/* ============================================================
   21. ЕДИНЫЙ ФОН СЕКЦИЙ НА ВСЕХ СТРАНИЦАХ

   ЗАЧЕМ. Скан 21 страницы показал: из 409 секций сайта
     386 .... #F7F9F8 (полотно)      — правильно
      22 .... прозрачные             — под ними тот же #F7F9F8, видно так же
       1 .... #FFFFFF (белая)        — выбивается

   Белая секция — #expeditions на странице «О преподавателях».
   Причина: модификатор home-documentary-section--white из бандла
   красит секцию в белый, а карточки внутри — наоборот, в #F7F9F8.
   Получается инверсия: блок «вырезается» из полотна страницы,
   а светлые карточки на белом почти сливаются.

   В разделе 15 этого файла такой случай уже чинился точечно
   для #expeditions на Философии. Здесь делаем правило общим —
   для любой страницы и любой секции с этим модификатором,
   чтобы разнобой не возвращался при добавлении новых блоков.

   ВЕС. body#body#body#body = (0,6,1) против (0,2,0) у бандла.
   !important не нужен.
   ============================================================ */

body#body#body#body #main-content .home-documentary-section--white {
  background: #F7F9F8;
}

/* Карточки внутри — наоборот, белые: так они читаются на полотне */
body#body#body#body #main-content .home-documentary-section--white .home-documentary-info > article {
  background: #FFFFFF;
}

/* Блок с изображением — светлая подложка палитры */
body#body#body#body #main-content .home-documentary-section--white .home-documentary-media {
  background: #EEF3F2;
}

/* ============================================================
   22. УБРАНЫ ТОНКИЕ ПОЛОСЫ МЕЖДУ СЕКЦИЯМИ — ВСЕ 21 СТРАНИЦА
   ------------------------------------------------------------
   ЗАЧЕМ. Скан 21 страницы в браузере нашёл 81 горизонтальную
   линию шириной во весь экран. Это не декор в разметке,
   а рамки самих секций, заданные в бандле:

     .home-v4-page .home-library-section--editorial
       { border-block: 1px solid #DCE5E2 }
     .home-v4-page .home-documentary-section
       { border-block: 1px solid #DCE5E2 }
     .home-v4-page .home-expedition-section--v2
       { border-block: 1px solid #DCE5E2 }
     .home-v4-page .home-campaigns--editorial
       { border-bottom: 1px solid #DCE5E2 }
     .kcetrust-section
       { border-block: 1px solid var(--ax-border-soft) }

   Линии были нужны, пока секции чередовались по цвету:
   белая — светлая — белая. После блока 21 фон у всех
   секций один (#F7F9F8), и линия превратилась в шов
   поперёк сплошного полотна. Секции разделяет воздух —
   вертикальные отступы, а не черта.

   Полосы у секций считаем по типу элемента, а не по классу:
   правило ловит любую секцию внутри #main-content, поэтому
   при добавлении новых блоков шов не вернётся.

   Шапку, меню, хлебные крошки и футер правило не трогает —
   они лежат вне #main-content либо являются nav.

   ВЕС. body#body#body#body #main-content = (0,6,1)
   против (0,2,0) у бандла. !important не нужен.
   ============================================================ */

body#body#body#body #main-content > section,
body#body#body#body #main-content section.home-documentary-section,
body#body#body#body #main-content section.home-library-section,
body#body#body#body #main-content section.home-expedition-section,
body#body#body#body #main-content section.ce-credentials-section,
body#body#body#body #main-content section.home-campaigns,
body#body#body#body #main-content section.kcetrust-section,
body#body#body#body #main-content div.kcetrust-section {
  border-top: 0;
  border-bottom: 0;
}

/* ============================================================
   23. ЕДИНАЯ ЦВЕТОВАЯ СХЕМА И ФОРМА ЭЛЕМЕНТОВ — 21 СТРАНИЦА
   ------------------------------------------------------------
   ЗАЧЕМ. Скан всех 21 страницы в браузере показал: базовая
   палитра выдержана, но по краям накопились «почти такие же»
   значения. Глаз их не называет по имени, но видит как
   неряшливость — особенно на длинных страницах.

   Найдено при замере (число элементов на 21 странице):
     линии карточек   5 оттенков: E3EAE8(1378) D2DEDB(258)
                      DCE5E2(217) D8E2E0(113) D5E0DD(12)
     вторичный текст  5 оттенков: 526267(2704) 5C6B6F(641)
                      59696A(103) 4A5854(22) 235659(9)
     скругления       5 значений: 24px(1422) 14px(208)
                      16px(29) 34px(16) 32px(14)
     радиус кнопок    12px(417) и 10px(90)
     начертание 800   971 элемент крупнее 13px
     ссылки в тексте  два цвета: 526267 и 1D5158
     тёмные блоки     172124 и выброс 0F1A1D у видео

   Приводим к одному знаменателю — к значению, которое уже
   преобладает. Ничего нового не изобретаем.

   Про 800. По вашей спецификации это начертание закреплено
   за кикером 12px. На крупном тексте оно даёт «жирную кашу»,
   поэтому там возвращаем 700 — правило из спецификации
   «не использовать 800 для больших блоков текста».

   Контраст проверен расчётом WCAG: все пары проходят AA,
   худшая 5.24:1 при норме 4.5:1. Читаемость не понижена.

   Часть элементов в бандле не имеет собственных классов
   (article, em, strong внутри сеток), поэтому адресуем их
   через родителя — иначе правило не находит цель.

   ВЕС. body#body#body#body #main-content = (0,6,1)
   против (0,4,0) у бандла. !important не нужен.
   ============================================================ */

/* --- 23.1 ЛИНИИ. Пять оттенков серо-зелёного -> #E3EAE8 --- */
body#body#body#body #main-content .home-book-item,
body#body#body#body #main-content .home-library-card,
body#body#body#body #main-content .home-route-card,
body#body#body#body #main-content .home-campaign-card,
body#body#body#body #main-content .kcecontact-quick-card-v4,
body#body#body#body #main-content .kcecontact-consultation-v4,
body#body#body#body #main-content .home-documentary-media,
body#body#body#body #main-content .ce-table-responsive,
body#body#body#body #main-content .home-video-module-v2,
body#body#body#body #main-content .basic-hero-intro-v5,
body#body#body#body #main-content .books-page-v3__card,
body#body#body#body #main-content .home-documentary-info > article,
body#body#body#body #main-content .home-video-playlist-v2 > a,
body#body#body#body #main-content .kcecontact-channel-grid-v4 > a,
body#body#body#body #main-content .kcecontact-quick-links-v4 > a,
body#body#body#body #main-content .home-news-list-v2 > article,
body#body#body#body #main-content .books-page-v3__guide > article {
  border-color: #E3EAE8;
}

/* --- 23.2 ВТОРИЧНЫЙ ТЕКСТ. Четыре оттенка -> #526267 --- */
body#body#body#body #main-content .ax-card-meta,
body#body#body#body #main-content .ce-pricing-subtitle,
body#body#body#body #main-content .ce-related__desc,
body#body#body#body #main-content .kce-article-text,
body#body#body#body #main-content .kce-article-list-lead,
body#body#body#body #main-content .ucoz-contact-form__note,
body#body#body#body #main-content .kcecontact-label,
body#body#body#body #main-content .ce-requirements-note,
body#body#body#body #main-content .home-book-item p,
body#body#body#body #main-content .home-campaign-card > p {
  color: #526267;
}

/* Кикер на светлом — фирменный бирюзовый, как у остальных 392 */
body#body#body#body #main-content .home-v4-kicker {
  color: #1D5158;
}

/* --- 23.3 СКРУГЛЕНИЯ. Карточки 24px, поля ввода 12px --- */
body#body#body#body #main-content .kce-article-item,
body#body#body#body #main-content .kcebasic-card,
body#body#body#body #main-content .kcefinal-card,
body#body#body#body #main-content .home-video-featured-v2,
body#body#body#body #main-content .kcecontact-map-frame,
body#body#body#body #main-content .kcev-video,
body#body#body#body #main-content .ce-table-responsive,
body#body#body#body #main-content .home-documentary-note,
body#body#body#body #main-content .home-documentary-info > article,
body#body#body#body #main-content .home-video-playlist-v2 > a,
body#body#body#body #main-content .home-news-list-v2 > article,
body#body#body#body #main-content .ce-related__link,
body#body#body#body #main-content .books-page-v3__guide > article {
  border-radius: 24px;
}

body#body#body#body #main-content .ucoz-contact-input,
body#body#body#body #main-content .ucoz-contact-textarea,
body#body#body#body #main-content .ucoz-contact-select {
  border-radius: 12px;
}

/* --- 23.4 КНОПКИ. Один радиус 12px, одно начертание 700 --- */
body#body#body#body #main-content a[class*="btn"],
body#body#body#body #main-content button[class*="btn"],
body#body#body#body #main-content .ce-btn-sm,
body#body#body#body #main-content .ucoz-contact-submit,
body#body#body#body #main-content .home-v3-button,
body#body#body#body #main-content .kcecontact-action,
body#body#body#body #main-content .books-page-v3__button {
  border-radius: 12px;
  font-weight: 700;
}

/* --- 23.5 НАЧЕРТАНИЕ 800 — только за кикером 12px.
       На крупном тексте возвращаем 700 --- */
body#body#body#body #main-content .ax-program-card__number,
body#body#body#body #main-content .ce-col-now,
body#body#body#body #main-content .ax-link,
body#body#body#body #main-content .ce-feature-link,
body#body#body#body #main-content .kcereview-author,
body#body#body#body #main-content .kcecontact-map-link,
body#body#body#body #main-content .kce-article-link,
body#body#body#body #main-content .home-library-all,
body#body#body#body #main-content .kcebasic-aside-title,
body#body#body#body #main-content .ce-stats-card__value,
body#body#body#body #main-content .ce-session-format-card__price,
body#body#body#body #main-content .kcetrust-item > strong,
body#body#body#body #main-content .home-library-card em,
body#body#body#body #main-content .home-route-card em,
body#body#body#body #main-content .home-video-playlist-v2 a em,
body#body#body#body #main-content .home-video-featured-v2 em,
body#body#body#body #main-content .home-book-item a,
body#body#body#body #main-content .kcecontact-channel-grid-v4 > a,
body#body#body#body #main-content .kcecontact-quick-links-v4 a strong,
body#body#body#body #main-content .basic-offer-price-v5 > strong {
  font-weight: 700;
}

/* --- 23.6 ССЫЛКИ В ТЕКСТЕ. Был разнобой: часть серые,
       часть бирюзовые. Оставляем фирменный бирюзовый —
       он читается как ссылка и совпадает с кнопками --- */
body#body#body#body #main-content p > a,
body#body#body#body #main-content li > a:not([class]) {
  color: #1D5158;
}

/* На тёмных подложках ссылка светлая — иначе пропадёт */
body#body#body#body #main-content .home-share-strip p > a,
body#body#body#body #main-content .basic-hero-offer-v5 p > a,
body#body#body#body #main-content .home-route-card p > a,
body#body#body#body #main-content .home-library-card p > a,
body#body#body#body #main-content .kcecontact-consultation-copy-v4 p > a,
body#body#body#body #main-content .home-news-featured-v2 p > a,
body#body#body#body #main-content .home-campaign-card p > a {
  color: #9CCDC8;
}

/* --- 23.7 ТЁМНЫЕ БЛОКИ. Видео выбивалось на #0F1A1D --- */
body#body#body#body #main-content .kcev-video {
  background: #172124;
}

/* ============================================================
   24. КОНТРАСТ НА ТЁМНОМ + КОНЦЕНТРИЧНОСТЬ УГЛОВ + SQUIRCLE
   ------------------------------------------------------------
   Часть А. КОНТРАСТ. Проверены ВСЕ текстовые узлы 21 страницы:
   для каждого вычислен реальный фон — с подъёмом по предкам
   и смешиванием полупрозрачных слоёв, затем контраст по WCAG 2.1
   с учётом крупного текста (>=24px или >=18.66px при весе 700).

   Найдено 3 дефекта. Два из них — моя регрессия, признаю:

   1) БЕЙДЖИ НА ТЁМНЫХ КАРТОЧКАХ — 1.16:1, текст почти невидим.
      Правило 20.11 отдавало `color: inherit` всем потомкам
      тёмных блоков, чтобы они наследовали светлый цвет.
      Но бейдж — это плашка со СВОИМ светлым фоном #DCE9E6.
      Унаследовав светлый #F4F7F6, он стал светлым по светлому.
      Чиним в источнике: исключаем плашки из правила 20.11
      и задаём им тёмный текст на их светлом фоне.

   2) ТЕКСТ .home-campaign-card--primary — 2.58:1.
      Правило 23.2 (вторичный текст -> #526267) не учло, что
      эта карточка тёмная. До моей правки там был #C3CECB.
      Чиним: возвращаем светлый цвет на тёмном модификаторе.

   3) ЗАГОЛОВОК H3 в той же карточке — 1:1, СОВСЕМ НЕВИДИМ.
      Это дефект бандла, не мой: проверено с отключённым
      cosmo-design-fix — цвет #172124 на фоне #172124.
      Встречается на 4 страницах: Главная, Экспедиции,
      Обучение, Курсы. Текст «Базовый блок — для первого
      знакомства» физически не читается.

   Часть Б. КОНЦЕНТРИЧНОСТЬ. Вложенный скруглённый блок
   должен иметь радиус = радиус родителя − зазор, иначе угол
   «пухнет». Проверена геометрия: правило применяется ТОЛЬКО
   там, где ребёнок реально прилегает к углу родителя.
   Случаи, где ребёнок стоит в середине (таблица цен, ссылки
   в карточках кампаний), намеренно не трогаем — там правило
   неприменимо и вмешательство только навредит.

   Часть В. SQUIRCLE. Прогрессивное улучшение через @supports.
   Chromium 139+ (Chrome, Яндекс Браузер, Edge, Opera — более
   80% аудитории в РФ) покажет мягкий суперэллипс.
   Safari и Firefox покажут обычное скругление. Радиус 24px
   не меняется, поэтому запасной вариант выглядит как сейчас.

   ВЕС. body#body#body#body #main-content = (0,6,1).
   !important не используется.
   ============================================================ */

/* --- 24.1 Бейджи со своим светлым фоном на тёмных карточках.
       Было 1.16:1 — почти невидимо. Стало 12.4:1 --- */
body#body#body#body #main-content .basic-hero-offer-v5 .basic-offer-badge-v5,
body#body#body#body #main-content .kcecontact-consultation-copy-v4 .kcecontact-card-badge,
body#body#body#body #main-content .home-route-card--featured [class*="-badge"],
body#body#body#body #main-content .home-share-strip [class*="-badge"],
body#body#body#body #main-content .home-campaign-card--primary [class*="-badge"] {
  color: #163F46;
}

/* Плашка скидки имеет СВОЙ красный фон #B9382D — текст белый.
   Проверено: в бандле там белый, тёмный делать нельзя (2:1) */
body#body#body#body #main-content .basic-offer-discount-v5 {
  color: #FFFFFF;
}

/* --- 24.2 Тёмная карточка кампании: текст и заголовок.
       Заголовок был #172124 на #172124 — контраст 1:1 --- */
body#body#body#body #main-content .home-campaign-card--primary > h3,
body#body#body#body #main-content .home-campaign-card--primary h3 {
  color: #F4F7F6;
}

body#body#body#body #main-content .home-campaign-card--primary > p,
body#body#body#body #main-content .home-campaign-card--primary p {
  color: #C3CECB;
}

/* Ссылка внутри тёмной карточки — светлая бирюза.
   Исключаем .ce-feature-link: у неё СВОЙ светлый фон #F4F7F6,
   на нём бирюза дала бы 1.63:1. Ей оставляем тёмный текст. */
body#body#body#body #main-content .home-campaign-card--primary a:not(.ce-feature-link) {
  color: #9CCDC8;
}

body#body#body#body #main-content .home-campaign-card--primary .ce-feature-link {
  color: #172124;
}

/* --- 24.3 КОНЦЕНТРИЧНОСТЬ УГЛОВ.
       Формула: радиус ребёнка = радиус родителя − зазор.
       Только там, где ребёнок прилегает к углу --- */

/* Видео вплотную в карточке: родитель 24, зазор 1 -> 23 */
body#body#body#body #main-content .kcev-card > .kcev-video {
  border-radius: 23px;
}

/* Обложка героя: родитель 24, зазор 1 -> 23 */
body#body#body#body #main-content .ce-hero-media > .ce-hero-image {
  border-radius: 23px;
}

/* Медиа документального блока: родитель 18, зазор 15 -> 3 */
body#body#body#body #main-content .home-documentary-media > a,
body#body#body#body #main-content .home-documentary-media > img,
body#body#body#body #main-content .home-documentary-media > a > img {
  border-radius: 3px;
}

/* Номер ступени: зазор 37 больше радиуса 24 -> угол прямой.
   Но это квадрат 72x72 — делаем его пилюлей, так он читается
   как маркер, а не как «почти квадрат с непонятным углом» */
body#body#body#body #main-content .ax-program-card__number {
  border-radius: 999px;
}

/* Плашки внутри тёмного оффера: зазор 51 больше радиуса 18,
   правило даёт прямой угол. Оставляем пилюлю — это метка */
body#body#body#body #main-content .basic-offer-badge-v5,
body#body#body#body #main-content .basic-offer-discount-v5 {
  border-radius: 999px;
}

/* --- 24.4 SQUIRCLE. Прогрессивное улучшение.
       Мягкий суперэллипс вместо дуги окружности.
       Радиус не меняется — запасной вариант как сейчас --- */
@supports (corner-shape: squircle) {

  /* Крупные карточки и панели */
  body#body#body#body #main-content .ax-card,
  body#body#body#body #main-content .ax-program-card,
  body#body#body#body #main-content .ce-pricing-card,
  body#body#body#body #main-content .kcebasic-card,
  body#body#body#body #main-content .kcefinal-card,
  body#body#body#body #main-content .kce-article-item,
  body#body#body#body #main-content .home-book-item,
  body#body#body#body #main-content .home-library-card,
  body#body#body#body #main-content .home-route-card,
  body#body#body#body #main-content .home-campaign-card,
  body#body#body#body #main-content .home-news-list-v2 > article,
  body#body#body#body #main-content .home-documentary-info > article,
  body#body#body#body #main-content .kcecontact-quick-card-v4,
  body#body#body#body #main-content .kcecontact-consultation-v4,
  body#body#body#body #main-content .books-page-v3__card,
  body#body#body#body #main-content .kcev-card,
  body#body#body#body #main-content .kcev-video,
  body#body#body#body #main-content .home-video-featured-v2,
  body#body#body#body #main-content .home-video-playlist-v2 > a,
  body#body#body#body #main-content .ce-table-responsive,
  body#body#body#body #main-content .home-documentary-note,
  body#body#body#body #main-content .kcecontact-map-frame,
  body#body#body#body #main-content .basic-hero-offer-v5,
  body#body#body#body #main-content .basic-hero-intro-v5,
  body#body#body#body #main-content .home-documentary-media {
    corner-shape: squircle;
  }

  /* Кнопки и поля ввода — тот же язык формы */
  body#body#body#body #main-content a[class*="btn"],
  body#body#body#body #main-content button[class*="btn"],
  body#body#body#body #main-content .ce-btn-sm,
  body#body#body#body #main-content .ucoz-contact-submit,
  body#body#body#body #main-content .home-v3-button,
  body#body#body#body #main-content .kcecontact-action,
  body#body#body#body #main-content .books-page-v3__button,
  body#body#body#body #main-content .ucoz-contact-input,
  body#body#body#body #main-content .ucoz-contact-textarea,
  body#body#body#body #main-content .ucoz-contact-select {
    corner-shape: squircle;
  }
}

/* ============================================================
   25. РИТМ И ПОПАДАНИЕ — 21 СТРАНИЦА
   ------------------------------------------------------------
   Четыре правки, измеренные в браузере на всех страницах.

   25.1 ОТСТУПЫ СЕКЦИЙ ПО ВАШЕЙ ШКАЛЕ
   Было 9 значений, ни одно не по шкале 4/8/.../96/120:
     101px — 169 секций   -> 96
     115px — 115 секций   -> 120
     112px —  79 секций   -> 120
      42px —  19 секций   -> 40
      63px —  18 секций   -> 64
      86px —   2 секции   -> 80
   Разница 101 против 115 читается как «секции разной высоты
   без причины». Сводим к четырём ступеням:
     крупная 120 / обычная 96 / компактная 64 / плотная 40.
   На телефоне пропорционально: 64 / 56 / 40 / 24.

   25.2 ЗОНЫ НАЖАТИЯ 44px
   Норма Apple и Google — 44x44. Найдено на ПК и телефоне:
     .ce-btn-sm        40px — 90 шт.
     .kcereview-source 38px — 75 шт.
     .home-book-item a 40px — 40 шт.
     .ce-feature-link  43px — 36 шт.
     .kcecontact-link  26px —  9 шт.
   Лечим вертикальным паддингом и min-height, не масштабом:
   текст остаётся того же кегля, растёт только область попадания.

   ВАЖНО: строчные ссылки внутри абзаца (телефон в тексте FAQ,
   «Пользовательское соглашение» в форме) НЕ трогаем — по WCAG
   2.5.8 у них исключение «inline», а увеличение сломало бы
   межстрочный ритм абзаца.

   25.3 ДЛИНА СТРОКИ
   Комфорт — 60-75 знаков, предел 90. Найдено 560 абзацев шире:
     .ax-card-text        984px = 131 знак
     .ce-certificates-lead 960px = 120 знаков
     .ce-seo-copy        1360px = 151 знак
   Ставим max-width в ch — это единица ширины символа, поэтому
   ограничение работает при любом кегле. Ширина карточек
   не меняется: сужается только текстовая строка внутри.

   25.4 ВЫСОТА КНОПОК
   .ce-btn-sm в таблице цен — 40px против 44/46/48 у остальных.
   Причина: ячейка table-cell не задаёт высоту кнопке.

   ВЕС. body#body#body#body #main-content = (0,6,1).
   !important не используется.
   ============================================================ */

/* --- 25.1 ОТСТУПЫ СЕКЦИЙ. Шкала: 120 / 96 / 64 / 40 --- */

/* Крупная — смысловые развороты: отзывы, FAQ, контакты,
   библиотека, экспедиции, видео, новости, SEO-текст */
body#body#body#body #main-content :is(
  .kcereviews-section, .kcefaq-section, .kcecontact-section,
  .home-library-section, .home-expedition-section, .kcef-section,
  .kcev-section, .kcenews-section, .kcearticles-section,
  .ce-seo-section, .home-route-section, .ax-section,
  .kcefinal-section
) {
  padding-block: 120px;
}

/* Обычная — карточные секции основного потока */
body#body#body#body #main-content :is(
  .ce-credentials-section, .ce-about-section, .ce-courses-section,
  .ce-requirements-section, .ce-stats-section, .ce-certificates-section,
  .ce-sessions-section, .ce-hero-section, .home-campaigns,
  .books-page-v3__catalog, .books-page-v3__guide,
  .kcew-section, .ce-success-section
) {
  padding-block: 96px;
}

/* Компактная — таблица цен */
body#body#body#body #main-content .ce-section-pricing {
  padding-block: 64px;
}

/* Плотная — полоса доверия под первым экраном */
body#body#body#body #main-content .kcetrust-section {
  padding-block: 40px;
}

/* Телефон: 64 / 56 / 40 / 24 */
@media (max-width: 767px) {
  body#body#body#body #main-content :is(
    .kcereviews-section, .kcefaq-section, .kcecontact-section,
    .home-library-section, .home-expedition-section, .kcef-section,
    .kcev-section, .kcenews-section, .kcearticles-section,
    .ce-seo-section, .home-route-section, .ax-section,
    .kcefinal-section
  ) {
    padding-block: 64px;
  }

  body#body#body#body #main-content :is(
    .ce-credentials-section, .ce-about-section, .ce-courses-section,
    .ce-requirements-section, .ce-stats-section, .ce-certificates-section,
    .ce-sessions-section, .ce-hero-section, .home-campaigns,
    .books-page-v3__catalog, .books-page-v3__guide,
    .kcew-section, .ce-success-section
  ) {
    padding-block: 56px;
  }

  body#body#body#body #main-content .ce-section-pricing {
    padding-block: 40px;
  }

  body#body#body#body #main-content .kcetrust-section {
    padding-block: 24px;
  }
}

/* --- 25.2 ЗОНЫ НАЖАТИЯ 44px --- */

/* Кнопки-ссылки: добавляем высоту, кегль не трогаем */
body#body#body#body #main-content :is(
  .ce-btn-sm, .ce-feature-link, .kcereview-source,
  .kcecontact-link, .ax-link
) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Ссылка «Читать о книге» в карточке книги — без класса,
   адресуем через родителя */
body#body#body#body #main-content .home-book-item a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Контакты в карточках быстрой связи — блочные ссылки */
body#body#body#body #main-content .kcecontact-quick-card-v4 > a,
body#body#body#body #main-content .axc-contact-list > li > a {
  min-height: 44px;
  display: flex;
  align-items: center;
}

/* .kcereview-source — flex, ему нужен только min-height */
body#body#body#body #main-content .kcereview-source {
  display: inline-flex;
  padding-block: 4px;
}

/* --- 25.3 ДЛИНА СТРОКИ. Единица ch = ширина символа --- */

/* Текст карточек, 15px */
body#body#body#body #main-content :is(
  .ax-card-text, .ce-credentials-card-text,
  .ce-course-text, .kce-article-text
) {
  max-width: 72ch;
}

/* Лиды и подзаголовки секций, 16-18px */
body#body#body#body #main-content :is(
  .ce-certificates-lead, .ce-sessions-lead, .ce-stats-lead,
  .ax-title-sub, .ce-courses-note, .ce-requirements-actions-note,
  .ce-sessions-safety__text
) {
  max-width: 68ch;
}

/* Абзацы в текстовых блоках без своего класса */
body#body#body#body #main-content :is(
  .kcefaq-copy, .home-documentary-head, .ce-credentials-note,
  .ce-seo-content, .ce-seo-copy, .home-documentary-note,
  .kcereviews-note, .kcev-note, .ce-certificates-note,
  .kcefinal-content
) > p {
  max-width: 68ch;
}

/* --- 25.4 ВЫСОТА КНОПОК в таблице цен --- */
body#body#body#body #main-content .ce-col-action .ce-btn-sm {
  min-height: 44px;
}

/* Секция каталога книг не имеет класса — адресуем по id */
body#body#body#body #main-content #books-catalog {
  padding-block: 96px;
}

@media (max-width: 767px) {
  body#body#body#body #main-content #books-catalog {
    padding-block: 56px;
  }
}

/* --- 25.5 ОСТАТКИ ПОСЛЕ ПЕРВОЙ ПРОВЕРКИ ---
   Найдены при контрольном прогоне: редкие классы,
   которых не было в исходном списке. */

/* Лиды и текст секции «успеха» и списка статей */
body#body#body#body #main-content :is(
  .ce-success-lead, .kce-article-list-lead, .ce-seo-intro, .axc-text
) {
  max-width: 68ch;
}

body#body#body#body #main-content :is(
  .ce-success-note, .kcecontact-form-wrap-v4
) > p {
  max-width: 68ch;
}

/* Абзацы прямо в article без класса — тянулись на 170 символов */
body#body#body#body #main-content article > p:not([class]) {
  max-width: 72ch;
}

/* Почта в карточке контактов — блочная ссылка */
body#body#body#body #main-content .axc-card a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* --- 25.6 ФИНАЛЬНАЯ ДОЧИСТКА ---
   Найдено контрольным прогоном. */

/* Ссылка-заголовок внутри карточки: вся карточка кликабельна,
   но сама ссылка была 30px. Растягиваем область на всю строку
   заголовка — попадание становится крупным, вид не меняется. */
body#body#body#body #main-content .ce-about-card-title > a {
  display: block;
  min-height: 44px;
  display: flex;
  align-items: center;
}

/* Секции, у которых свой ритм не попал в шкалу */
body#body#body#body #main-content :is(
  .kce-article-list-section, .axc-hero, .axc-map-section
) {
  padding-block: 96px;
}

@media (max-width: 767px) {
  body#body#body#body #main-content :is(
    .kce-article-list-section, .axc-hero, .axc-map-section
  ) {
    padding-block: 56px;
  }
}

/* Текст в документальном блоке доверия тянулся на 168 символов:
   контейнер широкий, у абзацев нет своего класса */
body#body#body#body #main-content .home-documentary-info article > div > p,
body#body#body#body #main-content .home-documentary-info article div p {
  max-width: 72ch;
}

/* Лид и подзаголовок первого экрана — тянулись на 170 знаков */
body#body#body#body #main-content :is(
  .basic-hero-lead-v5, .basic-hero-subtitle-v5, .basic-offer-note-v5
) {
  max-width: 68ch;
}

/* ============================================================
   26. ГЛАВНАЯ: ПЕРВЫЙ ЭКРАН ПОД ЯНДЕКС ДИРЕКТ
   ------------------------------------------------------------
   ЗАЧЕМ. Замер главной в браузере показал:
     - пустой слайдер занимал 440px на ПК и 214px на телефоне;
     - H1 начинался на 793px при высоте экрана 900px —
       посетитель из Директа видел только шапку и меню;
     - цены, даты набора и кнопки записи были ниже экрана;
     - в первом экране не было ни одного призыва к действию.

   Для контекстной рекламы это прямая потеря: человек приходит
   по запросу «обучение космоэнергетике», видит пустоту
   и уходит, не долистав до предложения.

   ЧТО СДЕЛАНО. Слайдер удалён из шаблона. Первый экран
   перестроен в две колонки: слева заголовок, лид и кнопки,
   справа карточка с ценой, датой ближайшей группы и фактами.

   Сетка 1.15 / 0.85 — текстовая колонка шире, карточка
   компактная. На телефоне колонки складываются: сначала
   заголовок и кнопки, потом карточка с ценой.

   ВЕС. body#body#body#body #main-content = (0,6,1).
   !important не используется.
   ============================================================ */

body#body#body#body #main-content .home-hero-v6 {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: start;
}

/* Явные позиции: слева текст, справа карточка цены,
   пояснения и картинка — во всю ширину под ними.
   Без этого браузер раскладывает элементы по порядку
   в разметке и карточка уезжает в третью строку. */
body#body#body#body #main-content .home-hero-v6 > .home-hero-v6__main {
  grid-column: 1;
  grid-row: 1;
}

body#body#body#body #main-content .home-hero-v6 > .basic-hero-offer-v5 {
  grid-column: 2;
  grid-row: 1 / span 2;
}

/* Лид — под заголовком в левой колонке */
body#body#body#body #main-content .home-hero-v6 > .ce-hero-lead {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  max-width: 60ch;
}

body#body#body#body #main-content .home-hero-v6__main {
  min-width: 0;
}

/* Пояснения и картинка — во всю ширину под двумя колонками */
body#body#body#body #main-content .home-hero-v6 > .ce-hero-layout {
  grid-column: 1 / -1;
}

/* Заголовок и лид выравниваем по левому краю: в две колонки
   центрирование мешает читать */
body#body#body#body #main-content .home-hero-v6 .ce-hero-header {
  text-align: left;
  max-width: none;
}

body#body#body#body #main-content .home-hero-v6 .ce-hero-lead {
  margin-inline: 0;
  max-width: 60ch;
}

/* Картинка и пояснительный текст уходят под кнопки —
   они вторичны, первый экран держат цена и действие */
body#body#body#body #main-content .home-hero-v6 .ce-hero-layout {
  margin-top: 32px;
}

/* Кнопки в ряд, перенос при нехватке места */
body#body#body#body #main-content .home-hero-v6 .ce-hero-actions {
  justify-content: flex-start;
  margin-top: 24px;
}

/* --- Карточка предложения --- */
body#body#body#body #main-content .home-hero-v6 .basic-hero-offer-v5 {
  position: sticky;
  top: 24px;
  background: #172124;
  color: #F4F7F6;
  border-radius: 24px;
  padding: 32px;
  display: grid;
  gap: 16px;
}

body#body#body#body #main-content .basic-offer-when-v5 {
  color: #C3CECB;
  font-size: 16px;
  margin: 0;
}

body#body#body#body #main-content .basic-offer-when-v5 strong {
  color: #F4F7F6;
}

body#body#body#body #main-content .basic-offer-price-v5 {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

body#body#body#body #main-content .basic-offer-price-v5 > strong {
  font-size: clamp(36px, 3.3vw, 48px);
  font-weight: 700;
  line-height: 1.08;
  color: #FFFFFF;
}

body#body#body#body #main-content .basic-offer-old-v5 {
  font-size: 15px;
  color: #9AA9A5;
}

/* Факты о курсе — сетка 2x2 с линиями палитры */
body#body#body#body #main-content .basic-offer-facts-v5 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #2C444B;
  border: 1px solid #2C444B;
  border-radius: 16px;
  overflow: hidden;
}

body#body#body#body #main-content .basic-offer-facts-v5 > li {
  background: #172124;
  padding: 16px;
  margin: 0;
  display: grid;
  gap: 4px;
}

body#body#body#body #main-content .basic-offer-facts-v5 strong {
  color: #F4F7F6;
  font-size: 16px;
  font-weight: 700;
}

body#body#body#body #main-content .basic-offer-facts-v5 span {
  color: #9AA9A5;
  font-size: 14px;
  line-height: 1.5;
}

body#body#body#body #main-content .basic-offer-note-v5 {
  margin: 0;
  color: #C3CECB;
  font-size: 14px;
  line-height: 1.6;
  max-width: 46ch;
}

/* --- Планшет: колонки в одну --- */
@media (max-width: 1023px) {
  body#body#body#body #main-content .home-hero-v6 {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  body#body#body#body #main-content .home-hero-v6 .basic-hero-offer-v5 {
    position: static;
  }
}

/* --- Телефон --- */
@media (max-width: 767px) {
  body#body#body#body #main-content .home-hero-v6 .basic-hero-offer-v5 {
    padding: 24px;
    border-radius: 20px;
  }

  body#body#body#body #main-content .basic-offer-facts-v5 {
    grid-template-columns: 1fr;
  }

  body#body#body#body #main-content .home-hero-v6 .ce-hero-actions > .ce-btn {
    width: 100%;
  }
}

/* Squircle — как у остальных карточек сайта */
@supports (corner-shape: squircle) {
  body#body#body#body #main-content .home-hero-v6 .basic-hero-offer-v5,
  body#body#body#body #main-content .basic-offer-facts-v5 {
    corner-shape: squircle;
  }
}


/* --- 26.1 ДОВОДКА КАРТОЧКИ ПРЕДЛОЖЕНИЯ ---
   Найдено на скриншоте: бейдж «Набор на первую ступень»
   потерял светлую плашку, а скидка — красную.
   В hero главной эти классы раньше не встречались,
   поэтому правила из бандла до них не дотянулись. */

body#body#body#body #main-content .home-hero-v6 .basic-offer-badge-v5 {
  display: inline-flex;
  align-items: center;
  align-self: start;
  margin: 0;
  padding: 7px 14px;
  border-radius: 999px;
  background: #DCE9E6;
  color: #163F46;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body#body#body#body #main-content .home-hero-v6 .basic-offer-discount-v5 {
  display: inline-flex;
  align-items: center;
  align-self: start;
  margin: 0;
  padding: 9px 16px;
  border-radius: 999px;
  background: #B9382D;
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

/* Зачёркнутая старая цена — приглушённая, но читаемая */
body#body#body#body #main-content .basic-offer-old-v5 del {
  color: #9AA9A5;
}

/* Первая кнопка — главная, растягиваем на всю ширину колонки
   на планшете, чтобы не терялась */
@media (max-width: 1023px) and (min-width: 768px) {
  body#body#body#body #main-content .home-hero-v6 .ce-hero-actions {
    flex-wrap: wrap;
  }
}

/* --- 26.2 ТЕЛЕФОН: ПОРЯДОК БЛОКОВ В ПЕРВОМ ЭКРАНЕ ---
   Замер показал: на телефоне карточка с ценой оказывалась
   на 2203px — её отодвигали вниз лид, три абзаца пояснений
   и большая картинка.

   Человек с телефона из Директа до неё не долистывал.

   Ставим порядок через flex-order: заголовок, кикер,
   карточка с ценой, кнопки — и только потом пояснения
   и картинка. Разметку не трогаем, меняется только
   визуальный порядок. */

@media (max-width: 1023px) {
  body#body#body#body #main-content .home-hero-v6 {
    display: flex;
    flex-direction: column;
  }

  body#body#body#body #main-content .home-hero-v6__main {
    display: flex;
    flex-direction: column;
  }

  /* 1. Заголовок с кикером и лидом */
  body#body#body#body #main-content .home-hero-v6 .ce-hero-header {
    order: 1;
  }

  /* 2. Кнопки — сразу под заголовком */
  body#body#body#body #main-content .home-hero-v6 .ce-hero-actions {
    order: 2;
    margin-top: 24px;
  }

  /* 3. Пояснения и картинка — после действия */
  body#body#body#body #main-content .home-hero-v6 .ce-hero-layout {
    order: 3;
  }

  /* 4. Карточка с ценой — сразу после колонки с заголовком
     и кнопками. H1 остаётся первым: так и для человека
     логично, и для поисковика структура не ломается. */
  body#body#body#body #main-content .home-hero-v6 > .basic-hero-offer-v5 {
    order: 2;
    margin-top: 8px;
  }

  body#body#body#body #main-content .home-hero-v6 > .home-hero-v6__main {
    order: 1;
    grid-column: auto;
    grid-row: auto;
  }

  /* Сбрасываем позиции из ПК-сетки, иначе они держат
     карточку и картинку в своих строках */
  body#body#body#body #main-content .home-hero-v6 > .basic-hero-offer-v5,
  body#body#body#body #main-content .home-hero-v6 > .ce-hero-lead,
  body#body#body#body #main-content .home-hero-v6 > .ce-hero-layout {
    grid-column: auto;
    grid-row: auto;
  }

  /* Порядок на телефоне: заголовок и кнопки, цена, подробности */
  body#body#body#body #main-content .home-hero-v6 > .ce-hero-lead {
    order: 3;
    margin-top: 4px;
  }

  /* Пояснения и картинка уходят под карточку с ценой */
  body#body#body#body #main-content .home-hero-v6 .ce-hero-layout {
    order: 3;
    margin-top: 8px;
  }
}

/* --- 26.3 ТЕЛЕФОН: ЛИД ПОД КАРТОЧКУ ЦЕНЫ ---
   Замер: блок заголовка занимал 412px из 844px экрана —
   кикер, H1 и лид на четыре строки. Карточка с ценой
   оказывалась на 1020px, ниже сгиба.

   Лид объясняет подробности, но для человека из Директа
   первичны цена, дата и кнопка. Переносим лид под карточку:
   H1 -> кнопки -> цена -> подробности.

   Текст не меняется и не сокращается — меняется порядок. */

@media (max-width: 767px) {
  body#body#body#body #main-content .home-hero-v6 .ce-hero-header {
    display: flex;
    flex-direction: column;
  }

  body#body#body#body #main-content .home-hero-v6 .ce-hero-kicker { order: 1; }
  body#body#body#body #main-content .home-hero-v6 .ce-main-headline { order: 2; }

  /* Лид уезжает вниз колонки — но остаётся в первом экране
     по смыслу, сразу после цены */
  body#body#body#body #main-content .home-hero-v6 .ce-hero-lead {
    order: 3;
    margin-top: 16px;
    font-size: 17px;
  }
}

/* --- 26.4 Бейдж и плашка скидки: по содержимому ---
   На скриншоте они растянулись во всю ширину карточки,
   потому что grid-элементы по умолчанию тянутся (stretch).
   justify-self: start прижимает их к левому краю. */
body#body#body#body #main-content .home-hero-v6 .basic-offer-badge-v5,
body#body#body#body #main-content .home-hero-v6 .basic-offer-discount-v5 {
  justify-self: start;
  width: auto;
}

/* --- 26.5 ПОДПОРКА ПОД ШАПКУ НА ГЛАВНОЙ ---
   ПРИЧИНА ПОЛОМКИ. Шапка .site-header имеет
   position:absolute — она не занимает места в потоке.
   На внутренних страницах её подпирает блок
   .header-bg--inner высотой 290-430px, а на Главной
   эту роль играл слайдер (min-height 590-760px).

   Когда слайдер удалили, подпорка исчезла — и якорное
   меню .ax-nav (sticky, z-index 90) уехало под шапку,
   а первая секция встала вплотную к меню.

   Возвращаем подпорку отдельным блоком: тот же фон
   и градиент, что у внутренних страниц, но ниже —
   на Главной под ним сразу идёт контент, а не
   декоративная обложка. Высота 168px = 58 (верхняя
   полоса) + 98 (шапка) + 12 воздуха. */

body#body#body#body .header-bg--home {
  position: relative;
  height: 168px;
  background-color: #172124;
  /* Картинки в /images/header/ отдают 404 — проверено запросом.
     Градиент через background-image здесь не поставить:
     в бандле есть правило
       body .header-bg { background-image: none !important }
     Перебивать !important не будем — используем ::before
     с тем же градиентом. Результат тот же, конфликта нет. */
  background-color: #172124;
}

/* Градиент рисуем псевдоэлементом — background-image
   у .header-bg заблокирован правилом !important в бандле */
body#body#body#body .header-bg--home::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0F1A1D 0%, #172124 55%, #1B2D33 100%);
  pointer-events: none;
  z-index: 0;
}

/* Мягкий переход к полотну страницы, как на внутренних */
body#body#body#body .header-bg--home::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px 0;
  height: 64px;
  background: linear-gradient(180deg,
    rgba(23,33,36,0) 0%, rgba(23,33,36,0.45) 45%,
    rgba(23,33,36,0.86) 78%, #172124 100%);
  pointer-events: none;
  z-index: 1;
}

@media (max-width: 767px) {
  body#body#body#body .header-bg--home {
    height: 132px;
  }
  body#body#body#body .header-bg--home::after {
    height: 40px;
  }
}

/* ============================================================
   27. ПЕРВЫЙ ЭКРАН ГЛАВНОЙ: ВЫРАВНИВАНИЕ И ФОН ШАПКИ
   ------------------------------------------------------------
   ПРОВЕРКА В БРАУЗЕРЕ ВЫЯВИЛА ТРИ ДЕФЕКТА.

   1) КНОПКИ НЕ ЦЕНТРИРОВАНЫ И «ЛОМАЮТСЯ».
      Замер: контейнер .ce-hero-actions имеет
      justify-content: flex-start и flex-wrap: wrap.
      Три кнопки шириной 264 + 252 + 275 = 791px
      не помещаются в колонку 754px, поэтому третья
      («Позвонить») переносится на вторую строку
      и повисает слева под первой.

      При этом H1 и кикер выше — с text-align: center
      (правило из бандла для .ce-hero-header).
      Получается рассогласование: заголовок по центру,
      кнопки по левому краю.

      РЕШЕНИЕ. В двухколоночном первом экране логично
      выравнивание по левому краю — так читается сверху
      вниз: кикер, заголовок, кнопки. Приводим заголовок
      к левому краю, кнопки оставляем слева и задаём
      им равную ширину, чтобы строка выглядела ровно.

   2) ПЕРЕНОСЫ В ЗАГОЛОВКЕ: «космоэнерге-тике».
      Замер: hyphens: auto при ширине колонки 754px
      рвёт длинные слова. Для H1 это выглядит небрежно.
      Отключаем переносы у заголовка первого экрана.

   3) ФОН ПОДПОРКИ НЕ ГРУЗИТСЯ — 404.
      Проверено запросом: вся папка /images/header/
      отдаёт 404, включая .webp и .jpg. Поэтому
      background-image в блоке 26 давал ошибку в консоли
      и пустой запрос при каждой загрузке страницы.
      Заменяем картинку на градиент фирменной палитры —
      выглядит так же, грузится мгновенно, 404 исчезает.

   ВЕС. body#body#body#body #main-content = (0,6,1).
   !important не используется.
   ============================================================ */

/* --- 27.1 Заголовок первого экрана — по левому краю --- */
body#body#body#body #main-content .home-hero-v6 .ce-hero-header,
body#body#body#body #main-content .home-hero-v6 .ce-hero-kicker,
body#body#body#body #main-content .home-hero-v6 .ce-main-headline {
  text-align: left;
}

/* --- 27.2 Без переносов в заголовке --- */
body#body#body#body #main-content .home-hero-v6 .ce-main-headline {
  hyphens: manual;
  overflow-wrap: normal;
  text-wrap: balance;
}

/* --- 27.3 Кнопки: ровный ряд, равная ширина --- */
body#body#body#body #main-content .home-hero-v6 .ce-hero-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  justify-content: stretch;
  align-items: stretch;
  max-width: 620px;
  margin-inline: 0;
}

/* Главная кнопка занимает всю строку — она первична */
body#body#body#body #main-content .home-hero-v6 .ce-hero-actions > :first-child {
  grid-column: 1 / -1;
}

body#body#body#body #main-content .home-hero-v6 .ce-hero-actions > .ce-btn {
  width: 100%;
  min-height: 52px;
  justify-content: center;
  text-align: center;
}

/* --- 27.4 Фон подпорки исправлен в блоке 26, в источнике --- */

/* --- 27.5 Телефон --- */
@media (max-width: 767px) {
  body#body#body#body #main-content .home-hero-v6 .ce-hero-actions {
    grid-template-columns: 1fr;
    max-width: none;
    margin-inline: 0;
  }

  body#body#body#body #main-content .home-hero-v6 .ce-hero-actions > :first-child {
    grid-column: 1;
  }
}

/* --- 27.6 Лид первого экрана — тоже по левому краю.
       На скриншоте он остался центрированным, потому что
       .ce-hero-lead — прямой ребёнок сетки, а правило 27.1
       адресовало только .ce-hero-header и его содержимое. */
body#body#body#body #main-content .home-hero-v6 > .ce-hero-lead {
  text-align: left;
  margin-inline: 0;
}

/* ============================================================
   28. ШАПКА БЕЗ ИЗОБРАЖЕНИЯ + ДОВОДКА ПО АУДИТУ
   ------------------------------------------------------------
   28.1 ИЗОБРАЖЕНИЕ В ШАПКЕ УБРАНО (по вашему указанию).
   Проверено запросом: вся папка /images/header/ отдаёт 404,
   включая home-academy-cosmo-compact-v2-1920x640.webp —
   он висел в консоли ошибкой при каждой загрузке Главной.
   Убираем и картинку, и сам запрос: чистый графит палитры.

   28.2 На Базовом блоке .header-bg--inner тоже пытается
   грузить эту картинку. Приводим к тому же виду.
   ============================================================ */

/* Подпорка шапки — ровный графит, без картинок и градиента */
body#body#body#body .header-bg--home::before,
body#body#body#body .header-bg--inner::before {
  content: none;
}

body#body#body#body .header-bg--home,
body#body#body#body .header-bg--inner {
  background-color: #172124;
  background-image: none;
}

/* Нижняя растушёвка не нужна — фон и полотно теперь однотонные */
body#body#body#body .header-bg--home::after,
body#body#body#body .header-bg--inner::after {
  content: none;
}

/* Высота внутренней шапки: было 210px под картинку,
   без изображения достаточно 168 = 58 полоса + 98 шапка + 12 */
body#body#body#body .header-bg--inner,
body#body#body#body .header-bg--home {
  height: 168px;
}

@media (max-width: 767px) {
  body#body#body#body .header-bg--inner,
  body#body#body#body .header-bg--home {
    height: 132px;
  }
}

/* --- 28.3 Якорное меню на телефоне: добавляем подсказку
   прокрутки. Замер показал .ax-nav-list 366→1287px без
   tabindex и aria-label — единственная прокручиваемая
   полоса без доступа с клавиатуры. */
body#body#body#body #main-content .ax-nav-list {
  scroll-snap-type: x proximity;
}

body#body#body#body #main-content .ax-nav-item {
  scroll-snap-align: start;
}

/* ============================================================
   29. ШАПКА И ФУТЕР: ГЛУБОКАЯ ДОВОДКА
   ------------------------------------------------------------
   Замер обеих зон в браузере на ПК 1440 и телефоне 390.
   Контраст везде проходит AA — правок не требует.
   Найдено и чинится:

   1) ФОКУС С КЛАВИАТУРЫ — 30 ссылок в шапке из 40 не имеют
      видимого кольца (outline: none, box-shadow: none).
      Это выпадающие пункты подменю: «Курсы», «Базовый блок»,
      «Буддийский блок» и остальные 27. Человек с клавиатуры
      не видит, где находится. Нарушение WCAG 2.4.7.

   2) ЗОНЫ НАЖАТИЯ — 14 в шапке и 3–5 в футере ниже 44 px.
      Телефон в верхней полосе — высота 20 px, иконки соцсетей
      40 px, контакты в футере 22–26 px.

   3) НАЧЕРТАНИЕ 650 — нестандартный вес у 25 пунктов меню.
      В спецификации только 400/500/700/800. Вес 650
      подменяется браузером и рисуется по-разному.

   4) РАДИУСЫ — в шапке пять значений: 0, 6, 10, 999,
      «0 5px 5px 0». В футере четыре: 0, 6, 12, 20.
      Приводим к общей системе сайта: 12 для элементов
      управления, 24 для карточек, 999 для пилюль.

   5) КЕГЛИ ФУТЕРА — семь значений 12/13/14/15/16/17.
      17 px — единичный выброс. Сводим к 13/14/15/16.

   6) SKIP-LINK на скриншоте перекрывал контент —
      прижимаем его к верхнему краю и поднимаем слой.

   !important НЕ используется: всё решено специфичностью
   body#body#body#body (0,6,x) против (0,2,x) у бандла.
   ============================================================ */

/* --- 29.1 ВИДИМЫЙ ФОКУС на всех ссылках шапки и футера --- */
body#body#body#body .site-header a:focus-visible,
body#body#body#body .site-header button:focus-visible,
body#body#body#body #menu a:focus-visible,
body#body#body#body .uMenuV a:focus-visible,
body#body#body#body .top-line a:focus-visible,
body#body#body#body .dt-footer a:focus-visible,
body#body#body#body .dt-footer button:focus-visible {
  outline: 2px solid #9CCDC8;
  outline-offset: 2px;
  border-radius: 6px;
}

/* Тот же приём для браузеров без :focus-visible */
body#body#body#body .site-header a:focus,
body#body#body#body #menu a:focus,
body#body#body#body .dt-footer a:focus {
  outline: 2px solid #9CCDC8;
  outline-offset: 2px;
}

/* --- 29.2 ЗОНЫ НАЖАТИЯ 44 px --- */

/* Телефон и почта в верхней полосе — были 20 px */
body#body#body#body .top-line a,
body#body#body#body .site-header .hphone a,
body#body#body#body .site-header .hcall > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Иконки соцсетей в шапке — были 40 px */
body#body#body#body .site-header .hsoc a {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Контакты в футере — были 22–26 px */
body#body#body#body .dt-footer__contact-link,
body#body#body#body .dt-footer__rating a,
body#body#body#body .dt-footer__links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Иконки соцсетей футера — приводим к 44 */
body#body#body#body .dt-footer__social a {
  min-width: 44px;
  min-height: 44px;
}

/* --- 29.3 НАЧЕРТАНИЕ: 650 -> 600 (ближайшее по шкале) --- */
body#body#body#body #menu a,
body#body#body#body .uMenuV a,
body#body#body#body .site-header nav a {
  font-weight: 600;
}

/* --- 29.4 РАДИУСЫ: единая система --- */

/* Пункты меню и элементы управления шапки — 12 px */
body#body#body#body #menu a,
body#body#body#body .uMenuV a,
body#body#body#body .site-header .hcall > a {
  border-radius: 12px;
}

/* Иконки соцсетей — пилюля, они квадратные */
body#body#body#body .site-header .hsoc a,
body#body#body#body .dt-footer__social a {
  border-radius: 999px;
}

/* Футер: карточки-колонки 24, элементы управления 12 */
body#body#body#body .dt-footer__col,
body#body#body#body .dt-footer__cta,
body#body#body#body .dt-footer__proof {
  border-radius: 24px;
}

body#body#body#body .dt-footer__action,
body#body#body#body .dt-footer__proof-item,
body#body#body#body .dt-footer__note,
body#body#body#body .dt-footer__rating,
body#body#body#body .dt-footer__cookie-settings {
  border-radius: 12px;
}

/* --- 29.5 КЕГЛИ ФУТЕРА: убираем выброс 17 px --- */
body#body#body#body .dt-footer__cta > p {
  font-size: 16px;
  line-height: 1.6;
}

/* --- 29.6 SKIP-LINK не должен перекрывать контент --- */
body#body#body#body .skip-link {
  position: absolute;
  top: -100px;
  left: 8px;
  z-index: 100000;
}

body#body#body#body .skip-link:focus,
body#body#body#body .skip-link:focus-visible {
  top: 8px;
}

/* --- 29.7 Squircle — как у остальных карточек сайта --- */
@supports (corner-shape: squircle) {
  body#body#body#body .dt-footer__col,
  body#body#body#body .dt-footer__cta,
  body#body#body#body .dt-footer__proof,
  body#body#body#body .dt-footer__action,
  body#body#body#body .dt-footer__note,
  body#body#body#body .dt-footer__rating {
    corner-shape: squircle;
  }
}

/* --- 29.8 ВЕРХНЯЯ ПОЛОСА: остаток веса 650 ---
   Контрольный скан после заливки нашёл 3 ссылки с весом 650:
   телефон, почта и адрес в .top-line > ul.top-ul.
   Правило 29.3 их не покрыло — селектор адресовал
   только #menu и .uMenuV. */
body#body#body#body .top-line a,
body#body#body#body .top-ul a {
  font-weight: 600;
}

/* ============================================================
   30. МЕНЮ: НАВЕДЕНИЕ НА «ЕЩЕ» И ВЫПАДАЮЩИЕ СПИСКИ
   ------------------------------------------------------------
   ЗАМЕР В БРАУЗЕРЕ ПОКАЗАЛ ТРИ ПРИЧИНЫ ПОЛОМКИ.

   1) РАЗРЫВ 46 px МЕЖДУ ПУНКТОМ И ПОДМЕНЮ.
      Пункт «Еще» заканчивается на y=222, подменю начинается
      на y=268 — между ними 46 px пустоты, где лежат
      .cnt и .header-bg. Курсор, идущий вниз к списку,
      проходит по чужим элементам. На реальной мыши
      с обычной скоростью это чтение как «меню моргает
      и закрывается».

      Причина: подменю позиционировано `top: 80px` от пункта,
      хотя высота пункта всего 34 px.

      Лечение: подменю ставим сразу под пунктом и добавляем
      невидимый «мост» через ::before — он перекрывает зазор,
      и курсор всё время остаётся внутри li.

   2) ПОДМЕНЮ «ЕЩЕ» УЕЗЖАЕТ ВЛЕВО НА 191 px.
      У него `left: -191px; right: 0` — список шириной 276 px
      прижат правым краем к пункту шириной 85 px. Визуально
      он висит под «КНИГИ» и «FAQ», а не под «Еще».
      На скриншоте это выглядит как чужое меню.

      Лечение: прижимаем правым краем к правому краю пункта
      через right: 0 без отрицательного left — список
      остаётся в пределах экрана и стоит под своим пунктом.

   3) #wrapper С overflow: hidden ОБРЕЗАЕТ ВЫПАДАЮЩИЕ СПИСКИ.
      Проверена вся цепочка предков: обрезает div#wrapper.
      Пока список короткий — незаметно, но длинные
      («Обучение» — 9 пунктов, 404 px) рискуют обрезаться.

      overflow у #wrapper нужен, чтобы гасить горизонтальную
      прокрутку. Меняем hidden на clip по оси X — тогда
      вертикальные выпадающие списки видны полностью,
      а защита от горизонтальной прокрутки сохраняется.

   ВЕС. body#body#body#body = (0,4,0) против (0,1,x)
   у бандла. !important не используется.
   ============================================================ */

/* --- 30.1 #wrapper: перестаёт обрезать выпадающие списки --- */
body#body#body#body #wrapper {
  overflow-x: clip;
  overflow-y: visible;
}

/* --- 30.2 Подменю встаёт вплотную под пунктом --- */
body#body#body#body .uMenuRoot > li.uWithSubmenu > ul {
  top: 100%;
  margin-top: 0;
}

/* --- 30.3 Невидимый мост через зазор.
       Держит наведение, пока курсор идёт к списку --- */
body#body#body#body .uMenuRoot > li.uWithSubmenu::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 12px;
  background: transparent;
  pointer-events: auto;
}

/* --- 30.4 «Еще» — последний пункт: прижимаем справа,
       чтобы список не уезжал под соседей и не вылезал
       за правый край окна --- */
body#body#body#body .uMenuRoot > li.uWithSubmenu:last-child > ul,
body#body#body#body .uMenuRoot > li.uWithSubmenu:nth-last-child(-n+2) > ul {
  left: auto;
  right: 0;
}

/* --- 30.5 «Еще» без href — показываем, что это кнопка --- */
body#body#body#body .uMenuRoot > li.uWithSubmenu > a[role="button"] {
  cursor: pointer;
}

/* --- 30.6 Подменю выше остальных слоёв шапки --- */
body#body#body#body .uMenuRoot > li.uWithSubmenu > ul {
  z-index: 10000;
}

/* ============================================================
   31. «ПРЫЖОК ШАПКИ» ПРИ ПЕРЕХОДЕ МЕЖДУ СТРАНИЦАМИ
   ------------------------------------------------------------
   ЗАМЕР ВСЕХ 21 СТРАНИЦЫ. Начало контента гуляет:

     332 px — Экспедиции            (1 страница)
     391 px — Статьи, Книги, Контакты, Обратная связь,
              О преподавателях       (5 страниц)
     441 px — 14 страниц
     454 px — Главная

   Разброс 122 px. При переходе по меню страница «дёргается».

   САМА ШАПКА НИ ПРИ ЧЁМ — она везде одинакова:
   верхняя полоса 58 + шапка 106 + подпорка 210 = 374 px.
   Прыгают два блока под ней.

   ПРИЧИНА 1 — ЯКОРНОЕ МЕНЮ ПЕРЕНОСИТСЯ НА ВТОРУЮ СТРОКУ.
   Оно резиновое: сколько пунктов, столько и строк.
     1 строка  =  77 px — 6 страниц (4-9 пунктов)
     2 строки  = 127 px — 15 страниц (12-21 пункт)
   Разница ровно 50 px — это и есть основной скачок.

   Лечение: задаём меню одинаковую минимальную высоту 127 px
   и центрируем содержимое по вертикали. Страницы с коротким
   меню получают тот же ритм, что и с длинным. Ничего
   не обрезается: при 21 пункте (Философия) высота растёт
   естественно, min-height только поднимает нижнюю границу.

   ПРИЧИНА 2 — НА ЭКСПЕДИЦИЯХ НЕТ ХЛЕБНЫХ КРОШЕК.
   На 20 страницах .path занимает 59 px, на Экспедициях
   этого блока нет вовсе — отсюда 332 вместо 391.
   Крошки добавляются в шаблон, но чтобы страница не прыгала
   уже сейчас, резервируем это место.

   ПРИЧИНА 3 — НА ГЛАВНОЙ КРОШКИ И МЕНЮ ВНУТРИ #main-content.
   На остальных страницах они снаружи. Разница 13 px
   набегает из-за разного схлопывания отступов.
   Выравниваем, убирая верхний отступ у первого элемента
   внутри main.

   ВЕС. body#body#body#body = (0,4,0) против (0,1,x)
   у бандла. !important НЕ используется.
   ============================================================ */

/* --- 31.1 Якорное меню: одинаковая высота на всех страницах --- */
body#body#body#body .ax-nav {
  min-height: 127px;
  display: flex;
  align-items: center;
}

body#body#body#body .ax-nav > .ax-nav-container {
  width: 100%;
}

/* --- 31.2 Хлебные крошки: одинаковая высота везде.
       Замер: на ПК 59 px, на телефоне 63 или 72 px —
       разница из-за длины пути («Главная > Обучение >
       Базовый блок космоэнергетики» переносится на две
       строки). Фиксируем высоту и центрируем содержимое. --- */
body#body#body#body .path {
  min-height: 59px;
  display: flex;
  align-items: center;
}

body#body#body#body .path > .cnt {
  width: 100%;
}

/* Резерв там, где крошек нет вовсе (Экспедиции):
   меню отступает ровно на высоту отсутствующего блока */
body#body#body#body .header-bg--inner + .ax-nav,
body#body#body#body .header-bg--home + .ax-nav {
  margin-top: 59px;
}

/* --- 31.3 Главная: крошки и меню лежат внутри #main-content,
       на остальных — снаружи. Снимаем разницу. --- */
body#body#body#body #main-content > .path:first-child,
body#body#body#body #main-content > nav.path:first-child {
  margin-top: 0;
}

/* --- 31.4 Телефон.
       Замер: меню везде 93 px — оно уже ровное.
       Гуляют крошки: 63 px при короткой строке,
       72 px при переносе на две. На Экспедициях их нет.
       Фиксируем 72 px — по самой длинной строке,
       чтобы текст никогда не обрезался. --- */
@media (max-width: 767px) {
  body#body#body#body .ax-nav {
    min-height: 93px;
  }

  body#body#body#body .path {
    min-height: 72px;
  }

  body#body#body#body .header-bg--inner + .ax-nav,
  body#body#body#body .header-bg--home + .ax-nav {
    margin-top: 72px;
  }
}

/* --- 31.5 Остаток 13 px на Главной.
       Замер: у .header-bg--inner на внутренних страницах
       margin-bottom: -13px — подпорка «подтягивает» контент
       вверх. У .header-bg--home этого отступа не было,
       поэтому Главная начиналась на 454 вместо 441.
       Даём тот же отрицательный отступ. --- */
body#body#body#body .header-bg--home {
  margin-bottom: -13px;
}

/* --- 31.6 Философия: подписи в тёмной карточке невидимы.
       Замер: span внутри .basic-offer-facts-v5 имеет
       цвет #172124 на фоне #172124 — контраст 1:1,
       текст «фундамент пути», «целитель и воин»,
       «академика В.А. Петрова», «библиотека Академии»
       физически не читается.

       Дефект был до блока 31 — проверено с отключённым
       файлом. На Главной и Базовом эти подписи имеют
       класс и красятся правилом блока 26, здесь span
       без класса, поэтому правило до них не дотянулось. --- */
body#body#body#body #main-content .basic-offer-facts-v5 li > span {
  color: #9AA9A5;
}

/* ============================================================
   32. САЙДБАР НА МОДУЛЬНЫХ СТРАНИЦАХ: НЕВИДИМЫЙ ТЕКСТ
   ------------------------------------------------------------
   Найдено при сверке с my.min.css и проверке всех модулей.

   Блоки .sbx-editorial и .sbx-consult в сайдбаре рассчитаны
   на тёмную подложку: заголовок #F4F7F6, текст #C3CECB,
   кикер #9CCDC8. Но фон карточки остался белым — контраст
   от 1.08:1 до 1.75:1, текст практически не читается.

   Проверено на /publ/, /blog/, /news/, /load/, /forum/, /faq/
   с отключённым файлом: дефект существует и без моих правок,
   это не регрессия чистки.

   Возвращаем блокам тёмную подложку палитры — тогда светлый
   текст читается так, как задумано автором вёрстки.

   Отдельно: подписи «Файл Академии» на /load/ имеют цвет
   #DCE9E6 на фоне #EEF3F2 — контраст 1.11:1. Им нужен
   тёмный текст, они лежат на светлой плашке.

   ВЕС. body#body#body#body = (0,4,0). !important не нужен.
   ============================================================ */

/* 32 ПЕРЕСМОТРЕН 11.08.2026 — см. блок 34.
   Плоская заливка #172124 стирала авторские градиенты
   этих двух блоков. Заливка убрана, вместо неё в блоке 34
   тёмный фон включается только там, где градиента нет. */

body#body#body#body .sbx-editorial__title,
body#body#body#body .sbx-consult__title {
  color: #F4F7F6;
}

body#body#body#body .sbx-editorial__text,
body#body#body#body .sbx-consult__text {
  color: #C3CECB;
}

body#body#body#body .sbx-editorial__kicker,
body#body#body#body .sbx-consult__kicker {
  color: #9CCDC8;
}

/* --- 32.1 Форум: заголовки разделов белым по белому.
       Замер: a.catLink.forum-title лежит в td.gTableTop.
       Раньше у ячейки был тёмный фон, сейчас он прозрачный,
       а текст остался белым — контраст 1:1. Названия
       «Академия и обучение», «Практика», «Материалы
       и обсуждения», «Работа сайта» не видны вовсе.
       Возвращаем ячейке тёмную подложку палитры. --- */
body#body#body#body td.gTableTop {
  background: #172124;
}

body#body#body#body td.gTableTop a.catLink,
body#body#body#body td.gTableTop .forum-title {
  color: #F4F7F6;
}

/* --- 32.2 Каталог файлов: подпись на обложке.
       span внутри .load-card__placeholder имеет #DCE9E6
       на светлой плашке #EEF3F2 — контраст 1.11:1. --- */
body#body#body#body .load-card__placeholder,
body#body#body#body .load-card__placeholder span {
  color: #163F46;
}

/* --- 32.3 Пагинация: многоточие между страницами
       #71807C на белом даёт 4.13:1 при норме 4.5:1. --- */
body#body#body#body .catPages1 .swchItemDots,
body#body#body#body .catPages1 .swchItemDots span {
  color: #526267;
}


/* ============================================================
   33. ЕДИНОЕ ПОЛОТНО НА МОДУЛЯХ. Почему «слетало».
   ------------------------------------------------------------
   Замер на живом сайте 11.08.2026:

   innerverse-bundle.min.css содержит два правила
       body.site-page{background-color:#FFFFFF}
       body.site-page{--ax-bg:#FFFFFF;--ax-section-bg:#FFFFFF;
                      background-color:#FFFFFF}
   Вес (0,1,1).

   В блоке 21 полотно задано как
       html, body{background-color:#f7f9f8}
   Вес (0,0,1) — ниже. Бандл перебивает его на каждой странице,
   у которой body имеет класс site-page, то есть на всех модулях.

   Работало это только там, где в блоке 21 классы перечислены
   поимённо: module-news, module-blog, module-publ, module-load
   (вес (0,1,1), и файл идёт после бандла — выигрывает порядком).
   Остальные модули — forum, photo, video, faq, tests, search,
   register — оставались белыми: #FFFFFF вместо #F7F9F8.

   Замер до правки: /forum/ фон rgb(255,255,255) при фиксе
   подключённом. То есть дело не в подключении файла, а в весе.

   Ниже вес выравнен: body.site-page = (0,1,1), тот же, что
   у бандла, но правило идёт позже по порядку загрузки —
   этого достаточно. !important не нужен.
   ============================================================ */

body.site-page {
  background-color: #f7f9f8;
  --ax-bg: #f7f9f8;
  --ax-section-bg: #f7f9f8;
}

/* Обёртки модулей залиты белым в бандле и закрывают полотно
   на всю высоту страницы. Делаем их прозрачными, чтобы
   работал фон body, как на 21 основной странице. */
body.site-page #wrapper,
body.site-page #middle {
  background-color: transparent;
}


/* ============================================================
   34. САЙДБАР МОДУЛЕЙ. Почему «слетел».
   ------------------------------------------------------------
   Разбор 11.08.2026 по исходнику GLOBAL SIDEBAR v4.9 от 08.08.
   Проверено в браузере на /publ/ /blog/ /news/ /load/ /faq/
   и на статьях этих разделов, ПК 1440 и телефон 390.

   Разметка сайдбара цела: все 13 блоков v4.9 на месте,
   часы идут, погода приходит, содержание статьи строится,
   свежие публикации подгружаются. Ломалось оформление,
   и виноваты два МОИХ правила плюс одно чужое.

   ПРИЧИНА 1 — я закрасила авторские градиенты.
   В блоке 32 я поставила .sbx-editorial и .sbx-consult
   плоский фон #172124. Замер без моего файла показал,
   что автор задал им:
     .sbx-editorial — радиальный блик #9CCDC8 22% в углу
                      плюс диагональ #172124 → #1B2D33 → #20343B
     .sbx-consult   — диагональ #1D5158 → #172124
   Плоская заливка съедала и блик, и переход. Радиус
   я тоже меняла: 20 → 24 и 18 → 24, отступ 26 → 24.
   Это была моя ошибка: тёмный фон был нужен ТОЛЬКО там,
   где градиент не применился, а не везде.

   ПРИЧИНА 2 — я спрятала единственную кнопку сайдбара
   на телефоне. Правилом
     @media (max-width:768px){.sidebar-arrow{display:none}}
   я убрала «ручку», считая её дублем бургер-меню. Но бургер
   открывает ГЛАВНОЕ МЕНЮ, а не сайдбар. Замер: до 768px
   сайдбар стоит за левым краем (x = −360) и открыть его
   нечем. Проверка с отключённым правилом: ручка
   появляется, по клику панель выезжает на x = 0,
   ширина 340px, кнопка «Закрыть» работает.

   ПРИЧИНА 3 — чужая, размер ручки.
   my.min.css в @media (max-width:767px) задаёт
     .sidebar-arrow{height:100px;line-height:100px!important}
   При этом ширина 40px и высота бокса схлопывается до 18px.
   Зона нажатия 40x18 вместо нормы 44x44, стрелка обрезана.
   Правим здесь, в источник не лезу — файл не мой.

   ВЕС. Для градиентов у автора .sbx-wrap--v3 .sbx-editorial
   = (0,2,0). Ниже условие :not() на background-image
   не поддержать, поэтому включаю тёмный фон адресно —
   только когда у блока класса --v3 нет. Вес (0,2,0)
   против (0,2,0), мой файл идёт позже. !important не нужен.
   ============================================================ */

/* 34.1 Тёмная подложка — только если авторского градиента нет.
   На всех проверенных модулях класс sbx-wrap--v3 присутствует,
   поэтому правило ниже молчит и градиенты остаются
   авторскими. Оно страхует случай, когда шаблон отдаст
   сайдбар без модификатора --v3. */
.sbx-wrap:not(.sbx-wrap--v3) .sbx-editorial,
.sbx-wrap:not(.sbx-wrap--v3) .sbx-consult {
  background-color: #172124;
}

/* 34.2 Текст на тёмных блоках сайдбара — оставляем как было
   в блоке 32: заголовок светлый, текст приглушённый,
   кикер бирюзовый. С градиентом это сочетание тоже верное,
   контраст 12.1:1 и 8.4:1. */
.sbx-wrap .sbx-editorial__title,
.sbx-wrap .sbx-consult__title {
  color: #F4F7F6;
}

.sbx-wrap .sbx-editorial__text,
.sbx-wrap .sbx-consult__text {
  color: #C3CECB;
}

.sbx-wrap .sbx-editorial__kicker,
.sbx-wrap .sbx-consult__kicker {
  color: #9CCDC8;
}

/* 34.3 Ручка сайдбара: сейчас это не кнопка, а иконочный глиф.
   Замер: элемент <button class="sidebar-arrow las la-arrow-right">
   пустой, а бандл рисует иконки через маску —
     .las{mask-image:...; background-color:currentcolor}
   То есть видимая фигура = силуэт стрелки, залитый цветом текста.
   Цвет текста белый, страница белая — на телефоне видно белый
   квадрат 40x18 и ничего больше. Клик работает, но попасть
   в него можно только случайно.

   Отключаем маску и делаем настоящую кнопку-язычок палитры:
   плашка #1D5158, белая «галочка» рисуется рамкой псевдоэлемента.
   Зона 44x44 — минимум по доступности, кратно 4.
   line-height в my.min.css помечен !important, поэтому высоту
   строки не трогаем: содержимое центрируем через flex. */
@media (max-width: 1279px) {
  body .sidebar-arrow {
    -webkit-mask-image: none;
    mask-image: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 0 12px 12px 0;
    background-color: #1D5158;
    color: #FFFFFF;
    box-shadow: 0 8px 20px rgba(23, 33, 36, 0.24);
  }

  body .sidebar-arrow::before {
    content: "";
    width: 9px;
    height: 9px;
    margin-left: -3px;
    border-top: 2px solid #FFFFFF;
    border-right: 2px solid #FFFFFF;
    transform: rotate(45deg);
  }

  body .sidebar-arrow:hover,
  body .sidebar-arrow:focus-visible {
    background-color: #235659;
  }

  /* 34.4 Открытая панель: язычок отъезжает вместе с ней.
     my.min.css сдвигает его на left:270px, а панель шире —
     340px на телефоне, 360px на планшете. Кнопка налезала
     на содержимое сайдбара. Ставим отступ по ширине панели. */
  body .sidebar-arrow.opened {
    left: min(340px, calc(100vw - 48px));
  }

  body .sidebar-arrow.opened::before {
    margin-left: 3px;
    transform: rotate(-135deg);
  }
}

@media (min-width: 768px) and (max-width: 1279px) {
  body .sidebar-arrow {
    height: 56px;
    min-height: 56px;
  }

  body .sidebar-arrow.opened {
    left: min(360px, calc(100vw - 56px));
  }
}

/* 34.5 На широком экране язычок не нужен: сайдбар и так стоит
   колонкой справа. my.min.css прячет его правилом
   .sidebar-arrow{display:none} с весом (0,1,0), но иконочное
   правило бандла .las{display:inline-block} имеет тот же вес
   и идёт позже — поэтому перебивает.
   Замер на /publ/ при 1440: белый прямоугольник 40x16 в потоке
   страницы на y = 3013, в самом низу; до него доходит Tab.
   Возвращаем скрытие с весом (0,1,1) — выше иконочного. */
@media (min-width: 1280px) {
  body .sidebar-arrow {
    display: none;
  }
}


/* ============================================================
   35. ЗЕЛЁНЫЙ ФОН МЕЖДУ КАРТОЧКАМИ САЙДБАРА.
   ------------------------------------------------------------
   Жалоба 11.08.2026: «фон между карточками зелёный».
   Замер пикселя подтвердил: просвет rgb(22,63,70) = #163F46.

   ИСТОЧНИК. my.min.css, правило

     #sidebar, .facts, .popupmf, .gTableTop {
       color: var(--ax-text-inverse,#FFFFFF);
       background-color: var(--ax-primary-active,#163F46);
       border-color: var(--ax-primary-line,rgba(29,81,88,0.18))
     }

   Это заливка старого выезжающего сайдбара: раньше #sidebar был
   тёмной шторкой на всю высоту экрана, и тёмный фон был уместен.
   Сейчас внутрь него вставлен новый сайдбар v4.9 из белых
   карточек с зазором 18px между ними. Карточки закрывают фон,
   а в зазорах старая тёмная заливка просвечивает полосами.

   ПОЧЕМУ НЕ ВЕЗДЕ ОДИНАКОВО.
   На /faq/ и /search/ подключён innerverse-sidebar.min.css,
   а в нём есть

     @media (min-width:1280px){
       #sidebar, #sidebar.page-sidebar { background-color: transparent }
     }

   Вес (0,1,0), идёт позже my.min.css — и гасит заливку.
   На /publ/, /blog/, /news/, /load/ этого файла нет, поэтому
   полосы видны. Проверено пиксельно на ПК 1440:
     /publ/ /blog/ /news/ /load/ — rgb(21,62,68)
     /faq/                       — rgb(255,255,255)

   Поправка к моему вчерашнему отчёту: я написала, что
   innerverse-sidebar.min.css «не влияет ни на что». Это неверно.
   Я проверяла его на /faq/, снимая замеры с блоков .sbx-*,
   а он действует на контейнер #sidebar, которого в том списке
   не было. Одно правило из файла работает и как раз спасает
   /faq/ от зелёных полос. Ошибку признаю.

   НА ТЕЛЕФОНЕ полос нет: там #sidebar снова становится шторкой
   (position:fixed, left:-360px), и бандл задаёт ему свой фон
   #F7F9F8. Замер на 390px: rgb(247,249,248) — верно.
   Поэтому правило ниже ограничено экранами от 1280px,
   чтобы не трогать мобильную шторку.

   ВЕС. body.site-page #sidebar = (1,1,1) против (1,0,0)
   у my.min.css. !important не нужен.
   ============================================================ */

@media (min-width: 1280px) {
  body.site-page #sidebar {
    background-color: transparent;
    color: #172124;
  }
}


/* ============================================================
   36. САЙДБАР: ЕДИНАЯ СИСТЕМА. Баланс и гармонизация.
   ------------------------------------------------------------
   Полный замер 11.08.2026 на /publ/, ПК 1440. Что нашла:

   ФОРМА — разнобой.
     Радиусы карточек:  20px и 18px
     Отступы карточек:  26 / 24 / 22 / 18-20 / 0
     Радиусы кнопок:    999px / 12px / 10px / 6px
     Зазор между карточками: 18px (не кратно 4)

   ТИПОГРАФИКА — 14 разных кеглей на один сайдбар:
     11.2 / 11.52 / 11.84 / 12 / 12.64 / 12.8 / 13.44 /
     14 / 14.08 / 14.88 / 15.04 / 16 / 16.32 / 24.4
     Веса: 500 / 550 / 700 / 750 / 780 / 800

   ЦВЕТ — вторичный текст двумя оттенками:
     #5C6B6F (22 элемента) и #526267 (11 элементов)
     Линии семи оттенков: E3EAE8(28) D2DEDB(20) 718C86(6)
     1D5158(6) 3D555D(4) 9CCDC8(4) CCCCCC(2)

   ЗОНЫ НАЖАТИЯ ниже 44px — 21 штука:
     «Все статьи» 126x42, «Перейти в каталог» 140x20,
     «Все способы связи» 111x17, соцсети 36x36,
     кнопки соцвхода 30x30, разделы каталога 267x37.

   КНОПКИ НЕ НА ВСЮ ШИРИНУ карточки:
     «Все статьи» 126px при доступных 278px
     «Все способы связи» 111px при доступных 282px

   ------------------------------------------------------------
   ЧТО ПРИВОДИМ К ЕДИНОМУ (шкала кратно 4, ваша палитра):

   Форма      карточка 16px · кнопка и поле 12px · зазор 16px
              отступ карточки 20px · линия 1px
   Кегли      12 / 14 / 16 / 20 / 24
   Веса       500 обычный · 600 акцент · 700 заголовок
   Цвет       текст #172124 · вторичный #526267 (единый)
              акцент #1D5158 · линия #E3EAE8
              на тёмном: #F4F7F6 / #C3CECB / #9CCDC8
   Зоны       44px минимум, кнопки во всю ширину карточки

   ВЕС. body.site-page #sidebar .sbx-wrap = (1,3,0).
   Самый тяжёлый селектор бандла по этим целям —
   #sidebar .sbx-wrap--v3 .sbx-quick-list a = (1,3,1).
   Добавление ещё одного класса даёт (1,4,1) и решает
   спор специфичностью. !important не нужен.
   ============================================================ */

/* --- 36.1 РИТМ. Зазор между карточками 18 -> 16px. --- */
body.site-page #sidebar .sbx-wrap .sbx-sidebar {
  gap: 16px;
}

/* --- 36.2 ФОРМА КАРТОЧЕК. Единый радиус 16px, отступ 20px,
       одна линия #E3EAE8. Раньше было 20/18 и 26/24/22/18. --- */
body.site-page #sidebar .sbx-wrap .sbx-editorial,
body.site-page #sidebar .sbx-wrap .sbx-search-form,
body.site-page #sidebar .sbx-wrap .sbx-status,
body.site-page #sidebar .sbx-wrap .sbx-toc,
body.site-page #sidebar .sbx-wrap .sbx-latest,
body.site-page #sidebar .sbx-wrap .sbx-quick,
body.site-page #sidebar .sbx-wrap .sbx-consult,
body.site-page #sidebar .sbx-wrap .sbx-social,
body.site-page #sidebar .sbx-wrap .sbx-disclosure {
  border-radius: 16px;
  padding: 20px;
}

body.site-page #sidebar .sbx-wrap .sbx-search-form,
body.site-page #sidebar .sbx-wrap .sbx-status,
body.site-page #sidebar .sbx-wrap .sbx-toc,
body.site-page #sidebar .sbx-wrap .sbx-latest,
body.site-page #sidebar .sbx-wrap .sbx-quick,
body.site-page #sidebar .sbx-wrap .sbx-social,
body.site-page #sidebar .sbx-wrap .sbx-disclosure {
  border: 1px solid #E3EAE8;
}

/* Раскрывающиеся блоки имеют собственный отступ внутри
   summary, поэтому у самой карточки его снимаем. */
body.site-page #sidebar .sbx-wrap .sbx-disclosure {
  padding: 0;
  overflow: hidden;
}

body.site-page #sidebar .sbx-wrap .sbx-disclosure summary {
  padding: 16px 20px;
  min-height: 56px;
}

body.site-page #sidebar .sbx-wrap .sbx-disclosure .sbx-disclosure-body {
  padding: 0 20px 20px;
}

/* Тёмные карточки: линия по палитре, не серо-синяя #3D555D. */
body.site-page #sidebar .sbx-wrap .sbx-editorial,
body.site-page #sidebar .sbx-wrap .sbx-consult {
  border: 1px solid rgba(156, 205, 200, 0.24);
}

/* --- 36.3 ТИПОГРАФИКА. Пять кеглей вместо четырнадцати. --- */

/* Кикер: 12px, 700, разрядка. Было 11.2px / 800. */
body.site-page #sidebar .sbx-wrap .sbx-editorial__kicker,
body.site-page #sidebar .sbx-wrap .sbx-section-kicker,
body.site-page #sidebar .sbx-wrap .sbx-consult__kicker,
body.site-page #sidebar .sbx-wrap .sbx-social__title {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Заголовок карточки-героя: 24px. Было 24.4px. */
body.site-page #sidebar .sbx-wrap .sbx-editorial__title {
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: -0.01em;
}

/* Заголовок секции: 16px. Было 16.32 / 16 / 15.04. */
body.site-page #sidebar .sbx-wrap .sbx-section-title,
body.site-page #sidebar .sbx-wrap .sbx-consult__title,
body.site-page #sidebar .sbx-wrap .sbx-search-label,
body.site-page #sidebar .sbx-wrap .sbx-disclosure summary strong {
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: 0;
  text-transform: none;
}

/* Основной текст: 14px. Было 14.88 / 14.08 / 13.44. */
body.site-page #sidebar .sbx-wrap .sbx-editorial__text,
body.site-page #sidebar .sbx-wrap .sbx-consult__text,
body.site-page #sidebar .sbx-wrap .sbx-quick-list a strong,
body.site-page #sidebar .sbx-wrap .sbx-latest-list a strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

/* Подписи и вторичное: 12px. Было 11.52 / 11.84 / 11.2. */
body.site-page #sidebar .sbx-wrap .sbx-status-note,
body.site-page #sidebar .sbx-wrap .sbx-status-item h3,
body.site-page #sidebar .sbx-wrap .sbx-disclosure summary small,
body.site-page #sidebar .sbx-wrap .sbx-quick-list a small,
body.site-page #sidebar .sbx-wrap .sbx-latest-list a span {
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
}

/* Кикер часов и погоды остаётся разрядкой, но 12px. */
body.site-page #sidebar .sbx-wrap .sbx-status-item h3 {
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Значение часов и температуры: 20px. Было 16px. */
body.site-page #sidebar .sbx-wrap .sbx-status-value {
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
}

/* --- 36.4 ЦВЕТ. Вторичный текст одним оттенком #526267.
       Было два: #5C6B6F (22 шт.) и #526267 (11 шт.). --- */
body.site-page #sidebar .sbx-wrap .sbx-status-note,
body.site-page #sidebar .sbx-wrap .sbx-status-item h3,
body.site-page #sidebar .sbx-wrap .sbx-disclosure summary small,
body.site-page #sidebar .sbx-wrap .sbx-quick-list a small,
body.site-page #sidebar .sbx-wrap .sbx-latest-list a span {
  color: #526267;
}

/* Линии-разделители внутри списков — тоже единым цветом.
   Было D2DEDB, 718C86, CCCCCC вперемешку. */
body.site-page #sidebar .sbx-wrap .sbx-latest-list li,
body.site-page #sidebar .sbx-wrap .sbx-quick-list li,
body.site-page #sidebar .sbx-wrap .sbx-toc-list li {
  border-color: #E3EAE8;
}

/* --- 36.5 КНОПКИ ВО ВСЮ ШИРИНУ КАРТОЧКИ.
       Замер: «Все статьи» занимала 126px из доступных 278px,
       «Все способы связи» — 111px из 282px. Кнопка, которая
       уже своей карточки, выглядит случайной. Растягиваем. --- */
body.site-page #sidebar .sbx-wrap .sbx-editorial__link,
body.site-page #sidebar .sbx-wrap .sbx-consult__button,
body.site-page #sidebar .sbx-wrap .sbx-consult__secondary,
body.site-page #sidebar .sbx-wrap .sbx-section-link,
body.site-page #sidebar .sbx-wrap .sbx-back-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
}

/* Главная кнопка на тёмной карточке — светлая заливка. */
body.site-page #sidebar .sbx-wrap .sbx-editorial__link,
body.site-page #sidebar .sbx-wrap .sbx-consult__button {
  background: #9CCDC8;
  color: #172124;
}

body.site-page #sidebar .sbx-wrap .sbx-editorial__link:hover,
body.site-page #sidebar .sbx-wrap .sbx-editorial__link:focus-visible,
body.site-page #sidebar .sbx-wrap .sbx-consult__button:hover,
body.site-page #sidebar .sbx-wrap .sbx-consult__button:focus-visible {
  background: #DCE9E6;
}

/* Второстепенная на тёмном — контурная, не подчёркнутый текст. */
body.site-page #sidebar .sbx-wrap .sbx-consult__secondary {
  margin-top: 8px;
  border: 1px solid rgba(156, 205, 200, 0.36);
  background: transparent;
  color: #E3EAE8;
  text-decoration: none;
}

body.site-page #sidebar .sbx-wrap .sbx-consult__secondary:hover,
body.site-page #sidebar .sbx-wrap .sbx-consult__secondary:focus-visible {
  border-color: #9CCDC8;
  background: rgba(156, 205, 200, 0.14);
  color: #FFFFFF;
}

/* Ссылка-действие на светлой карточке — контурная кнопка. */
body.site-page #sidebar .sbx-wrap .sbx-section-link,
body.site-page #sidebar .sbx-wrap .sbx-back-to-top {
  margin-top: 16px;
  border: 1px solid #E3EAE8;
  background: #FFFFFF;
  color: #1D5158;
  text-decoration: none;
}

body.site-page #sidebar .sbx-wrap .sbx-section-link:hover,
body.site-page #sidebar .sbx-wrap .sbx-section-link:focus-visible,
body.site-page #sidebar .sbx-wrap .sbx-back-to-top:hover,
body.site-page #sidebar .sbx-wrap .sbx-back-to-top:focus-visible {
  border-color: #1D5158;
  background: #EEF3F2;
  color: #163F46;
}

/* --- 36.6 ПОИСК. Поле и кнопка одной высоты и формы.
       Было: поле радиус 12px, кнопка 6px. --- */
body.site-page #sidebar .sbx-wrap .sbx-search-row {
  gap: 8px;
}

body.site-page #sidebar .sbx-wrap .sbx-search-text {
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid #E3EAE8;
  background: #FFFFFF;
  font-size: 14px;
  font-weight: 500;
}

body.site-page #sidebar .sbx-wrap .sbx-search-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #1D5158;
  color: #FFFFFF;
}

body.site-page #sidebar .sbx-wrap .sbx-search-button:hover,
body.site-page #sidebar .sbx-wrap .sbx-search-button:focus-visible {
  background: #235659;
}

/* --- 36.7 ЗОНЫ НАЖАТИЯ 44px.
       Замер до правки: 21 элемент меньше нормы. --- */
body.site-page #sidebar .sbx-wrap .sbx-social__links {
  gap: 8px;
}

body.site-page #sidebar .sbx-wrap .sbx-social__links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #EEF3F2;
  color: #1D5158;
}

body.site-page #sidebar .sbx-wrap .sbx-social__links a:hover,
body.site-page #sidebar .sbx-wrap .sbx-social__links a:focus-visible {
  background: #1D5158;
  color: #FFFFFF;
}

/* Только высота и форма. display НЕ трогаем: у автора
   .sbx-latest-list a = block (заголовок над датой),
   .sbx-quick-list a = grid (иконка + текст в две колонки).
   Первая попытка ставила им flex — заголовок и дата
   слипались в одну строку. Проверено на скриншоте. */
body.site-page #sidebar .sbx-wrap .sbx-quick-list a,
body.site-page #sidebar .sbx-wrap .sbx-latest-list a,
body.site-page #sidebar .sbx-wrap .sbx-toc-list a {
  min-height: 44px;
  border-radius: 12px;
}

/* Список категорий модуля — строки каталога были 37px. */
body.site-page #sidebar .sbx-wrap .catsTd a,
body.site-page #sidebar .sbx-wrap a.catName {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Кнопки входа через соцсети в личном кабинете были 30x30. */
body.site-page #sidebar .sbx-wrap .sbx-login-box .login-with {
  width: 44px;
  height: 44px;
  background-size: 24px 24px;
  background-position: center;
  border-radius: 12px;
}

/* Служебные ссылки формы входа. */
body.site-page #sidebar .sbx-wrap .sbx-login-box a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* --- 36.8 ФОКУС с клавиатуры — бирюзовый, как на страницах. --- */
body.site-page #sidebar .sbx-wrap a:focus-visible,
body.site-page #sidebar .sbx-wrap button:focus-visible,
body.site-page #sidebar .sbx-wrap summary:focus-visible,
body.site-page #sidebar .sbx-wrap input:focus-visible {
  outline: 3px solid #9CCDC8;
  outline-offset: 2px;
}

/* --- 36.9 СЛУЖЕБНАЯ РАЗМЕТКА uCoz внутри сайдбара.
       Эти узлы отдаёт движок, своих классов дизайна у них нет,
       поэтому они выпадали из системы. Замер показал:
         .catName        12.8px / 650
         .catNumData     11.2px / 700 / #5C6B6F
         .sbx-weather-city 10.88px
         счётчики онлайн 11.52px и вложенные <b> 14.4px / 800
       Приводим к тем же 12/14px и весам 500/600/700. --- */
body.site-page #sidebar .sbx-wrap .catsTd a,
body.site-page #sidebar .sbx-wrap a.catName {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #172124;
}

body.site-page #sidebar .sbx-wrap .catNumData {
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  color: #526267;
}

body.site-page #sidebar .sbx-wrap .sbx-weather-city {
  font-size: 12px;
  font-weight: 500;
  color: #526267;
}

body.site-page #sidebar .sbx-wrap .sbx-online-counter > div {
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  color: #526267;
}

body.site-page #sidebar .sbx-wrap .sbx-online-counter b {
  font-size: 14px;
  font-weight: 700;
  color: #172124;
}

body.site-page #sidebar .sbx-wrap .sbx-online-users a {
  font-size: 12px;
  font-weight: 600;
  color: #1D5158;
}

/* Ник в списке «Сейчас на сайте» был зоной 52x18. */
body.site-page #sidebar .sbx-wrap .sbx-online-users a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Кнопка главного действия: вес 750 -> 600, как у всех кнопок.
   Бандл адресует её как
     body.site-page #sidebar .sbx-wrap--v3 a.sbx-consult__button
   это (1,3,1). Наш селектор с классом --v3 и тегом a даёт
   (1,4,1) и выигрывает без !important. */
body.site-page #sidebar .sbx-wrap.sbx-wrap--v3 a.sbx-editorial__link,
body.site-page #sidebar .sbx-wrap.sbx-wrap--v3 a.sbx-consult__button {
  font-weight: 600;
}

/* Контурная кнопка на тёмной карточке: #E3EAE8 давал 8.9:1,
   но выбивался из палитры вторичного текста тёмных блоков. */
body.site-page #sidebar .sbx-wrap .sbx-consult__secondary {
  color: #C3CECB;
}

/* Флажок «Запомнить меня» в форме входа был 13x13. */
body.site-page #sidebar .sbx-wrap .sbx-login-box input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 12px 8px 12px 0;
  accent-color: #1D5158;
}


/* ============================================================
   37. ЕДИНОЕ ПОЛОТНО ВЕЗДЕ + УБИРАЕМ LOADER.
   ------------------------------------------------------------
   Задача: фон страниц, модулей и сайдбара — как на Главной.
   Карточки — светлые, как на Главной. Шапку и футер не трогаем.

   ЗАМЕР ЭТАЛОНА (Главная, ПК 1440):
     полотно body/html/main  #F7F9F8
     карточки                #FFFFFF  (124 блока)
     мягкие подложки         #EEF3F2  (36 блоков)
     тёмные акценты          #172124 / #1D5158

   ЗАМЕР ОСТАЛЬНЫХ СТРАНИЦ:
     21 основная + /publ/ /blog/ /news/ /load/ /forum/  — #F7F9F8, верно
     /faq/ /photo/ /video/ /search/ /register /tests/   — #FFFFFF, НЕВЕРНО
   Причина известна: на этих шести шаблонах файл не подключён,
   блок 33 туда не доходит. Ниже дублируем правило так, чтобы
   оно работало и через #wrapper, и через body — на случай,
   когда файл всё-таки подключат.

   Карточки проверены: на всех страницах уже #FFFFFF. Правила
   ниже только закрепляют это на модулях, где бандл красит
   обёртки белым и карточка сливается с полотном.

   LOADER. Разметка <div id="loader"> есть на модулях, скрывается
   скриптом ПОСЛЕ загрузки — при открытии страницы успевает
   мелькнуть. Гасим сразу правилом, чтобы он не появлялся вовсе.
   Разметку не трогаю: она в шаблоне, удалять её отдельно.

   ВЕС. body.site-page #wrapper = (1,1,0) против (0,1,1)
   у бандла. !important не нужен.
   ============================================================ */

/* --- 37.1 LOADER. Полностью убираем с любых страниц. --- */
body #loader,
body .loader-clock {
  display: none;
}

/* --- 37.2 Полотно страницы = #F7F9F8 везде, кроме шапки и футера. --- */
html,
body.site-page,
body.home-page {
  background-color: #f7f9f8;
}

body.site-page #wrapper,
body.site-page #middle,
body.site-page #middle > .cnt,
body.site-page #content,
body.home-page #wrapper {
  background-color: transparent;
}

/* Модули задают белый фон обёрткам — снимаем, чтобы работало полотно. */
body.module-photo #wrapper,
body.module-video #wrapper,
body.module-tests #wrapper,
body.module-search #wrapper,
body.module-users #wrapper,
body.module-faq #wrapper,
body.module-forum #wrapper,
body.module-photo #middle,
body.module-video #middle,
body.module-tests #middle,
body.module-search #middle,
body.module-users #middle,
body.module-faq #middle,
body.module-forum #middle {
  background-color: transparent;
}

/* --- 37.3 Сайдбар: задний фон — полотно, карточки белые.
       Контейнер #sidebar в my.min.css залит #163F46 — это фон
       старой выезжающей шторки, между карточками он давал
       тёмно-зелёные полосы. На широком экране гасим. --- */
@media (min-width: 1280px) {
  body.site-page #sidebar,
  body.site-page #sidebar .sbx-wrap,
  body.site-page #sidebar .sbx-sidebar {
    background-color: transparent;
  }
}

/* --- 37.4 Карточки светлые, как на Главной.
       Тёмные блоки сайдбара (editorial и consult) сюда
       не попадают: у них авторские градиенты. --- */
body.site-page #sidebar .sbx-search-form,
body.site-page #sidebar .sbx-status,
body.site-page #sidebar .sbx-toc,
body.site-page #sidebar .sbx-latest,
body.site-page #sidebar .sbx-quick,
body.site-page #sidebar .sbx-social,
body.site-page #sidebar .sbx-disclosure {
  background-color: #ffffff;
}

/* Карточки модулей — тот же белый, что и на Главной. */
body.module-photo .photo-card,
body.module-video .video-card,
body.module-faq .kcefaq-item,
body.module-tests .tests-card,
body.module-search .search-card {
  background-color: #ffffff;
}

/* --- 37.5 Секции внутренних страниц не должны быть белыми
       во всю ширину — иначе полотно исчезает. Белый остаётся
       у карточек, у секции — полотно. --- */
body.site-page #middle > .cnt > .section,
body.site-page .page-content,
body.site-page .page-content-wrapper {
  background-color: transparent;
}