.site-footer {
  position: relative;
  background-color: var(--color-bg-white);
  padding: clamp(4rem, 8svh, 6rem) var(--header-padding-x) 2rem;
}

.site-footer__container { max-width: 1400px; margin: 0 auto; }

.site-footer__logo-link {
  display: inline-block; margin-bottom: clamp(2.5rem, 5svh, 4rem);
  width: clamp(100px, 12svw, 140px); transition: opacity 0.3s ease;
}
.site-footer__logo-link:hover { opacity: 0.8; }
.site-footer__logo { width: 100%; height: auto; display: block; }

.site-footer__widgets {
  display: grid; grid-template-columns: 2fr 1fr 1fr;
  gap: clamp(2rem, 4svw, 5rem); margin-bottom: clamp(3rem, 6svh, 5rem);
}

.footer-widget__title {
  font-size: clamp(0.95rem, 1.2svw, 1.1rem); font-weight: 800; color: var(--color-text-dark);
  text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1.5rem;
  padding-bottom: 1rem; border-bottom: 1px solid #d1d1d1;
}

.footer-widget__content p, .footer-widget__menu li {
  font-size: clamp(0.9rem, 1svw, 1rem); color: #555555; line-height: 1.7; margin-bottom: 0.8rem;
}

address.footer-widget--contact { font-style: normal; }

.footer-widget__content a { color: #555555; text-decoration: none; transition: color 0.3s ease; }
.footer-widget__content a:hover { color: var(--color-brand-magenta); }

.footer-widget__sponsor { margin-top: 1.5rem; }

.footer-widget__menu { list-style: none; padding: 0; margin: 0; }
.footer-widget__menu a { color: #555555; text-decoration: none; transition: color 0.3s ease; }
.footer-widget__menu a:hover { color: var(--color-brand-magenta); }

.footer-socials { display: flex; gap: 1rem; margin-top: 2rem; }
.social-link {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--color-text-light); color: var(--color-text-light);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.social-link:hover {
  color: var(--color-brand-magenta); border-color: var(--color-brand-magenta);
  transform: translateY(-3px); background-color: var(--color-bg-highlight-purple);
}
.social-link svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.site-footer__bottom { text-align: center; padding-top: 2rem; border-top: 1px solid #eaeaea; }
.site-footer__bottom p { font-size: 0.75rem; color: #666666; letter-spacing: 0.02em; }

@media (max-width: 900px) {
  .site-footer__widgets { grid-template-columns: 1fr 1fr; }
  .footer-widget--brand { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .site-footer__widgets { grid-template-columns: 1fr; gap: 3rem; }
}
