/* Site footer: guarantee strip, link columns, newsletter, legal line. */

.st-footer {
  background: var(--st-ink);
  color: var(--st-on-dark-body);
}

/* base.css sets `a { color: var(--st-ink) }`, which on the footer's --st-ink
   ground renders black on black. `.st-footer__column a` already opted out, so
   the column links looked fine and hid the problem — but the contact line's
   email link is not in a column, and was invisible: measured
   rgb(32,30,29) text on rgb(32,30,29). Cover every link in the footer, so a
   new one added anywhere cannot inherit the unreadable default. */
.st-footer a {
  color: var(--st-on-dark-body);
}

.st-footer__promises {
  border-bottom: 1px solid var(--st-on-dark-rule);
}

.st-footer__promises-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--st-grid-gap);
  padding-block: 28px;
}

.st-footer__promise {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.st-footer__promise svg {
  flex: none;
  color: var(--st-accent);
}

.st-footer__promise-title {
  color: var(--st-surface);
  font-size: var(--st-size-body-sm);
  font-weight: var(--st-weight-bold);
}

.st-footer__promise-note {
  font-size: var(--st-size-caption);
}

.st-footer__columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.3fr;
  gap: 32px;
  padding-block: 40px;
}

.st-footer__column-title {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--st-on-dark-rule);
  color: var(--st-surface);
  font-size: var(--st-size-eyebrow);
  font-weight: var(--st-weight-extrabold);
  letter-spacing: var(--st-track-eyebrow);
  text-transform: uppercase;
}

.st-footer__links {
  display: grid;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.st-footer__column a {
  color: var(--st-on-dark-body);
  font-size: var(--st-size-body-sm);
  text-decoration: none;
}

.st-footer__column a:hover,
.st-footer__column a:active {
  color: var(--st-accent-tint);
}

.st-footer__note {
  margin-bottom: 12px;
  font-size: var(--st-size-caption);
}

.st-newsletter {
  display: grid;
  gap: 10px;
}

.st-newsletter__message {
  margin-bottom: 12px;
  font-size: var(--st-size-caption);
}

.st-newsletter__message--error {
  color: var(--st-accent-tint);
}

.st-footer__legal {
  border-top: 1px solid var(--st-on-dark-rule);
}

.st-footer__legal-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--st-gutter);
  padding-block: 18px;
  font-size: var(--st-size-caption);
}

.st-footer__contact {
  display: flex;
  gap: 16px;
}

@media (max-width: 899px) {
  .st-footer__promises-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .st-footer__columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 599px) {
  .st-footer__promises-grid,
  .st-footer__columns {
    grid-template-columns: 1fr;
  }

  .st-footer__legal-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}
