
.mobile-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  background: black;
  transition: .5s;
  z-index: 9;
  width: 100vw;
  max-width: 510px;
  height: 100vh;
  overflow-y: scroll;
  overflow-x: hidden;

  /* ベースリセットと変数 */

  :root {
    --border-cyan: #4c8a8c; /* 検索バーの枠線色 */
  }

  .mobile-drawer__bg-image {
    width: 100%;

    .mobile-drawer__bg-image--logo {
      transform: rotate(-90deg);
      position: absolute;
      top: 50%;
      right: -58%;
      writing-mode: vertical-rl; /* 縦書き・90度回転 */
      user-select: none;
      z-index: 0;
      pointer-events: none;
      width: 150%;
      display: block;
      opacity: 0.2;
    }
  }

  /* 前面コンテンツラッパー */

  .mobile-drawer__inner {
    position: relative;
    z-index: 2;
    padding: 30px 25px 60px;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }

  /* ヘッダーエリア */

  .drawer-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;

    .drawer-header__icons {
      display: flex;
      gap: 20px;

      .icon-btn {
        background: none;
        border: none;
        color: white;
        padding: 0;
        cursor: pointer;
        width: 24px;
        height: 24px;

        svg {
          width: 100%;
          height: 100%;
        }
      }
    }

    /* オーバル型（丸角）の閉じるボタン */

    .drawer-close {
      background: none;
      border: 1px solid white;
      color: white;
      border-radius: 30px;
      padding: 6px 20px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;

      svg {
        width: 16px;
        height: 16px;
      }
    }
  }

  /* 検索バー */

  .drawer-search {
    position: relative;
    margin-bottom: 40px;

    .drawer-search__input--wrapper {
      .drawer-search__input {
        width: 100%;
        background: transparent;
        border: 1px solid #3BD2E9;
        border-radius: 9999px;
        padding: 12px 45px 12px 20px;
        color: white;
        font-family: inherit;
        outline: none;
        height: 67px;

        &:focus {
          border-color: #3BD2E9;
        }
      }

      .drawer-search__btn {
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
        width: 28px;
        height: 28px;

        svg {
          width: 100%;
          height: 100%;
          stroke: #3BD2E9;
        }
      }
    }
  }

  /* ナビゲーションリンク */

  .drawer-nav {
    display: flex;
    flex-direction: column;
    gap: 25px;
    flex: 1; /* フッターを下部に押しやる */

    a {
      color: white;
      text-decoration: none;
      font-size: 15px;
      letter-spacing: 0.1em;
      display: block;
      transition: opacity 0.3s;

      &:hover {
        opacity: 0.6;
      }
    }

    .drawer-nav__group {
      &.spacing-top {
        margin-top: 15px;
      }
    }

    .drawer-nav__title {
      color: #454343;
      font-family: var(--astra-source-code-pro), sans-serif;
      font-size: 14px;
      font-weight: var(--astra-font-weight-medium);
      margin-bottom: 15px;
      letter-spacing: 0.05em;
    }

    .drawer-nav__list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 6px;
      font-family: var(--astra-source-code-pro), sans-serif;
      font-weight: var(--astra-font-weight-extralight);
      font-size: 18px;
      color: white;
    }
  }
}

/* フッターエリア */

.drawer-footer {
  margin-top: 60px;

  .drawer-footer__social {
    display: flex;
    gap: 28px;
    margin-bottom: 25px;

    a {
      color: white;
      width: 30px;
      height: 30px;
      display: block;

      .svg-wrapper {
        width: 100%;
        height: 100%;

        svg {
          width: 100%;
          height: 100%;
        }
      }

      &.icon-line svg {
        /* LINEアイコンのサイズ微調整 */
        transform: scale(1.1);
      }
    }
  }

  .drawer-footer__copy {
    font-size: 12px;
    font-family: var(--astra-source-code-pro), sans-serif;
    font-weight: var(--astra-font-weight-regular);
    color: #CBCBCB;
    margin: 0;
    letter-spacing: 0.05em;
  }
}

.mobile-drawer.active {
  right: 0;
}