/* Navigation styles for Crowned Crane Safaris */

:root {
  --nav-bg: rgba(32, 32, 32, 0.55);
  --nav-bg-solid: #1f1f1f;
  --nav-text: #111;
  --nav-text-contrast: #fff;
  --nav-accent: #e4b363; /* matches site primary accent */
  --nav-accent-dark: #c79e53;
  --topbar-h: 42px;
  --navbar-h: 64px;
}

/* Ensure content isn't hidden under fixed bars */
body { padding-top: calc(var(--topbar-h) + var(--navbar-h)); }

/* Top contact bar */
.site-topbar {
  width: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.25));
  color: #e8e8e8;
  font-size: 0.92rem;
  line-height: 1;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--topbar-h);
  z-index: 1101;
}
/* Match solid background when scrolled */
.site-topbar.navbar-scrolled { background: var(--nav-bg-solid); }
.site-topbar .topbar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.site-topbar a { color: #f5f5f5; text-decoration: none; }
.site-topbar a:hover { color: var(--nav-accent); }
.site-topbar .topbar-left,
.site-topbar .topbar-right {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.site-topbar .book-now {
  background: #d9431e;
  color: #fff;
  padding: 0.55rem 0.9rem;
  border-radius: 6px;
  font-weight: 700;
}
.site-topbar .book-now:hover { background: #b13619; }

/* Main navbar */
.navbar {
  position: fixed;
  top: var(--topbar-h);
  left: 0;
  right: 0;
  z-index: 1100;
  width: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.25));
  backdrop-filter: blur(2px);
  transition: background 0.25s ease, box-shadow 0.25s ease;
  height: var(--navbar-h);
}
.navbar-scrolled {
  background: var(--nav-bg-solid);
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}
.navbar .navbar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
  height: var(--navbar-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: transparent; /* background is on the full-width navbar */
  border-radius: 0;
  box-shadow: none;
  width: 100%;
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}
.brand img { width: 36px; height: 36px; }

/* Toggle (mobile) */
.nav-toggle {
  background: transparent;
  border: 2px solid var(--nav-accent);
  color: #fff;
  padding: 0.35rem 0.55rem;
  border-radius: 6px;
  cursor: pointer;
  display: none;
}
.nav-toggle.active { background: var(--nav-accent); }

/* Hamburger icon */
.nav-toggle { position: relative; width: 46px; height: 38px; }
.hamburger { display: inline-block; width: 24px; height: 16px; position: relative; }
.hamburger span { position: absolute; left: 0; right: 0; height: 2px; background: #fff; border-radius: 2px; transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease; }
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 7px; }
.hamburger span:nth-child(3) { top: 14px; }
.nav-toggle.active .hamburger span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.nav-toggle.active .hamburger span:nth-child(2) { opacity: 0; }
.nav-toggle.active .hamburger span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

/* Primary nav */
.nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.nav-menu > li > a {
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.6rem 0.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.nav-menu > li > a:hover { color: var(--nav-accent); }

/* Highlight prominent button inside nav */
.nav-menu .book-now {
  background: #d9431e;
  color: #fff !important;
  padding: 0.5rem 0.9rem;
  border-radius: 8px;
  font-weight: 800;
}

/* Dropdown (first level) */
.has-dropdown {
  position: relative;
}
.has-dropdown .dropdown {
  position: absolute;
  left: 0;
  top: 100%; /* remove gap to avoid hover flicker */
  z-index: 1201; /* above navbar */
  background: #f6f0e6;
  color: #222;
  border-radius: 10px;
  padding: 0.6rem;
  min-width: 280px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.22);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
/* Open state handled by JS adding .dropdown-open to parent */
.has-dropdown.dropdown-open > .dropdown {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
/* Desktop hover fallback to ensure reliability */
@media (min-width: 901px) {
  .has-dropdown:hover > .dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* Mega menu for Safaris */
.dropdown.mega {
  min-width: 780px;
  max-width: 920px;
}
.mega-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0.6rem;
}
.mega-categories {
  display: flex;
  flex-direction: column;
}
.mega-cat {
  background: #f0e5d4;
  border-radius: 8px;
  padding: 0.8rem 1rem;
  font-weight: 800;
  color: #333;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.4rem;
}
.mega-cat:hover { background: #eadac2; }
.mega-panel {
  background: #fff5e9;
  border-radius: 10px;
  padding: 1rem 1.2rem;
  min-height: 100%;
}
.mega-section { margin-bottom: 0.6rem; }
.mega-section h4 {
  margin: 0 0 0.6rem 0;
  font-size: 1rem;
  color: #222;
}
.mega-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 0.4rem 1.2rem;
}
.mega-links a {
  color: #222;
  text-decoration: none;
  padding: 0.35rem 0.25rem;
  border-radius: 6px;
  display: block;
  font-weight: 600;
}
.mega-links a:hover { background: #ffe7bf; color: #111; }

/* Right-aligned dropdowns */
.nav-menu > li.align-right .dropdown { right: 0; left: auto; }

/* Mega panels container */
.mega-panels { position: relative; }
.mega-panel[hidden] { display: none !important; }

/* Mega menu sizing */
.dropdown.mega { padding: 0.6rem; }
.mega-grid { align-items: stretch; }
.mega-categories { min-width: 220px; }
.mega-panels { width: 100%; }
.mega-panel { background: #fff5e9; border-radius: 10px; padding: 0.9rem 1.1rem; height: 100%; }

/* Automatically size dropdown to content with a reasonable max */
.has-dropdown .dropdown { max-height: 70vh; overflow: auto; }

/* Desktop hover/focus behavior to reveal target panel */
@media (min-width: 901px) {
  .mega-categories .mega-cat { cursor: pointer; border: 0; background: #f0e5d4; text-align: left; }
  .mega-categories .mega-cat:focus { outline: 2px solid var(--nav-accent); }
}

/* Mobile styles */
@media (max-width: 900px) {
  :root { --topbar-h: 0px; --navbar-h: 60px; }
  .site-topbar { display: none; }
  .nav-toggle { display: inline-block; }
  .navbar .navbar-inner {
    width: 100%;
    margin: 0 auto;
    height: var(--navbar-h);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0 1rem;
  }
  .nav-menu {
    position: fixed;
    left: 0; right: 0; top: 0;
    background: #1f1f1f;
    padding: calc(var(--navbar-h) + 1rem) 1rem 1rem 1rem;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    height: 100vh;
    overflow-y: auto; /* scroll within overlay */
    z-index: 1200;
  }
  .nav-menu.open { display: flex; }

  /* Show hamburger only on mobile */
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }

  /* Collapse dropdowns by default on mobile; expand when parent has .dropdown-open */
  .nav-menu .has-dropdown > .dropdown { display: none; width: 100%; padding: 0.25rem 0; }
  .nav-menu .has-dropdown.dropdown-open > .dropdown { display: block; }

  /* Mobile dropdown styling */
  .has-dropdown .dropdown { position: static; opacity: 1; pointer-events: auto; transform: none; box-shadow: none; background: transparent; padding: 0; }
  .dropdown.mega { min-width: 0; max-width: none; width: 100%; }
  .mega-grid { grid-template-columns: 1fr; }
  .mega-categories { display: block; }
  .mega-panel { background: #242424; color: #fff; padding: 0.5rem 0.25rem; }
  .mega-section h4 { color: #fff; }
  .mega-links a { color: #fff; display: block; padding: 0.6rem 0.25rem; }
  .has-dropdown .dropdown { max-height: none; overflow: visible; }
  .mega-panel { background: transparent; padding: 0.5rem 0; }

  /* Mobile 3-level accordion for Safaris */
  .mobile-accordion { width: 100%; }
  .mobile-accordion .mega-cat { 
    width: 100%; 
    background: #2a2a2a; 
    color: #fff; 
    padding: 0.75rem 0.75rem; 
    border-radius: 8px; 
    margin-bottom: 0.4rem; 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
  }
  .mobile-accordion .mobile-sublist { 
    display: none; 
    padding: 0.25rem 0.5rem 0.75rem 0.75rem; 
  }
  .mobile-accordion .mobile-sublist.open { display: block; }
  .mobile-accordion .mobile-sublist a { 
    display: block; 
    padding: 0.5rem 0.25rem; 
    color: #fff; 
  }
  .mobile-accordion .mobile-subpanel { 
    display: none; 
    padding-left: 0.75rem; 
  }
  .mobile-accordion .mobile-subpanel.open { display: block; }
  .mobile-accordion .mobile-subpanel a { 
    padding: 0.4rem 0.25rem; 
  }

  /* Mobile-only menu close button */
  .nav-close-item { display: none; width: 100%; }
  .nav-close {
    margin-left: auto;
    background: transparent;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    border: none;
    padding: 0.25rem 0.5rem;
  }
  @media (max-width: 900px) {
    .nav-close-item { display: block; text-align: right; }
  }
}

/* Lock body scroll when nav is open */
body.nav-open { overflow: hidden; }

/* Brand logo sizing without affecting navbar height */
.brand { position: relative; }
.brand-logo {
  height: 46px;
  width: auto;
  border-radius: 8px;
  display: block;
}
/* Optionally let it “peek” above the bar a bit on desktop */
@media (min-width: 901px) {
  .brand-logo { height: 56px; margin-top: -8px; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
}

@media (max-width: 900px) {
  .brand-logo { height: 40px; margin-top: 0; }
} 

/* Hide mobile close button on desktop screens */
@media (min-width: 901px) {
  .nav-close-item { display: none !important; }
} 