/* ==========================================================================
   Модуль «Новости и статьи / Сертификаты и дипломы»
   Переработан по отдельному ТЗ от 05.08.2026.

   Главное ограничение ТЗ: не подменять действующую дизайн-систему.
   Новых глобальных токенов здесь нет — только переменные проекта
   (--zt-ink, --zt-ink-soft, --zt-radius-card, --zt-shadow-2,
   --zt-h2-size) и локальные, ограниченные секцией модуля.

   Все классы в своём пространстве имён: zt-home-media-v2,
   zt-home-news-v2, zt-home-cert-v2 — на соседние блоки не влияют.

   box-sizing задан глобально в reset.css (ТЗ §6.4).
   ========================================================================== */

/* Боевой модуль должен совпадать со стендом без подключения общих
   стендовых zt-fonts.css / zt-home-unify.css / zt-redesign.css.
   Объявления локальны по использованию: гарнитуры применяются только
   внутри #ztHomeMediaV2, соседние блоки сайта не меняются. */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/manrope-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Russo One';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/russo-one-400-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Russo One';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/russo-one-400-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Tektur';
    font-style: normal;
    font-weight: 400 900;
    font-stretch: 100%;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/tektur-400-900-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Tektur';
    font-style: normal;
    font-weight: 400 900;
    font-stretch: 100%;
    font-display: swap;
    src: url('/local/templates/zipteh/assets/fonts/tektur-400-900-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

#ztHomeMediaV2.zt-home-media-v2 {
    /* Локальные переменные модуля, не глобальные */
    --zm-panel-bg: #ffffff;
    --zm-panel-border: #e6e9ee;
    --zm-card-border: #e6e9ee;
    --zm-accent: #ffb800;
    --zm-accent-ink: #8a6200;
    --zm-gap: clamp(16px, 1.6vw, 24px);

    position: relative;
    left: 0;
    width: 100%;
    max-width: none;
    padding: 48px 0 42px;
    overflow: hidden;
    /* Фон прозрачный — секция не серая (указание заказчика 06.08.2026).
       Панели отделяются от страницы белым фоном, рамкой и тенью */
    background: transparent;
    font-family: 'Tektur', 'Inter', 'PT Sans Caption', system-ui, Arial, sans-serif;
    font-synthesis-weight: none;
}

/* Типографические роли раньше приходили только со стендовыми общими CSS.
   Дублируем их внутри модуля, чтобы бой совпадал со стендом. */
#ztHomeMediaV2 .zt-home-media-v2__heading,
#ztHomeMediaV2 .zt-home-news-v2__title,
#ztHomeMediaV2 .zt-home-news-v2__title a {
    font-family: 'Russo One', 'Tektur', 'Inter', system-ui, Arial, sans-serif !important;
}

#ztHomeMediaV2 .zt-home-media-v2__eyebrow,
#ztHomeMediaV2 .zt-home-media-v2__all,
#ztHomeMediaV2 .zt-home-media-v2__mobile-all,
#ztHomeMediaV2 .zt-home-news-v2__more {
    font-family: 'Manrope', 'Inter', 'PT Sans Caption', system-ui, Arial, sans-serif !important;
}

/* Геометрию контейнера задаёт общий .zt-shell (ТЗ §6.3 основного
   задания: один контейнер на весь сайт). Своей ширины модуль
   не назначает. */
#ztHomeMediaV2 .zt-home-media-v2__inner {
    width: 100%;
}

/* --------------------------------------------------------------------------
   Сетка: две равные панели, под ними строка преимуществ (ТЗ §3)
   -------------------------------------------------------------------------- */
#ztHomeMediaV2 .zt-home-media-v2__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--zm-gap);
    /* Высота соседних панелей визуально совпадает, но задаётся
       содержимым, а не жёстким значением (ТЗ §3) */
    align-items: stretch;
}

#ztHomeMediaV2 .zt-home-media-v2__panel {
    display: flex;
    min-width: 0;
    flex-direction: column;
    /* ТЗ доработки §3: внутренние отступы 32–40, скругление 28–32,
       мягкая рассеянная тень, без заметной тёмной рамки */
    padding: clamp(24px, 2.6vw, 40px);
    overflow: hidden;
    background: var(--zm-panel-bg);
    border: 1px solid #eef1f5;
    border-radius: 30px;
    box-shadow: 0 20px 50px rgba(29, 34, 40, .08);
}

/* Вертикальные пропорции панелей (ТЗ доработки §3: 680–720 на десктопе).
   Минимум, а не жёсткая высота — равенство панелей даёт grid stretch */
@media (min-width: 1280px) {
    #ztHomeMediaV2 .zt-home-media-v2__panel {
        min-height: 690px;
    }
}

/* --------------------------------------------------------------------------
   Шапка панели: надзаголовок, H2, описание, ссылка раздела
   -------------------------------------------------------------------------- */
#ztHomeMediaV2 .zt-home-media-v2__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    /* ТЗ доработки §4.1: между шапкой и карточками 40–48 */
    margin-bottom: clamp(24px, 2.8vw, 44px);
}

/* У документов зазор чуть меньше (ТЗ доработки §5.1: 30–40) */
#ztHomeMediaV2 .zt-home-media-v2__panel--certificates .zt-home-media-v2__head {
    margin-bottom: clamp(20px, 2.4vw, 36px);
}

#ztHomeMediaV2 .zt-home-media-v2__head-text {
    min-width: 0;
}

#ztHomeMediaV2 .zt-home-media-v2__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 7px 11px;
    color: var(--zm-accent);
    background: transparent;
    border: 1.5px solid var(--zm-accent);
    /* N-389/N-390: компактное скругление вместо формы капсулы. */
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
    animation: none;
}

#ztHomeMediaV2 .zt-home-media-v2__eyebrow-icon {
    display: grid;
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    place-items: center;
}

#ztHomeMediaV2 .zt-home-media-v2__eyebrow-icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: var(--zm-accent) !important;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* N-336: глобальное правило типографического слоя назначает path
   графитовый stroke с !important — локально возвращаем фирменный жёлтый. */
#ztHomeMediaV2 .zt-home-media-v2__eyebrow-icon svg * {
    stroke: var(--zm-accent) !important;
}

@keyframes zt-hm-eyebrow-pulse {
    0%, 100% { opacity: .52; }
    50% { opacity: 1; }
}

#ztHomeMediaV2 .zt-home-media-v2__heading {
    margin: 0;
    color: var(--zt-ink, #333a43);
    font-size: var(--zt-h2-size, 32px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    text-transform: uppercase;
}

/* Самодостаточная шкала заголовка: на стенде её задаёт zt-home-unify.css,
   на бою этого файла нет. */
@media (max-width: 1023px) {
    #ztHomeMediaV2.zt-home-media-v2 .zt-home-media-v2__heading {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 640px) {
    #ztHomeMediaV2.zt-home-media-v2 .zt-home-media-v2__heading {
        font-size: 22px !important;
    }
}

#ztHomeMediaV2 .zt-home-media-v2__lead {
    /* ТЗ доработки §4.1: описание не шире 70–75% блока */
    max-width: 72%;
    margin: 10px 0 0;
    color: var(--zt-ink-soft, #6b7480);
    font-size: 14px;
    line-height: 1.5;
}

/* Ссылка раздела — пилюля в стиле кнопок сайта */
#ztHomeMediaV2 .zt-home-media-v2__all {
    display: inline-flex;
    /* ТЗ доработки §4.1: увеличенная кликабельная область */
    min-height: 46px;
    width: 180px;
    min-width: 180px;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
    justify-content: center;
    padding: 0 20px;
    color: var(--zt-ink, #333a43);
    background: #ffffff;
    border: 1px solid var(--zm-card-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: var(--zt-shadow-2, 0 8px 24px rgba(29, 34, 40, .06));
    transition: border-color .18s ease, transform .18s ease;
}

#ztHomeMediaV2 .zt-home-media-v2__all svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    fill: none;
    stroke: var(--zm-accent);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
}

#ztHomeMediaV2 .zt-home-media-v2__all:hover {
    border-color: var(--zm-accent);
}

#ztHomeMediaV2 .zt-home-media-v2__all:hover svg {
    transform: translateX(3px);
}

/* N-392…N-395: подпись CTA не меняет гарнитуру, кегль или начертание
   при hover/active/focus на любых ширинах. */
#ztHomeMediaV2 .zt-home-media-v2__all,
#ztHomeMediaV2 .zt-home-media-v2__all:hover,
#ztHomeMediaV2 .zt-home-media-v2__all:active,
#ztHomeMediaV2 .zt-home-media-v2__all:focus,
#ztHomeMediaV2 .zt-home-media-v2__mobile-all,
#ztHomeMediaV2 .zt-home-media-v2__mobile-all:hover,
#ztHomeMediaV2 .zt-home-media-v2__mobile-all:active,
#ztHomeMediaV2 .zt-home-media-v2__mobile-all:focus {
    color: var(--zt-ink, #333a43) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    text-transform: none !important;
}

/* Нижний пульт узких экранов повторяет принятую схему товарного модуля.
   На десктопе он не участвует в раскладке. */
#ztHomeMediaV2 .zt-home-media-v2__mobile-controls {
    display: none;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-all {
    min-width: 0;
    min-height: 44px;
    max-width: calc(100% - 96px);
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    overflow: hidden;
    color: var(--zt-ink, #333a43);
    background: #ffffff;
    border: 1px solid #dfe3e7;
    border-radius: 8px;
    box-shadow: var(--zt-shadow-2, 0 8px 24px rgba(29, 34, 40, .06));
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .18s ease, transform .18s ease;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-all:active {
    transform: translateY(1px);
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-all:hover,
#ztHomeMediaV2 .zt-home-media-v2__mobile-arrow:hover {
    border-color: var(--zm-accent);
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-all svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    fill: none;
    stroke: var(--zm-accent);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-all span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-navigation {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-arrow {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--zt-ink, #333a43);
    background: #ffffff;
    border: 1px solid #dfe3e7;
    border-radius: 8px;
    box-shadow: var(--zt-shadow-2, 0 8px 24px rgba(29, 34, 40, .06));
    cursor: pointer;
    transition: border-color .18s ease, transform .18s ease;
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-arrow:active {
    transform: translateY(1px);
}

#ztHomeMediaV2 .zt-home-media-v2__mobile-arrow svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* N-530…N-535 (01.09.2026). Прежнее решение N-370…N-373 держало ссылки
   разделов под контентом; заказчик его отменил: на 1280/1440 «Все новости»
   и «Все документы» возвращаются в шапку панели — на одну строку с жёлтым
   надзаголовком и по правому краю. Раскладку «eyebrow | all» задаёт блок
   1200–1499 ниже (`grid-template-areas`), здесь только снимается запрет
   на верхнюю ссылку. Нижний пульт скрыт (у него базовый `display: none`),
   поэтому панель становится ниже ровно на его высоту: кнопка 46 px плюс
   отступ 18 px. */
@media (min-width: 1181px) and (max-width: 1500px) {
    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all {
        display: inline-flex !important;
    }

    #ztHomeMediaV2 .zt-home-media-v2__mobile-controls {
        display: none;
    }
}

/* N-550…N-557: ссылка раздела по высоте и кеглю равна плашке слева —
   «Актуальное» / «Документы»: 33 px и 12 px. Нижняя граница 1000 px
   учитывает фактическую ширину 1022 px у контрольного режима 1024
   (рамка стенда вычитает 2 px). `!important` нужен только здесь,
   чтобы перебить принятые общие правила: min-height 44 px в
   zt-home-unify.css и фиксированный кегль CTA 14 px выше в файле.
   N-558…N-566: рамка, белая подложка и тень сняты; текст со стрелкой
   прижаты к правому краю общей области ссылки. На 768 и мобильных
   прежняя раскладка не меняется. */
@media (min-width: 1000px) {
    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all {
        align-self: start;
        min-height: 33px !important;
        height: 33px;
        justify-content: flex-end;
        padding: 0;
        gap: 8px;
        font-size: 12px !important;
        text-align: right;
        background: transparent;
        border: 0;
        box-shadow: none;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all:hover,
    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all:focus {
        border-color: transparent;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all svg {
        width: 16px;
        height: 16px;
        flex: 0 0 16px;
    }
}

/* --------------------------------------------------------------------------
   Карточки новостей (ТЗ §4)
   -------------------------------------------------------------------------- */
#ztHomeMediaV2 .zt-home-news-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
    margin-top: auto;
    /* Свободная высота панели уходит в карточки, а не в пустоту
       между шапкой и сеткой (ТЗ доработки §4.2: карточки 420–460) */
    flex: 1 0 auto;
}

#ztHomeMediaV2 .zt-home-news-v2__card {
    position: relative;
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--zm-card-border);
    /* ТЗ доработки §4.2: скругление карточки 18–22 */
    border-radius: 20px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

/* ТЗ §7: наведение поднимает карточку, но не меняет её размер —
   иначе соседние карточки дёргаются */
#ztHomeMediaV2 .zt-home-news-v2__card:hover {
    border-color: #d8dce2;
    box-shadow: var(--zt-shadow-2, 0 8px 24px rgba(29, 34, 40, .06));
    transform: translateY(-2px);
}

#ztHomeMediaV2 .zt-home-news-v2__card:focus-within {
    border-color: var(--zm-accent);
}

/* Пропорция 4:3 закреплена контейнером: картинка не двигает
   вёрстку при загрузке (ТЗ §9 — не допускать CLS) */
#ztHomeMediaV2 .zt-home-news-v2__image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f2f3f5;
}

/* Вертикальные карточки на десктопе: изображение выше — ~43% высоты
   карточки 440 px (ТЗ доработки §4.2: 42–45%) */
@media (min-width: 1280px) {
    #ztHomeMediaV2 .zt-home-news-v2__image {
        aspect-ratio: 6 / 5;
    }
}

#ztHomeMediaV2 .zt-home-news-v2__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* На стенде это правило приходило из zt-redesign.css. У исходных
       фотографий есть внутренние поля, поэтому одного object-fit мало. */
    transform: scale(1.12);
    transform-origin: center;
}

#ztHomeMediaV2 .zt-home-news-v2__body {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    /* ТЗ доработки §4.2: внутренние отступы текста 16–20 */
    padding: 18px 18px 20px;
}

#ztHomeMediaV2 .zt-home-news-v2__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

/* N-369: фирменный жёлтый шейп с белым текстом применяется только
   к бейджу «НОВОСТИ» напротив даты, а не ко всей панели. */
#ztHomeMediaV2 .zt-home-news-v2__tag {
    display: inline-flex;
    align-items: center;
    max-width: 62%;
    padding: 4px 9px;
    overflow: hidden;
    color: #ffffff;
    background: var(--zm-accent);
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

#ztHomeMediaV2 .zt-home-news-v2__date {
    flex: 0 0 auto;
    color: var(--zt-ink-muted, #929aa1);
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}

#ztHomeMediaV2 .zt-home-news-v2__title {
    margin: 0 0 8px;
    color: var(--zt-ink, #333a43);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.01em;
}

#ztHomeMediaV2 .zt-home-news-v2__link {
    display: -webkit-box;
    overflow: hidden;
    color: inherit;
    font: inherit;
    text-decoration: none;
    -webkit-box-orient: vertical;
    /* ТЗ §4.1: 2–4 строки, полный текст доступен в title */
    -webkit-line-clamp: 3;
}

/* Кликабельна вся карточка — растянутая ссылка заголовка.
   Одна ссылка на карточку: вложенные <a> невалидны, а дубли
   засоряют обход с клавиатуры и озвучку. */
#ztHomeMediaV2 .zt-home-news-v2__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

#ztHomeMediaV2 .zt-home-news-v2__excerpt {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 14px;
    color: var(--zt-ink-soft, #6b7480);
    font-size: 13px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    /* ТЗ доработки §4.3: описание не длиннее 3–4 строк */
    -webkit-line-clamp: 3;
}

/* CTA прижат к низу: у карточек в ряду он на одной линии (ТЗ §4) */
#ztHomeMediaV2 .zt-home-news-v2__more {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    color: var(--zt-ink, #333a43);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
}

#ztHomeMediaV2 .zt-home-news-v2__more svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    fill: none;
    /* N-335: тот же основной жёлтый, что у показателей «10+». */
    stroke: var(--zm-accent) !important;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
}

#ztHomeMediaV2 .zt-home-news-v2__card:hover .zt-home-news-v2__more svg {
    transform: translateX(3px);
}

#ztHomeMediaV2 .zt-home-news-v2__empty {
    margin: 0;
    padding: 28px 0;
    color: var(--zt-ink-soft, #6b7480);
    font-size: 14px;
    text-align: center;
}

/* --------------------------------------------------------------------------
   Карусель документов (ТЗ §5): центральный выделен, соседние
   видны частично
   -------------------------------------------------------------------------- */
#ztHomeMediaV2 .zt-home-cert-v2__wrap {
    position: relative;
    margin-top: auto;
    padding-top: 8px;
}

#ztHomeMediaV2 .zt-home-cert-v2 {
    position: relative;
    width: 100%;
    /* ТЗ доработки §5.2: центральный документ 390–440 px и занимает
       основную часть зоны слайдера. Верхний отступ 16 — под галочку,
       выходящую за угол документа; нижние 48 — зазор до пагинации. */
    height: clamp(320px, 26vw, 392px);
    padding: 16px 0 48px;
    overflow: hidden;
    box-sizing: content-box;
}

#ztHomeMediaV2 .zt-home-cert-v2__card {
    position: relative;
    z-index: 1;
    display: flex;
    width: clamp(112px, 7vw, 130px);
    height: 100%;
    align-items: center;
    justify-content: center;
    background: transparent;
    text-decoration: none;
    /* N-332: дальний слой стопки; JS проставляет расстояние от
       активного документа через data-stack-distance. */
    opacity: .14;
    transform: scale(.62);
    filter: blur(5px);
    transition: opacity .3s ease, transform .3s ease, filter .3s ease;
}

#ztHomeMediaV2 .zt-home-cert-v2__card[data-stack-distance="2"] {
    z-index: 2;
    opacity: .38;
    transform: scale(.72);
    filter: blur(3.6px);
}

#ztHomeMediaV2 .zt-home-cert-v2__card[data-stack-distance="1"],
#ztHomeMediaV2 .zt-home-cert-v2__card.swiper-slide-prev,
#ztHomeMediaV2 .zt-home-cert-v2__card.swiper-slide-next {
    z-index: 4;
    opacity: .68;
    transform: scale(.86);
    filter: blur(2.2px);
}

#ztHomeMediaV2 .zt-home-cert-v2__card.swiper-slide-active {
    z-index: 6;
    opacity: 1;
    transform: scale(1);
    filter: none;
}

/* Лист документа: одинаковая рамка показа, изображение вписывается
   целиком без обрезки (ТЗ §5) */
#ztHomeMediaV2 .zt-home-cert-v2__paper {
    position: relative;
    display: block;
    width: auto;
    height: 100%;
    /* N-036 (06.08.2026): ограничение шириной слайда снято — бумага
       держит пропорцию 5:7 при полной высоте и может быть шире
       узкого слайда (веер с перекрытием, активный выше по z-index).
       Раньше бумага сжималась до ширины слайда, скан внутри
       уменьшался, и сверху/снизу зияли белые поля */
    max-width: none;
    margin: 0 auto;
    aspect-ratio: 5 / 7;
    /* overflow оставлен видимым: галочка выходит за угол документа
       (ТЗ доработки §5.2); картинку скругляет её собственный радиус */
    padding: 10px;
    background: #ffffff;
    border: 1px solid var(--zm-card-border);
    /* ТЗ доработки §5.2: скругление 20–24 */
    border-radius: 22px;
    box-shadow: var(--zt-shadow-2, 0 8px 24px rgba(29, 34, 40, .06));
    transition: border-color .3s ease, box-shadow .3s ease;
}

#ztHomeMediaV2 .zt-home-cert-v2__card.swiper-slide-active .zt-home-cert-v2__paper {
    padding: 9px;
    border-color: var(--zm-accent);
    border-width: 2px;
    box-shadow: 0 18px 40px rgba(29, 34, 40, .14);
}

#ztHomeMediaV2 .zt-home-cert-v2__paper img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 13px;
    object-fit: contain;
}

/* Круглый индикатор с галочкой — над правым верхним углом активного
   документа, частично выходит за его границу (ТЗ доработки §5.2) */
#ztHomeMediaV2 .zt-home-cert-v2__badge {
    position: absolute;
    top: -13px;
    right: -13px;
    z-index: 2;
    display: none;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    background: var(--zm-accent);
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 4px 10px rgba(17, 19, 24, .16);
}

#ztHomeMediaV2 .zt-home-cert-v2__card.swiper-slide-active .zt-home-cert-v2__badge {
    display: flex;
}

#ztHomeMediaV2 .zt-home-cert-v2__badge svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: #1a1a1a;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Стрелки — круглые кнопки 48–56 поверх слайдера (ТЗ доработки §5.4),
   выровнены по вертикальному центру документов */
#ztHomeMediaV2 .zt-home-cert-v2__prev,
#ztHomeMediaV2 .zt-home-cert-v2__next {
    z-index: 5;
    width: 50px;
    height: 50px;
    top: calc(50% - 16px);
    margin-top: -25px;
    background: #ffffff;
    border: 1px solid var(--zm-card-border);
    border-radius: 50%;
    box-shadow: 0 10px 26px rgba(29, 34, 40, .14);
    transition: border-color .18s ease, transform .18s ease, opacity .18s ease;
}

#ztHomeMediaV2 .zt-home-cert-v2__prev::after,
#ztHomeMediaV2 .zt-home-cert-v2__next::after {
    color: var(--zm-accent);
    font-size: 16px;
    font-weight: 700;
}

#ztHomeMediaV2 .zt-home-cert-v2__prev:hover,
#ztHomeMediaV2 .zt-home-cert-v2__next:hover {
    border-color: var(--zm-accent);
}

#ztHomeMediaV2 .zt-home-cert-v2__prev:active,
#ztHomeMediaV2 .zt-home-cert-v2__next:active {
    transform: translateY(1px);
}

#ztHomeMediaV2 .zt-home-cert-v2__prev:focus-visible,
#ztHomeMediaV2 .zt-home-cert-v2__next:focus-visible {
    outline: 3px solid var(--zm-accent) !important;
    outline-offset: 2px;
}

/* Прокрутка невозможна — стрелка гаснет (ТЗ доработки §5.4) */
#ztHomeMediaV2 .zt-home-cert-v2__prev.swiper-button-disabled,
#ztHomeMediaV2 .zt-home-cert-v2__next.swiper-button-disabled {
    opacity: .35;
    pointer-events: none;
}

/* Не прижаты к границам контейнера (ТЗ доработки §5.4) */
#ztHomeMediaV2 .zt-home-cert-v2__prev { left: 4px; }
#ztHomeMediaV2 .zt-home-cert-v2__next { right: 4px; }

/* Пагинация по центру под документом, 28–36 от него
   (ТЗ доработки §5.5) */
#ztHomeMediaV2 .zt-home-cert-v2__pagination {
    bottom: 0;
    /* line-height 0: зазор от документа считается по самим линиям
       пагинации, а не по строчному боксу (ТЗ доработки §5.5: 28–36) */
    line-height: 0;
}

#ztHomeMediaV2 .zt-home-cert-v2 .swiper-pagination-bullet {
    width: 20px;
    height: 4px;
    /* Компактный шаг (ТЗ доработки §5.5): без больших промежутков.
       Из общих touch-правил zt-home-unify карусель исключена */
    margin: 0 5px;
    background: #d3d7dd;
    border-radius: 999px;
    opacity: 1;
    transition: width .2s ease, background-color .2s ease;
}

/* Активный элемент длиннее и акцентный (ТЗ доработки §5.5) */
#ztHomeMediaV2 .zt-home-cert-v2 .swiper-pagination-bullet-active {
    width: 34px;
    background: var(--zm-accent);
}

/* Один документ — контролы не нужны, документ по центру (ТЗ §5) */
#ztHomeMediaV2 .zt-home-cert-v2__wrap.is-single .zt-home-cert-v2__card {
    opacity: 1;
    transform: none;
}

/* --------------------------------------------------------------------------
   Строка преимуществ (ТЗ §6)
   -------------------------------------------------------------------------- */
#ztHomeMediaV2 .zt-home-media-v2__benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    /* ТЗ доработки §6: между колонками 24–32 */
    gap: clamp(20px, 2vw, 32px);
    /* Отступ до нижнего блока 20–24 (ТЗ доработки §7) */
    margin: clamp(20px, 1.8vw, 24px) 0 0;
    /* Внутренние отступы 24–32 — блок объёмнее прежней узкой строки */
    padding: clamp(24px, 2.2vw, 32px);
    overflow: hidden;
    background: var(--zm-panel-bg);
    border: 1px solid #eef1f5;
    /* Скругление 24–28, мягкая тень — в тон верхним панелям */
    border-radius: 26px;
    box-shadow: 0 20px 50px rgba(29, 34, 40, .08);
    list-style: none;
}

#ztHomeMediaV2 .zt-home-media-v2__benefit {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    /* ТЗ доработки §6: между иконкой и текстом 14–18 */
    gap: 16px;
}

#ztHomeMediaV2 .zt-home-media-v2__benefit-icon {
    display: inline-flex;
    /* ТЗ доработки §6: контейнер иконки 52–60, скругление 16–18 */
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    align-items: center;
    justify-content: center;
    background: rgba(255, 184, 0, .14);
    border-radius: 16px;
}

#ztHomeMediaV2 .zt-home-media-v2__benefit-icon svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: var(--zm-accent-ink);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#ztHomeMediaV2 .zt-home-media-v2__benefit-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

/* Заголовок — одна строка (ТЗ доработки §6) */
#ztHomeMediaV2 .zt-home-media-v2__benefit-title {
    overflow: hidden;
    color: var(--zt-ink, #333a43);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Описание — не длиннее двух строк (ТЗ доработки §6) */
#ztHomeMediaV2 .zt-home-media-v2__benefit-text {
    display: -webkit-box;
    overflow: hidden;
    color: var(--zt-ink-soft, #6b7480);
    font-size: 13px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* --------------------------------------------------------------------------
   Планшет (ТЗ §3.1: 768–1279)
   -------------------------------------------------------------------------- */
@media (max-width: 1279px) {
    #ztHomeMediaV2 .zt-home-news-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* Третья карточка занимает строку целиком — вариант «2+1»
       из ТЗ §4, а не третья узкая колонка */
    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) {
        flex-direction: row;
        grid-column: 1 / -1;
    }

    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) .zt-home-news-v2__image {
        width: 38%;
        max-width: 220px;
        flex: 0 0 38%;
    }

    #ztHomeMediaV2 .zt-home-media-v2__benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1279px) {
    /* ТЗ доработки §8, планшет: стрелки меньше */
    #ztHomeMediaV2 .zt-home-cert-v2__prev,
    #ztHomeMediaV2 .zt-home-cert-v2__next {
        width: 44px;
        height: 44px;
        margin-top: -22px;
    }
}

/* N-341/N-342: на промежуточном десктопе новостная панель сохраняет
   композицию 2+1, а вводный текст укладывается в две строки. */
@media (min-width: 1200px) and (max-width: 1499px) {
    #ztHomeMediaV2 .zt-home-media-v2__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "eyebrow all"
            "heading heading"
            "lead lead";
        align-items: start;
        column-gap: 16px;
        row-gap: 0;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head-text {
        display: contents;
    }

    #ztHomeMediaV2 .zt-home-media-v2__eyebrow {
        grid-area: eyebrow;
        justify-self: start;
    }

    #ztHomeMediaV2 .zt-home-media-v2__heading {
        grid-area: heading;
    }

    #ztHomeMediaV2 .zt-home-media-v2__lead {
        grid-area: lead;
    }

    #ztHomeMediaV2 .zt-home-media-v2__all {
        grid-area: all;
        align-self: center;
    }

    #ztHomeMediaV2 .zt-home-news-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) {
        flex-direction: row;
        grid-column: 1 / -1;
    }

    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) .zt-home-news-v2__image {
        width: 38%;
        max-width: 220px;
        flex: 0 0 38%;
    }

    #ztHomeMediaV2 .zt-home-media-v2__lead { max-width: none; }

    /* N-345: убираем верхнюю пустоту и отдаём документам больше высоты. */
    #ztHomeMediaV2 .zt-home-cert-v2__wrap {
        margin-top: 0;
    }

    #ztHomeMediaV2 .zt-home-cert-v2 {
        /* N-353/N-354: заполняем высоту панели документами вместо
           пустых 160+ px под каруселью на пресетах 1440/1280. */
        height: clamp(550px, 40.5vw, 582px);
    }
}

@media (max-width: 1023px) {
    #ztHomeMediaV2 .zt-home-media-v2__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* N-347: в широкой одноколоночной панели описание помещается в строку. */
    #ztHomeMediaV2 .zt-home-media-v2__lead {
        max-width: none;
    }
}

/* --------------------------------------------------------------------------
   Мобильный (ТЗ §3.1: < 768 — одна колонка, порядок
   «новости → документы → преимущества»)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    #ztHomeMediaV2.zt-home-media-v2 {
        padding: 34px 0 30px;
    }

    /* ТЗ доработки §8: внутренние отступы контейнера 16–20 */
    #ztHomeMediaV2 .zt-home-media-v2__panel {
        padding: 18px;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "eyebrow"
            "heading"
            "lead";
        align-items: start;
        column-gap: 12px;
        row-gap: 0;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head-text {
        display: contents;
    }

    #ztHomeMediaV2 .zt-home-media-v2__eyebrow {
        grid-area: eyebrow;
        justify-self: start;
    }

    #ztHomeMediaV2 .zt-home-media-v2__heading {
        grid-area: heading;
    }

    #ztHomeMediaV2 .zt-home-media-v2__lead {
        grid-area: lead;
    }

    #ztHomeMediaV2 .zt-home-media-v2__head > .zt-home-media-v2__all {
        /* Общий адаптивный слой делает section a[class*="__all"]
           inline-flex с !important; локально скрываем только верхний дубль. */
        display: none !important;
    }

    /* На узкой колонке ограничение 72% лишнее */
    #ztHomeMediaV2 .zt-home-media-v2__lead {
        max-width: none;
    }

    #ztHomeMediaV2 .zt-home-media-v2__all {
        min-height: 44px;
        /* 14 — вторичная кнопка по шкале П-3, без мобильной ступени */
        font-size: 14px;
    }

    /* Карточки новостей — лента со снап-точками.
       Лента раздвинута на всю ширину панели (в обе стороны за padding):
       карточка крупнее, край следующей остаётся виден (ТЗ доработки §8) */
    #ztHomeMediaV2 .zt-home-news-v2 {
        display: flex;
        gap: 12px;
        /* N-374/N-375: лента больше не выходит на границы шейпа —
           карточки сохраняют внутренний отступ панели на 360/414/768. */
        margin-right: 0;
        margin-left: 0;
        padding: 2px 2px 8px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    #ztHomeMediaV2 .zt-home-news-v2::-webkit-scrollbar {
        display: none;
    }

    #ztHomeMediaV2 .zt-home-news-v2__card {
        /* ТЗ доработки §8: карточка крупная, видна часть следующей.
           86% ленты ≈ 3/4 экрана — шире нельзя: пропадёт край
           следующей карточки, который ТЗ тоже требует */
        width: 86%;
        min-width: 250px;
        max-width: 340px;
        flex: 0 0 86%;
        scroll-snap-align: start;
    }

    #ztHomeMediaV2 .zt-home-media-v2__mobile-controls {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-top: 12px;
        padding-top: 2px;
        background: transparent;
    }

    #ztHomeMediaV2 .zt-home-cert-v2__prev,
    #ztHomeMediaV2 .zt-home-cert-v2__next {
        display: none;
    }

    /* Документ крупнее: ~70–80% ширины экрана (ТЗ доработки §8).
       Высота полосы следует за шириной вьюпорта */
    #ztHomeMediaV2 .zt-home-cert-v2 {
        height: min(392px, 100vw);
    }

    /* В ленте третья карточка ведёт себя как остальные */
    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) {
        flex-direction: column;
    }

    #ztHomeMediaV2 .zt-home-news-v2__card:nth-child(3) .zt-home-news-v2__image {
        width: 100%;
        max-width: none;
        flex: 0 0 auto;
    }

    /* ТЗ доработки §8: на мобильном 1–2 колонки,
       одна колонка — только уже 480 */
    #ztHomeMediaV2 .zt-home-media-v2__benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    #ztHomeMediaV2 .zt-home-media-v2__benefit-icon {
        width: 48px;
        height: 48px;
        flex: 0 0 48px;
    }

    /* В узкой колонке заголовок переносится, а не режется */
    #ztHomeMediaV2 .zt-home-media-v2__benefit-title {
        white-space: normal;
    }

    #ztHomeMediaV2 .zt-home-cert-v2__prev,
    #ztHomeMediaV2 .zt-home-cert-v2__next {
        width: 42px;
        height: 42px;
    }
}

@media (max-width: 520px) {
    #ztHomeMediaV2 .zt-home-media-v2__lead {
        font-size: 13px;
    }

    /* N-350/N-351: компактная белая кнопка как «Все бренды». */
    #ztHomeMediaV2 .zt-home-media-v2__all {
        width: auto;
        min-width: 0;
        height: 38px;
        min-height: 38px !important;
        align-self: start;
        gap: 8px;
        padding: 0 14px;
        background: #ffffff;
        border-color: #dfe3e7;
        font-size: 14px;
    }

    #ztHomeMediaV2 .zt-home-media-v2__all svg {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
    }

    /* N-378…N-381: размер как у принятой плашки «О компании» —
       25,6 px по фактическому замеру, иконка 14 px, кегль 10 px. */
    #ztHomeMediaV2 .zt-home-media-v2__eyebrow {
        gap: 5px;
        padding: 5px 8px;
        font-size: 10px;
    }

    #ztHomeMediaV2 .zt-home-media-v2__eyebrow-icon,
    #ztHomeMediaV2 .zt-home-media-v2__eyebrow-icon svg {
        width: 14px;
        height: 14px;
        flex-basis: 14px;
    }

    /* N-357/N-358: 14 делений всегда остаются одной строкой. */
    #ztHomeMediaV2 .zt-home-cert-v2__pagination {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: nowrap;
        white-space: nowrap;
    }

    #ztHomeMediaV2 .zt-home-cert-v2 .swiper-pagination-bullet {
        width: 12px;
        flex: 0 0 12px;
        margin: 0 3px;
    }

    #ztHomeMediaV2 .zt-home-cert-v2 .swiper-pagination-bullet-active {
        width: 24px;
        flex-basis: 24px;
    }
}

/* N-396…N-399: на телефоне, планшете и варианте 1024 документы идут
   первыми; начиная с 1181 px сохраняется десктопный порядок. */
@media (max-width: 1180px) {
    #ztHomeMediaV2 .zt-home-media-v2__panel--certificates {
        order: -1;
    }

    #ztHomeMediaV2 .zt-home-media-v2__panel--news {
        order: 0;
    }
}

@media (max-width: 479px) {
    #ztHomeMediaV2 .zt-home-media-v2__benefits {
        grid-template-columns: minmax(0, 1fr);
    }

    /* N-352: мобильный анонс не выше двух строк. */
    #ztHomeMediaV2 .zt-home-news-v2__excerpt {
        -webkit-line-clamp: 2;
    }

    /* N-518 / N-529: на 360 px кружок с галочкой заезжал за границу
       блока — документ здесь почти во всю ширину, и вынос -13 px
       выводил значок за внутренний отступ секции. Уменьшаем сам
       кружок и вынос; галочку — пропорционально. */
    #ztHomeMediaV2 .zt-home-cert-v2__badge {
        top: -8px;
        right: -8px;
        width: 26px;
        height: 26px;
        border-width: 2px;
    }

    #ztHomeMediaV2 .zt-home-cert-v2__badge svg {
        width: 11px;
        height: 11px;
        stroke-width: 2.6;
    }
}

/* --------------------------------------------------------------------------
   Системная настройка «уменьшить движение» (ТЗ §2.1)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    #ztHomeMediaV2 .zt-home-news-v2__card,
    #ztHomeMediaV2 .zt-home-cert-v2__card,
    #ztHomeMediaV2 .zt-home-media-v2__all,
    #ztHomeMediaV2 .zt-home-media-v2__all svg,
    #ztHomeMediaV2 .zt-home-news-v2__more svg {
        transition: none !important;
    }

    #ztHomeMediaV2 .zt-home-news-v2__card:hover {
        transform: none;
    }

    #ztHomeMediaV2 .zt-home-news-v2 {
        scroll-behavior: auto;
    }

    #ztHomeMediaV2 .zt-home-media-v2__eyebrow {
        animation: none;
    }
}
