@charset "utf-8";
/* CSS Document */

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
ヘッダー
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

header#glo_header {
  top: 0;
  left: 0;
  width: 100%;
  position: fixed;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.8);
  transition: all 0.3s ease-in;
  /* general.cssの#page_wrapのpadding-topと連動 */
  height: 9.6rem;
  @media screen and (max-width: 768px) {
    height: 4.8rem;
  }

  .header_inner {
    margin: auto;
    height: 100%;
    display: flex;
    padding: 0 12.8rem 0 4rem;
    justify-content: space-between;
    align-items: center;

    transition: all 0.3s ease-in;
    @media screen and (max-width: 768px) {
      height: 4.8rem;
      padding: 0 6.4rem 0 0;
    }

    .header_logo {
      height: 100%;
      aspect-ratio: 1/1;
      position: absolute;
      z-index: 2000;
      right: 0;
      top: 0;

      @media screen and (max-width: 768px) {
        width: 4.8rem;
      }

      a {
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #000;
        width: 100%;
        height: 100%;
        svg {
          width: 40%;
          height: auto;
        }
      }
    }

    /* BASEのリンク */
    .link-base {
      display: flex;
      gap: 0.8rem;
      align-items: flex-end;
      z-index: 2000;
      @media screen and (max-width: 768px) {
        flex-direction: column;
        gap: 0;
      }
      .logo {
        width: 11.9rem;
        @media screen and (max-width: 768px) {
          width: 8rem;
        }
      }
      span {
        padding-bottom: 1.2em;
        font-size: var(--fsize_ss);
        font-weight: 500;
        @media screen and (max-width: 768px) {
          text-align: center;
          padding: 0;
        }
      }
    }
  }
  @media screen and (min-width: 769px) {
    &.on {
      height: 6.8rem;
      .header_inner {
        padding: 0 10rem 0 3rem;
      }
    }
  }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
ハンバーガーボタン
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

/*--------------------*/
/* PC */
/*--------------------*/
@media screen and (min-width: 769px) {
  .header_nav_wrap {
    .menu_btn {
      display: none;
    }
  }
}

/*--------------------*/
/* スマートフォン */
/*--------------------*/
@media screen and (max-width: 768px) {
  .header_nav_wrap {
    .menu_btn {
      position: absolute;
      z-index: 20000;
      width: 4.8rem;
      height: 4.8rem;
      border: none;
      left: 0;
      top: 0;
      padding: 1.2rem;
      box-sizing: border-box;
      background: rgba(0, 0, 0, 0);
      transition: all 0.2s;

      &:focus {
        /*ボタンクリック時の枠線消し*/
        outline: 0;
      }

      span.bar {
        transform-origin: center;
        display: block;
        height: 1px;
        background-color: #000;
        transition: all 0.2s;
        margin: 0 auto 0.6rem;
        /* ボタン下にテキストが入らない場合 */
        /* margin: 0.6rem 0; */
      }
      .text {
        position: absolute;
        right: 0;
        transform: translate(100%, -68%);
        top: 50%;
        font-weight: 500;
        font-size: var(--fsize_m);
        color: #000;
      }
      &.open {
        .bar1 {
          transform: rotate(30deg);
        }

        .bar3 {
          transform: rotate(-30deg);
          margin-top: -0.7rem;
        }
      }
    }
  }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
メニュー
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

/*--------------------*/
/* PC */
/*--------------------*/
@media screen and (min-width: 769px) {
  .header_nav_wrap {
    z-index: 100;
    align-self: center;

    .glo_menu_wrap {
      position: relative;
      .glo_menu {
        display: flex;
        margin: auto;

        a {
          font-size: var(--fsize_m);
          font-weight: 200;
          text-decoration: none;
          display: block;
          line-height: 1.5;
        }

        li.menu-item {
          height: 100%;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-right: 2rem;

          a {
            font-size: var(--fsize_l);
            line-height: 1;
            color: #000;
            padding: 0.5em 0;
            text-align: center;
          }

          &.current-menu-item > a {
            font-weight: 700;
          }
        }
      }
    }
  }
}

/*--------------------*/
/* スマートフォン */
/*--------------------*/
@media screen and (max-width: 768px) {
  .header_nav_wrap {
    .glo_menu_wrap {
      height: 100vh;
      height: 100dvh;
      padding-top: 4.8rem;
      box-sizing: border-box;
      overflow-y: auto;
      position: absolute;
      background-color: #fff;
      z-index: 1010;
      width: 100vw;
      left: 0;
      top: -100vh;
      top: -100dvh;
      &.open {
        top: 0;
        animation: manufadein 0.3s ease-in;
      }

      /* メニューの中身 */
      .glo_menu {
        width: 80%;
        max-width: 48rem;
        margin: 2rem auto 0;
        li.menu-item {
          border-bottom: 1px solid #000;
          &:last-child {
            border-bottom: none;
          }
          a {
            display: block;
            position: relative;
            font-size: var(--fsize_l);
            font-weight: 400;
            padding: 1.25em 0;
            span {
              display: inline-block;
              position: relative;
              padding-right: 1em;
              width: 5em;
            }
            &::before {
              content: "";
              display: block;
              aspect-ratio: 10/16;
              width: 0.5rem;
              background-image: url(../img/common/icon-yajirushi-black.svg);
              background-repeat: no-repeat;
              background-size: contain;
              position: absolute;
              right: 0.5rem;
              top: 50%;
              transform: translateY(-50%);
            }
          }
          a[data-title]::after {
            content: attr(data-title);
            font-size: var(--fsize_s);
            letter-spacing: 0.05em;
            font-weight: 600;
            color: #666;
          }
        }
      }
    }
    /* BASEのリンク */
    .link-base {
      display: block;
      position: absolute;
      right: 0;
    }
  }
}
@keyframes manufadein {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}
