/* Footer (Figma 237:2408) — revealed from underneath the page like a curtain (js/footer.js) */
main { position: relative; z-index: 1; background: var(--color-bg); margin-bottom: var(--footer-h, 663px); }

.site-footer {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 0;
  height: var(--footer-h, 663px); overflow: hidden;
  background: var(--color-primary); border-bottom: 1px solid var(--color-line);
}
.site-footer__lines {
  position: absolute; inset: 0; max-width: var(--container); margin: 0 auto; pointer-events: none;
}
.site-footer__lines::before, .site-footer__lines::after { content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, .22); }
.site-footer__lines::before { left: var(--gutter); }
.site-footer__lines::after  { right: var(--gutter); }

.site-footer__inner {
  position: relative; max-width: 1224px; height: 100%; margin: 0 auto;
  padding: var(--section-y) var(--gx) 0;
  will-change: transform;
}
.site-footer__top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-8); }

.site-footer__brand { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.site-footer__logo { display: inline-flex; align-items: center; }
.site-footer__logo img { display: block; width: 108px; height: auto; }
.site-footer__tag { margin: 20px 0 0; font: 400 18px/25px var(--font-ui); letter-spacing: -.3px; color: rgba(255, 255, 255, .9); }
.site-footer__copy { margin: 32px 0 0; font: 500 14px/20px var(--font-ui); letter-spacing: -.084px; color: rgba(255, 255, 255, .7); }
.site-footer__social { display: flex; gap: var(--space-4); margin: 20px 0 0; padding: 0; list-style: none; }
.site-footer__social a {
  display: grid; place-items: center; padding: 6px;
  border: 1px solid rgba(255, 255, 255, .4); border-radius: 96px;
  transition: transform .3s cubic-bezier(.3, .7, .4, 1.5), border-color .2s ease, box-shadow .3s ease;
}
.site-footer__social a:hover { transform: translateY(-3px); border-color: #fff; box-shadow: 0 8px 14px -8px rgba(0, 12, 46, .45); }
.site-footer__social a:active { transform: translateY(1px) scale(.95); transition-duration: .05s; }
.site-footer__social a:focus-visible, .site-footer__cols a:focus-visible, .site-footer__logo:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.site-footer__cols { display: flex; gap: 48px; width: 579px; max-width: 100%; }
.site-footer__cols > div { flex: 1; min-width: 0; }
.site-footer__h {
  margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(255, 255, 255, .28);
  font: 600 12px/normal var(--font-display); letter-spacing: 1.1px; text-transform: uppercase; color: rgba(255, 255, 255, .7);
}
.site-footer__cols ul { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.site-footer__cols a { position: relative; font: 400 15px/20px var(--font-ui); color: rgba(255, 255, 255, .92); transition: color .2s ease; }
.site-footer__cols a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: 0 50%; transition: transform .45s cubic-bezier(.19, 1, .22, 1);
}
.site-footer__cols a:hover { color: #fff; }
.site-footer__cols a:hover::after { transform: scaleX(1); }

.site-footer__big {                         /* Figma 285:3397 — the glass wordmark, rendered from the design (237:2726) at 1240 x 330 */
  position: absolute; left: 50%; bottom: 5px;
  width: min(1240px, calc(100vw - 2 * var(--gx)));
  transform: translateX(-50%) translateY(var(--big-y, 0px));
  pointer-events: none; user-select: none;
}
.site-footer__big img { display: block; width: 100%; height: auto; aspect-ratio: 1240 / 330; }

@media (max-width: 1023px) {
  .site-footer__top { flex-direction: column; gap: var(--space-6); }
  .site-footer__cols { width: 100%; }
}
@media (max-width: 599px) {
  .site-footer__cols { flex-wrap: wrap; gap: 28px 24px; }
  .site-footer__cols > div { flex: 1 1 40%; }
}
@media (prefers-reduced-motion: reduce) { .site-footer__inner { transform: none !important; } }
