/* ============================================================
   FOOTER
   ============================================================ */

.footer { background: var(--royal-blue); color: var(--white); }

/* ── Pre-footer newsletter ── */
.footer__newsletter {
  background: var(--heritage-blue);
  padding-block: var(--s6);
}
.footer__newsletter-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  flex-wrap: wrap;
}
.footer__newsletter-text h3 {
  font: 600 var(--text-xl)/1.2 var(--font-body);
  color: var(--white);
  margin-bottom: 4px;
}
.footer__newsletter-text p {
  font: 400 var(--text-sm)/1.4 var(--font-body);
  color: rgba(255,255,255,.75);
}
.footer__newsletter-form {
  display: flex;
  gap: var(--s1);
  flex-wrap: wrap;
}
.footer__newsletter-input {
  padding: 12px 18px;
  border-radius: var(--r-sm);
  border: 1.5px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.1);
  color: var(--white);
  font: 400 var(--text-sm)/1 var(--font-body);
  width: 260px;
  max-width: 100%;
  transition: border-color var(--t-base), background var(--t-base);
}
.footer__newsletter-input::placeholder { color: rgba(255,255,255,.5); }
.footer__newsletter-input:focus {
  outline: none;
  border-color: var(--gold);
  background: rgba(255,255,255,.15);
}

/* ── Main footer body ── */
.footer__body { padding-block: var(--s8) var(--s6); }

.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--s6);
}

/* Brand column */
.footer__brand-logo {
  height: 120px;
  width: auto;
  max-width: 280px;
  margin-bottom: var(--s3);
  object-fit: contain;
  background-color: #fff;
  padding: 16px;
  border-radius: var(--r-md);
}
.footer__brand-tagline {
  font: 400 var(--text-sm)/1.7 var(--font-body);
  color: rgba(255,255,255,.65);
  max-width: 30ch;
  margin-bottom: var(--s3);
}
.footer__social {
  display: flex;
  gap: var(--s1);
}
.footer__social-link {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-sm);
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.7);
  transition: border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.footer__social-link:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(201,154,61,.1);
}
.footer__social-link svg { width: 16px; height: 16px; }

/* Nav columns */
.footer__col-title {
  font: 700 var(--text-xs)/1 var(--font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-light);
  margin-bottom: var(--s3);
}
.footer__col-links { display: flex; flex-direction: column; gap: 10px; }
.footer__col-link {
  font: 400 var(--text-sm)/1.3 var(--font-body);
  color: rgba(255,255,255,.65);
  transition: color var(--t-fast);
}
.footer__col-link:hover { color: var(--white); }

/* ── Bottom bar ── */
.footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  padding-block: var(--s3);
}
.footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--s2);
}
.footer__copy {
  font: 400 var(--text-xs)/1 var(--font-body);
  color: rgba(255,255,255,.45);
}
.footer__bottom-links {
  display: flex;
  gap: var(--s3);
}
.footer__bottom-links a {
  font: 400 var(--text-xs)/1 var(--font-body);
  color: rgba(255,255,255,.45);
  transition: color var(--t-fast);
}
.footer__bottom-links a:hover { color: var(--gold-light); }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .footer__grid { grid-template-columns: 2fr 1fr 1fr; }
  .footer__grid > *:last-child { grid-column: 1; }
}
@media (max-width: 820px) {
  .footer__newsletter-inner { flex-direction: column; align-items: flex-start; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--s4); }
}
@media (max-width: 520px) {
  .footer__grid { grid-template-columns: 1fr; }
  .footer__newsletter-form { flex-direction: column; }
  .footer__newsletter-input { width: 100%; }
}
