@charset "UTF-8";

.main {
  /* =====================
    mv
  ===================== */
  .mv {
    position: relative;
    width: 100%;
    height: 780px;
    margin-block-start: 84px;

    @media (width <= 768px) {
      height: calc((100 / 390) * 720 * 1vw);
      margin-block-start: calc((100 / 390) * 80 * 1vw);
    }
    /* ==== 背景スライダー ==== */
    .mv-slider {
      position: absolute;
      overflow: hidden;
      width: calc(100% - 80px);
      min-height: 780px;
      top: 0;
      right: 0;
      border-radius: 20px 0px 0px 20px;

      @media (width <= 768px) {
        width: calc(100% - calc((100 / 390) * 16 * 1vw));
        min-height: calc((100 / 390) * 720 * 1vw);
        border-radius: calc((100 / 390) * 10 * 1vw) 0 0 calc((100 / 390) * 10 * 1vw);
      }
      .mv-swiper-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        min-height: inherit;

        .swiper-slide {
          position: relative;

          & picture {
            display: block flow;
            & img {
              block-size: 100%;
              aspect-ratio: 1920/780;
              min-height: 780px;
              object-fit: cover;
              object-position: center;

              @media (width <= 768px) {
                aspect-ratio: 390/720;
                min-height: calc((100 / 390) * 720 * 1vw);
              }
            }
          }
        }
      }
    }
    .mv-slider .zoom img {
      animation-name: zoom;
      animation-duration: 15s;
      animation-delay: 0ms;
      animation-timing-function: linear; /* ease/ease-in/ease-out/ease-in-out/linear/cubic-bezier()/steps(1, jump-end) */
      animation-iteration-count: 1; /* {num}/infinite */
      animation-direction: normal; /* normal/reverse/alternate/alternate-reverse */
      animation-fill-mode: both; /* none/backwards(0%)/forwards(100%)/both(0%->100%) */
      animation-play-state: running; /* running/paused */
    }
  }
  .content {
    position: relative;
    padding-block-start: 216px;
    padding-inline: 160px 40px;
    padding-block-end: 64px;
    min-height: 780px;
    z-index: 10;

    @media (width <= 768px) {
      padding-top: calc((100 / 390) * 88 * 1vw);
      padding-inline: calc((100 / 390) * 40 * 1vw) calc((100 / 390) * 16 * 1vw);
      min-height: calc((100 / 390) * 720 * 1vw);
      padding-block-end: calc((100 / 390) * 40 * 1vw);
    }

    /* =====================
      service-list
    ===================== */
    .service-list {
      display: block flex;
      gap: 40px;

      @media (width <= 768px) {
        gap: calc((100 / 390) * 27 * 1vw);
      }

      & li {
        position: relative;
        font-family: var(--yumin);
        color: #fff;
        background-color: #549fd6;
        padding-block: 4px;
        padding-inline: 12px;
        border-radius: 4px;

        &[data-id='1'] {
          background-color: #549fd6;
        }
        &[data-id='2'] {
          background-color: #1b57af;
        }
        &[data-id='3'] {
          background-color: #a1a1a1;
        }
        &:not(:first-child)::before {
          content: '';
          display: block flow;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../img/top/icon_cross.svg');
          inline-size: 13px;
          block-size: 13px;
          position: absolute;
          top: 50%;
          left: -24px;
          transform: translateY(-50%);
        }

        @media (width <= 768px) {
          line-height: 1;
          font-size: calc((100 / 390) * 12 * 1vw);
          padding-block: calc((100 / 390) * 7 * 1vw);
          padding-inline: calc((100 / 390) * 9 * 1vw);
          border-radius: calc((100 / 390) * 4 * 1vw);

          &:not(:first-child)::before {
            inline-size: calc((100 / 390) * 9.7 * 1vw);
            block-size: calc((100 / 390) * 9.7 * 1vw);
            left: calc((100 / 390) * -18 * 1vw);
          }
        }
      }
    }

    /* =====================
        日本語　キャッチ
    ===================== */
    .ja-catch {
      position: relative;
      font-family: var(--yumin);
      font-size: 40px;
      font-weight: 600;
      letter-spacing: 1.2px;
      margin-block-start: 36px;
      color: #fff;
      z-index: 11;

      @media (width <= 768px) {
        font-size: calc((100 / 390) * 32 * 1vw);
        letter-spacing: calc((100 / 390) * 0.96 * 1vw);
        margin-block-start: calc((100 / 390) * 34 * 1vw);
      }
    }

    /* =====================
        英字　キャッチ
    ===================== */
    .en-catch {
      font-family: var(--title);
      font-size: 20px;
      font-weight: 500;
      color: #dbdbdb;
      letter-spacing: 0.4px;
      margin-block-start: 19px;

      @media (width <= 768px) {
        font-size: calc((100 / 390) * 16 * 1vw);
        letter-spacing: calc((100 / 390) * 0.32 * 1vw);
        margin-block-start: calc((100 / 390) * 19 * 1vw);
      }
    }

    /* =====================
      Recruit-bnr
    ===================== */
    .recruit_bnr {
      background-color: #fff;
      inline-size: fit-content;
      margin-inline: auto 0;
      border-radius: 10px;
      margin-block-start: 88px;
      padding: 8px;

      @media (width <= 768px) {
        border-radius: calc((100 / 390) * 10 * 1vw);
        padding: calc((100 / 390) * 6 * 1vw);
        margin-block-start: calc((100 / 390) * 193 * 1vw);
      }

      .u-hover {
        display: block grid;
        inline-size: 100%;
        block-size: 100%;
        padding-inline: 18px;
        padding-block: 12px;
        border-radius: 10px;
        border: 2px solid #549fd6;
        column-gap: 16px;
        grid-template-rows: repeat(2, auto);

        @media (width <= 768px) {
          padding-inline: calc((100 / 390) * 15 * 1vw);
          padding-block: calc((100 / 390) * 14 * 1vw) calc((100 / 390) * 10 * 1vw);
          border-radius: calc((100 / 390) * 10 * 1vw);
          border: calc((100 / 390) * 2 * 1vw) solid #549fd6;
          column-gap: calc((100 / 390) * 16 * 1vw);
          row-gap: calc((100 / 390) * 11 * 1vw);
          align-items: center;
          grid-template-columns: max-content 1fr;
          justify-items: end;
        }

        .title {
          grid-area: 1 / 1 / 2 / 2;
          position: relative;
          font-family: var(--title);
          font-size: 20px;
          font-weight: 500;
          color: #549fd6;
          inline-size: fit-content;

          &::before {
            content: '';
            display: block flow;
            inline-size: 21px;
            aspect-ratio: 1/1;
            border-radius: 50rem;
            background-image: linear-gradient(to top, #1b57af 0%, #549fd6 100%);
            position: absolute;
            top: 50%;
            right: -34px;
            transform: translateY(-56%);
          }
          &::after {
            content: '';
            display: block flow;
            mask-repeat: no-repeat;
            mask-size: contain;
            mask-position: center;
            mask-image: var(--arrow);
            background-color: #fff;
            inline-size: 11px;
            aspect-ratio: 13/8;
            position: absolute;
            top: 50%;
            right: -29px;
            transform: translateY(-74%);
          }

          @media (width <= 768px) {
            grid-area: 1/2/2/3;
            padding-inline-end: calc((100 / 390) * 30 * 1vw);
            font-size: calc((100 / 390) * 20 * 1vw);

            &::before {
              inline-size: calc((100 / 390) * 20 * 1vw);
              right: 0;
              transform: translateY(-50%);
            }

            &::after {
              inline-size: calc((100 / 390) * 11 * 1vw);
              right: calc((100 / 390) * 4.5 * 1vw);
              transform: translateY(-50%);
            }
          }
        }

        .description {
          grid-area: 2 / 1 / 3 / 2;
          font-size: 13px;
          line-height: 1.6;
          letter-spacing: 0.39px;

          @media (width <= 768px) {
            grid-area: 2/1/3/3;
            font-size: calc((100 / 390) * 12 * 1vw);
            letter-spacing: calc((100 / 390) * 0.36 * 1vw);
            text-align: center;
          }
        }
        .picture {
          display: block flow;
          grid-area: 1 / 2 / 3 / 3;

          @media (width <= 768px) {
            grid-area: 1/1/2/2;
            inline-size: fit-content;
            & > img {
              inline-size: calc((100 / 390) * 88 * 1vw);
            }
          }
        }
      }
    }
  }
  /* =====================
    Scroll
  ===================== */
  /* スクロールダウンの位置 */
  .scroll {
    position: absolute;
    left: 24px;
    bottom: 89px;
    z-index: 12;

    @media (width <= 768px) {
      left: calc((100 / 390) * 29 * 1vw);
      bottom: calc((100 / 390) * 114 * 1vw);
    }

    /* 線のアニメーション部分 */
    &::before {
      animation: scroll 2s cubic-bezier(1, 0, 0, 1) infinite;
      background-color: #549fd6;
      bottom: -70px;
      border-radius: 50rem;
      content: '';
      height: 104px;
      left: 6px;
      margin: auto;
      position: absolute;
      width: 2px;
      z-index: 2;
    }
    /* 線の背景色 */
    &::after {
      background-color: #fff;
      bottom: -70px;
      border-radius: 50rem;
      content: '';
      height: 104px;
      left: 6px;
      margin: auto;
      position: absolute;
      width: 2px;
    }
    & > span {
      display: block flow;
      font-family: var(--title);
      color: #549fd6;
      font-weight: 600;
      letter-spacing: 0.48px;
      transform: rotate(90deg);
    }

    @media (width <= 768px) {
      &::before {
        top: calc((100 / 390) * -5 * 1vw);
        bottom: unset;
        height: calc((100 / 390) * 88 * 1vw);
        width: 1px;
        left: calc((100 / 390) * 3 * 1vw);
      }
      &::after {
        top: calc((100 / 390) * -5 * 1vw);
        bottom: unset;
        height: calc((100 / 390) * 88 * 1vw);
        width: 1px;
        left: calc((100 / 390) * 3 * 1vw);
      }
      & > span {
        color: #fff;
        font-size: calc((100 / 390) * 14 * 1vw);
        letter-spacing: calc((100 / 390) * 0.42 * 1vw);
      }
    }
  }

  /* =====================
    Company
  ===================== */
  .company {
    position: relative;
    padding-block-start: 88px;
    padding-block-end: 176px;

    &::before {
      content: '';
      background-repeat: no-repeat;
      background-size: auto 917px;
      background-position: center bottom;
      background-image: url('../img/top/company_bg.png');
      inline-size: 100%;
      block-size: 917px;
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1;
      pointer-events: none;
    }

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 64 * 1vw);
      padding-block-end: calc((100 / 390) * 283 * 1vw);

      &::before {
        background-size: cover;
        background-position: center;
        background-image: url('../img/top/company_bg_2x.png');
        inline-size: 100%;
        block-size: calc((100 / 390) * 1065 * 1vw);
      }
    }

    .inner {
      position: relative;
      inline-size: 1440px;
      margin-inline: auto;
      padding-block-start: 60px;

      &::before {
        content: '';
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-image: url('../img/top/company_01.png');
        inline-size: 401px;
        block-size: 262px;
        position: absolute;
        top: 40px;
        left: 117px;
        pointer-events: none;
      }
      &::after {
        content: '';
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-image: url('../img/top/company_02.png');
        inline-size: 223px;
        block-size: 229px;
        position: absolute;
        top: 0;
        right: 40px;
        pointer-events: none;
      }

      @media (width <= 768px) {
        inline-size: 100%;
        padding-inline: calc((100 / 390) * 24 * 1vw);
        padding-block-start: calc((100 / 390) * 142 * 1vw);

        &::before {
          background-image: url('../img/top/company_01_2x.png');
          inline-size: calc((100 / 390) * 184 * 1vw);
          block-size: calc((100 / 390) * 112 * 1vw);
          top: calc((100 / 390) * 0 * 1vw);
          left: calc((100 / 390) * 24 * 1vw);
        }

        &::after {
          background-image: url('../img/top/company_02_2x.png');
          inline-size: calc((100 / 390) * 126 * 1vw);
          block-size: calc((100 / 390) * 129 * 1vw);
          top: calc((100 / 390) * 147 * 1vw);
          right: calc((100 / 390) * 16 * 1vw);
        }
      }

      .u-h2-title {
        margin-inline-start: 601px;

        @media (width <= 768px) {
          margin-inline-start: 0;
        }
      }

      .content_wrap {
        position: relative;
        margin-inline-start: 665px;
        margin-block-start: 46px;

        @media (width <= 768px) {
          margin-inline-start: 0;
          margin-block-start: calc((100 / 390) * 33 * 1vw);

          &::before {
            background-image: url('../img/top/company_03_2x.png');
            inline-size: calc((100 / 390) * 192 * 1vw);
            block-size: calc((100 / 390) * 156 * 1vw);
            bottom: calc((100 / 390) * 20 * 1vw);
            left: calc((100 / 390) * 24 * 1vw);
          }
        }

        .ja-catch {
          font-family: var(--yumin);
          font-size: 32px;
          font-weight: 600;
          letter-spacing: 0.96px;
          color: #1b57af;

          @media (width <= 768px) {
            font-size: calc((100 / 390) * 28 * 1vw);
            letter-spacing: calc((100 / 390) * 0.84 * 1vw);
          }
        }
        .content_unit {
          margin-block-start: 36px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 23 * 1vw);
          }

          .description + .description {
            margin-block-start: 29px;

            @media (width <= 768px) {
              margin-block-start: calc((100 / 390) * 25 * 1vw);
            }
          }

          .u-anchor {
            margin-block-start: 66px;

            @media (width <= 768px) {
              margin-block-start: calc((100 / 390) * 48 * 1vw);
              margin-inline: auto;
            }
          }
        }

        &::before {
          content: '';
          display: block flow;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../img/top/company_03.png');
          inline-size: 262px;
          block-size: 231px;
          position: absolute;
          bottom: -57px;
          left: -374px;
          pointer-events: none;
        }

        @media (width <= 768px) {
          &::before {
            background-image: url('../img/top/company_03_2x.png');
            inline-size: calc((100 / 390) * 192 * 1vw);
            block-size: calc((100 / 390) * 156 * 1vw);
            bottom: calc((100 / 390) * -204 * 1vw);
            left: calc((100 / 390) * -8 * 1vw);
          }
        }
      }
    }
  }

  /* =====================
    Business
  ===================== */
  .business {
    padding-block: 104px 120px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../img/top/business_bg.png');
    inline-size: 100%;

    @media (width <= 768px) {
      padding-block: calc((100 / 390) * 47 * 1vw) calc((100 / 390) * 80 * 1vw);
      background-image: url('../img/top/business_bg_2x.png');
      border-radius: calc((100 / 390) * 20 * 1vw) calc((100 / 390) * 20 * 1vw) 0 0;
    }

    .u-inner {
      display: block grid;
      grid-template-rows: repeat(3, max-content);
      align-items: flex-start;
      padding-inline: 120px 80px;
      justify-content: space-between;

      @media (width <= 768px) {
        padding-inline: calc((100 / 390) * 24 * 1vw);
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, max-content);
      }

      .u-h2-title {
        grid-area: 1/1/2/2;
        margin-block-start: 29px;

        @media (width <= 768px) {
          margin-block-start: 0;
        }
      }

      .ja-catch {
        grid-area: 2/1/3/2;
        font-family: var(--yumin);
        font-size: 32px;
        font-weight: 600;
        letter-spacing: 0.96px;
        margin-block-start: 46px;

        @media (width <= 768px) {
          font-size: calc((100 / 390) * 28 * 1vw);
          letter-spacing: calc((100 / 390) * 0.84 * 1vw);
          margin-block-start: calc((100 / 390) * 33 * 1vw);
        }
      }
      .u-anchor {
        grid-area: 3/1/4/2;
        margin-block-start: 46px;

        @media (width <= 768px) {
          grid-area: 4/1/5/2;
          margin-block-start: calc((100 / 390) * 40 * 1vw);
          margin-inline: auto;
        }
      }
      .business-list {
        grid-area: 1/2/5/3;
        display: block flex;
        counter-reset: number 0;

        @media (width <= 768px) {
          grid-area: 3/1/4/2;
          flex-direction: column;
          margin-block-start: calc((100 / 390) * 31 * 1vw);
        }

        & > li {
          position: relative;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          inline-size: 280px;
          block-size: 440px;

          &::before {
            counter-increment: number;
            content: '0' counter(number);
            font-family: var(--title);
            font-size: 24px;
            color: #fff;
            position: absolute;
            top: 5px;
            left: 20px;
          }

          &[data-id='1'] {
            background-image: url('../img/top/business_01.png');
            border-radius: 10px 0px 0px 10px;
          }
          &[data-id='2'] {
            background-image: url('../img/top/business_02.png');
          }
          &[data-id='3'] {
            background-image: url('../img/top/business_03.png');
            border-radius: 0px 10px 10px 0px;
          }

          @media (width <= 768px) {
            inline-size: calc((100 / 390) * 342 * 1vw);
            block-size: calc((100 / 390) * 240 * 1vw);

            &::before {
              font-size: calc((100 / 390) * 22 * 1vw);
              top: calc((100 / 390) * 5 * 1vw);
              left: calc((100 / 390) * 20 * 1vw);
            }

            &[data-id='1'] {
              background-image: url('../img/top/business_01_2x.png');
              border-radius: calc((100 / 390) * 10 * 1vw) calc((100 / 390) * 10 * 1vw) 0 0;
            }
            &[data-id='2'] {
              background-image: url('../img/top/business_02_2x.png');
            }
            &[data-id='3'] {
              background-image: url('../img/top/business_03_2x.png');
              border-radius: 0 0 calc((100 / 390) * 10 * 1vw) calc((100 / 390) * 10 * 1vw);
            }
          }

          .u-hover {
            display: block grid;
            grid-template-rows: auto max-content;
            align-items: end;
            inline-size: 100%;
            block-size: 100%;
            padding-block: 30px;

            @media (width <= 768px) {
              padding-block: calc((100 / 390) * 15 * 1vw);
            }

            .title {
              font-size: 18px;
              color: #fff;
              text-align: center;

              @media (width <= 768px) {
                font-size: calc((100 / 390) * 16 * 1vw);
              }
            }
            .description {
              font-family: var(--title);
              font-size: 15px;
              color: #dbdbdb;
              text-align: center;

              @media (width <= 768px) {
                font-size: calc((100 / 390) * 14 * 1vw);
              }
            }
          }
        }
      }
    }
  }

  /* =====================
    Recruit
  ===================== */
  .recruit {
    position: relative;
    padding-block: 106px 104px;

    @media (width <= 768px) {
      padding-block: 0 calc((100 / 390) * 80 * 1vw);
    }

    .u-inner {
      position: relative;
      min-block-size: 790px;
      overflow: hidden;

      &::before {
        content: '';
        display: block flow;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-image: url('../img/top/recruit_bg.png');
        inline-size: 1280px;
        block-size: 694px;
        position: absolute;
        top: 48px;
        left: 80px;
        pointer-events: none;
      }

      @media (width <= 768px) {
        min-block-size: calc((100 / 390) * 941 * 1vw);

        &::before {
          background-image: url('../img/top/recruit_bg_2x.png');
          inline-size: calc((100 / 390) * 358 * 1vw);
          block-size: calc((100 / 390) * 877 * 1vw);
          top: calc((100 / 390) * 64 * 1vw);
          left: calc((100 / 390) * 16 * 1vw);
        }
      }

      .loop {
        position: absolute;
        inline-size: fit-content;
        pointer-events: none;
        left: 152px;
        top: -40px;
        display: block flex;
        flex-direction: column;
        gap: 16px;

        @media (width <= 768px) {
          flex-direction: row;
          left: 0;
          top: calc((100 / 390) * 120 * 1vw);
          gap: calc((100 / 390) * 16 * 1vw);
        }

        .loop-box {
          display: block flex;
          flex-direction: column;
          animation: loop-list 40s linear infinite;
          gap: 16px;
          flex-shrink: 0;

          @media (width <= 768px) {
            animation: loop-list2 40s linear infinite;
            gap: calc((100 / 390) * 16 * 1vw);
            flex-direction: row;
          }
          .loop-item {
            width: fit-content;
            display: block;
            flex-shrink: 0;
            & img {
              @media (width <= 768px) {
                inline-size: calc((100 / 390) * 239 * 1vw);
              }
            }
          }
        }
      }

      .content_wrap {
        position: relative;
        padding-inline-start: 517px;
        margin-block-start: 131px;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 311 * 1vw);
          padding-inline: calc((100 / 390) * 16 * 1vw);
        }

        .ja-catch {
          font-family: var(--yumin);
          font-size: 32px;
          font-weight: 600;
          letter-spacing: 0.96px;
          color: #1b57af;
          margin-block-start: 46px;

          @media (width <= 768px) {
            font-size: calc((100 / 390) * 28 * 1vw);
            letter-spacing: calc((100 / 390) * 0.84 * 1vw);
            margin-block-start: calc((100 / 390) * 33 * 1vw);
          }
        }

        .description {
          margin-block-start: 37px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 22 * 1vw);
          }
        }

        .u-anchor {
          margin-block-start: 64px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 48 * 1vw);
            margin-inline: auto;
          }
        }
      }
    }
  }

  /* =====================
    Link-set
  ===================== */
  .link-set {
    position: relative;
    padding-block: 104px 120px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../img/top/content_bg.png');
    inline-size: 100%;
    block-size: 462px;

    @media (width <= 768px) {
      background-image: url('../img/top/content_bg_2x.png');
      inline-size: 100%;
      block-size: calc((100 / 390) * 780 * 1vw);
      padding-block: calc((100 / 390) * 64 * 1vw) calc((100 / 390) * 64 * 1vw);
    }

    .u-inner {
      display: block grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 80px;

      @media (width <= 768px) {
        grid-template-columns: 1fr;
        gap: calc((100 / 390) * 38 * 1vw);
      }

      .unit {
        .u-hover {
          display: block flex;
          align-items: flex-start;
          gap: 40px;
          inline-size: 100%;
          block-size: 100%;

          @media (width <= 768px) {
            flex-direction: column;
            gap: calc((100 / 390) * 14 * 1vw);

            .picture {
              & > img {
                inline-size: calc((100 / 390) * 342 * 1vw);
              }
            }
          }

          .u-h2-title {
            position: relative;

            &::before {
              content: '';
              display: block flow;
              inline-size: 64px;
              aspect-ratio: 1/1;
              background-image: linear-gradient(to top, #1b57af 0%, #549fd6 100%);
              border-radius: 50rem;
              position: absolute;
              bottom: -113px;
              left: 0;
            }

            &::after {
              content: '';
              display: block flow;
              background-repeat: no-repeat;
              background-size: contain;
              background-position: center;
              background-image: url('../img/_common/btn_arrow.svg');
              inline-size: 24px;
              block-size: 14px;
              position: absolute;
              bottom: -89px;
              left: 20px;
            }

            @media (width <= 768px) {
              inline-size: 100%;
              &::before {
                inline-size: calc((100 / 390) * 48 * 1vw);
                left: unset;
                right: 0;
                bottom: 50%;
                transform: translateY(50%);
              }
              &::after {
                inline-size: calc((100 / 390) * 18 * 1vw);
                block-size: calc((100 / 390) * 11 * 1vw);
                left: unset;
                right: calc((100 / 390) * 15 * 1vw);
                bottom: 50%;
                transform: translateY(50%);
              }
            }
          }
        }
      }
    }
  }
}

@media (width <= 768px) {
  .footer {
    margin-block-start: 0;
  }
}

/* =====================
animation
===================== */
@keyframes zoom {
  0% {
    scale: 1;
  }
  100% {
    scale: 1.15;
  }
}

/* 線のアニメーション */
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* 上から下 */
@keyframes loop-list {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0%);
  }
}
/* 右から左 */
@keyframes loop-list2 {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}

/* ==== js-parallax ==== */
.mv {
  .content {
    .js-parallax {
      opacity: 0;
      transform: translateY(0.5em);
      transition: all 0.5s ease-in-out 0s;

      &[data-id='2'] {
        transition: all 0.5s ease-in-out 0.2s;
      }
      &[data-id='3'] {
        transition: all 0.5s ease-in-out 0.4s;
      }
      &.on {
        opacity: 1;
        transform: translateY(0);
      }
    }
  }
}

.company {
  .inner {
    &.js-parallax {
      &::before,
      &::after {
        opacity: 0;
        transition: all 0.5s ease-in-out 0s;
        transform: translateY(0.5em);
      }
      &.on {
        &::before,
        &::after {
          opacity: 1;
          transform: translateY(0);
        }
      }
    }
    .u-h2-title.js-parallax {
      opacity: 0;
      transition: all 0.5s ease-in-out 0s;
      transform: translateY(0.5em);
      &.on {
        opacity: 1;
        transform: translateY(0);
      }
    }
    .content_wrap {
      &.js-parallax {
        &::before {
          opacity: 0;
          transition: all 0.5s ease-in-out 0s;
          transform: translateY(0.5em);
        }
        &.on {
          &::before {
            opacity: 1;
            transform: translateY(0);
          }
        }
      }
      .js-parallax {
        opacity: 0;
        transition: all 0.5s ease-in-out 0s;
        transform: translateY(0.5em);
        &.on {
          opacity: 1;
          transform: translateY(0);
        }
      }
    }
  }
}

.business {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .business-list {
    .js-parallax[data-id='1'] {
      opacity: 0;
      transition: all 0.5s ease-in-out 0s;
      transform: translateY(0.5em);
    }
    .js-parallax[data-id='2'] {
      opacity: 0;
      transition: all 0.5s ease-in-out 0.2s;
      transform: translateY(0.5em);

      @media (width <= 768px) {
        transition: all 0.5s ease-in-out 0s;
      }
    }
    .js-parallax[data-id='3'] {
      opacity: 0;
      transition: all 0.5s ease-in-out 0.4s;
      transform: translateY(0.5em);

      @media (width <= 768px) {
        transition: all 0.5s ease-in-out 0s;
      }
    }
    .js-parallax.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.recruit {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.link-set {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
    &[data-name='sdgs'] {
      transition: all 0.5s ease-in-out 0.2s;
    }
  }
}
