.primary-nav__wrapper {
  --transition-speed: .15s;
  --nav-width: min(30ch, 80vw);

  top: 0;
  left: 0;
  width: 0;
  position: fixed;
  height: 100dvh;
  z-index: var(--navigation-z);
  background-color: var(--color-background);
  transition: width var(--transition-speed);
  transition-timing-function: ease-out;
  overflow-x: hidden;

  &.primary-nav--active {
    width: var(--nav-width);
  }

  &.primary-nav--opened {
    box-shadow: 0 0 10px var(--color-mono-bold-half-trans);
  }
}

.primary-nav__header {
  position: fixed;
}

.primary-nav__toggle-wrapper {
  position: relative;
  top: var(--space-xs);
  left: var(--space-xs);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-background-trans-80);
  height: 40px;
  width: 40px;
  border-radius: 100%;
  transition: top var(--transition-speed), left var(--transition-speed);
  transition-timing-function: ease-out;

  .primary-nav--active & {
    top: 5px;
    left: calc(var(--nav-width) - 40px);
  }
}

.primary-nav__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-block-start: var(--header-height);
  height: calc(100dvh - var(--header-height));
}

.primary-nav {
  overflow: scroll;
  width: var(--nav-width);
  padding-bottom: var(--space-m);
  flex-grow: 1;
  scrollbar-width: none; /* Firefox */

  &::-webkit-scrollbar {
    display: none;  /* Safari, Chrome, Edge */
  }
}

.primary-nav__account-nav {
  flex-shrink: 0;
  padding: var(--space-s);
  width: var(--nav-width);
}

.primary-nav__account-nav--signed-out {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: var(--space-m);
}

.nav-section {
  padding-inline-start: var(--space-s);
  padding-block-end: var(--space-m);
}

.nav-secion__header {
  font-size: var(--font-size-m);
}

.nav-section__list {
  padding-inline-start: var(--space-s);
  list-style: none;
}
