/* ==========================================================================
   Newsletter band + footer
   ========================================================================== */

.newsletter { padding-block: var(--space-8) 0; }
.newsletter__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-7);
    padding: 44px;
    border-radius: var(--radius-2xl);
    background: var(--band-bg);
    color: var(--band-text);
}
.newsletter__copy { flex: 1 1 360px; }
.newsletter__title { margin: 0; font-weight: 800; font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.25rem); letter-spacing: -0.025em; line-height: var(--lh-tight); }
.newsletter__text { margin: var(--space-2) 0 0; color: var(--band-muted); }

.newsletter__form { flex: 1 1 360px; display: flex; flex-wrap: wrap; gap: 10px; }
.newsletter__input {
    flex: 1 1 200px;
    min-height: 48px;
    padding: 12px 16px;
    border: 1.5px solid var(--band-border);
    border-radius: var(--radius-md);
    background: var(--band-field);
    color: var(--band-text);
    font-size: 16px;
}
.newsletter__input::placeholder { color: var(--band-muted); }
.newsletter__input:focus { outline: 0; border-color: var(--color-accent); }
.newsletter__btn { min-height: 48px; padding-inline: 22px; font-size: var(--fs-base); }
.newsletter__status { flex: 1 1 100%; margin: 0; min-height: 1.5em; font-size: var(--fs-sm); font-weight: 600; }
.newsletter__status.is-success { color: var(--color-accent); }
.newsletter__status.is-error { color: #FF9C7A; }

@media (max-width: 640px) {
    .newsletter__inner { padding: 24px; border-radius: var(--radius-xl); gap: var(--space-5); }
    .newsletter__btn { flex: 1 1 100%; }
}

.site-footer {
    margin-top: var(--space-8);
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
}
.site-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
    gap: var(--space-7);
    padding-block: var(--space-8) var(--space-7);
}
.site-footer__logo .brand-logo__img { height: 36px; margin-left: -8px; }
.site-footer__about { max-width: 34ch; margin: var(--space-3) 0 0; color: var(--color-muted); font-size: var(--fs-15); }
.site-footer__heading {
    margin: 0 0 var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-muted);
}
.site-footer__col ul { margin: 0; padding: 0; list-style: none; }
.site-footer__col li + li { margin-top: var(--space-2); }
.site-footer__col a { color: var(--color-text); font-size: var(--fs-15); text-decoration: none; }
.site-footer__col a:hover { color: var(--color-primary); text-decoration: underline; }

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-6);
    padding-block: var(--space-5) var(--space-7);
    border-top: 1px solid var(--color-border);
    font-size: var(--fs-sm);
    color: var(--color-muted);
}
.site-footer__bottom p { margin: 0; }
.site-footer__menu ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); margin: 0; padding: 0; list-style: none; }
.site-footer__menu a { color: var(--color-muted); text-decoration: none; }
.site-footer__menu a:hover { color: var(--color-primary); }
.site-footer__disclaimer { flex: 1 1 100%; max-width: 80ch; }

@media (max-width: 991.98px) {
    .site-footer__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
