/* new-home footer - quiet, tidy, the rings fading out behind the lockup. */

#nh-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--nh-bg-raised);
  color: var(--nh-text-muted);
  border-top: 1px solid var(--nh-divider);
  font-size: var(--nh-fs-sm);
}
/* the ring motif, very faint, anchored behind the brand */
#nh-footer::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: -22rem;
  top: -22rem;
  width: 56rem;
  height: 56rem;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 55px, var(--nh-divider) 55px 56px);
  -webkit-mask-image: radial-gradient(circle, #000 20%, transparent 70%);
  mask-image: radial-gradient(circle, #000 20%, transparent 70%);
  pointer-events: none;
}

.nh-footer__fallback { padding: var(--nh-space-8) var(--nh-gutter); display: grid; gap: var(--nh-space-3); }
.nh-footer__fallback nav { display: flex; flex-wrap: wrap; gap: var(--nh-space-4); }
.nh-footer__fallback a { color: var(--nh-text-muted); }

.nh-footer__inner { padding-block: clamp(3.5rem, 2rem + 5vw, 6.5rem) max(var(--nh-space-6), env(safe-area-inset-bottom)); }

.nh-footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr);
  gap: var(--nh-space-8);
  padding-bottom: var(--nh-space-8);
}
.nh-footer__logo { display: inline-flex; min-height: var(--nh-tap); align-items: center; color: var(--nh-heading); text-decoration: none; border-radius: var(--nh-radius-sm); }
.nh-footer__logo .nh-lockup { font-size: 2.25rem; }
.nh-footer__tagline {
  margin-top: var(--nh-space-2);
  font-family: var(--nh-font-display);
  font-size: var(--nh-fs-lg);
  letter-spacing: 0.22em;
  color: var(--nh-text);
}
.nh-footer__intro { margin-top: var(--nh-space-4); max-width: 34ch; color: var(--nh-text-muted); font-size: var(--nh-fs-base); }
.nh-footer__doors { display: flex; flex-wrap: wrap; gap: var(--nh-space-3); margin-top: var(--nh-space-6); }

.nh-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--nh-space-6); }
.nh-footer__h {
  font-family: var(--nh-font-display);
  font-size: var(--nh-fs-xs);
  font-weight: var(--nh-weight-medium);
  letter-spacing: var(--nh-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--nh-text);
  margin-bottom: var(--nh-space-3);
}
.nh-footer__col ul, .nh-footer__legal ul { margin: 0; padding: 0; list-style: none; }
.nh-footer__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: var(--nh-tap);
  color: var(--nh-text-muted);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color var(--nh-dur-fast);
}
.nh-footer__link:hover { color: var(--nh-accent); text-decoration: none; }
.nh-footer__link:hover span:not(.nh-sr-only) { text-decoration: underline; text-underline-offset: 0.25em; }

.nh-footer__addr {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nh-space-3) var(--nh-space-8);
  padding-block: var(--nh-space-5);
  border-top: 1px solid var(--nh-divider);
}
.nh-footer__addr address { font-style: normal; color: var(--nh-text-muted); }
.nh-footer__addr-h { display: block; font-size: var(--nh-fs-2xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--nh-text-subtle); margin-bottom: 2px; }

.nh-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--nh-space-3) var(--nh-space-6);
  padding-top: var(--nh-space-4);
  border-top: 1px solid var(--nh-divider);
}
.nh-footer__rights { color: var(--nh-text-subtle); font-size: var(--nh-fs-xs); }
.nh-footer__legal ul { display: flex; flex-wrap: wrap; column-gap: var(--nh-space-5); }
.nh-footer__legal .nh-footer__link { font-size: var(--nh-fs-xs); }
.nh-footer__prefs { display: flex; align-items: center; gap: var(--nh-space-2); margin-left: auto; }
.nh-footer__top-btn {
  display: inline-grid;
  place-items: center;
  width: var(--nh-tap);
  height: var(--nh-tap);
  border: 1px solid var(--nh-border);
  border-radius: var(--nh-radius-round);
  color: var(--nh-text-muted);
  transition: color var(--nh-dur-fast), transform var(--nh-dur-base) var(--nh-ease-out);
}
.nh-footer__top-btn:hover { color: var(--nh-accent); transform: translateY(calc(-2px * var(--nh-move))); }
.nh-footer__top-btn:focus-visible { border-radius: var(--nh-radius-round); }

@media (max-width: 1023px) {
  .nh-footer__top { grid-template-columns: 1fr; gap: var(--nh-space-7); }
  .nh-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nh-space-6) var(--nh-space-5); }
}
@media (max-width: 640px) {
  .nh-footer__bottom { flex-direction: column; align-items: flex-start; }
  .nh-footer__prefs { margin-left: 0; }
  .nh-footer__doors .nh-btn { flex: 1 1 100%; }
}
