/* Подписка на рассылку блога: состояния формы и страницы подтверждения/отписки.
   Базовые .blog-newsletter__* стили лежат в styles.css — здесь только то,
   чего там не было. Палитра le30: #d32226, #122c94, #242424, #a19fa2. */

/* ── Ловушка для ботов ───────────────────────────────────────────────── */

.nl-trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ── Состояния формы ─────────────────────────────────────────────────── */

.blog-newsletter__form {
    position: relative;
}

.blog-newsletter__input.is-invalid {
    border-color: #d32226;
    box-shadow: 0 0 0 3px rgba(211, 34, 38, .12);
}

.blog-newsletter__input:disabled {
    opacity: .6;
}

.blog-newsletter__status {
    margin: .65rem 0 0;
    font-size: .92rem;
    line-height: 1.5;
}

.blog-newsletter__status.is-ok {
    color: #d1f9d9;
}

.blog-newsletter__status.is-error {
    color: #a71b1e;
}

.js-nl-submit.is-loading {
    position: relative;
    cursor: progress;
    opacity: .85;
}

.js-nl-submit:disabled {
    cursor: not-allowed;
}

/* Мини-форма в сайдбаре статьи: сетка там двухколоночная,
   строка статуса должна занимать обе колонки. */
.article-sidebar-newsletter__form .blog-newsletter__status {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: .5rem;
    font-size: .85rem;
}

.article-sidebar-newsletter__form .form__input.is-invalid {
    border-color: #d32226;
}

.blog-newsletter__form.is-done .blog-newsletter__input {
    border-color: #d1f9d9;
}

/* ── Страницы подтверждения и отписки ────────────────────────────────── */

.nl-status {
    background: linear-gradient(135deg, #f8f9ff 0%, #fef7f7 60%, #fff 100%);
}

.nl-status__card {
    max-width: 580px;
    margin: 0 auto;
    padding: 2.5rem 2rem;
    border: 1px solid #f0eef1;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 18px 44px -30px rgba(18, 44, 148, .4);
    text-align: center;
    box-sizing: border-box;
}

.nl-status__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 1.25rem;
    border-radius: 50%;
    background: #d32226;
    color: #fff;
    font-size: 30px;
    line-height: 1;
}

.nl-status__mark--ask {
    background: #f8f9ff;
    color: #122c94;
}

.nl-status__card--error .nl-status__mark {
    background: #fdecee;
    color: #d32226;
}

.nl-status__title {
    margin: 0 0 .75rem;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.3;
    color: #242424;
}

.nl-status__text {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
    color: #6b7480;
}

.nl-status__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin: 1.75rem 0 0;
}

@media (max-width: 575px) {
    .nl-status__card {
        padding: 1.75rem 1.25rem;
        border-radius: 16px;
    }

    .nl-status__actions .button {
        width: 100%;
    }
}
