@charset "UTF-8";
/* =====================

  ***RECRUIT***

===================== */
html,
body {
  margin: 0;
  padding: 0;
}

.main {
  /* =====================
    mv
  ===================== */
  .mv {
    position: relative;
    width: 100%;
    min-block-size: 840px;

    @media (width <= 768px) {
      min-block-size: calc((100 / 390) * 647 * 1vw);
    }

    &::before {
      content: '';
      position: absolute;
      background: linear-gradient(180deg, #ffffff -3.45%, rgba(255, 255, 255, 0.75) 3.41%, rgba(255, 255, 255, 0) 15.2%);
      inline-size: 100%;
      block-size: 100%;
      top: 0;
      left: 0;
      z-index: 3;
    }

    .u-mv-deco {
      z-index: 2;
      &::before {
        background-image: url('../../img/recruit/top/mv_l.png');
        inline-size: 570px;
        block-size: 1100px;
        top: 0;
        left: 0;
        right: unset;
      }

      @media only screen and (width <= 768px) {
        &::before {
          background-image: url('../../img/recruit/top/mv_l_2x.png');
          inline-size: calc((100 / 390) * 352 * 1vw);
          block-size: calc((100 / 390) * 771.5 * 1vw);
        }
      }
      &::after {
        background-image: url('../../img/recruit/top/mv_r.png');
        inline-size: 436px;
        block-size: 878px;
        top: 0;
        bottom: unset;
        left: unset;
        right: 0;
      }

      @media only screen and (width <= 768px) {
        &::after {
          background-image: url('../../img/recruit/top/mv_r_2x.png');
          inline-size: calc((100 / 390) * 86 * 1vw);
          block-size: calc((100 / 390) * 247 * 1vw);
          top: calc((100 / 390) * 225 * 1vw);
        }
      }
    }

    /* ==== 背景スライダー ==== */
    .mv-slider {
      position: absolute;
      overflow: hidden;
      width: 100%;
      min-height: 840px;
      top: 0;
      left: 0;

      @media (width <= 768px) {
        width: 100%;
        min-height: calc((100 / 390) * 647 * 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: 840px;
              object-fit: cover;
              object-position: center;

              @media (width <= 768px) {
                min-height: calc((100 / 390) * 647 * 1vw);
              }
            }
          }
        }
      }
      .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 */
      }
    }

    /* =====================
      CATCH
    ===================== */
    .content {
      position: relative;
      min-height: 840px;
      padding-block-start: 146px;
      padding-block-end: 66px;
      display: block grid;
      align-items: end;
      padding-inline: 40px;
      z-index: 10;

      @media (width <= 768px) {
        min-height: calc((100 / 390) * 647 * 1vw);
        padding-block-start: calc((100 / 390) * 80 * 1vw);
        padding-block-end: calc((100 / 390) * 46 * 1vw);
        padding-inline: calc((100 / 390) * 8 * 1vw);
      }

      .catch {
        text-shadow: 4px 4px 8px #fff;
        font-size: 48px;
        font-weight: bold;
        line-height: 1.3;
        text-align: right;
        inline-size: fit-content;
        margin-inline: auto 0;

        @media only screen and (width <= 768px) {
          text-shadow: calc((100 / 390) * 4 * 1vw) calc((100 / 390) * 4 * 1vw) calc((100 / 390) * 8 * 1vw) #fff;
          font-size: calc((100 / 390) * 24 * 1vw);
        }

        .fs-72 {
          font-size: 72px;

          @media only screen and (width <= 768px) {
            font-size: calc((100 / 390) * 48 * 1vw);
          }
        }

        .u-text-gradation {
          .char {
            background: var(--gradation);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            -webkit-text-fill-color: transparent;
            text-shadow: none;
            filter: drop-shadow(4px 4px 8px #fff);
          }
        }

        .show-up-text {
          overflow: hidden;
          position: relative;
          display: block flow;

          &[data-id='01'] {
            padding-inline-end: 96px;

            @media only screen and (width <= 768px) {
              padding-inline-end: calc((100 / 390) * 22 * 1vw);
            }
          }

          .char {
            display: inline-block;
            overflow: clip;
            white-space: pre;
            opacity: 0;
            translate: 0 100%;
            animation: show-up-text 400ms cubic-bezier(0, 0.6, 0.4, 1) both;
            animation-play-state: paused;
          }

          &.is-show .char {
            animation-play-state: running;
          }
        }
      }
    }
    /* =====================
      Scroll
    ===================== */
    /* スクロールダウンの位置 */
    .scroll {
      position: absolute;
      left: 43px;
      bottom: 128px;
      z-index: 12;

      @media (width <= 768px) {
        left: calc((100 / 390) * 16 * 1vw);
        bottom: calc((100 / 390) * 88 * 1vw);
      }

      /* 線のアニメーション部分 */
      &::before {
        animation: scroll 2s cubic-bezier(1, 0, 0, 1) infinite;
        background: #fff;
        top: 71px;
        border-radius: 50rem;
        content: '';
        height: 64px;
        left: 50%;
        margin: auto;
        position: absolute;
        width: 2px;
        z-index: 2;
      }
      /* 線の背景色 */
      &::after {
        background-color: transparent;
        top: 71px;
        border-radius: 50rem;
        content: '';
        height: 64px;
        left: 50%;
        margin: auto;
        position: absolute;
        width: 2px;
      }
      & > span {
        position: relative;

        &::after {
          content: '';
          display: block flow;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../../img/recruit/top/scroll.svg');
          inline-size: 12px;
          block-size: 54px;
        }

        @media (width <= 768px) {
          &::after {
            inline-size: calc((100 / 390) * 15 * 1vw);
            block-size: calc((100 / 390) * 48 * 1vw);
          }
        }
      }

      @media (width <= 768px) {
        &::before {
          top: calc((100 / 390) * 69 * 1vw);
          height: calc((100 / 390) * 56 * 1vw);
          width: 1px;
        }
        &::after {
          top: calc((100 / 390) * 69 * 1vw);
          height: calc((100 / 390) * 56 * 1vw);
          width: 1px;
        }
      }
    }
  }

  /* =====================
    about
  ===================== */
  .about {
    position: relative;
    padding-block: 72px;
    background: var(--gradation);

    @media only screen and (width <= 768px) {
      padding-block: calc((100 / 390) * 56 * 1vw) calc((100 / 390) * 64 * 1vw);
    }

    &::before {
      content: '';
      position: absolute;
      background-repeat: repeat-x;
      background-size: cover;
      background-position: center;
      background-image: url('../../img/recruit/top/about_bg.png');
      inline-size: 100%;
      min-block-size: 890px;
      pointer-events: none;
    }

    @media only screen and (width <= 768px) {
      &::before {
        background-image: url('../../img/recruit/top/about_bg_2x.png');
        background-size: contain;
        min-block-size: calc((100 / 390) * 906 * 1vw);
        top: 0;
        left: 0;
      }
    }

    &::after {
      content: '';
      position: absolute;
      background-repeat: repeat-x;
      background-size: contain;
      background-position: bottom center;
      background-image: url('../../img/recruit/top/about_office.png');
      inline-size: 100%;
      min-block-size: 436px;
      pointer-events: none;
      bottom: 0;
      left: 0;
    }
    @media only screen and (width <= 768px) {
      &::after {
        background-image: url('../../img/recruit/top/about_office_2x.png');
        min-block-size: calc((100 / 390) * 436 * 1vw);
      }
    }

    .inner {
      position: relative;
      inline-size: 1440px;
      margin-inline: auto;
      display: block flex;
      align-items: start;
      justify-content: space-between;
      z-index: 5;

      @media only screen and (width <= 768px) {
        inline-size: 100%;
        flex-direction: column;

        .sp-img {
          display: block flow;
          margin-inline: auto 0;
        }
      }

      .unit {
        padding-inline-start: 120px;
        margin-block-start: 128px;

        @media only screen and (width <= 768px) {
          padding-inline: calc((100 / 390) * 16 * 1vw);
          margin-block-start: calc((100 / 390) * 40 * 1vw);
        }

        .catch {
          font-size: 32px;
          font-weight: 600;
          color: #fff;
          margin-block-start: 57px;

          @media (width <= 768px) {
            font-size: calc((100 / 390) * 20 * 1vw);
            margin-block-start: calc((100 / 390) * 33 * 1vw);
          }
        }

        .description {
          margin-block-start: 1.5em;
          color: #fff;
          line-height: 2;

          @media only screen and (width <= 768px) {
            margin-block-start: 0.52em;
          }

          &:first-of-type {
            margin-block-start: 1.9em;

            @media only screen and (width <= 768px) {
              margin-block-start: 1.1em;
            }
          }
        }

        .u-anchor {
          margin-block-start: 48px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 22 * 1vw);
          }
        }
      }
      .img {
        display: block flow;
        flex-shrink: 0;

        @media only screen and (width <= 768px) {
          inline-size: calc((100 / 390) * 358 * 1vw);
          margin-block-start: calc((100 / 390) * 22 * 1vw);
          margin-inline: auto;
        }
      }
    }
  }

  /* =====================
    culture
  ===================== */
  .culture {
    position: relative;
    padding-block-start: 144px;
    padding-block-end: 145px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../../img/recruit/top/culture_bg.png');

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 96 * 1vw);
      padding-block-end: calc((100 / 390) * 94 * 1vw);
    }

    &::before {
      content: '';
      position: absolute;
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
      background-image: url('../../img/recruit/top/deco_01.png');
      inline-size: 343px;
      block-size: 219px;
      pointer-events: none;
      top: -111px;
      right: 0;
    }

    @media only screen and (width <= 768px) {
      &::before {
        background-image: url('../../img/recruit/top/deco_01_2x.png');
        inline-size: calc((100 / 390) * 182.5 * 1vw);
        block-size: calc((100 / 390) * 119 * 1vw);
        top: calc((100 / 390) * -67 * 1vw);
      }
    }

    &::after {
      content: '';
      position: absolute;
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
      background-image: url('../../img/recruit/top/deco_02.png');
      inline-size: 414px;
      block-size: 327px;
      pointer-events: none;
      bottom: -222px;
      left: 0;
      z-index: 8;
    }

    @media only screen and (width <= 768px) {
      &::after {
        background-image: url('../../img/recruit/top/deco_02_2x.png');
        inline-size: calc((100 / 390) * 171.5 * 1vw);
        block-size: calc((100 / 390) * 130.5 * 1vw);
        bottom: calc((100 / 390) * -57 * 1vw);
      }
    }

    .u-inner {
      .img {
        display: block flow;
        overflow: hidden;
        block-size: 302px;
        margin-inline-start: calc(-1 * ((max(100vw, 1440px) - 100%) / 2));
        inline-size: calc(100% + ((max(100vw, 1440px) - 100%) / 2) - 10px);

        @media only screen and (width <= 768px) {
          block-size: calc((100 / 390) * 180 * 1vw);
          margin-inline: calc(50% - 50vw);
          inline-size: 100vw;
        }

        & img {
          inline-size: 100%;
          border-radius: 0 30px 30px 0;
          object-fit: cover;
          object-position: bottom center;

          @media only screen and (width <= 768px) {
            border-radius: unset;
          }
        }
      }

      .wrap {
        position: relative;
        padding-inline: 560px 50px;
        display: block grid;
        grid-template-columns: repeat(2, max-content);
        align-items: start;
        justify-content: space-between;
        gap: 56px;
        margin-block-start: 64px;

        @media only screen and (width <= 768px) {
          padding-inline: 0;
          grid-template-columns: 1fr;
          justify-items: center;
          gap: calc((100 / 390) * 24 * 1vw);
          margin-block-start: calc((100 / 390) * 135 * 1vw);
        }

        &::before {
          content: '';
          position: absolute;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../../img/recruit/top/culture_02.png');
          inline-size: 430px;
          block-size: 287px;
          pointer-events: none;
          top: -112px;
          left: 50px;
        }

        @media only screen and (width <= 768px) {
          &::before {
            background-image: url('../../img/recruit/top/culture_02_2x.png');
            inline-size: calc((100 / 390) * 220 * 1vw);
            block-size: calc((100 / 390) * 147 * 1vw);
            top: calc((100 / 390) * -187 * 1vw);
            left: 50%;
            transform: translateX(-50%);
          }
        }

        .u-head {
          grid-area: 1/1/2/2;

          @media only screen and (width <= 768px) {
            grid-area: 1/1/2/2;
          }
        }

        .u-anchor {
          grid-area: 1/2/2/3;
          margin-inline: auto;

          @media only screen and (width <= 768px) {
            grid-area: 3/1/4/2;
          }
        }

        .description {
          grid-area: 2/1/3/3;

          @media only screen and (width <= 768px) {
            grid-area: 2/1/3/2;
            text-align: center;
          }
        }
      }
    }
  }
  /* =====================
    person
  ===================== */
  .person {
    position: relative;
    padding-block: 144px;
    background-color: #1bb9ee;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 64 * 1vw);
      padding-block-end: calc((100 / 390) * 61 * 1vw);
    }

    &::before {
      content: '';
      position: absolute;
      background-repeat: repeat-x;
      background-size: contain;
      background-position: center;
      background-image: url('../../img/recruit/top/person_dot.png');
      inline-size: 100%;
      min-block-size: 701px;
      pointer-events: none;
    }

    @media only screen and (width <= 768px) {
      &::before {
        background-image: url('../../img/recruit/top/person_dot_2x.png');
        min-block-size: calc((100 / 390) * 654 * 1vw);
      }
    }

    &::after {
      content: '';
      position: absolute;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center right;
      background-image: url('../../img/recruit/top/person_circle.png');
      inline-size: 66.31944444444444%;
      min-block-size: 701px;
      pointer-events: none;
      top: 0;
      right: 0;
    }

    @media only screen and (width <= 768px) {
      &::after {
        background-image: url('../../img/recruit/top/person_circle_2x.png');
        inline-size: 100%;
        min-block-size: calc((100 / 390) * 654 * 1vw);
        top: unset;
        bottom: 0;
        left: 0;
      }
    }

    .u-inner {
      .wrap {
        position: relative;
        padding-inline: 50px;
        display: block flex;
        align-items: center;
        gap: 180px;
        z-index: 5;

        @media only screen and (width <= 768px) {
          padding-inline: 0;
          flex-direction: column;
          gap: calc((100 / 390) * 48 * 1vw);

          .img {
            inline-size: calc((100 / 390) * 294 * 1vw);
          }
        }

        .unit {
          position: relative;
          display: block grid;
          row-gap: 56px;

          @media only screen and (width <= 768px) {
            row-gap: calc((100 / 390) * 24 * 1vw);
            justify-items: center;
            text-align: center;

            .u-head {
              & span[lang='en'] {
                justify-content: center;
              }
            }
          }
        }
      }
    }
  }

  /* =====================
    qa
  ===================== */
  .qa {
    position: relative;
    padding-block: 144px;
    background-color: #f3ffff;

    @media only screen and (width <= 768px) {
      padding-block: calc((100 / 390) * 64 * 1vw);
    }

    .u-inner {
      position: relative;
      z-index: 5;

      .wrap {
        background-color: #fff;
        padding-inline: 80px;
        padding-block: 80px;
        margin-inline: 10px;
        display: block grid;
        grid-template-columns: max-content auto;
        align-items: start;
        justify-content: space-between;

        @media only screen and (width <= 768px) {
          padding-inline: calc((100 / 390) * 16 * 1vw);
          padding-block: calc((100 / 390) * 48 * 1vw) calc((100 / 390) * 48 * 1vw);
          margin-inline: calc(50% - 50vw);
          grid-template-columns: 1fr;
          justify-items: center;
          justify-content: center;
        }

        .u-head {
          grid-area: 1/1/2/2;

          @media only screen and (width <= 768px) {
            justify-content: center;
            align-items: center;

            & span[lang='en'] {
              justify-content: center;
            }
          }
        }
        .u-anchor {
          grid-area: 1/2/2/3;
          margin-inline: auto 0;

          @media only screen and (width <= 768px) {
            grid-area: 3/1/4/2;
            margin-inline: auto;
            margin-block-start: calc((100 / 390) * 24 * 1vw);
          }
        }

        .qa-list {
          margin-block-start: 56px;
          grid-area: 2/1/3/3;

          @media (width <= 768px) {
            grid-area: 2/1/3/2;
            margin-block-start: calc((100 / 390) * 22 * 1vw);
          }
          .item {
            section {
              position: relative;
              cursor: pointer;
              padding-block: 42px;
              padding-inline: 40px;
              background-image: var(--gradation);
              border-radius: 20px;

              @media (width <= 768px) {
                padding-inline: calc((100 / 390) * 24 * 1vw);
                padding-block: calc((100 / 390) * 32 * 1vw);
                border-radius: calc((100 / 390) * 20 * 1vw);
              }

              &::before {
                content: '';
                position: absolute;
                inset: 1px;
                background-color: #f3ffff;
                border-radius: 20px;
                pointer-events: none;
              }

              @media only screen and (width <= 768px) {
                &::before {
                  border-radius: calc((100 / 390) * 20 * 1vw);
                }
              }

              /* ==== タイトル ==== */
              .q-title {
                position: relative;
                display: block flex;
                gap: 48px;
                align-items: baseline;

                @media (width <= 768px) {
                  display: block flow;
                  padding-inline-end: calc((100 / 390) * 32 * 1vw);
                }

                .question {
                  position: relative;
                  font-size: 24px;
                  font-weight: 500;
                  line-height: 1.2;

                  @media only screen and (width <= 768px) {
                    font-size: calc((100 / 390) * 18 * 1vw);
                    display: block flex;
                    align-items: baseline;
                    gap: calc((100 / 390) * 9 * 1vw);
                    line-height: 1.5;
                  }

                  &::before {
                    content: 'Q';
                    display: inline-block;
                    background-image: var(--gradation);
                    font-family: var(--title);
                    font-size: 36px;
                    line-height: 1.2;
                    -webkit-background-clip: text;
                    background-clip: text;
                    -webkit-text-fill-color: transparent;
                    padding-inline: 10px;
                    margin-inline-end: 24px;
                  }

                  @media only screen and (width <= 768px) {
                    &::before {
                      font-size: calc((100 / 390) * 24 * 1vw);
                      padding-inline: calc((100 / 390) * 2 * 1vw);
                      margin-inline-end: 0;
                      flex-shrink: 0;
                    }
                  }
                }
              }
              /* ==== アコーディオンで現れるエリア ==== */
              .answer-box {
                position: relative;
                display: none;
                padding-block: 32px;
                margin-block-start: 32px;

                @media (width <= 768px) {
                  padding-block: calc((100 / 390) * 16 * 1vw);
                  margin-block-start: calc((100 / 390) * 16 * 1vw);
                }

                &::before {
                  content: '';
                  position: absolute;
                  background-image: linear-gradient(to right, #1bb9ee 50%, transparent 50%);
                  background-size: 12px 2px;
                  background-repeat: repeat-x;
                  background-position: left bottom;
                  inline-size: 100%;
                  block-size: 2px;
                  top: 0;
                  left: 0;
                }

                @media only screen and (width <= 768px) {
                  &::before {
                    background-size: calc((100 / 390) * 20 * 1vw) calc((100 / 390) * 2 * 1vw);
                    inline-size: calc((100 / 390) * 310 * 1vw);
                    block-size: calc((100 / 390) * 2 * 1vw);
                  }
                }

                & p + p {
                  margin-block-start: 1.8em;

                  @media only screen and (width <= 768px) {
                    margin-block-start: 1em;
                  }
                }
              }
            }

            & + .item {
              margin-block-start: 32px;

              @media only screen and (width <= 768px) {
                margin-block-start: calc((100 / 390) * 16 * 1vw);
              }
            }
          }
        }

        /* ==== 右の十字 ==== */
        .q-title {
          &:before,
          &:after {
            content: '';
            position: absolute;
            margin: auto;
            box-sizing: border-box;
            vertical-align: middle;
          }
          &:before {
            background: var(--gradation);
            inline-size: 24px;
            block-size: 2px;
            top: 0;
            bottom: 0;
            right: 0;
          }
          &:after {
            background: linear-gradient(90deg, #003b82 0%, #1bb9ee 66.35%);
            inline-size: 2px;
            block-size: 24px;
            top: 0;
            bottom: 0;
            right: 11px;
            transition: 0.3s;
          }

          @media (width <= 768px) {
            &:before {
              inline-size: calc((100 / 390) * 16 * 1vw);
              block-size: calc((100 / 390) * 2 * 1vw);
            }
            &:after {
              inline-size: calc((100 / 390) * 2 * 1vw);
              block-size: calc((100 / 390) * 16 * 1vw);
              right: calc((100 / 390) * 7 * 1vw);
            }
          }
        }
        /*　closeというクラスがついたら形状変化　*/
        section.close .q-title:after {
          height: 0;
        }
        @media (width <= 768px) {
          section.close .q-title .date:after {
            height: 0;
          }
        }
      }
    }
  }

  /* =====================
    flow
  ===================== */
  .flow {
    position: relative;
    padding-block-start: 144px;
    padding-block-end: 144px;

    @media only screen and (width <= 768px) {
      padding-block: calc((100 / 390) * 64 * 1vw);
    }

    &::before {
      content: '';
      position: absolute;
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
      background-image: url('../../img/recruit/top/deco_03.png');
      inline-size: 366px;
      block-size: 322px;
      pointer-events: none;
      top: -106px;
      right: 0;
    }

    @media only screen and (width <= 768px) {
      &::before {
        background-image: url('../../img/recruit/top/deco_03_2x.png');
        inline-size: calc((100 / 390) * 180 * 1vw);
        block-size: calc((100 / 390) * 160 * 1vw);
        top: calc((100 / 390) * -112 * 1vw);
        z-index: 8;
      }
    }

    .flow-list {
      margin-inline: 50px;
      margin-block-start: 58px;
      display: block grid;
      grid-template-columns: repeat(4, 240px);
      gap: 80px;
      counter-reset: number;

      @media only screen and (width <= 768px) {
        margin-inline: calc((100 / 390) * 16 * 1vw);
        margin-block-start: calc((100 / 390) * 24 * 1vw);
        grid-template-columns: 1fr;
        gap: calc((100 / 390) * 69 * 1vw);
      }

      .item {
        position: relative;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
        background-image: url('../../img/recruit/top/flow_step_bg.png');
        display: block grid;
        grid-template-rows: repeat(4, max-content);
        align-items: start;
        justify-items: center;
        border-radius: 20px;
        padding-block: 40px 31px;
        padding-inline: 32px;

        @media only screen and (width <= 768px) {
          background-image: url('../../img/recruit/top/flow_step_bg_2x.png');
          border-radius: calc((100 / 390) * 20 * 1vw);
          padding-block: calc((100 / 390) * 32 * 1vw);
          padding-inline: calc((100 / 390) * 16 * 1vw);
        }

        &::after {
          content: '';
          position: absolute;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../../img/recruit/top/flow_arrow.svg');
          inline-size: 58px;
          block-size: 24px;
          pointer-events: none;
          top: 50%;
          right: -69px;
          transform: translateY(-50%);
        }

        @media only screen and (width <= 768px) {
          &::after {
            background-image: url('../../img/recruit/top/flow_arrow_2x.svg');
            inline-size: calc((100 / 390) * 18 * 1vw);
            block-size: calc((100 / 390) * 45 * 1vw);
            inset: unset;
            bottom: calc((100 / 390) * -60 * 1vw);
            left: 50%;
            transform: translateX(-50%);
          }
        }

        &:last-child {
          &::after {
            display: none;
          }
        }

        .number {
          inline-size: fit-content;
          border-radius: 50rem;
          background-color: #fff;
          font-family: var(--title);
          font-size: 24px;
          line-height: 1;
          display: block grid;
          place-content: center;
          padding-inline: 32px;
          padding-block: 11px;

          @media only screen and (width <= 768px) {
            font-size: calc((100 / 390) * 20 * 1vw);
            padding-inline: calc((100 / 390) * 34 * 1vw);
            padding-block: calc((100 / 390) * 12 * 1vw);
          }

          .u-text-gradation {
            position: relative;

            &::after {
              counter-increment: number;
              content: counter(number);
              display: inline-block;
              margin-inline-start: 11px;
            }
          }
        }
        .icon {
          margin-block-start: 41px;

          @media only screen and (width <= 768px) {
            margin-block-start: calc((100 / 390) * 16 * 1vw);
            inline-size: calc((100 / 390) * 64 * 1vw);
          }
        }

        .title {
          margin-block-start: 40px;
          font-size: 24px;
          font-weight: 500;
          color: var(--primary);

          @media only screen and (width <= 768px) {
            font-size: calc((100 / 390) * 20 * 1vw);
            margin-block-start: calc((100 / 390) * 5 * 1vw);
          }
        }

        .description {
          margin-block-start: 20px;

          @media only screen and (width <= 768px) {
            margin-block-start: calc((100 / 390) * 4 * 1vw);
          }
        }
      }
    }
  }
}

/* =====================
animation
===================== */

/* ==== js-parallax ==== */
.js-parallax {
  opacity: 0;
  transition: all 1s ease-in-out 0s;
  transform: translateY(1em);
  &.on {
    opacity: 1;
    transform: translateY(0);
  }
}
