:root {
  --drawer-bg: #ffffff;
  --drawer-width: 100%;
  --drawer-max-width: 390px;
  --drawer-speed: 0.4s;
  --drawer-overlay-bg: rgba(0, 0, 0, 0.5);
  --hamburger-color: #333333;
  --hamburger-line-color: #fff;
}

/* ボタンとドロワーの共通設計 */
.c-hamburger {
  position: relative;
  /* display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 0.8rem; */
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  z-index: 2100;
}

.c-hamburger__line {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  height: 2px;
  border-radius: 8px;
  background-color: var(--hamburger-line-color);
  transition: all var(--drawer-speed) ease;
}

.c-hamburger .c-hamburger__line:nth-child(1) {
  top: 30%;
}
/* .c-hamburger .c-hamburger__line:nth-child(2) {
} */
.c-hamburger .c-hamburger__line:nth-child(3) {
  top: 70%;
}

.c-hamburger.is-active .c-hamburger__line:nth-child(1) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}
.c-hamburger.is-active .c-hamburger__line:nth-child(2) {
  opacity: 0;
  visibility: hidden;
}
.c-hamburger.is-active .c-hamburger__line:nth-child(3) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}



.c-drawer {
  position: fixed;
  top: 56px;
  right: 0;
  width: var(--drawer-width);
  max-width: var(--drawer-max-width);
  height: 100vh;
  z-index: 2000;
  background-color: var(--drawer-bg);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform var(--drawer-speed),
  visibility var(--drawer-speed);
}

.c-drawer.is-active {
  transform: translateX(0); visibility: visible;
}

.c-drawer .c-menu-toggle::before,
.c-drawer .c-menu-toggle::after,
.c-drawer .l-menu__sp .sub-menu a::before {
  background-color: var(--hamburger-color);
}




.c-drawer-overlay {
  position: fixed;
  inset: 0;
  top: 56px;
  background: var(--drawer-overlay-bg);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--drawer-speed), visibility var(--drawer-speed);
}

.c-drawer-overlay.is-active {
  opacity: 1; visibility: visible;
}

.c-drawer__nav {
  padding: 4.8rem 0;
}

.l-drawer__btns {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

.c-drawer__menu a,
.c-drawer__menu span {
  font-weight: normal !important;
}
