/* ==========================================================================
   Footer — newsletter band, link columns, legal bar; back-to-top
   ========================================================================== */

.site-footer { background: var(--night-gradient); color: rgba(255, 255, 255, .66); font-size: var(--fs-sm); }

.footer-newsletter { background: linear-gradient(100deg, var(--brand-700), var(--brand) 60%, #3d5fd1); color: #fff; }
.footer-newsletter__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); align-items: center; gap: 1.5rem clamp(2rem, 5vw, 5rem); padding-block: clamp(2rem, 3.5vw, 3rem); }
.footer-newsletter__copy { display: flex; align-items: center; gap: 1.25rem; }
.footer-newsletter__icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: rgba(255, 255, 255, .14); flex-shrink: 0; }
.footer-newsletter__icon .icon { width: 28px; height: 28px; }
.footer-newsletter h2 { color: #fff; font-size: var(--fs-xl); }
.footer-newsletter p { color: rgba(255, 255, 255, .78); }
.footer-newsletter .newsletter__note { color: rgba(255, 255, 255, .7); }
.footer-newsletter .btn--primary { --btn-bg: var(--ink); box-shadow: none; }
.footer-newsletter .btn--primary:hover { --btn-bg: #1b2747; }
@media (max-width: 899px) { .footer-newsletter__inner { grid-template-columns: 1fr; } }
@media (max-width: 479px) { .footer-newsletter__icon { display: none; } }

.footer-main {
    display: grid; grid-template-columns: minmax(260px, 1.6fr) repeat(4, minmax(0, 1fr));
    gap: 2.5rem clamp(1.5rem, 3vw, 3.5rem); padding-block: clamp(3rem, 5vw, 4.5rem);
}
.footer-brand__text { margin-block: 1.1rem 1.4rem; max-width: 40ch; }
.footer-contact { display: grid; gap: .7rem; }
.footer-contact li { display: flex; gap: .65rem; align-items: flex-start; }
.footer-contact .icon { width: 18px; height: 18px; color: #9fb0ff; margin-top: 2px; }
.footer-contact a:hover { color: #fff; }
.social { display: flex; gap: .5rem; margin-top: 1.5rem; }
.social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; transition: background-color .2s, transform .2s var(--ease); }
.social a:hover { background: var(--brand); transform: translateY(-2px); }
.social .icon { width: 18px; height: 18px; }
.footer-col__title { color: #fff; font-size: var(--fs-base); margin-bottom: 1.1rem; }
.footer-col ul { display: grid; gap: .6rem; }
.footer-col a { transition: color .2s; }
.footer-col a:hover { color: #fff; }
@media (max-width: 1199px) { .footer-main { grid-template-columns: repeat(3, minmax(0, 1fr)); } .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 639px) { .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.footer-bottom__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.4rem; font-size: var(--fs-xs); }
.footer-bottom__links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.footer-bottom__links a:hover { color: #fff; }
.payments { display: flex; flex-wrap: wrap; gap: .4rem; }
.payments li { padding: .3rem .6rem; border-radius: 6px; background: rgba(255, 255, 255, .08); color: #fff; font-weight: 700; font-size: 11px; }

.back-to-top {
    position: fixed; right: 20px; bottom: 20px; z-index: 50;
    display: grid; place-items: center; width: 46px; height: 46px; border-radius: 999px;
    background: var(--ink); color: #fff; box-shadow: var(--shadow-lg);
    transition: background-color .2s, transform .2s var(--ease);
}
.back-to-top:hover { background: var(--brand); transform: translateY(-2px); }
.back-to-top .icon { transform: rotate(180deg); width: 20px; height: 20px; }
@media (max-width: 1023px) { .back-to-top { bottom: calc(80px + env(safe-area-inset-bottom)); right: 16px; } }
