/* =========================================================================
   SITE FOOTER
   Global across all pages. Holds contact, locations, nav, crisis line.
   Consumes tier 2 theme tokens only.
   ========================================================================= */

.site-footer {
  background-color: var(--theme-color-background-inverse);
  color: var(--theme-color-text-inverse);
  margin-top: var(--theme-space-region);
}

.site-footer :is(a, a:visited) {
  color: var(--theme-color-text-inverse);
  text-decoration-color: var(--theme-color-brand-primary);
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--theme-color-brand-primary);
}

.site-footer__inner {
  display: grid;
  gap: var(--theme-space-stack-xl);
  padding-block: var(--theme-space-section);
  grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
  .site-footer__inner {
    grid-template-columns: 1.5fr 1fr 1.2fr 1fr;
  }
}

/* -------------------------------------------------------------------------
   Brand block
   ------------------------------------------------------------------------- */

.site-footer__brand {
  max-width: 28ch;
}

.site-footer__tagline {
  font-family: var(--theme-font-family-display);
  font-size: var(--theme-font-size-heading-xs);
  line-height: var(--theme-line-height-snug);
  color: var(--theme-color-text-inverse);
  margin-bottom: var(--theme-space-stack-sm);
}

.site-footer small {
  color: var(--theme-color-text-soft);
}

/* -------------------------------------------------------------------------
   Columns
   ------------------------------------------------------------------------- */

.site-footer__column .eyebrow {
  display: block;
  color: var(--theme-color-brand-primary);
  margin-bottom: var(--theme-space-stack-sm);
}

.site-footer__list {
  display: flex;
  flex-direction: column;
  gap: var(--theme-space-stack-sm);
  font-size: var(--theme-font-size-small);
  line-height: var(--theme-line-height-default);
}

.site-footer__list address {
  font-style: normal;
  color: var(--theme-color-text-inverse);
}

.site-footer__list address strong {
  color: var(--theme-color-brand-primary);
  font-family: var(--theme-font-family-display);
  font-weight: var(--theme-font-weight-body);
  font-size: var(--theme-font-size-body);
}

.site-footer__list address small {
  color: var(--theme-color-text-soft);
}

/* -------------------------------------------------------------------------
   Crisis strip
   ------------------------------------------------------------------------- */

.site-footer__crisis {
  background-color: var(--theme-color-accent-warning);
  color: var(--theme-color-text-inverse);
  padding-block: var(--theme-space-stack-md);
}

.site-footer__crisis p {
  max-width: none;
  font-size: var(--theme-font-size-small);
  line-height: var(--theme-line-height-default);
  color: var(--theme-color-text-inverse);
}

.site-footer__crisis strong {
  color: var(--theme-color-text-inverse);
  font-weight: var(--theme-font-weight-emphasis);
}

/* -------------------------------------------------------------------------
   Legal
   ------------------------------------------------------------------------- */

.site-footer__legal {
  border-top: 1px solid rgba(248, 241, 219, 0.15);
  padding-block: var(--theme-space-stack-md);
}

.site-footer__legal small {
  color: var(--theme-color-text-soft);
  font-size: var(--theme-font-size-micro);
  letter-spacing: var(--theme-letter-spacing-eyebrow);
  text-transform: uppercase;
}
