/* Two-tier footer, mirroring the reference: a top band with the brand blurb, a centred
   category link row and social icons; a bottom band with copyright and legal links. */

.site-footer-top {
  margin-top: var(--sp-9);
  padding: var(--sp-8) 0 var(--sp-7);
  background: var(--c-ink);
  color: #b9b9b9;
  text-align: center;
}

.footer-brand-row {
  max-width: 640px;
  margin: 0 auto var(--sp-6);
}

.footer-brand-row .brand {
  justify-content: center;
  color: #fff;
  margin-bottom: var(--sp-4);
}

.footer-brand-row .brand:hover {
  color: #fff;
}

.footer-blurb {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.75;
  color: #9a9a9a;
}

.footer-company {
  margin-top: var(--sp-5);
  padding-top: var(--sp-5);
  border-top: 1px solid #262626;
}

.footer-company-name {
  margin: 0 0 var(--sp-1);
  font-size: var(--fs-small);
  font-weight: 700;
  color: #cfcfcf;
}

.footer-company-line {
  margin: 0;
  font-size: var(--fs-meta);
  line-height: 1.7;
  color: #7a7a7a;
}

.footer-company-line a {
  color: #9a9a9a;
}

.footer-company-line a:hover {
  color: var(--c-accent);
}

/* Category links as a centred, wrapping inline row. */
.footer-links {
  padding: var(--sp-5) 0;
  border-top: 1px solid #262626;
  border-bottom: 1px solid #262626;
}

.footer-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-3) var(--sp-5);
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-menu a {
  font-size: var(--fs-small);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #cfcfcf;
}

.footer-menu a:hover {
  color: var(--c-accent);
}

.footer-social {
  display: flex;
  justify-content: center;
  gap: var(--sp-3);
  padding-top: var(--sp-6);
}

.footer-social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #303030;
  border-radius: 50%;
  color: #9a9a9a;
  transition: background var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease);
}

.footer-social a:hover {
  background: var(--c-accent);
  border-color: var(--c-accent);
  color: #fff;
}

/* Bottom band ------------------------------------------------------------- */

.site-footer-bottom {
  padding: var(--sp-5) 0;
  background: #060606;
  color: #7a7a7a;
}

.footer-bottom-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  flex-wrap: wrap;
}

.footer-copy {
  margin: 0;
  font-size: var(--fs-meta);
  color: #7a7a7a;
}

.footer-legal-menu {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-legal-menu a {
  font-size: var(--fs-meta);
  color: #7a7a7a;
}

.footer-legal-menu a:hover {
  color: #fff;
}

/* Back to top -------------------------------------------------------------- */

.to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--c-ink);
  color: #fff;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity var(--t-base) var(--ease),
              transform var(--t-base) var(--ease),
              background var(--t-fast) var(--ease),
              visibility var(--t-base);
}

.to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.to-top:hover {
  background: var(--c-accent);
}

/* Responsive --------------------------------------------------------------- */

@media (max-width: 600px) {
  .footer-bottom-row {
    flex-direction: column;
    text-align: center;
  }

  .footer-legal-menu {
    justify-content: center;
  }

  .to-top {
    right: 16px;
    bottom: 16px;
  }
}
