@charset "UTF-8";

/* =====================
  mv
===================== */
.mv {
  block-size: 902px;
  overflow: clip;
  background: white;

  @media not all and (width >=768px) {
    block-size: calc((100 / 750) * 1281.968 * 1vw);
  }

  .swiper-wrapper {
    block-size: inherit;

    .swiper-slide {
      position: relative;
      block-size: inherit;
      background-color: white;

      .slide-item {
        block-size: 902px;

        @media not all and (width >=768px) {
          block-size: calc((100 / 750) * 1281.968 * 1vw);
        }
      }

      .slide-item:where(.slide2) {
        & img {
          display: block;
          inline-size: 100%;
          block-size: 902px;
          pointer-events: none;
          object-fit: cover;
          object-position: center bottom;

          @media not all and (width >=768px) {
            block-size: calc((100 / 750) * 1281.968 * 1vw);
            object-position: right bottom;
          }
        }
      }
    }
  }

  .cover {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    align-items: flex-end;
    inline-size: 100%;
    block-size: inherit;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1000ms ease 200ms;

    .decoration {
      position: absolute;
      bottom: 0;
      left: 0;
      z-index: 2;
      inline-size: 100%;
      width: 100%;
      block-size: 180px;
      background: linear-gradient(0deg, #000 0%, rgb(0 0 0 / 0%) 100%);

      @media not all and (width >=768px) {
        block-size: calc((100 / 750) * 180 * 1vw);
      }
    }

    &::before,
    &::after {
      position: absolute;
      z-index: 1;
      pointer-events: none;
      content: '';
      background: linear-gradient(180deg, #191b22 0%, #0a0b0e 100%);
      opacity: 0.8;
    }

    &::before {
      inset: 0 auto;
      inline-size: 815px;
      block-size: 902px;
      clip-path: polygon(0 0, 33% 0%, 99% 100%, 100% 100%, 0 100%);
    }

    @media not all and (width >=768px) {
      &::before {
        inline-size: 70vw;
        block-size: calc((100 / 750) * 1281.968 * 1vw);
      }
    }

    &::after {
      inset: 0 0 auto auto;
      inline-size: 164px;
      aspect-ratio: 164 / 257;
      clip-path: polygon(0 0, 100% 0%, 100% 100%);
    }

    @media not all and (width >=768px) {
      &::after {
        inline-size: calc((100 / 750) * 164 * 1vw);
      }
    }

    .inner {
      position: relative;
      z-index: 3;
      display: grid;
      gap: 30px;
      inline-size: fit-content;
      padding-block-end: 81px;
      padding-inline-start: 120px;

      @media not all and (width >=768px) {
        gap: calc((100 / 750) * 40 * 1vw);
        padding-block-end: calc((100 / 750) * 25 * 1vw);
        padding-inline-start: calc((100 / 750) * 40 * 1vw);
      }

      .item[data-id='1'] {
        display: grid;
        gap: 0;
        justify-content: center;
        inline-size: 317px;
        font-family: var(--title);

        @media not all and (width >=768px) {
          justify-content: flex-start;
          inline-size: calc((100 / 750) * 400 * 1vw);
        }

        & span {
          line-height: 1;
          -webkit-text-stroke-width: 1px;
          -webkit-text-stroke-color: #fff;
        }

        & span:first-child {
          font-size: 110px;
          font-weight: 600;
          line-height: 1;
          letter-spacing: 4.4px;

          @media not all and (width >=768px) {
            font-size: calc((100 / 750) * 93 * 1vw);
            letter-spacing: calc((100 / 750) * 4.4 * 1vw);
            -webkit-text-stroke-width: 2px;
          }
        }

        & span:last-child {
          font-size: 70px;
          font-weight: 600;
          color: transparent;
          letter-spacing: 2.8px;

          @media not all and (width >=768px) {
            font-size: calc((100 / 750) * 63 * 1vw);
          }
        }
      }

      .item[data-id='2'] {
        display: grid;
        gap: 36px;
        font-family: var(--title);
        font-size: 40px;
        font-weight: 600;
        line-height: 1.25;
        letter-spacing: 1.6px;

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 20 * 1vw);
          font-size: calc((100 / 750) * 33 * 1vw);

          & img {
            inline-size: calc((100 / 750) * 240 * 1vw);
          }
        }

        & span {
          display: block;
          margin-block: calc((1em - 1lh) / 2);
        }
      }

      & p {
        margin-block: calc((1em - 1lh) / 2);
        font-family: var(--yumin);
        font-size: 23px;
        font-weight: 600;

        @media not all and (width >=768px) {
          font-size: calc((100 / 750) * 23 * 1vw);
        }
      }

      .sns {
        display: grid;
        grid-auto-flow: column;
        gap: 10px;
        align-items: center;
        justify-content: flex-start;

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 10 * 1vw);
        }

        & a {
          display: grid;
          place-content: center;
          padding: 5px;
          pointer-events: auto;
          background: #494440;
          border-radius: calc(infinity * 1px);

          @media not all and (width >=768px) {
            padding: calc((100 / 750) * 20 * 1vw);
          }

          & img {
            inline-size: 20px;

            @media not all and (width >=768px) {
              inline-size: calc((100 / 750) * 40 * 1vw);
            }
          }
        }

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 20 * 1vw);
        }
      }
    }
  }

  &:not([data-current='0']) {
    .cover {
      opacity: 1;
    }
  }

  /* ==== 4分割スライド ==== */
  .slide1 {
    position: relative;
    block-size: inherit;

    .unit {
      position: absolute;

      .wrap {
        position: relative;
        block-size: inherit;
        overflow: hidden;

        & img {
          width: 100%;
          height: 100%;
          object-fit: cover;
        }

        .text {
          position: absolute;
          z-index: 2;
          display: grid;
          gap: 25px 0;
          align-items: center;
          block-size: 176px;
          color: white;

          @media not all and (width >=768px) {
            gap: calc((100 / 750) * 20 * 1vw) 0;
            block-size: 100%;
          }

          [lang='en'] {
            display: grid;
            grid-auto-flow: column;
            align-items: center;
            align-self: flex-end;
            justify-content: flex-start;
            font-family: var(--title);
            font-size: 66px;
            font-weight: 700;
            line-height: 1;

            @media not all and (width >=768px) {
              font-size: calc((100 / 750) * 30 * 1vw);
            }

            &:has(.small) {
              gap: 0 10px;
              align-items: baseline;

              @media not all and (width >=768px) {
                grid-auto-flow: row;
                gap: calc((100 / 750) * 5 * 1vw);
              }
            }
          }

          .small {
            font-size: 25px;
            font-weight: normal;

            @media not all and (width >=768px) {
              font-size: calc((100 / 750) * 28 * 1vw);
            }
          }

          h2 {
            align-self: flex-start;
            font-family: var(--yumin);
            font-size: 18px;
            font-weight: bold;
            line-height: 1;

            @media not all and (width >=768px) {
              font-size: calc((100 / 750) * 30 * 1vw);
              line-height: 1.32;
            }
          }
        }
      }
    }

    /* ==== ハーレーダビッドソン正規ディーラー ==== */
    .unit[data-id='1'] {
      top: 0;
      left: 0;
      inline-size: 69%;
      block-size: 520px;
      clip-path: polygon(0 0, 100% 0%, 86.5% 100%, 0% 100%);

      @media not all and (width >=768px) {
        block-size: 90vw;
        clip-path: polygon(0 0, 100% 0%, 86.5% 100%, 0% 100%);
      }

      .text {
        bottom: 0;
        left: 0;
        inline-size: 67%;
        padding-inline: 60px;
        background: linear-gradient(90deg, rgb(0 0 0 / 50%) 12.5%, rgb(0 0 0 / 0%) 100%);

        @media not all and (width >=768px) {
          inline-size: 100%;
          block-size: auto;
          padding-block: calc((100 / 750) * 40 * 1vw);
          padding-inline: calc((100 / 750) * 20 * 1vw) 0;
        }
      }
    }

    /* ==== HDX ==== */
    .unit[data-id='2'] {
      top: 0;
      left: 60.4%;
      inline-size: 41.2%;
      block-size: 490px;
      clip-path: polygon(21.2% 0, 100% 0%, 100% 100%, 0% 100%);

      @media not all and (width >=768px) {
        left: 61.1vw;
        block-size: 90vw;
        clip-path: polygon(21.2% 0, 100% 0%, 100% 100%, 0% 100%);
      }

      .text {
        bottom: 0;
        left: 0;
        inline-size: 100%;
        padding-inline: 100px;
        background: linear-gradient(90deg, rgb(0 0 0 / 50%) 12.5%, rgb(0 0 0 / 0%) 100%);

        @media not all and (width >=768px) {
          inline-size: 100%;
          block-size: auto;
          padding-block: calc((100 / 750) * 40 * 1vw);
          padding-inline: calc((100 / 750) * 40 * 1vw) 0;
        }
      }
    }

    /* ==== インディアンモーターサイクル ==== */
    .unit[data-id='3'] {
      bottom: 0;
      left: 0;
      inline-size: 59.6%;
      block-size: 380px;
      clip-path: polygon(0 0, 100% 0%, 88.7% 100%, 0% 100%);

      @media not all and (width >=768px) {
        inset: unset;
        top: 91vw;
        inline-size: 60%;
        block-size: 80vw;
      }

      & img {
        object-position: center top;
      }

      .text {
        right: 0;
        bottom: 0;
        padding-inline: 0 150px;
        background: linear-gradient(90deg, rgb(0 0 0 / 0%) 0%, rgb(0 0 0 / 50%) 85.45%);

        @media not all and (width >=768px) {
          right: auto;
          bottom: 0;
          inline-size: 100%;
          block-size: auto;
          padding-block: calc((100 / 750) * 40 * 1vw);
          padding-inline: calc((100 / 750) * 20 * 1vw) 0;
        }
      }
    }

    /* ==== 特選中古車販売事業 ==== */
    .unit[data-id='4'] {
      bottom: 0;
      left: 53.1%;
      inline-size: 59.6%;
      block-size: 410px;
      clip-path: polygon(12.2% 0, 100% 0%, 100% 100%, 0% 100%);

      @media not all and (width >=768px) {
        inset: unset;
        top: 91vw;
        left: 54.3vw;
        inline-size: 46.2%;
        block-size: 80vw;
        clip-path: polygon(15.9% 0, 100% 0%, 100% 100%, 0% 100%);
      }

      & img {
        object-position: right bottom;
      }

      .text {
        top: 0;
        left: 0;
        inline-size: 80%;
        padding-inline: 150px 0;
        background: linear-gradient(90deg, rgb(0 0 0 / 50%) 56.5%, rgb(0 0 0 / 0%) 100%);

        @media not all and (width >=768px) {
          top: 0;
          bottom: auto;
          inline-size: 100%;
          block-size: 32.9vw;
          padding-block: calc((100 / 750) * 0 * 1vw) calc((100 / 750) * 40 * 1vw);
          padding-inline: calc((100 / 750) * 61 * 1vw) 0;
        }
      }
    }

    .unit:where([data-id='3'], [data-id='4']) {
      &::after {
        position: absolute;
        bottom: 0;
        left: 0;
        z-index: 1;
        inline-size: 100%;
        block-size: 150px;
        pointer-events: none;
        content: '';
        background: linear-gradient(180deg, rgb(0 0 0 / 0%) 0%, rgb(0 0 0 / 80%) 85.45%);
      }

      @media not all and (width >=768px) {
        &::after {
          block-size: calc((100 / 750) * 200 * 1vw);
        }
      }
    }
  }
}

/* =====================
  introduction
===================== */
.introduction {
  position: relative;
  min-block-size: 1207px;
  padding-block: 130px;
  overflow: clip;
  background-image: url('../img/top/introduction/bg.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;

  @media print, screen and (width >=768px) {
    background-attachment: fixed;
  }

  @media not all and (width >=768px) {
    min-block-size: 100%;
    padding-block: calc((100 / 750) * 130 * 1vw) 0;
    padding-inline: calc((100 / 750) * 40 * 1vw);
  }

  .u-inner {
    position: relative;
    z-index: 2;
  }

  /* title */
  .unit[data-id='1'] {
    display: grid;
    grid-auto-flow: column;
    gap: 16px;
    align-items: center;
    justify-content: flex-start;
    font-family: var(--title);
    font-size: 18px;
    font-weight: normal;
    line-height: 1;

    @media not all and (width >=768px) {
      gap: 1em;
      font-size: calc((100 / 750) * 32 * 1vw);
    }

    &::after {
      inline-size: 80px;
      block-size: 1px;
      content: '';
      background: white;

      @media not all and (width >=768px) {
        inline-size: calc((100 / 750) * 80 * 1vw);
      }
    }

    @media not all and (width >=768px) {
      &::after {
        content: '';
      }
    }
  }

  /* catch */
  .unit[data-id='2'] {
    margin-block: 73px 0;
    margin-block-end: 402px;
    font-family: var(--yumin);
    font-size: 44px;
    font-weight: 600;
    line-height: 1.52;

    @media not all and (width >=768px) {
      margin-block: 7vw 0;
      font-size: calc((100 / 750) * 44 * 1vw);
    }

    & span {
      display: block;
      text-indent: calc(var(--index) * 0.5em);
    }
  }

  /* body */
  .unit[data-id='3'] {
    inline-size: 559px;
    margin-block-end: 80px;
    margin-inline: auto 0;
    font-size: 16px;

    @media not all and (width >=768px) {
      inline-size: 100%;
      margin-block: calc((100 / 750) * 50 * 1vw) calc((100 / 750) * 70 * 1vw);
      margin-inline: 0;
      font-size: calc((100 / 750) * 26 * 1vw);
    }
  }

  /* anchor */
  .u-anchor {
    margin-inline: auto 0;
    font-size: 16px;

    @media not all and (width >=768px) {
      margin-inline: auto;
      font-size: calc((100 / 750) * 24 * 1vw);
    }
  }

  /* decoration */
  .decoration {
    position: absolute;
    top: 90px;
    left: 50%;
    display: grid;
    grid-auto-flow: column;
    gap: 30px;
    inline-size: 1770px;
    block-size: 930px;
    pointer-events: none;
    translate: -50% 0;

    @media not all and (width >=768px) {
      position: relative;
      inset: unset;
      gap: 0;
      inline-size: 100%;
      width: 100vw;
      block-size: auto;
      margin-block-start: calc((100 / 750) * 80 * 1vw);
      margin-inline: calc(50% - 50vw);
      translate: unset;
    }

    & img {
      translate: 0 calc(var(--index) * 150px);

      @media not all and (width >=768px) {
        &:nth-child(2n + 1) {
          translate: 0 0;
        }

        &:nth-child(2n) {
          translate: 0 0;
        }
      }
    }
  }
}

/* =====================
  service
===================== */
.service {
  position: relative;
  padding-block: 120px 130px;
  overflow: clip;

  @media not all and (width >=768px) {
    padding-block: calc((100 / 750) * 120 * 1vw) calc((100 / 750) * 130 * 1vw);
    padding-inline: calc((100 / 750) * 40 * 1vw);
  }

  &::before,
  &::after {
    position: absolute;
    z-index: 1;
    pointer-events: none;
    content: '';
  }

  &::before {
    inset: 0 0 auto auto;
    inline-size: 54px;
    aspect-ratio: 54 / 85;
    background: var(--red);
    clip-path: polygon(0 0, 100% 0, 100% 100%);
  }

  @media not all and (width >=768px) {
    &::before {
      inline-size: calc((100 / 750) * 54 * 1vw);
    }
  }

  &::after {
    inset: auto auto 0 0;
    inline-size: 110px;
    aspect-ratio: 110 / 171;
    background: var(--orange);
    clip-path: polygon(0 0, 100% 100%, 0 100%);
  }

  @media not all and (width >=768px) {
    &::after {
      inline-size: calc((100 / 750) * 110 * 1vw);
    }
  }

  .u-inner {
    position: relative;
    z-index: 3;
  }

  .u-head {
    margin-block-end: 85px;

    @media not all and (width >=768px) {
      margin-block-end: calc((100 / 750) * 42 * 1vw);
    }
  }

  /* ==== catch ==== */
  .unit[data-id='1'] {
    margin-block: calc((1em - 1lh) / 2) 44px;
    font-family: var(--yumin);
    font-size: 30px;
    font-weight: 600;

    @media not all and (width >=768px) {
      margin-block: calc((100 / 750) * 80 * 1vw) calc((100 / 750) * 30 * 1vw);
      font-size: calc((100 / 750) * 37 * 1vw);
      text-align: center;
    }
  }

  /* ==== body text ==== */
  .unit[data-id='2'] {
    max-inline-size: 724px;
    margin-block: calc((1em - 1lh) / 2) 78px;

    @media not all and (width >=768px) {
      margin-block: calc((1em - 1lh) / 2) calc((100 / 750) * 78 * 1vw);
    }
  }

  /* ==== img ==== */
  .unit[data-id='img'] {
    position: absolute;
    top: -80px;
    right: -220px;
    z-index: -1;
    max-inline-size: 728px;

    @media not all and (width >=768px) {
      top: -10vw;
      right: -30vw;
      max-inline-size: 60vw;
    }
  }

  /* ==== anchor ==== */
  .u-anchor {
    margin-block: 89px 0;
    margin-inline: auto;

    @media not all and (width >=768px) {
      margin-block: calc((100 / 750) * 80 * 1vw) 0;
    }
  }

  /* ==== decoration ==== */
  .decoration {
    position: absolute;
    inset: 0 -26% auto auto;
    inline-size: 61.4%;
    block-size: 100%;
    pointer-events: none;
    background: linear-gradient(
      90deg,
      rgb(38 35 35 / 100%) 0%,
      rgb(26 23 23 / 100%) 50%,
      rgb(38 35 35 / 100%) 50%
    );
    transform: skew(32deg);

    @media not all and (width >=768px) {
      inset: 0 -100% auto auto;
      inline-size: 61.4%;
    }
  }
}

/* =====================
  recruit
===================== */
.recruit {
  padding-block: 130px;
  background: var(--mouse);

  @media not all and (width >=768px) {
    padding-block: calc((100 / 750) * 0 * 1vw) calc((100 / 750) * 130 * 1vw);
  }

  .wrap {
    position: relative;
    display: grid;
    align-items: flex-end;
    min-block-size: 407px;

    @media not all and (width >=768px) {
      min-block-size: calc((100 / 750) * 407 * 1vw);
    }

    & img {
      position: absolute;
      top: 50%;
      left: 50%;
      inline-size: 100%;
      block-size: 100%;
      pointer-events: none;
      object-fit: cover;
      translate: -50% -50%;
    }

    .unit {
      position: relative;
      display: grid;
      grid-auto-flow: column;
      align-items: center;
      justify-content: space-between;
      inline-size: 880px;
      padding-block-start: 40px;
      padding-inline: 30px 20px;
      margin-inline: auto 0;
      background: var(--mouse);
      translate: 0 1px;

      @media not all and (width >=768px) {
        inline-size: 90%;
        padding-block-start: calc((100 / 750) * 26 * 1vw);
        padding-inline: calc((100 / 750) * 40 * 1vw);
      }

      & hgroup {
        display: grid;
        gap: 16px;
        pointer-events: none;

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 16 * 1vw);
        }

        & [lang='en'] {
          grid-auto-flow: column;
          gap: 16px;
          align-items: center;
          justify-content: flex-start;
          font-family: var(--title);
          font-size: 32px;
          font-weight: 600;
          line-height: 1;

          @media not all and (width >=768px) {
            gap: 16px;
            font-size: calc((100 / 750) * 74 * 1vw);
          }
        }

        h2 {
          font-size: 14px;
          line-height: 1;

          @media not all and (width >=768px) {
            font-size: calc((100 / 750) * 26 * 1vw);
          }
        }
      }

      .anchor {
        display: grid;
        inline-size: 16px;
        aspect-ratio: 1 / 1;
        background-color: white;
        mask-image: var(--icon-arrow);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;

        @media not all and (width >=768px) {
          inline-size: calc((100 / 750) * 18 * 1vw);
        }
      }

      .link {
        position: absolute;
        inset: 0;
        z-index: 2;
        inline-size: 100%;
        block-size: 100%;
      }
    }
  }
}

/* =====================
  shop
===================== */
.shop {
  padding-block: 130px;
  background: #454545;
  background-image: url('../img/top/shop/bg.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-blend-mode: multiply;

  @media print, screen and (width >=768px) {
    background-attachment: fixed;
  }

  @media not all and (width >=768px) {
    padding-block: calc((100 / 750) * 120 * 1vw) calc((100 / 750) * 130 * 1vw);
  }

  /* ==== head ==== */
  .u-head {
    justify-content: center;
    text-align: center;

    & [lang='en']::after {
      inline-size: 30px;
      margin-inline: auto;
    }
  }

  /* ==== img ==== */
  .map {
    margin-block-start: 60px;
    text-align: center;

    @media not all and (width >=768px) {
      padding-inline: calc((100 / 750) * 10 * 1vw);
      margin-block-start: calc((100 / 750) * 60 * 1vw);
    }
  }

  /* ==== ul ==== */
  ul {
    margin-block-start: 60px;

    @media not all and (width >=768px) {
      margin-block-start: calc((100 / 750) * 120 * 1vw);
    }
  }
}

/* =====================
  news
===================== */
.news {
  padding-block: 130px;

  @media not all and (width >=768px) {
    padding-block: calc((100 / 750) * 120 * 1vw) calc((100 / 750) * 130 * 1vw);
    padding-inline: calc((100 / 750) * 40 * 1vw);
  }

  .u-inner {
    display: grid;

    .u-head {
      grid-area: 1 / 1 / 1 / 1;

      @media not all and (width >=768px) {
        grid-area: unset;
      }
    }

    .u-news {
      grid-area: 2 / 1 / 2 / 4;
      padding-inline: 40px;
      margin-block-start: 60px;

      @media not all and (width >=768px) {
        grid-area: unset;
        padding-inline: 0;
        margin-block-start: calc((100 / 750) * 60 * 1vw);
      }
    }

    .u-link {
      grid-area: 1 / 3 / 1 / 3;
      margin-inline: auto 0;

      @media not all and (width >=768px) {
        grid-area: unset;
        margin-block-start: calc((100 / 750) * 60 * 1vw);
        margin-inline: auto;
      }
    }
  }
}

/* =====================
  sns
===================== */
.sns {
  /* ==== instagram ==== */
  .instagram {
    display: grid;
    grid-template-columns: subgrid;
    padding-block-start: 20px;
    overflow: clip;

    @media not all and (width >=768px) {
      padding-block: calc((100 / 750) * 48 * 1vw) calc((100 / 750) * 0 * 1vw);
    }

    .u-inner {
      display: grid;
      grid-template-columns: 1fr auto;
      grid-auto-flow: column;
      align-items: center;
      max-inline-size: 1300px;

      @media not all and (width >=768px) {
        grid-template-columns: auto;
        grid-auto-flow: row;
      }
    }

    /* ==== head ==== */
    .head {
      display: grid;
      justify-content: center;
      text-align: center;

      & [lang='en'] {
        display: grid;
        font-family: var(--title);
        font-size: 22px;
        font-weight: 600;
        line-height: 1.3;
        letter-spacing: 1.76px;

        @media not all and (width >=768px) {
          font-size: calc((100 / 750) * 32 * 1vw);
          letter-spacing: calc((100 / 750) * 1.76 * 1vw);
        }

        &::after {
          display: block;
          margin-block: 16px;
          margin-inline: auto;
          font-size: 36px;
          line-height: 1;
          text-transform: uppercase;
          letter-spacing: 2.88px;
          content: 'instagram';
        }

        @media not all and (width >=768px) {
          &::after {
            margin-block: calc((100 / 750) * 16 * 1vw) calc((100 / 750) * 24 * 1vw);
            font-size: calc((100 / 750) * 48 * 1vw);
            letter-spacing: calc((100 / 750) * 2.88 * 1vw);
          }
        }
      }

      /* ==== title ==== */
      & h3 {
        margin-block: calc((1em - 1lh) / 2);
        font-size: 14px;

        @media not all and (width >=768px) {
          font-size: calc((100 / 750) * 26 * 1vw);
        }
      }

      /* ==== link ==== */
      .anchor {
        display: grid;
        grid-auto-flow: column;
        gap: 10px;
        align-items: center;
        justify-content: center;
        margin-block-start: 40px;
        font-size: 15px;
        font-weight: 700;

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 10 * 1vw);
          margin-block: calc((100 / 750) * 40 * 1vw) calc((100 / 750) * 34 * 1vw);
          font-size: calc((100 / 750) * 32 * 1vw);
        }

        &::before {
          inline-size: 20px;
          aspect-ratio: 1 / 1;
          content: '';
          background-image: url('../img/common/icon/instagram.svg');
          background-repeat: no-repeat;
          background-position: center;
          background-size: contain;
        }
      }
    }

    /* ==== img ==== */
    .img {
      & ul {
        display: grid;
        grid-template-columns: repeat(4, 1fr);

        @media not all and (width >=768px) {
          grid-template-columns: repeat(2, 1fr);
        }

        & a {
          position: relative;
          display: block;
          inline-size: 230px;
          aspect-ratio: 1 / 1;

          @media not all and (width >=768px) {
            inline-size: 50vw;
          }

          & img {
            position: absolute;
            top: 50%;
            left: 50%;
            inline-size: 100%;
            pointer-events: none;
            object-fit: cover;
            translate: -50% -50%;
          }

          & p {
            position: absolute;
            top: 0;
            left: 0;
            display: -webkit-box;
            block-size: 100%;
            padding: 1.5em;
            overflow: hidden;
            -webkit-line-clamp: 7;
            line-clamp: 7;
            font-size: 13px;
            line-height: 1.69;
            word-break: break-all;
            pointer-events: none;
            background: color-mix(in srgb, black 100%, transparent 70%);
            opacity: 0;
            -webkit-box-orient: vertical;
            transition: all 250ms ease 0s;

            @media not all and (width >=768px) {
              display: none;
            }
          }

          @media (any-hover: hover) {
            &:hover {
              & p {
                opacity: 1;
              }
            }
          }
        }
      }
    }
  }

  .instagram[data-id='harley-osaka'] {
    background: #a04100;
  }

  .instagram[data-id='harley-suma'] {
    background: #c6580c;
  }

  .instagram[data-id='indian-osaka'] {
    background: #b6002a;
  }

  .instagram[data-id='indian-kobe'] {
    background: #971230;
  }

  /* ==== youtube ==== */
  .youtube {
    padding-block: 90px 110px;
    padding-inline: 40px;
    background: var(--mouse);

    @media not all and (width >=768px) {
      padding-block: calc((100 / 750) * 90 * 1vw) calc((100 / 750) * 80 * 1vw);
      padding-inline: calc((100 / 750) * 20 * 1vw);
    }

    & ul {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 31px;
      justify-content: space-between;
      text-align: center;

      @media not all and (width >=768px) {
        grid-template-columns: repeat(1, 1fr);
        gap: calc((100 / 750) * 61 * 1vw) calc((100 / 750) * 10 * 1vw);
      }

      & a {
        display: grid;
        gap: 17px;

        @media not all and (width >=768px) {
          gap: calc((100 / 750) * 7 * 1vw);

          & img {
            aspect-ratio: 16 / 9;
          }
        }
      }

      @media not all and (width >=768px) {
        h3 {
          font-size: calc((100 / 750) * 24 * 1vw);

          & br {
            display: none;
          }
        }
      }
    }
  }
}

/* =====================
  spacer
===================== */
.spacer {
  position: relative;
  padding-block-end: 260px;
  overflow: clip;
  background: var(--mouse);

  @media not all and (width >=768px) {
    padding-block-end: calc((100 / 750) * 193 * 1vw);
  }

  & img {
    width: 100%;
    block-size: 400px;
    object-fit: cover;

    @media not all and (width >=768px) {
      block-size: 40vw;
    }
  }

  .marquee {
    position: absolute;
    bottom: 120px;
    display: flex;
    gap: 32px;
    inline-size: 100vw;
    block-size: 250px;
    margin-inline: calc(50% - 50vw);
    pointer-events: none;

    @media not all and (width >=768px) {
      bottom: 10vw;
      gap: calc((100 / 750) * 32 * 1vw);
      block-size: 30vw;
      margin-inline: 0;
    }

    &::before,
    &::after {
      display: block;
      flex-shrink: 0;
      inline-size: 1544px;
      block-size: 217px;
      content: '';
      background-image: url('../img/top/spacer/text.png');
      background-repeat: no-repeat;
      background-position: center bottom;
      background-size: 1544px 217px;
      animation: 150s linear 0s infinite normal none running marquee;
    }

    @media not all and (width >=768px) {
      &::before,
      &::after {
        inline-size: calc((100 / 750) * 1544 * 1vw);
        block-size: calc((100 / 750) * 217 * 1vw);
        background-size: calc((100 / 750) * 1544 * 1vw) calc((100 / 750) * 217 * 1vw);
      }
    }
  }
}

/* ==== ページネーション ==== */
.mv .pagination {
  position: absolute;
  right: 30px;
  bottom: 100px;
  z-index: 20;
  width: 140px;
  aspect-ratio: 1 / 1;
}

.ipad .mv .pagination {
  bottom: 30px;
}

@media not all and (width >= 768px) {
  .mv .pagination {
    right: calc((100 / 750) * 20 * 1vw);
    bottom: 11vw;
    width: calc((100 / 750) * 175 * 1vw);
  }
}

.mv .swiper-pagination {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.mv .swiper-pagination-circle,
.mv .swiper-pagination-circle2 {
  pointer-events: none;
}

.mv .swiper-pagination-circle svg,
.mv .swiper-pagination-circle2 svg {
  transform: rotate(90deg);
}

.mv .swiper-pagination-circle circle,
.mv .swiper-pagination-circle2 circle {
  fill: none;
  stroke: #fff;
  stroke-width: 2px;
  stroke-dasharray: 308;
  stroke-dashoffset: 308;
}

.mv .swiper-pagination-circle.anim-start circle,
.mv .swiper-pagination-circle2.anim-start circle {
  animation: rotate-circle 4s ease-in-out forwards;
}

.mv .swiper-pagination-circle.anim-end circle,
.mv .swiper-pagination-circle2.anim-end circle {
  animation: rotate-circle-end 1s ease-in-out;
}

.mv .swiper-pagination-circle2 {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.3;
}

.mv .swiper-pagination-circle2 circle {
  stroke-dashoffset: 0 !important;
}

.mv .swiper-button-prev,
.mv .swiper-button-next {
  top: 50%;
  width: 9px;
  height: 17px;
  margin: 0;
  cursor: pointer;
  background: no-repeat 50% 50%/100% auto;
  transform: translateY(-50%);
  transition: opacity 0.2s ease-in;
}

@media not all and (width >= 768px) {
  .mv .swiper-button-prev,
  .mv .swiper-button-next {
    width: calc((100 / 750) * 13 * 1vw);
    height: calc((100 / 750) * 22 * 1vw);
  }
}

.mv .swiper-button-prev::after,
.mv .swiper-button-next::after {
  display: none;
}

.mv .swiper-button-prev {
  right: auto;
  left: 28%;
  background-image: url('../img/common/arrow.svg');
}

.mv .swiper-button-next {
  right: 28%;
  left: auto;
  background-image: url('../img/common/arrow.svg');
  transform: translateY(-50%) scale(-1, 1);
}

@keyframes rotate-circle {
  0% {
    stroke-dashoffset: 308;
  }

  1% {
    stroke-dashoffset: 308;
  }

  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes rotate-circle-end {
  0% {
    stroke-dashoffset: 0;
  }

  100% {
    stroke-dashoffset: 308;
  }
}

/* ==== scroll ==== */
@media print, screen and (width >= 768px) {
  .mv .scroll {
    position: absolute;
    bottom: 62px;
    left: 30px;
    z-index: 4;
  }

  .mv .scroll::before {
    position: relative;
    left: 1px;
    display: block;
    width: 54px;
    height: 10px;
    content: '';
    background-image: url('../img/top/scroll.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    rotate: 0 0 1 90deg;
    translate: 0 -20px;
  }

  .mv .scroll span {
    position: relative;
    display: block;
    width: 1px;
    height: 60px;
    margin-inline: auto;
    margin-top: 12px;
    background: white;
  }

  .mv .scroll span::before {
    position: absolute;
    top: -3.5px;
    left: calc(50% + 0.5px);
    display: block;
    width: 7px;
    height: 7px;
    content: '';
    background: white;
    border-radius: 50%;
    opacity: 0;
    transform: translateX(-50%);
    animation: scroll 1.5s linear 0s infinite;
  }

  @keyframes scroll {
    0% {
      opacity: 0;
    }

    10% {
      opacity: 1;
    }

    34% {
      top: calc(100% - 3.5px);
    }

    35% {
      top: calc(100% - 3.5px);
      opacity: 1;
      transform: translateX(-50%) scale(1);
    }

    40% {
      top: calc(100% - 3.5px);
      opacity: 0.5;
    }

    80% {
      top: calc(100% - 3.5px);
      opacity: 0;
      transform: translateX(-50%) scale(3);
    }

    100% {
      top: calc(100% - 3.5px);
      opacity: 0;
      transform: translateX(-50%) scale(3);
    }
  }
}

@media not all and (width >=768px) {
  .mv .scroll {
    display: none;
  }
}

/* =====================
  js-parallax
===================== */
.js-parallax {
  opacity: 0;
  transform: translateY(2em);
  transition: transform 1s ease, opacity 0.4s ease;
}

.js-parallax.on {
  opacity: 1;
  transform: translateY(0);

  @media (any-hover: hover) {
    &:hover {
      opacity: 0.7;
    }
  }
}
