/* ==========================================================================
   Mobile menu — hamburger button + full-screen panel (shared by every page)
   ========================================================================== */

.menu-btn {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  margin: 0 -10px 0 6px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.menu-btn span {
  position: absolute;
  left: 11px;
  right: 11px;
  height: 1.5px;
  background: var(--white);
  transition: transform .5s cubic-bezier(.19,1,.22,1), top .5s cubic-bezier(.19,1,.22,1), opacity .3s ease;
}
.menu-btn span:nth-child(1) { top: 17px; }
.menu-btn span:nth-child(2) { top: 25px; }
.menu-open .menu-btn span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.menu-open .menu-btn span:nth-child(2) { top: 21px; transform: rotate(-45deg); }
.menu-btn:focus-visible { outline: 1px solid var(--teal-bright); outline-offset: 2px; }

.site-menu {
  position: fixed;
  left: 0;
  right: 0;
  top: 88px;
  bottom: 0;
  z-index: 59;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
  padding: clamp(28px, 7vh, 64px) 24px clamp(28px, 5vh, 48px);
  background: var(--navy);
  border-top: 1px solid rgba(255,255,255,0.1);
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  transition: opacity .45s ease, visibility 0s linear .45s;
}
.menu-open .site-menu {
  visibility: visible;
  opacity: 1;
  transition: opacity .45s ease;
}
.site-menu__links { display: grid; gap: 4px; }
.site-menu__link {
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(36px, 9vw, 56px);
  line-height: 1.1;
  color: var(--white);
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity .6s ease, transform .8s cubic-bezier(.19,1,.22,1), color .4s ease;
}
.site-menu__link b {
  font-family: var(--sans);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.26em;
  color: rgba(255,255,255,0.4);
}
.site-menu__link[aria-current="page"] { color: var(--teal-bright); font-style: italic; }
.site-menu__link:hover { color: var(--teal-bright); }
.menu-open .site-menu__link { opacity: 1; transform: none; }
.menu-open .site-menu__link:nth-child(2) { transition-delay: .05s; }
.menu-open .site-menu__link:nth-child(3) { transition-delay: .1s; }
.menu-open .site-menu__link:nth-child(4) { transition-delay: .15s; }
.menu-open .site-menu__link:nth-child(5) { transition-delay: .2s; }
.site-menu__foot { display: grid; gap: 8px; font-family: var(--sans); font-size: 15px; color: rgba(255,255,255,0.7); }
.site-menu__foot a:hover { color: var(--white); }

/* Lock the page behind the open menu */
.menu-open, .menu-open body { overflow: hidden; }

@media (max-width: 1100px) {
  .menu-btn { display: inline-block; }
  .navbar__cta-wrap { align-items: center; }
}
@media (min-width: 1101px) {
  .site-menu { display: none; }
}
/* Phones: the menu carries Contact, so the header keeps just logo + hamburger */
@media (max-width: 560px) {
  .navbar__cta-wrap .nav-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .site-menu, .site-menu__link, .menu-btn span { transition: none; }
}

/* Privacy links — footer and form notes (shared by every page) */
.site-footer__legal { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; transition: color .4s ease; }
.site-footer__legal:hover { color: var(--white); }
.site-legal-link { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; transition: color .4s ease; }
.site-legal-link:hover { color: var(--teal); }
