/* Shared RichFolds floating header — loaded last on every page. */
.header-shell {
  width: 100% !important;
  position: fixed !important;
  top: clamp(12px, 1.5vw, 20px) !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 50000 !important;
  padding: 0 16px;
  pointer-events: none;
  transform: translateZ(0);
}

/* Keep the floating navigation below the WordPress toolbar for logged-in users. */
body.admin-bar .header-shell {
  top: calc(32px + clamp(12px, 1.5vw, 20px)) !important;
}

body.admin-bar .main-nav {
  max-height: calc(100dvh - 32px - clamp(12px, 1.5vw, 20px) - clamp(12px, 1.5vw, 20px));
}

.main-nav {
  width: min(580px, 100%) !important;
  max-height: calc(100dvh - 32px);
  margin: 0 auto !important;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(185, 205, 255, 0.14) !important;
  border-radius: 10px !important;
  background: rgba(12, 13, 22, 0.82) !important;
  box-shadow:
    0 24px 65px rgba(3, 4, 12, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.045) !important;
  color: #f7f6f1;
  pointer-events: auto;
  backdrop-filter: blur(22px) saturate(1.2);
  -webkit-backdrop-filter: blur(22px) saturate(1.2);
  transition:
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.main-nav.is-scrolled {
  border-color: rgba(158, 216, 255, 0.18) !important;
  background: rgba(10, 11, 19, 0.92) !important;
  box-shadow:
    0 20px 55px rgba(3, 4, 12, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.main-nav.is-open {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-color: rgba(158, 216, 255, 0.24) !important;
  background: rgba(8, 9, 15, 0.975) !important;
  box-shadow:
    0 32px 90px rgba(0, 0, 0, 0.46),
    0 0 0 1px rgba(118, 87, 232, 0.08) !important;
  scrollbar-width: none;
}

.main-nav.is-open::-webkit-scrollbar {
  display: none;
}

.nav-bar {
  height: 66px !important;
  position: relative;
  z-index: 3;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  padding: 0 18px !important;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.015),
    rgba(158, 216, 255, 0.025),
    rgba(255, 255, 255, 0.015)
  );
}

.main-nav.is-open .nav-bar {
  position: sticky;
  top: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(8, 9, 15, 0.97);
  backdrop-filter: blur(18px);
}

.nav-logo {
  width: 38px !important;
  height: 38px;
  display: grid !important;
  place-items: center;
  border-radius: 6px;
}

.nav-logo img {
  width: 34px !important;
  height: 34px !important;
  display: block;
  filter: grayscale(1) brightness(2.7) !important;
}

.nav-bar > .nav-section-label,
.nav-bar > p {
  max-width: 260px;
  overflow: hidden;
  color: #f7f6f1;
  font-family: "DM Sans", sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.menu-toggle {
  width: 40px !important;
  height: 40px !important;
  z-index: 4;
  border-radius: 5px !important;
  transition: background-color 160ms ease;
}

.menu-toggle:hover,
.menu-toggle:focus-visible {
  background: rgba(158, 216, 255, 0.08) !important;
  outline: none;
}

.menu-toggle span {
  width: 21px !important;
  left: 9px !important;
}

.navigation-panel {
  width: 100%;
  position: relative;
  z-index: 2;
}

.main-nav.is-open .navigation-panel {
  max-height: min(620px, calc(100dvh - 98px)) !important;
}

.menu-links {
  border-top: 0 !important;
}

.menu-links a {
  min-height: 62px !important;
  padding: 0 22px !important;
  border-bottom-color: rgba(255, 255, 255, 0.085) !important;
  color: #f2eff8 !important;
}

.menu-links a:hover,
.menu-links a:focus-visible {
  padding-left: 27px !important;
  background: linear-gradient(
    90deg,
    rgba(158, 216, 255, 0.09),
    rgba(118, 87, 232, 0.055),
    transparent
  ) !important;
  outline: none;
}

.menu-links a > span {
  color: var(--baby-blue, #9ed8ff) !important;
}

.menu-actions {
  gap: 8px !important;
  padding: 16px !important;
}

.menu-actions a {
  min-height: 56px !important;
  border-radius: 6px !important;
}

.menu-actions .menu-primary {
  background: var(--baby-yellow, #f2ff9f) !important;
  color: #10101b !important;
}

.menu-actions .menu-primary:hover,
.menu-actions .menu-primary:focus-visible {
  background: var(--baby-blue, #9ed8ff) !important;
  outline: none;
}

.nav-menu-open {
  overflow: hidden;
}

@media (max-width: 560px) {
  .header-shell {
    top: 10px !important;
    padding: 0 10px;
  }

  .main-nav {
    max-height: calc(100dvh - 20px);
    border-radius: 8px !important;
  }

  .nav-bar {
    height: 62px !important;
    padding: 0 12px !important;
  }

  .nav-logo {
    width: 35px !important;
    height: 35px;
  }

  .nav-logo img {
    width: 31px !important;
    height: 31px !important;
  }

  .nav-bar > .nav-section-label,
  .nav-bar > p {
    max-width: 150px;
    font-size: 8px !important;
  }

  .main-nav.is-open .navigation-panel {
    max-height: calc(100dvh - 82px) !important;
  }

  .menu-links a {
    min-height: 58px !important;
    padding: 0 18px !important;
    font-size: 15px !important;
  }

  .menu-links a:hover,
  .menu-links a:focus-visible {
    padding-left: 21px !important;
  }

  .menu-actions {
    grid-template-columns: 1fr !important;
    padding: 12px !important;
  }
}

@media screen and (max-width: 782px) {
  body.admin-bar .header-shell {
    top: calc(46px + clamp(10px, 1.5vw, 20px)) !important;
  }

  body.admin-bar .main-nav {
    max-height: calc(100dvh - 46px - clamp(10px, 1.5vw, 20px) - clamp(10px, 1.5vw, 20px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .main-nav,
  .navigation-panel,
  .menu-toggle span,
  .nav-bar > p {
    transition-duration: 0.01ms !important;
  }
}
