.site-header {
  position: relative;
  z-index: 100;
  width: 100%;
  padding-block-start: var(--space-1);
}

.nav-desktop-wrap,
.nav-mobile-wrap,
.site-nav,
.nav-mobile {
  position: relative;
}

.nav-desktop-wrap {
  display: none;
  width: fit-content;
  max-width: calc(100% - (var(--container-gutter) * 2));
  margin-inline: auto;
}

.site-nav,
.nav-mobile {
  display: flex;
  align-items: center;
  color: var(--color-on-dark);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 1.5rem;
  background: rgba(25, 43, 53, 0.96);
  box-shadow: var(--shadow-menu);
}

.site-nav {
  min-height: 4rem;
  gap: var(--space-1);
  padding: 0.25rem;
}

.nav-logo {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  min-width: 7.5rem;
  padding-inline: var(--space-1);
  border-radius: 1.25rem;
  background: var(--surface-card);
}

.nav-logo img {
  width: 6.5rem;
  height: auto;
  max-height: 3.5rem;
}

.nav-links,
.nav-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.nav-links {
  align-self: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-link,
.nav-disclosure {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding-inline: 0.625rem;
  color: var(--color-on-dark);
  border: 0;
  border-radius: var(--radius-standard);
  background: transparent;
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-body);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition-color), background-color var(--transition-color);
}

.nav-link:hover,
.nav-disclosure:hover {
  color: var(--color-on-dark);
  background: rgba(255, 255, 255, 0.12);
  text-decoration: none;
}

.nav-chevron {
  width: 0.875rem;
  height: 0.875rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.site-nav .nav-actions {
  gap: var(--space-1);
  margin-inline-start: var(--space-1);
}

.site-nav .button-primary {
  min-height: 3rem;
  white-space: nowrap;
}

.nav-mobile-wrap {
  width: min(calc(100% - 1rem), 36rem);
  margin-inline: auto;
}

.nav-mobile {
  min-height: 3.625rem;
  justify-content: space-between;
  gap: 0.375rem;
  padding: 0.25rem;
}

.nav-mobile .nav-logo {
  min-width: 5.75rem;
  padding-inline: 0.25rem;
  border-radius: 1.25rem;
}

.nav-mobile .nav-logo img {
  width: 5.5rem;
  max-height: 3rem;
}

.nav-mobile .button-primary {
  min-height: 2.75rem;
  padding: 0.5rem 0.875rem;
  line-height: 1.2;
  white-space: nowrap;
}

.nav-toggle {
  display: inline-flex;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--color-on-dark);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: var(--radius-standard);
  background: transparent;
}

.nav-toggle:hover {
  background: rgba(255, 255, 255, 0.12);
}

.nav-toggle-icon {
  display: grid;
  width: 1.25rem;
  gap: 0.25rem;
}

.nav-toggle-icon span {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: var(--radius-pill);
  background: currentColor;
  transition: transform var(--transition-color), opacity var(--transition-color);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.nav-mobile-panel {
  position: absolute;
  inset-block-start: calc(100% + var(--space-1));
  inset-inline: 0;
  padding: var(--space-2);
  color: var(--color-on-dark);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 1.5rem;
  background: var(--surface-dark);
  box-shadow: var(--shadow-menu);
}

.nav-mobile-links {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-mobile-links .nav-link {
  width: 100%;
  justify-content: flex-start;
}

.nav-mobile-panel .button-primary {
  width: 100%;
  margin-block-start: var(--space-2);
}

.navigation-lab-intro {
  padding-block: var(--space-8) var(--space-6);
}

.navigation-lab-intro p {
  max-width: var(--reading-max);
  color: var(--color-text-secondary);
}

.navigation-lab-section {
  padding-block: var(--space-6);
  border-top: var(--border-decorative);
}

.navigation-lab-label {
  width: min(calc(100% - (var(--container-gutter) * 2)), var(--container-main));
  margin: 0 auto var(--space-2);
  color: var(--color-text-secondary);
  font-size: var(--font-size-small);
  font-weight: var(--font-weight-bold);
}

.navigation-lab-stage {
  position: relative;
  min-height: 24rem;
  padding-block-start: var(--space-1);
  overflow: visible;
  border-block: var(--border-decorative);
  background: var(--surface-card);
}

.navigation-lab-stage-dark {
  background: var(--surface-dark);
}

.navigation-lab-stage-dark::after {
  position: absolute;
  inset: 7rem var(--space-3) var(--space-3);
  border: 1px solid var(--color-brand-primary);
  border-radius: var(--radius-standard);
  background: var(--color-action-active);
  content: "";
  opacity: 0.38;
}

.navigation-lab-stage .site-header {
  position: relative;
  z-index: 2;
}

@media (max-width: 22.5rem) {
  .nav-mobile .button-primary {
    max-width: 7.5rem;
    padding-inline: 0.5rem;
    white-space: normal;
  }
}

@media (min-width: 62rem) {
  .site-nav {
    min-width: min-content;
  }
}
