:root {
  --dual-footer-height: 78px;
}

html {
  scroll-padding-bottom: calc(var(--dual-footer-height) + 20px);
}

body {
  padding-bottom: var(--dual-footer-height);
}

.page__footer {
  position: fixed !important;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  height: var(--dual-footer-height);
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  border-top: 1px solid var(--dual-line) !important;
  background: color-mix(in srgb, var(--dual-bg) 94%, transparent) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  color: var(--dual-muted) !important;
}

.page__footer footer {
  max-width: 1180px;
  width: 100%;
  height: 100%;
  margin: 0 auto !important;
  padding: 0 1.5rem !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.dual-footer__inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.dual-footer__identity,
.dual-footer__links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .7rem;
}

.dual-footer__name {
  color: var(--dual-fg);
  font-weight: 600;
  letter-spacing: -.02em;
}

.dual-footer__copyright,
.dual-footer__links a {
  font-family: 'JetBrains Mono', monospace;
  font-size: .66rem;
  letter-spacing: .05em;
}

.dual-footer__copyright {
  color: var(--dual-muted);
}

.dual-footer__links a {
  color: var(--dual-muted) !important;
  text-decoration: none !important;
  transition: color .18s ease;
}

.dual-footer__links a:hover {
  color: var(--dual-accent) !important;
}

/* Defensive cleanup for stale/legacy footer markup from earlier builds.
   The active visitor map now uses .dual-contact-page__visitors on /contact/. */
.dual-footer__visitors,
.dual-footer__map-label,
.dual-footer__map-widget {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 640px) {
  :root {
    --dual-footer-height: 68px;
  }

  .page__footer footer {
    padding: 0 1rem !important;
  }

  .dual-footer__inner {
    gap: .8rem;
  }

  .dual-footer__copyright {
    display: none;
  }

  .dual-footer__links {
    gap: .5rem;
  }
}
