/* ── News & Updates — лента ── */

.nml-nf {
    padding: 64px 0;
    background: var(--color-bg);
}

/* Карточки и месяцы скрываются через [hidden]; правило браузера проигрывает
   авторскому display, поэтому прячем явно. */
.nml-nf [hidden] {
    display: none !important;
}

/* Фильтр меняет высоту страницы: после переключения список бывает короче экрана,
   вертикальный скроллбар пропадает — и вся вёрстка дёргается вбок на его ширину.
   Гуттер резервирует место заранее. На мобильных скроллбар оверлейный, там
   свойство ничего не меняет. */
html {
    scrollbar-gutter: stable;
}

/* ── Табы тегов ── */
.nml-nf__tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 40px;
    padding: 8px;
    border: 1px solid #D5DAFA;
    border-radius: 12px;
    background: #F5F6FA;
}

/* Стрелки нужны только там, где лента табов не помещается целиком. */
.nml-nf__tabs-nav {
    display: none;
}

.nml-nf__tab {
    padding: 8px 16px;
    border: 0;
    border-radius: 6px;
    font-family: inherit;
    font-size: 16px;
    line-height: 24px;
    font-weight: 600;
    background: #F5F6FA;
    color: #303D60;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

.nml-nf__tab:hover {
    background: var(--color-primary);
    color: #FFFFFF;
}

.nml-nf__tab--active,
.nml-nf__tab--active:hover {
    background: var(--color-primary);
    color: var(--color-text-white);
}

/* ── Кружок со стрелкой (общий для закреплённой и обычных карточек) ── */
.nml-nf__arrow {
    position: absolute;
    right: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid #44588B;
    border-radius: 50%;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

/* ── Закреплённая запись ── */
.nml-nf__pinned {
    --nml-nf-pinned-gradient: linear-gradient(97deg, #040F2D 6%, #1B3A86 58%, #0C1C46 100%);

    position: relative;
    display: block;
    margin-bottom: 40px;
    padding: 24px 96px 24px 32px;
    border-radius: 16px;
    background: var(--nml-nf-pinned-gradient);
    border: 1px solid #162F6F;
    text-decoration: none;
    box-shadow: 0px 1px 2px 0px #4C83F333;
}

/* Картинки приходят инлайном в --nml-nf-pinned-bg / -bg-m. Картинка — первый
   слой (лежит поверх), градиент — второй: он подстраховывает прозрачные места
   и время загрузки. Мобильное правило ниже, в медиазапросе. */
.nml-nf__pinned--has-bg {
    background-image: var(--nml-nf-pinned-bg, none), var(--nml-nf-pinned-gradient);
    background-repeat: no-repeat, no-repeat;
    background-position: top center;
    background-size: cover, cover;
}

.nml-nf__pinned .nml-nf__arrow {
    top: 28px;
    border-color: rgba(255, 255, 255, 0.40);
    color: var(--color-text-white);
}

.nml-nf__pinned:hover .nml-nf__arrow {
    background: var(--color-text-white);
    border-color: var(--color-text-white);
    color: var(--color-primary);
}

.nml-nf__pin {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-accent);
    font-size: 14px;
    line-height: 20px;
    font-weight: 700;
    text-transform: uppercase;
}

.nml-nf__pinned-date {
    display: block;
    margin-top: 16px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    text-transform: uppercase;
    color: #FFFFFF;
    opacity: 0.6;
}

.nml-nf__pinned-title {
    margin: 8px 0 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    color: #FFFFFF;
}

.nml-nf__pinned-text {
    margin: 4px 0 0;
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;
    color: #FFFFFF;
    opacity: 0.6;
}

/* ── Группа месяца ── */
.nml-nf__month + .nml-nf__month {
    margin-top: 48px;
}

.nml-nf__month-title {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 700;
    text-transform: uppercase;
    color: #303D60;
}

.nml-nf__items {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ── Карточка новости ── */
.nml-nf__item {
    position: relative;
    display: block;
    padding: 24px 96px 24px 32px;
    border: 1px solid var(--color-line);
    border-radius: 12px;
    background: var(--color-bg);
    text-decoration: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: 0px 1px 2px 0px #4C83F333;
}

.nml-nf__item:hover {
    border-color: #889CF1;
    box-shadow: 0px 2px 4px 0px #4C83F33D;
}

.nml-nf__item .nml-nf__arrow {
    top: 50%;
    transform: translateY(-50%);
}

.nml-nf__item:hover .nml-nf__arrow {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-white);
}

.nml-nf__item-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.nml-nf__item-date {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    text-transform: uppercase;
    color: #8A9BCF;
}

/* Цвет тега приходит инлайном в --nml-nf-color; красится только бейдж. */
.nml-nf__badge {
    padding: 2px 12px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: var(--nml-nf-color, var(--color-text-tertiary));
}

.nml-nf__item-title {
    margin: 8px 0 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    color: #0B101F;
}

.nml-nf__item-text {
    margin: 4px 0 0;
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;
    color: #303D60;
}

/* ── Пусто после фильтра ── */
.nml-nf__empty {
    margin: 40px 0 0;
    text-align: center;
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;
    color: var(--color-text-secondary);
}

@media (max-width: 768px) {
    .nml-nf {
        padding: 40px 0;
    }

    /* Прокрутка живёт здесь. Отрицательные поля растягивают обёртку от края до
       края экрана, поэтому лента обрезается только вьюпортом, а не контейнером,
       и страница вбок не едет. Внутренние padding'и держат ленту на линии
       контейнера в крайних положениях. */
    .nml-nf__tabs-viewport {
        margin: 0 calc(-1 * var(--container-px)) 16px;
        padding: 0 var(--container-px);
        overflow-x: auto;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .nml-nf__tabs-viewport::-webkit-scrollbar {
        display: none;
    }

    /* Лента — по ширине содержимого: рамка и фон тянутся за экран, а не режутся
       по контейнеру. */
    .nml-nf__tabs {
        width: max-content;
        max-width: none;
        flex-wrap: nowrap;
        justify-content: flex-start;
        margin: 0;
        gap: 6px;
        padding: 6px;
        border-radius: 8px;
    }

    .nml-nf__tabs-nav {
        display: flex;
        justify-content: space-between;
        margin-bottom: 32px;
    }

    .nml-nf__tabs-arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid #889CF1;
        border-radius: 12px;
        background: #F5F6FA;
        color: #6281EC;
        cursor: pointer;
        transition: border-color 0.2s, color 0.2s, background-color 0.2s;
    }

    .nml-nf__tabs-arrow:disabled {
        border-color: #EEF0FD;
        color: #C3CCF7;
        cursor: default;
    }

    .nml-nf__tab {
        padding: 8px 14px;
        font-size: 14px;
        line-height: 20px;
    }

    .nml-nf__arrow {
        right: 10px;
        top: 16px !important;
        transform: none !important;
        width: 28px;
        height: 28px;
    }

    .nml-nf__pinned {
        margin-bottom: 40px;
        padding: 16px;
    }

    /* Отдельная мобильная картинка; если её не задали, класса нет и остаётся
       десктопная. */
    .nml-nf__pinned--has-bg-m {
        background-image: var(--nml-nf-pinned-bg-m, none), var(--nml-nf-pinned-gradient);
        background-repeat: no-repeat, no-repeat;
        background-position: top center;
        background-size: cover, cover;
    }

    .nml-nf__pinned .nml-nf__arrow {
        top: 20px;
    }

    .nml-nf__pinned-title {
        font-size: 18px;
        line-height: 26px;
    }

    .nml-nf__pinned-text {
        font-size: 14px;
        line-height: 20px;
    }

    .nml-nf__month + .nml-nf__month {
        margin-top: 32px;
    }

    .nml-nf__items {
        gap: 12px;
    }

    .nml-nf__item {
        padding: 16px;
    }

    .nml-nf__item-title {
        font-size: 18px;
        line-height: 26px;
        margin: 12px 0 0;
    }

    .nml-nf__item-text {
        margin: 2px 0 0;
        font-size: 14px;
        line-height: 20px;
    }

    .nml-nf__month-title {
        margin: 0 0 12px;
    }

    .nml-nf__pinned-date {
        margin-top: 8px;
    }
}
