.site-footer,
.contact-footer {
  margin-top: 5rem;
  background: #C7C3BC;
  color: #000;
  font-family: "Inter", sans-serif;
}

.footer-inner,
.contact-footer-inner {
  max-width: var(--content);
  margin: 0 auto;
  padding: clamp(3.5rem, 6vw, 5rem) 2rem 3rem;
  display: grid;
  grid-template-columns: minmax(280px, 1.2fr) repeat(3, minmax(170px, 0.6fr));
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

.footer-brand {
  display: grid;
  gap: 1.6rem;
  align-content: start;
}

.footer-logo {
  width: min(380px, 76vw);
  filter: brightness(0);
}

.footer-brand::after {
  content: "";
  width: 112px;
  height: 1px;
  background: #000;
  opacity: 0;
}

.footer-contact,
.footer-links,
.footer-social {
  display: grid;
  gap: 0.85rem;
  align-content: start;
}

.footer-contact {
  max-width: 280px;
  text-align: left;
}

.footer-contact h3,
.footer-links h3,
.footer-social h3,
.contact-footer-label {
  color: #000;
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  margin: 0 0 0.6rem;
}

.footer-contact p {
  color: #000;
  font-size: 1rem;
  line-height: 1.45;
}

.footer-contact p + p {
  margin-top: 0.35rem;
}

.footer-contact a,
.footer-nav a,
.footer-bottom-links a,
.contact-footer-links a,
.contact-social-link {
  color: #000;
  text-decoration: none;
}

.footer-contact a:hover,
.footer-nav a:hover,
.footer-bottom-links a:hover,
.contact-footer-links a:hover,
.contact-social-link:hover {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.footer-links {
  display: grid;
}

.footer-nav {
  display: grid;
  gap: 0.35rem;
}

.footer-nav a,
.footer-bottom-links a,
.contact-footer-links a {
  width: fit-content;
  color: #000;
  text-transform: none;
  letter-spacing: 0;
  font-size: 1rem;
  line-height: 1.45;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.footer-social {
  grid-column: auto;
}

.footer-social-buttons,
.footer-social-links,
.contact-footer-social {
  display: flex;
  gap: 1.2rem;
  flex-wrap: wrap;
  align-items: flex-start;
}

.footer-social-button,
.contact-social-link {
  width: 86px;
  display: grid;
  gap: 0.55rem;
  justify-items: center;
  justify-content: center;
  color: #000;
  text-decoration: none;
  text-align: center;
}

.footer-social-button__icon,
.contact-social-link:not(:has(svg))::before {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(0, 0, 0, 0.42);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #000;
  font-family: "Inter", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  transition: background 0.24s ease, border-color 0.24s ease, color 0.24s ease;
}

.footer-social-button__icon {
  font-size: 0;
}

.footer-social-button__icon::before,
.contact-social-link:not(:has(svg))::before {
  content: "";
  width: 22px;
  height: 22px;
  display: block;
  background: currentColor;
  -webkit-mask: var(--social-icon) center / contain no-repeat;
  mask: var(--social-icon) center / contain no-repeat;
}

.footer-social-button[href*="instagram"] .footer-social-button__icon,
.contact-social-link[href*="instagram"]:not(:has(svg)) {
  --social-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8V7.8A3.8 3.8 0 0 0 16.2 4H7.8Zm4.2 3.1a4.9 4.9 0 1 1 0 9.8 4.9 4.9 0 0 1 0-9.8Zm0 2a2.9 2.9 0 1 0 0 5.8 2.9 2.9 0 0 0 0-5.8Zm5.1-2.35a1.15 1.15 0 1 1 0 2.3 1.15 1.15 0 0 1 0-2.3Z'/%3E%3C/svg%3E");
}

.footer-social-button[href*="facebook"] .footer-social-button__icon,
.contact-social-link[href*="facebook"]:not(:has(svg)) {
  --social-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.15 8.1V6.7c0-.67.45-.83.77-.83h1.96V2.52L14.18 2.5c-3 0-3.68 2.24-3.68 3.68V8.1H8.12v3.45h2.38V22h3.65V11.55h2.7l.36-3.45h-3.06Z'/%3E%3C/svg%3E");
}

.footer-social-button__label {
  color: #000;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  line-height: 1.25;
  text-transform: uppercase;
}

.contact-social-link svg {
  width: 48px;
  height: 48px;
  padding: 12px;
  border: 1px solid rgba(0, 0, 0, 0.42);
  border-radius: 999px;
  transition: background 0.24s ease, border-color 0.24s ease, color 0.24s ease;
}

.contact-social-text {
  color: #000;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  line-height: 1.25;
  text-transform: uppercase;
}

.footer-social-button:hover,
.contact-social-link:hover {
  text-decoration: none;
}

.footer-social-button:hover .footer-social-button__icon,
.contact-social-link:hover svg,
.contact-social-link:not(:has(svg)):hover::before {
  background: #000;
  border-color: #000;
  color: rgb(106, 106, 105);
}

.social-link {
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.social-link svg {
  width: 22px;
  height: 22px;
}

.footer-bottom {
  border-top: 1px solid rgba(0, 0, 0, 0.22);
  max-width: var(--content);
  margin: 0 auto;
}

.footer-bottom-inner {
  padding: 1.35rem 2rem 2.4rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  color: #000;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.88rem;
}

.footer-bottom-links {
  display: none;
}

.contact-footer-legal {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
  padding: 1.35rem 0 0;
  border-top: 1px solid rgba(0, 0, 0, 0.22);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  color: #000;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.88rem;
}

.landing-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 6;
  display: flex;
  justify-content: center;
  padding: 1rem 1.5rem 1.25rem;
  color: rgba(245, 241, 234, 0.6);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  pointer-events: none;
}

.landing-footer__link {
  margin-left: 2rem;
  color: var(--gold);
  text-decoration: none;
  pointer-events: auto;
}

@media (max-width: 980px) {
  .footer-inner,
  .contact-footer-inner {
    grid-template-columns: 1fr 1fr;
  }

  .landing-footer {
    position: static;
    padding: 1rem 1.5rem 1.6rem;
  }
}

@media (max-width: 640px) {
  .footer-inner,
  .contact-footer-inner {
    grid-template-columns: 1fr;
    padding: 3rem 1.25rem 2.2rem;
    justify-items: center;
    text-align: center;
  }

  .footer-brand,
  .footer-contact,
  .footer-links,
  .footer-social {
    justify-items: center;
    text-align: center;
  }

  .footer-contact {
    max-width: 340px;
  }

  .footer-nav {
    justify-items: center;
  }

  .footer-social-buttons,
  .contact-footer-social {
    justify-content: center;
  }

  .footer-logo {
    width: min(300px, 82vw);
  }

  .footer-bottom-inner,
  .contact-footer-legal {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .contact-footer-legal {
    padding-left: 0;
    padding-right: 0;
  }
}
