nav {
  background: var(--gradient);
  padding: var(--small-padding);
  box-shadow: var(--large-shadow);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 4; /* Ensure nav is above other content */
  transition:
    transform var(--animation),
    opacity var(--animation);
}

/* Fade navbar when scrolled down */
nav.scrolled {
  opacity: 0.75;
}

nav.scrolled:hover {
  opacity: 1;
}

/* Add padding to the body to account for the fixed nav */
:host {
  display: block;
  height: calc(var(--small-padding) * 2 + calc(2 * var(--icon-size)));
}

nav ul {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: var(--padding);
  position: relative;
}

nav ul li {
  position: relative;
  font-size: var(--text-size);
  display: flex;
  align-items: center;
}

nav ul li i {
  font-size: var(--text-size);
}

nav ul li img {
  height: calc(2 * var(--icon-size));
}

nav ul li a,
nav ul li span {
  color: var(--white);
  text-decoration: none;
  transition: color var(--animation);
}

nav ul li a i,
nav ul li span i {
  margin-right: 0.25rem;
}

nav ul li a:hover,
nav ul li span a:hover {
  color: var(--light-gray);
}

/* Centered dropdown menu */
nav ul li .dropdown-menu {
  display: none;
  position: absolute;
  z-index: 3;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--primary-color);
  padding: var(--padding);
  list-style: none;
  border-radius: var(--border-radius);
  min-width: 180px;
  box-shadow: var(--medium-shadow);
}

nav ul li:hover .dropdown-menu {
  display: block;
}

nav ul li .dropdown-menu li {
  margin: 0;
}

nav ul li .dropdown-menu li a {
  color: var(--white);
  text-decoration: none;
  display: block;
  padding: var(--small-padding);
}

nav ul li .dropdown-menu li a:hover {
  background-color: var(--light-gray);
  color: var(--primary-color);
  border-radius: var(--border-radius);
}

/* Hide the toggle button on larger screens */
.menu-toggle {
  display: none;
}

/* Desktop/Mobile visibility classes */
.mobile-only {
  display: none;
}

.desktop-only {
  display: flex;
}

/* Phone menu style */
@media screen and (max-width: 768px) {
  /* Visibility classes */
  .mobile-only {
    display: flex;
  }

  .mobile-only:not(.submenu-header) {
    margin-left: var(--padding);
  }

  .desktop-only {
    display: none;
  }

  /* Remove space at the top for mobile */
  :host {
    height: 0;
  }

  nav {
    background: transparent;
    box-shadow: none;
    padding: 0;
    position: absolute;
  }

  /* Hide the menu by default on mobile */
  nav ul {
    display: none;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: 50%;
    height: 100%;
    z-index: 4; /* Ensure nav is above other content */
    background: var(--gradient);
    align-items: flex-start;
    box-shadow: var(--large-shadow);
    box-sizing: border-box;
    gap: var(--small-padding);
  }

  /* Show when pressed */
  nav ul.active {
    display: flex;
    animation: slide-in 0.3s forwards;
  }

  nav ul li {
    width: 90%;
    box-sizing: border-box;
    padding: var(--small-padding);
    padding-left: var(--padding);
    margin: 0 var(--small-padding);
  }

  /* Backdrop behind menu */
  .backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 20%);
    z-index: 2; /* Below the menu but above other content */
    transition: opacity var(--animation);
  }

  .backdrop.active {
    display: block;
  }

  .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    color: var(--white);
    border: none;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    font-size: var(--text-size);
    cursor: pointer;
    z-index: 3;
    position: fixed;
    top: 1rem;
    left: 1rem;
  }

  nav.scrolled .menu-toggle {
    background: var(--primary-color);
    box-shadow: var(--large-shadow);
    transition:
      background var(--animation),
      box-shadow var(--animation);
  }

  /* Mobile submenu handling - display directly in list */
  nav ul li.dropdown > span {
    display: none; /* Hide dropdown toggles on mobile */
  }

  /* Show submenu items directly in the main list */
  nav ul li .dropdown-menu {
    display: block;
    position: static;
    transform: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0 0 var(--small-padding) 0;
    width: 100%;
    max-width: none;
    min-width: unset;
  }

  /* Style submenu headers - category titles */
  nav ul li.submenu-header {
    font-weight: bold;
  }

  /* Style submenu items */
  nav ul li .dropdown-menu li {
    padding: var(--small-padding) var(--padding);
    width: 100%;
  }

  nav ul li .dropdown-menu li a {
    padding-left: var(--padding);
    position: relative;
  }

  nav ul li .dropdown-menu li a::before {
    content: '>';
    position: absolute;
    left: 0;
  }
}
