@charset "UTF-8";

.main {
  /* =====================
    mv
  ===================== */
  .mv {
    position: relative;
    width: 100%;
    height: 864px;

    @media (width <= 768px) {
      height: calc((100 / 390) * 800 * 1vw);
    }
    /* ==== 背景スライダー ==== */
    .mv-slider {
      position: absolute;
      overflow: hidden;
      width: 100%;
      min-height: 864px;
      top: 0;
      right: 0;

      @media (width <= 768px) {
        min-height: calc((100 / 390) * 800 * 1vw);
      }
      .mv-swiper-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        min-height: inherit;

        .swiper-slide {
          position: relative;

          & picture {
            display: block flow;
            & img {
              inline-size: 100%;
              block-size: 100%;
              min-height: 864px;
              object-fit: cover;
              object-position: center;

              @media (width <= 768px) {
                min-height: calc((100 / 390) * 800 * 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: 199px;
    padding-inline: 80px;
    padding-block-end: 64px;
    min-height: 864px;
    z-index: 10;
    text-align: right;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 455 * 1vw);
      padding-inline: calc((100 / 390) * 16 * 1vw);
      min-height: calc((100 / 390) * 800 * 1vw);
      padding-block-end: calc((100 / 390) * 40 * 1vw);
    }

    /* =====================
        英字　キャッチ
    ===================== */
    .en-catch {
      font-family: var(--title);
      font-size: 24px;
      color: #f6f6f6;

      .fc-red {
        font-size: 48px;
        color: var(--primary);
        vertical-align: middle;
        margin-inline-start: 10px;
      }

      &[data-id='1'] {
        margin-inline-end: 154px;
      }

      @media (width <= 768px) {
        font-size: calc((100 / 390) * 20 * 1vw);

        .fc-red {
          font-size: calc((100 / 390) * 32 * 1vw);
          margin-inline-start: calc((100 / 390) * 10 * 1vw);
        }

        &[data-id='1'] {
          margin-inline-end: calc((100 / 390) * 57 * 1vw);
        }
        &[data-id='2'] {
          margin-block-start: calc((100 / 390) * 8 * 1vw);
        }
      }
    }
    /* =====================
        日本語　キャッチ
    ===================== */
    .ja-catch {
      position: relative;
      font-family: var(--yumin);
      font-size: 22px;
      font-weight: 600;
      margin-block-start: 32px;
      margin-inline-end: 76px;
      color: #fff;
      z-index: 11;
      display: block flex;
      justify-content: flex-end;
      align-items: center;
      gap: 16px;

      &::before {
        content: '';
        width: 130px;
        height: 1px;
        background-color: #fff;
      }

      @media (width <= 768px) {
        font-size: calc((100 / 390) * 17 * 1vw);
        margin-block-start: calc((100 / 390) * 22 * 1vw);
        margin-inline-end: calc((100 / 390) * 14 * 1vw);

        &::before {
          width: calc((100 / 390) * 64 * 1vw);
        }
      }
    }

    /* =====================
      Recruit-bnr
    ===================== */
    .recruit_bnr {
      background-color: #fff;
      inline-size: fit-content;
      margin-inline: auto 0;
      border-radius: 8px;
      margin-block-start: 273px;

      @media (width <= 768px) {
        border-radius: calc((100 / 390) * 8 * 1vw);
        margin-block-start: calc((100 / 390) * 56 * 1vw);
      }

      .u-hover {
        display: block grid;
        inline-size: 100%;
        block-size: 100%;
        padding-inline: 20px;
        padding-block: 16px;
        column-gap: 20px;
        grid-template-rows: max-content 1fr;
        align-items: center;

        @media (width <= 768px) {
          padding-inline: calc((100 / 390) * 16 * 1vw);
          padding-block: calc((100 / 390) * 13 * 1vw);
          border-radius: calc((100 / 390) * 10 * 1vw);
          column-gap: calc((100 / 390) * 16 * 1vw);
        }

        .title {
          grid-area: 1 / 2 / 2 / 3;
          position: relative;
          font-family: var(--title);
          font-size: 18px;
          color: var(--primary);
          display: block flex;
          align-items: center;
          justify-content: space-between;
          margin-block-start: 15px;

          @media (width <= 768px) {
            font-size: calc((100 / 390) * 17 * 1vw);
            margin-block-start: calc((100 / 390) * 10 * 1vw);
          }
        }
        .u-arrow {
          &::after {
            inline-size: 25px;
          }

          @media (width <= 768px) {
            &::before {
              right: calc((100 / 390) * 6 * 1vw);
            }
            &::after {
              inline-size: calc((100 / 390) * 23 * 1vw);
            }
          }
        }

        .description {
          grid-area: 2 / 2 / 3 / 3;
          font-size: 12px;
          line-height: 1.5;
          text-align: left;

          @media (width <= 768px) {
            font-size: calc((100 / 390) * 10 * 1vw);
          }
        }
        .picture {
          display: block flow;
          grid-area: 1 / 1 / 3 / 2;

          @media (width <= 768px) {
            & > img {
              inline-size: calc((100 / 390) * 93 * 1vw);
            }
          }
        }
      }
    }
  }
  /* =====================
    Scroll
  ===================== */
  /* スクロールダウンの位置 */
  .scroll {
    position: absolute;
    left: 18px;
    bottom: 146px;
    z-index: 12;

    @media (width <= 768px) {
      left: calc((100 / 390) * -2 * 1vw);
      bottom: calc((100 / 390) * 96 * 1vw);
    }

    /* 線のアニメーション部分 */
    &::before {
      animation: scroll 3s cubic-bezier(1, 0, 0, 1) infinite;
      background-color: #fff;
      bottom: -80px;
      border-radius: 50rem;
      content: '';
      height: 48px;
      left: 50%;
      margin: auto;
      position: absolute;
      width: 1px;
      z-index: 2;
    }
    /* 線の背景色 */
    &::after {
      background-color: transparent;
      bottom: -80px;
      border-radius: 50rem;
      content: '';
      height: 48px;
      left: 50%;
      margin: auto;
      position: absolute;
      width: 1px;
    }
    & > span {
      display: block flow;
      font-family: var(--title);
      font-size: 14px;
      color: #fff;
      transform: rotate(90deg);
    }

    @media (width <= 768px) {
      &::before {
        bottom: calc((100 / 390) * -56 * 1vw);
        height: calc((100 / 390) * 32 * 1vw);
        width: 1px;
      }
      &::after {
        bottom: calc((100 / 390) * -56 * 1vw);
        height: calc((100 / 390) * 32 * 1vw);
        width: 1px;
      }
      & > span {
        font-size: calc((100 / 390) * 12 * 1vw);
      }
    }
  }

  /* =====================
    company
  ===================== */
  .company {
    position: relative;
    padding-block-start: 104px;
    padding-block-end: 120px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 72 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
    }

    .picture {
      display: block flow;
      text-align: center;

      @media (width <= 768px) {
        & > img {
          inline-size: calc((100 / 390) * 294 * 1vw);
        }
      }
    }
    .content_wrap {
      position: relative;
      margin-block-start: 54px;

      .unit {
        display: block flex;
        align-items: center;
        justify-content: space-between;
        padding-inline: 80px;
        margin-block-start: 44px;
      }

      @media (width <= 768px) {
        margin-block-start: calc((100 / 390) * 39 * 1vw);

        .unit {
          display: block flow;
          padding-inline: 0;
          margin-block-start: calc((100 / 390) * 26 * 1vw);

          .u-anchor {
            margin-inline: auto;
            margin-block-start: calc((100 / 390) * 40 * 1vw);
          }
        }
      }
    }
    .u-marquee {
      top: 254px;

      @media (width <= 768px) {
        top: calc((100 / 390) * 147 * 1vw);
      }
    }
  }

  /* =====================
    business
  ===================== */
  .business {
    position: relative;
    padding-block-start: 89px;
    padding-block-end: 128px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 62 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
    }

    .business-list {
      display: block grid;
      grid-template-columns: repeat(3, 400px);
      justify-content: center;
      gap: 40px;
      margin-block-start: 46px;
      counter-reset: number;

      @media (width <= 768px) {
        grid-template-columns: 1fr;
        gap: calc((100 / 390) * 32 * 1vw);
        margin-block-start: calc((100 / 390) * 34 * 1vw);
      }

      & > li {
        position: relative;
        .u-hover {
          display: block flow;
          padding-inline: 40px;
          padding-block: 44px 56px;

          @media (width <= 768px) {
            padding-inline: calc((100 / 390) * 24 * 1vw);
            padding-block: calc((100 / 390) * 34 * 1vw) calc((100 / 390) * 40 * 1vw);
          }

          .title {
            position: relative;
            font-family: var(--yumin);
            font-size: 20px;
            font-weight: 600;
            display: block grid;
            grid-template-columns: max-content auto;
            align-items: center;
            gap: 16px;

            .u-arrow {
              display: block flex;
              align-items: center;
              justify-content: space-between;

              @media (width <= 768px) {
                &::before {
                  right: calc((100 / 390) * 8 * 1vw);
                }
                &::after {
                  inline-size: calc((100 / 390) * 28 * 1vw);
                }
              }
            }
            &:before {
              counter-increment: number;
              content: '0' counter(number);
              font-family: var(--yumin);
              font-size: 28px;
              font-weight: 400;
              color: #d91a1a;
              vertical-align: middle;
            }

            @media (width <= 768px) {
              font-size: calc((100 / 390) * 18 * 1vw);
              gap: calc((100 / 390) * 8 * 1vw);

              &:before {
                font-size: calc((100 / 390) * 26 * 1vw);
              }
            }
          }

          .description {
            margin-block-start: 18px;

            @media (width <= 768px) {
              margin-block-start: calc((100 / 390) * 15 * 1vw);
            }
          }

          .picture {
            display: block flow;
            text-align: center;
            margin-block-start: 38px;

            @media (width <= 768px) {
              margin-block-start: calc((100 / 390) * 24 * 1vw);
              & img {
                inline-size: calc((100 / 390) * 310 * 1vw);
              }
            }
          }
        }
      }
    }
  }

  /* =====================
    works
  ===================== */
  .works {
    position: relative;
    padding-block-start: 91px;
    padding-block-end: 128px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 72 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
    }

    .u-inner {
      display: block flex;
      justify-content: space-between;
      gap: 104px;

      @media (width <= 768px) {
        flex-direction: column-reverse;
        gap: calc((100 / 390) * 38 * 1vw);
      }

      .content_wrap {
        position: relative;

        .content-catch {
          margin-block-start: 53px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 34 * 1vw);
          }
        }
        .description {
          margin-block-start: 42px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 24 * 1vw);
          }
        }
        .u-anchor {
          margin-block-start: 71px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 41 * 1vw);
            margin-inline: auto;
          }
        }
      }

      .picture {
        display: block flow;
        flex-shrink: 0;
        margin-block-start: 18px;

        @media (width <= 768px) {
          margin-block-start: 0;
          & > img {
            inline-size: calc((100 / 390) * 358 * 1vw);
          }
        }
      }
    }
  }

  /* =====================
    recruit
  ===================== */
  .recruit {
    position: relative;
    padding-block-start: 91px;
    padding-block-end: 128px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 62 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
    }
    .u-inner {
      @media only screen and (width <= 768px) {
        display: block grid;

        .u-h2-title {
          grid-area: 1/1/2/2;
          justify-content: center;
        }
      }
      .content-catch {
        margin-block-start: 53px;
        margin-inline-start: 80px;

        @media (width <= 768px) {
          grid-area: 3/1/4/2;
          margin-block-start: calc((100 / 390) * 38 * 1vw);
          margin-inline-start: 0;
        }
      }
      .img_wrap {
        position: relative;
        margin-block-start: 67px;

        @media only screen and (width <= 768px) {
          grid-area: 2/1/3/2;
          margin-block-start: calc((100 / 390) * 218 * 1vw);
        }

        .picture {
          display: block flow;
          flex-shrink: 0;

          &[data-id='1'] {
            position: absolute;
            left: 0;
            top: 112px;
          }
          &[data-id='2'] {
            text-align: center;
          }
          &[data-id='3'] {
            position: absolute;
            right: 0;
            top: -112px;
          }
        }

        @media (width <= 768px) {
          .picture {
            &[data-id='1'] {
              top: calc((100 / 390) * -176 * 1vw);
              & img {
                inline-size: calc((100 / 390) * 171 * 1vw);
              }
            }
            &[data-id='2'] {
              & img {
                inline-size: calc((100 / 390) * 358 * 1vw);
              }
            }
            &[data-id='3'] {
              top: calc((100 / 390) * -176 * 1vw);
              & img {
                inline-size: calc((100 / 390) * 171 * 1vw);
              }
            }
          }
        }
      }
      .content_wrap {
        padding-inline-start: 488px;

        @media (width <= 768px) {
          padding-inline-start: 0;
        }
        .description {
          margin-block-start: 53px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 26 * 1vw);
          }
        }
        .u-anchor {
          margin-block-start: 39px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 40 * 1vw);
            margin-inline: auto;
          }
        }
      }
    }
  }

  /* =====================
    news
  ===================== */
  .news {
    position: relative;
    padding-block-start: 80px;
    padding-block-end: 123px;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 62 * 1vw);
      padding-block-end: calc((100 / 390) * 78 * 1vw);
    }

    .u-inner {
      display: block grid;
      grid-template-columns: max-content auto;
      align-items: start;
      column-gap: 160px;
      padding-inline: 160px;

      @media (width <= 768px) {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: calc((100 / 390) * 8 * 1vw);
        padding-inline: calc((100 / 390) * 16 * 1vw);
      }

      .content_wrap {
        position: relative;
        margin-block-start: 11px;

        @media (width <= 768px) {
          margin-block-start: 0;
        }
        .u-anchor {
          padding-inline: 0;
          margin-block-start: 15px;
          .btn-txt {
            gap: 24px;
          }
          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 2 * 1vw);
            .btn-txt {
              gap: calc((100 / 390) * 16 * 1vw);
            }
          }
        }
      }
      .news-list {
        & > li {
          .u-hover {
            display: block grid;
            grid-template-columns: max-content auto max-content;
            align-items: center;
            column-gap: 24px;
            border-bottom: 1px #b8b8b8 solid;
            padding-block: 22px;
            padding-inline: 16px;

            @media (width <= 768px) {
              grid-template-columns: auto max-content;
              padding-block: calc((100 / 390) * 21 * 1vw);
              padding-inline: calc((100 / 390) * 16 * 1vw);
              column-gap: calc((100 / 390) * 16 * 1vw);
            }

            .date {
              font-family: var(--yumin);
              font-size: 15px;
              color: #3f3f3f;

              @media (width <= 768px) {
                grid-area: 1 / 1 / 2 / 2;
                font-size: calc((100 / 390) * 14 * 1vw);
              }
            }
            .title {
              font-size: 15px;

              @media (width <= 768px) {
                grid-area: 2 / 1 / 3 / 2;
                font-size: calc((100 / 390) * 14 * 1vw);
              }
            }
          }
          .u-arrow {
            &::before {
              right: 20px;
            }
            @media (width <= 768px) {
              &::before {
                right: calc((100 / 390) * 21 * 1vw);
              }
              &::after {
                grid-area: 1 / 2 / 3 / 3;
              }
            }
          }
        }
      }
    }
  }
}

/* =====================
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 {
  .js-parallax {
    .ja-catch {
      clip-path: inset(0 100% 0 0);
      transition: all 800ms var(--easeOutExpo) 0s;
    }
    &.on {
      .ja-catch {
        clip-path: inset(0 0 0 0);
      }
    }
  }
}
.company {
  .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.3s;
      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.6s;
      transform: translateY(0.5em);

      @media (width <= 768px) {
        transition: all 0.5s ease-in-out 0s;
      }
    }
    .js-parallax.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
.works {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.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);
    }
  }
  .img_wrap {
    .js-parallax[data-id='3'] {
      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.3s;
      transform: translateY(0.5em);

      @media (width <= 768px) {
        transition: all 0.5s ease-in-out 0s;
      }
    }
    .js-parallax[data-id='1'] {
      opacity: 0;
      transition: all 0.5s ease-in-out 0.6s;
      transform: translateY(0.5em);

      @media (width <= 768px) {
        transition: all 0.5s ease-in-out 0s;
      }
    }
    .js-parallax.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
.news {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
