/* Navigation production V3.1 — scoped styles only. No JavaScript dependency. */
:root {
  --naz-green: #2D5A27;
  --naz-gold: #C5A059;
  --naz-dark: #1A1A1A;
}

html { scroll-padding-top: 112px; }


/* Header entrance and scroll transition */
.naz-site-header {
  will-change: padding, background-color, box-shadow, backdrop-filter;
  animation: nazHeaderEnter .7s cubic-bezier(.22,1,.36,1) both;
}
.naz-header-top { border-bottom: 1px solid transparent; }
.naz-header-scrolled {
  border-bottom: 1px solid rgba(197,160,89,.18);
}
.naz-logo-link img { transform-origin: left center; }
.naz-logo-link:hover img { transform: translateY(-2px) scale(1.025); }

/* Desktop links: elegant expanding underline and micro-lift */
.naz-nav-link {
  position: relative;
  isolation: isolate;
  border: 0 !important;
  transition: color .28s ease, transform .28s ease, text-shadow .28s ease;
}
.naz-nav-link::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 2px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--naz-green), var(--naz-gold));
  transition: left .32s cubic-bezier(.22,1,.36,1), right .32s cubic-bezier(.22,1,.36,1), opacity .25s ease;
  opacity: .9;
}
.naz-nav-link:hover,
.naz-nav-link:focus-visible {
  transform: translateY(-2px);
  text-shadow: 0 8px 22px rgba(0,0,0,.16);
  outline: none;
}
.naz-nav-link:hover::after,
.naz-nav-link:focus-visible::after { left: 0; right: 0; }
.naz-nav-gold::after { background: linear-gradient(90deg, #e5c77f, var(--naz-gold)); }

/* CTA: subtle shine, not a constant distracting pulse */
.naz-nav-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, background-color .3s ease;
}
.naz-nav-cta::before {
  content: "";
  position: absolute;
  inset: -2px auto -2px -45%;
  width: 32%;
  transform: skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  transition: left .65s cubic-bezier(.22,1,.36,1);
  z-index: -1;
}
.naz-nav-cta:hover,
.naz-nav-cta:focus-visible {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 32px rgba(45,90,39,.28);
  outline: none;
}
.naz-nav-cta:hover::before,
.naz-nav-cta:focus-visible::before { left: 115%; }

/* Mobile bottom dock */
.naz-mobile-dock {
  animation: nazDockEnter .65s .15s cubic-bezier(.22,1,.36,1) both;
  transform-origin: bottom center;
}
.naz-mobile-action {
  transition: color .25s ease, transform .25s cubic-bezier(.22,1,.36,1);
}
.naz-mobile-action:hover,
.naz-mobile-action:focus-visible { transform: translateY(-4px); outline: none; }
.naz-mobile-action:active { transform: translateY(-1px) scale(.94); }
.naz-mobile-call {
  animation: nazCallEnter .7s .35s cubic-bezier(.22,1,.36,1) both;
  transition: transform .28s cubic-bezier(.22,1,.36,1), box-shadow .28s ease;
}
.naz-mobile-call:hover,
.naz-mobile-call:focus-visible {
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 16px 32px rgba(45,90,39,.32);
  outline: none;
}

/* Fullscreen mobile menu */
.naz-mobile-menu { overflow: hidden; }
.naz-mobile-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 10%, rgba(197,160,89,.13), transparent 32%),
              radial-gradient(circle at 86% 82%, rgba(45,90,39,.12), transparent 38%);
  pointer-events: none;
}
.naz-mobile-menu > * { position: relative; z-index: 2; }
.naz-mobile-menu-item {
  animation: nazMenuItemEnter .5s cubic-bezier(.22,1,.36,1) both;
  animation-delay: calc(var(--nav-index) * 55ms);
  transition: color .25s ease, transform .25s cubic-bezier(.22,1,.36,1);
}
.naz-mobile-menu-item:hover,
.naz-mobile-menu-item:focus-visible {
  transform: translateX(6px);
  color: var(--naz-green);
  outline: none;
}
.naz-mobile-menu-cta:hover,
.naz-mobile-menu-cta:focus-visible {
  color: white;
  transform: translateY(-3px) scale(1.025);
  box-shadow: 0 16px 34px rgba(197,160,89,.3);
}
.naz-menu-close {
  transition: transform .35s cubic-bezier(.22,1,.36,1), color .25s ease, background-color .25s ease;
  border-radius: 999px;
  padding: 6px;
}
.naz-menu-close:hover,
.naz-menu-close:focus-visible {
  transform: rotate(90deg) scale(1.06);
  color: var(--naz-green);
  background: rgba(45,90,39,.08);
  outline: none;
}
.naz-menu-orb {
  position: absolute !important;
  z-index: 0 !important;
  border-radius: 999px;
  filter: blur(1px);
  opacity: .6;
  pointer-events: none;
  animation: nazOrbFloat 7s ease-in-out infinite alternate;
}
.naz-menu-orb-one {
  width: 210px; height: 210px; left: -90px; top: 13%;
  background: rgba(197,160,89,.11);
}
.naz-menu-orb-two {
  width: 260px; height: 260px; right: -130px; bottom: 8%;
  background: rgba(45,90,39,.1);
  animation-delay: -2.4s;
}

@keyframes nazHeaderEnter {
  from { opacity: 0; transform: translateY(-18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes nazDockEnter {
  from { opacity: 0; transform: translateY(45px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes nazCallEnter {
  from { opacity: 0; transform: translateY(20px) scale(.72); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes nazMenuItemEnter {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes nazOrbFloat {
  from { transform: translate3d(0,0,0) scale(1); }
  to { transform: translate3d(12px,-18px,0) scale(1.08); }
}

@media (min-width: 768px) {
  }

@media (prefers-reduced-motion: reduce) {
  .naz-site-header,
  .naz-mobile-dock,
  .naz-mobile-call,
  .naz-mobile-menu-item,
  .naz-menu-orb { animation: none !important; }
  .naz-nav-link,
  .naz-nav-cta,
  .naz-logo-link img,
  .naz-mobile-action,
  .naz-mobile-call,
  .naz-menu-close { transition-duration: .01ms !important; }
}
