/* Shared public-site footer. Isolated names keep prose and invitation styles
   from changing its grid, typography or link spacing. */
.site-footer {
  background: var(--night, #0f1a33);
  color: #c9cdd6;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-family: var(--sans, 'Figtree', system-ui, sans-serif);
  font-size: 1rem;
  line-height: 1.5;
}
.site-footer *, .site-footer *::before, .site-footer *::after { box-sizing: border-box; }
.site-footer__inner {
  max-width: 1240px;
  margin-inline: auto;
  padding: 48px clamp(20px, 4.5vw, 64px) 28px;
}
.site-footer__main {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 32px;
  align-items: start;
  padding-bottom: 32px;
}
.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #f3ede3;
  font-size: 1.1875rem;
  font-weight: 750;
  letter-spacing: -0.015em;
  text-decoration: none;
}
.site-footer__brand img { display: block; flex: none; width: 32px; height: 32px; border-radius: 8px; }
.site-footer__rx { color: #5fc7b4; }
.site-footer__tagline { margin: 16px 0 0; max-width: 24ch; color: #c9cdd6; font-size: 0.9375rem; }
.site-footer__heading { margin: 0 0 12px; color: #f3ede3; font-size: 0.875rem; font-weight: 700; }
.site-footer__group ul { list-style: none; margin: 0; padding: 0; }
.site-footer__group a {
  display: flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 40px;
  padding-block: 8px;
  color: #dce0e8;
  font-size: 0.9375rem;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.site-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.site-footer a:focus-visible { outline: 2px solid #e9c47f; outline-offset: 4px; border-radius: 4px; }
.site-footer__base { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 24px; }
.site-footer__disclosure { max-width: 84ch; margin: 0; color: #b4bccb; font-size: 0.8125rem; line-height: 1.65; }
.site-footer__meta { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 16px; }
.site-footer__meta p { margin: 0; color: #b4bccb; font-size: 0.8125rem; }
.site-footer__admin { display: inline-flex; align-items: center; min-height: 40px; padding-block: 8px; color: #b4bccb; font-size: 0.8125rem; text-decoration: none; }
.site-footer__guidance { margin: 8px 0 0; color: #b4bccb; font-size: 0.8125rem; }
.site-footer [hidden] { display: none !important; }

@media (max-width: 980px) {
  .site-footer__main { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
  .site-footer__identity { grid-column: 1 / -1; }
  .site-footer__tagline { max-width: none; margin-top: 12px; }
}
@media (max-width: 560px) {
  .site-footer__inner { padding-top: 36px; }
  .site-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .site-footer__legal { grid-column: 1 / -1; }
  .site-footer__legal ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .site-footer__group a, .site-footer__admin { min-height: 44px; }
}
