.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative; /* anchor absolute nav directly under header */
  background-color: var(--color-surface);
  padding: 1rem;
}

/* Hamburger button */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: flex-end;
  background: none;
  border: none;
  position: relative; /* ensure header controls stacking above nav */
  cursor: pointer;
  padding: 1rem;
  gap: 1rem;
}

.hamburger .bar {
  width: var(--w, 5rem);
  height: var(--width-lg);
  margin-inline: var(--m, auto);
  display: block;
  background-color: var(--color-primary);
  border-radius: var(--radius-line);
  transition: all 0.3s ease;
}

/* Show hamburger on mobile */
@media (max-width: 1020px) {
  .hamburger {
      display: flex; /* Show hamburger on mobile */
  }

  .hamburger.active .bar:nth-child(1) {
    transform: translate(0.5rem, 0.625rem) rotate(45deg);
  }

  .hamburger.active .bar:nth-child(2) {
    transform: rotate(-45deg);
  }

  .hamburger.active .bar:nth-child(3) {
    transform: translate(-0.5rem, -0.625rem) rotate(45deg);
  }

  .main-nav {
    top: 100%;            /* place immediately below the header */
    left: 0;              /* align to header's left edge */
    width: 100%;
    max-height: 0;
    flex-direction: column;
    position: absolute;
    transform: none;      /* no horizontal centering needed */
    background-color: var(--color-surface);
    border: none;
    border-radius: var(--radius);
    padding: 0;
    overflow: hidden;
    transition: all 0.3s ease;
  }

  .main-nav.active {
    max-height: 1000px;
    padding-bottom: var(--space-md);
    overflow: visible;
  }

  .nav-list {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 0.5rem;
  }
}

@media (max-width: 800px) {
  .hamburger {
    padding: clamp(0.5rem, 2vw, 1rem);
    gap: clamp(0.5rem, 2vw, 1rem);
    --w: clamp(3rem, 10vw, 5rem);
  }
}

.main-nav {
  display: flex;
  justify-content: flex-end;
}

.nav-list {
  list-style: none;
  row-gap: 0.5rem;
  column-gap: 1rem;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  margin: 0;
  padding: 0 2rem;
}

.nav-button {
  display: inline-block;
  white-space: nowrap;
  padding: 0.75rem 1.5rem;
  background-color: var(--color-surface);
  border: var(--width-sm) solid var(--color-surface);
  border-radius: var(--radius);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
  transition: background-color 1s ease, border-color 1s ease;
}

.nav-button:hover {
  border-color: var(--color-primary);
  background-color: var(--color-bg);
}

.nav-button.active {
  border-color: var(--color-primary);
  background-color: var(--color-bg);
}

.nav-dropdown {
  position: relative;
}

.dropdown-menu {
  top: 100%;
  left: 50%;                /* center under the button */
  min-width: 10rem;
  transform: translate(-50%, -1rem);
  list-style: none;
  position: absolute;
  background-color: var(--color-surface);
  border: var(--radius-line) solid var(--color-primary);
  border-radius: var(--radius);
  margin-top: 0.5rem;
  padding: var(--space-xs);
  overflow: hidden;         /* prevent link overflow from showing outside menu */
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  z-index: 1000;            /* layer above nav buttons */
}

.nav-dropdown:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.dropdown-menu li {
  padding: 0;
}

.dropdown-menu a {
  display: block;
  color: var(--color-primary);
  border: var(--width-sm) solid var(--color-surface);
  border-radius: var(--radius);
  text-decoration: none;
  transition: background-color 0.5s ease, border-color 0.5s ease;
  box-sizing: border-box;   /* include padding in width calculation */
  padding: 0.75rem 1.5rem;
}

.dropdown-menu a:hover {
  background-color: var(--color-bg);
  border-color: var(--color-primary);
}