/* ==========================================================================
   footer.css — site footer and the floating easter egg

   The footer sits on the page background with a hairline top border rather
   than its own fill, so the dark shell reads as continuous top to bottom.
   ========================================================================== */

.site-footer {
  position: relative;
  padding-block: var(--ds-space-9) var(--ds-space-7);
  border-top: var(--ds-border-width) solid var(--ds-color-border-subtle);
  background-color: var(--ds-color-bg-page);
}

.site-footer__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ds-space-8);
  padding-bottom: var(--ds-space-8);
}

@media (min-width: 768px) {
  .site-footer__top {
    grid-template-columns: 1fr 2fr;
    gap: var(--ds-space-9);
  }
}

.site-footer__brand {
  display: flex;
  align-items: center;
  gap: var(--ds-space-2);
}

/* A touch larger than the header copy, since the footer is where the mark gets
   room to breathe. */
.site-footer__logo {
  height: 34px;
  width: auto;
}

.site-footer__tagline {
  margin-top: var(--ds-space-3);
  max-width: 34ch;
  font-size: 14px;
  line-height: 165%;
  color: var(--ds-color-text-description);
}

/* --- nav groups ----------------------------------------------------------- */

.site-footer__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ds-space-6);
}

@media (min-width: 600px) {
  .site-footer__nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.site-footer__group-title {
  margin-bottom: var(--ds-space-3);
  font-family: var(--ds-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ds-color-text-placeholder);
}

.site-footer__list {
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-2);
}

.site-footer__list a {
  font-size: 14px;
  color: var(--ds-color-text-description);
  transition: color var(--ds-duration-base) var(--ds-ease-standard);
}

.site-footer__list a:hover {
  color: var(--ds-color-text-primary);
}

/* --- bottom bar ----------------------------------------------------------- */

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-space-4);
  padding-top: var(--ds-space-5);
  border-top: var(--ds-border-width) solid var(--ds-color-border-subtle);
}

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ds-space-2) var(--ds-space-5);
  font-size: 13px;
  color: var(--ds-color-text-placeholder);
}

.site-footer__legal a {
  color: var(--ds-color-text-placeholder);
}

.site-footer__legal a:hover {
  color: var(--ds-color-text-primary);
}

.site-footer__social {
  display: flex;
  gap: var(--ds-space-2);
}

.site-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 36px;
  border: 0;
  border-radius: 0;
  color: var(--ds-color-text-description);
  transition: color var(--ds-duration-base) var(--ds-ease-standard),
    border-color var(--ds-duration-base) var(--ds-ease-standard),
    background-color var(--ds-duration-base) var(--ds-ease-standard);
}

.site-footer__social a svg {
  width: 20px;
  height: 20px;
}

.site-footer__social a:nth-child(2) svg {
  width: 34px;
  height: 14px;
}

.site-footer__social a:hover {
  color: var(--ds-color-text-primary);
  border-color: var(--ds-color-border-hover);
  background-color: var(--ds-color-bg-hover);
}

.site-footer__disclaimer {
  margin-top: var(--ds-space-6);
  max-width: 90ch;
  font-size: 12px;
  line-height: 165%;
  color: var(--ds-color-text-placeholder);
}
