@charset "UTF-8";

/* =====================
  Animation
===================== */
:root {
  --scroll-block-size: 48px;
}

@media (width <= 768px) {
  :root {
    --scroll-block-size: calc((100 / 390) * 48 * 1vw);
  }
}

@keyframes scroll {
  0% {
    block-size: 0;
  }

  80% {
    block-size: var(--scroll-block-size);
  }

  90% {
    opacity: 1;
  }

  100% {
    block-size: var(--scroll-block-size);
    opacity: 0;
  }
}

/* =====================
  animation
===================== */
@keyframes show-up-text {
  0% {
    opacity: 0;
    translate: 0 100%;
  }

  100% {
    opacity: 1;
    translate: 0 0%;
  }
}

/* =====================
  mv
===================== */
.mv {
  position: relative;
  width: 100%;
  min-block-size: 864px;

  @media (width <= 768px) {
    min-block-size: calc((100 / 390) * 807 * 1vw);
  }

  /* bg */
  &::before {
    position: absolute;
    inline-size: 38.2%;
    block-size: 100%;
    pointer-events: none;
    content: '';
    background-image: url('../img/top/mv/bg.webp');
    background-repeat: no-repeat;
    background-position: center right;
    background-size: cover;
  }

  @media (width <= 768px) {
    &::before {
      position: absolute;
      inset-block-start: 100.4vw;
      inset-inline-start: 50%;
      inline-size: 100%;
      block-size: calc((100 / 390) * 764 * 1vw);
      background-image: url('../img/top/mv/bg_sp.webp');
      background-position: center top;
      background-size: contain;
      translate: -50% 0;
    }
  }

  /* ==== inner ==== */
  .inner {
    position: relative;
    max-inline-size: 1280px;
    block-size: inherit;
    margin-inline: auto;

    .hero {
      block-size: inherit;
      padding-block: 243px 0;

      @media (width <= 768px) {
        padding-block: 0;
      }
    }
  }

  /* ==== catch ==== */
  .catch {
    padding-inline-start: 40px;
    font-family: var(--jp);
    font-size: 32px;
    font-weight: 500;
    line-height: 2;
    color: var(--gray400);

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 463 * 1vw);
      padding-inline-start: calc((100 / 390) * 32 * 1vw);
      font-size: calc((100 / 390) * 24 * 1vw);
    }

    & span {
      display: block flow;

      @media (width <= 768px) {
        &:not(:first-child) {
          display: inline;
        }
      }
    }
  }

  /* ==== catch-sub ==== */
  .catch-sub {
    padding-block-start: 142px;
    font-family: var(--title);

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 30 * 1vw);
      padding-inline-start: calc((100 / 390) * 32 * 1vw);
    }

    & span {
      inline-size: fit-content;
      margin-block: calc((1em - 1lh) / 2);
      line-height: 1;

      &:first-child {
        display: block flow;
        margin-block-end: 32px;

        @media (width <= 768px) {
          margin-block-end: calc((100 / 390) * 13 * 1vw);
        }
      }

      &:last-child {
        padding-inline-start: 34px;

        @media (width <= 768px) {
          display: inline;
          padding-inline-start: calc((100 / 390) * 16 * 1vw);
        }
      }

      &:first-child,
      &:last-child {
        font-size: 96px;
        font-weight: 500;
        color: transparent;
        background-image: linear-gradient(102deg, #274827 15.2%, #aad59a 135.62%);
        background-clip: text;
        -webkit-text-fill-color: transparent;

        @media (width <= 768px) {
          font-size: calc((100 / 390) * 57 * 1vw);
        }
      }

      &:nth-child(2) {
        display: inline-flex;
        padding-inline-start: 79px;
        font-size: 80px;
        font-weight: 400;
        color: var(--gray300);

        @media (width <= 768px) {
          display: inline;
          padding-inline-start: calc((100 / 390) * 16 * 1vw);
          font-size: calc((100 / 390) * 44 * 1vw);
        }
      }
    }
  }

  /* ==== mv-slider ==== */
  .mv-slider {
    position: absolute;
    inset-block-start: 136px;
    inset-inline-end: 0;
    max-inline-size: 758px;

    @media (width <= 768px) {
      position: absolute;
      inset-block-start: calc((100 / 390) * 104 * 1vw);
      inset-inline-start: 50%;
      inline-size: calc((100 / 390) * 358 * 1vw);
      margin-inline: auto;
      translate: -50% 0;
    }
  }

  /* ==== scroll ==== */
  .scroll {
    position: absolute;
    inset-block-start: 654px;
    inset-inline-end: 56.2px;
    display: block grid;
    gap: 11px;
    align-items: center;
    justify-content: center;

    @media (width <= 768px) {
      inset-block-start: 123vw;
      inset-inline-end: calc((100 / 390) * 32.8 * 1vw);
      gap: calc((100 / 390) * 11 * 1vw);
    }

    &::before,
    &::after {
      content: '';
    }

    &::before {
      inline-size: 13px;
      block-size: 39px;
      background-image: url('../img/top/mv/scroll.svg');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
    }

    @media (width <= 768px) {
      &::before {
        inline-size: calc((100 / 390) * 11 * 1vw);
        block-size: calc((100 / 390) * 36 * 1vw);
      }
    }

    &::after {
      display: block flow;
      inline-size: 1px;
      block-size: 48px;
      margin-inline: auto;
      background: var(--gradation-green);
      translate: -1px 0;
      animation: scroll 2500ms ease 0ms infinite normal none running;
    }

    @media (width <= 768px) {
      &::after {
        block-size: calc((100 / 390) * 48 * 1vw);
        translate: calc((100 / 390) * -1 * 1vw);
      }
    }
  }

  /* ==== list ==== */
  .list {
    position: absolute;
    inset-block-start: 796px;
    inset-inline-end: 0;
    z-index: 30;

    @media (width <= 768px) {
      position: relative;
      inset: unset;
    }

    & a {
      position: relative;
      display: block grid;
      grid-template-columns: auto 1fr;
      gap: 13px 32px;
      inline-size: 639px;
      padding-block: 20px 23px;
      padding-inline: 40px;
      background: var(--gray100);
      border-radius: calc(infinity * 1px);
      transition: all 250ms ease 0s;

      @media (width <= 768px) {
        display: block flex;
        flex-direction: column;
        gap: 0;
        inline-size: calc((100 / 390) * 358 * 1vw);
        padding-block: 6.2vw;
        padding-inline: 6.2vw;
        margin-block-start: calc((100 / 390) * 84 * 1vw);
        margin-inline: auto;
        border-radius: calc((100 / 390) * 10 * 1vw);
      }

      @media (any-hover: hover) {
        &:hover {
          box-shadow: 0 0 6px 2px color-mix(in srgb, var(--green), transparent 80%);
        }
      }

      &::before {
        grid-area: 1 / 1 / 3 / 2;
        font-family: var(--title);
        font-size: 20px;
        font-weight: 500;
        line-height: 1;
        color: var(--green);
        content: 'News';
      }

      @media (width <= 768px) {
        &::before {
          font-size: calc((100 / 390) * 20 * 1vw);
        }
      }

      & time {
        grid-area: 1 / 2 / 2 / 3;
        margin-block: calc((1em - 1lh) / 2);
        font-family: var(--title);
        font-weight: 400;
        color: var(--gray300);

        @media (width <= 768px) {
          display: block flow;
          margin-block-start: 2.3vw;
        }
      }

      .title {
        display: block flow;
        grid-area: 2 / 2 / 3 / 3;
        padding-inline-end: 40px;
        margin-block: calc((1em - 1lh) / 2);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;

        @media (width <= 768px) {
          padding-inline-end: 11vw;
          margin-block-start: -0.9vw;
        }
      }

      &::after {
        position: absolute;
        inset-block-start: 49%;
        inset-inline-end: 40px;
        inline-size: 23px;
        aspect-ratio: 23 / 12;
        content: '';
        background-color: var(--green);
        mask-image: var(--icon-arrow);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
        translate: 0 -50%;
        transition: inherit;
      }

      @media (width <= 768px) {
        &::after {
          inset-block-start: 65%;
          inset-inline-end: 6.2vw;
          inline-size: calc((100 / 390) * 21 * 1vw);
        }
      }

      @media (any-hover: hover) {
        &:hover {
          &::after {
            translate: 6px -50%;
          }
        }
      }
    }
  }
}

/* =====================
  company
===================== */
.company {
  position: relative;
  z-index: 2;
  padding-block: 123px 0;

  @media (width <= 768px) {
    padding-block: calc((100 / 390) * 61 * 1vw) 0;
  }

  &::before {
    position: absolute;
    inset-block-end: -119px;
    inset-inline: auto;
    display: block flow;
    inline-size: 100%;
    block-size: 703px;
    pointer-events: none;
    content: '';
    background-image: url('../img/top/company/bg.webp');
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: cover;
  }

  @media (width > 1440px) {
    &::before {
      background-image: url('../img/top/company/bg_l.webp');
    }
  }

  @media (width <= 768px) {
    &::before {
      inset-block-end: -16.5vw;
      block-size: calc((100 / 390) * 1060 * 1vw);
      background-image: url('../img/top/company/bg_sp.webp');
    }
  }

  /* ==== .inner ==== */
  .inner {
    position: relative;
    z-index: 2;
    display: block grid;
    gap: 56px;
    justify-content: center;
    max-inline-size: 1360px;
    margin-inline: auto;
    text-align: center;

    @media (width <= 768px) {
      gap: 9.7vw;
      padding-inline: calc((100 / 390) * 32 * 1vw);
    }
  }

  /* ==== u-head ==== */
  .u-head {
    gap: 47px;

    @media (width <= 768px) {
      gap: 10.4vw;
    }

    & span[lang='en'] {
      color: var(--green);
    }

    .title {
      display: block grid;
      font-size: 32px;
      font-weight: 500;

      @media (width <= 768px) {
        font-size: calc((100 / 390) * 23 * 1vw);
      }

      & span {
        line-height: 2;
        color: transparent;
        background: linear-gradient(99deg, #274827 15.76%, #aad59a 97.34%);
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }
    }
  }

  /* ==== body ==== */
  .body {
    display: block grid;
    gap: 36px;
    font-size: 18px;

    @media (width <= 768px) {
      gap: 7.8vw;
      font-size: calc((100 / 390) * 15 * 1vw);
    }

    & p {
      line-height: 2;
    }
  }

  /* ==== u-anchor ==== */
  .u-anchor {
    margin-block-start: 13px;
    margin-inline: auto;

    @media (width <= 768px) {
      margin-block-start: calc((100 / 390) * 8 * 1vw);
    }
  }

  /* ==== img ==== */
  .img1 {
    position: absolute;
    inset-block-start: 25px;
    inset-inline-end: 0;
    inline-size: 228px;

    @media (width <= 768px) {
      position: relative;
      inset: unset;
      inset-inline-end: -4.2vw;
      inline-size: calc((100 / 390) * 163 * 1vw);
      margin-block-start: calc((100 / 390) * 20 * 1vw);
      margin-inline: auto 0;
    }
  }

  .img2 {
    position: absolute;
    inset-block-end: 41px;
    inset-inline-start: 0;
    inline-size: 180px;

    @media (width <= 768px) {
      position: relative;
      inset: unset;
      inset-inline-start: -4vw;
      inline-size: calc((100 / 390) * 136 * 1vw);
      margin-block-start: -31.1vw;
    }
  }
}

/* =====================
  products
===================== */
.products {
  padding-block: 182px 200px;

  @media (width <= 768px) {
    padding-block: 28.7vw 37vw;
  }

  /* ==== list ==== */
  .list {
    display: block grid;
    grid-template-rows: subgrid;
    grid-template-columns: repeat(2, 1fr);
    grid-row: span 3;
    gap: 80px;
    align-items: flex-start;
    margin-block-start: 44px;

    @media (width <= 768px) {
      display: block flex;
      flex-direction: column;
      gap: 10vw;
      margin-block-start: 8.7vw;
    }

    & li {
      position: relative;
      display: block grid;

      & a {
        display: block grid;
        grid-template-columns: 1fr auto;
        padding-inline: 24px;
        margin-block-start: 24px;
        font-size: 20px;
        font-weight: 500;
        color: var(--green);
        transition: all 250ms ease 0s;

        @media (width <= 768px) {
          padding-inline: 0;
          margin-block-start: 5.2vw;
          font-size: calc((100 / 390) * 18 * 1vw);
        }

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

        &::before {
          position: absolute;
          inset: 0;
          z-index: 2;
          inline-size: 100%;
          block-size: 100%;
          content: '';
        }

        &::after {
          inline-size: 40px;
          aspect-ratio: 1 / 1;
          content: '';
          background-color: currentcolor;
          mask-image: var(--icon-arrow-circle);
          mask-repeat: no-repeat;
          mask-position: center;
          mask-size: contain;
          transition: all 250ms ease 0s;
        }

        @media (width <= 768px) {
          &::after {
            inline-size: calc((100 / 390) * 34 * 1vw);
            translate: 0 0.5vw;
          }
        }

        @media (any-hover: hover) {
          &:hover {
            &::after {
              translate: 4px 0;
            }
          }
        }
      }

      & p {
        max-inline-size: 490px;
        padding-inline: 24px 0;
        margin-block-start: 8px;
        line-height: 2;

        @media (width <= 768px) {
          padding-inline: 0;
          font-size: calc((100 / 390) * 14 * 1vw);
        }
      }
    }
  }

  /* ==== maker ==== */
  .maker {
    position: relative;
    display: grid;
    grid-template-columns: auto auto auto 1fr;
    gap: 64px;
    align-items: center;
    padding-block: 0;
    margin-block-start: 111px;
    overflow: clip;
    background: var(--gray100);
    border-radius: 10px;

    @media (width <= 768px) {
      display: block flex;
      flex-direction: column;
      gap: 0;
      align-items: flex-start;
      padding-block-end: 6.1vw;
      margin-block-start: 14.4vw;
      border-radius: calc((100 / 390) * 10 * 1vw);
    }

    @media (any-hover: hover) {
      &:hover {
        .u-head,
        .body,
        .anchor {
          opacity: 0.6;
        }

        .anchor {
          &::after {
            translate: 4px 0;
          }
        }
      }
    }

    /* ==== picture ==== */
    & picture {
      @media (width <= 768px) {
        & img {
          inline-size: calc((100 / 390) * 326 * 1vw);
        }
      }
    }

    /* ==== u-head ==== */
    .u-head {
      transition: all 250ms ease 0s;

      @media (width > 768px) {
        translate: 0 3px;
      }

      @media (width <= 768px) {
        padding-inline: calc((100 / 390) * 24 * 1vw);
        margin-block-start: calc((100 / 390) * 32 * 1vw);
        margin-inline: unset;
      }
    }

    /* ==== body ==== */
    .body {
      line-height: 2;
      transition: all 250ms ease 0s;

      @media (width > 768px) {
        translate: 0 -1px;
      }

      @media (width <= 768px) {
        padding-inline: calc((100 / 390) * 24 * 1vw) calc((100 / 390) * 40 * 1vw);
        margin-block-start: calc((100 / 390) * 16 * 1vw);
      }
    }

    /* ==== anchor ==== */
    .anchor {
      padding-inline-end: 64px;
      transition: all 250ms ease 0s;

      @media (width <= 768px) {
        padding-inline-end: 0;
      }

      &::after {
        display: block flow;
        inline-size: 40px;
        aspect-ratio: 1 / 1;
        margin-inline: auto 0;
        content: '';
        background-color: var(--green);
        mask-image: var(--icon-arrow-circle);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
        transition: inherit;
      }

      @media (width <= 768px) {
        &::after {
          position: absolute;
          inset-block-end: 42vw;
          inset-inline-start: 68.7vw;
          inline-size: calc((100 / 390) * 34 * 1vw);
        }
      }

      &::before {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: block flow;
        inline-size: 100%;
        block-size: 100%;
        content: '';
      }
    }
  }
}

/* =====================
  recruit
===================== */
.recruit {
  padding-block: 104px 155px;
  background: var(--lightgreen);

  @media (width <= 768px) {
    padding-block: 16.9vw 16.3vw;
  }

  /* ==== u-inner ==== */
  .u-inner {
    position: relative;
    display: block grid;
    grid-template-columns: auto 1fr;
    gap: 52px 93px;

    @media (width <= 768px) {
      display: block flex;
      flex-direction: column;
      gap: 0;
    }
  }

  /* ==== picture ==== */
  .picture {
    position: absolute;
    inset-block-start: -184px;
    inset-inline-end: 0;
    pointer-events: none;

    @media (width > 768px) {
      max-inline-size: 758px;
      max-block-size: 592px;
    }

    @media (width <= 768px) {
      position: unset;
      inset: unset;
      margin-block-start: -37.4vw;
    }
  }

  /* ==== u-head ==== */
  .u-head {
    position: relative;
    z-index: 2;
    grid-area: 1 / 1 / 2 / 2;

    @media (width <= 768px) {
      margin-block-start: 8.2vw;
    }
  }

  /* ==== catch ==== */
  .catch {
    position: relative;
    z-index: 2;
    grid-area: 2 / 1 / 3 / 2;
    inline-size: fit-content;
    margin-block: calc((1em - 1lh) / 2);
    font-size: 32px;
    font-weight: 500;
    background: linear-gradient(99deg, #274827 15.76%, #aad59a 97.34%);
    background-clip: text;
    -webkit-text-fill-color: transparent;

    @media (width <= 768px) {
      margin-block-start: 6.4vw;
      font-size: calc((100 / 390) * 23 * 1vw);
    }

    & span {
      display: block flow;
      line-height: 2;
    }
  }

  /* ==== body ==== */
  .body {
    position: relative;
    z-index: 2;
    grid-area: 3 / 1 / 4 / 2;
    margin-block: calc((1em - 1lh) / 2);

    @media (width <= 768px) {
      margin-block-start: 6.4vw;
    }

    & span {
      display: block flow;
      line-height: 2;

      @media (width <= 768px) {
        display: inline;
      }
    }
  }

  /* ==== u-anchor ==== */
  .u-anchor {
    position: relative;
    z-index: 2;
    grid-area: 3 / 2 / 4 / 3;

    @media (width > 768px) {
      translate: 0 -7px;
    }

    @media (width <= 768px) {
      margin-block-start: 12.1vw;
    }
  }
}

/* =====================
  sdgs
===================== */
.sdgs {
  padding-block-start: 80px;
  overflow: clip;
  background-image: var(--bg-grid);
  background-repeat: repeat;
  background-position: center center;
  background-size: 29px 29px;

  @media (width <= 768px) {
    padding-block-start: 0;
    background-size: calc((100 / 390) * 29 * 1vw) calc((100 / 390) * 29 * 1vw);

    .u-inner {
      padding-inline: 0;
    }
  }

  /* ==== .unit[data-id="1"] ==== */
  .unit[data-id='1'] {
    position: relative;
    min-block-size: 836px;

    @media (width <= 768px) {
      min-block-size: 100%;
    }

    &::before {
      position: absolute;
      inset-block-start: 0;
      inset-inline-start: 50%;
      z-index: 2;
      inline-size: 1070px;
      block-size: 836px;
      pointer-events: none;
      content: '';
      background-image: url('../img/top/sdgs/bg.webp');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      translate: -50% 0;
    }

    @media (width <= 768px) {
      &::before {
        inset-block-start: -2.6vw;
        inline-size: 100%;
        block-size: calc((100 / 390) * 764 * 1vw);
        background-image: url('../img/top/sdgs/bg_sp.webp');
      }
    }

    &::after {
      position: absolute;
      inset-block-start: -50px;
      left: 50%;
      z-index: 1;
      inline-size: 1200px;
      block-size: 936px;
      pointer-events: none;
      content: '';
      background: white;
      border-radius: 620px;
      clip-path: ellipse(600px 468px at 50% 50%);
      translate: -50% 0;
    }

    @media (width <= 768px) {
      &::after {
        position: absolute;
        inset-inline-start: 50%;
        z-index: 1;
        inline-size: 100%;
        block-size: calc((100 / 390) * 764 * 1vw);
        pointer-events: none;
        content: '';
        background: none;
        background-image: url('../img/top/sdgs/bg_sp.webp');
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        border-radius: 0;
        filter: brightness(0) invert(1);
        clip-path: unset;
        translate: -50% 6.1vw;
      }
    }

    /* ==== inner ==== */
    .inner {
      position: relative;
      z-index: 2;
      display: block grid;
      gap: 56px;
      justify-content: center;
      padding-block: 120px 123px;
      text-align: center;

      @media (width <= 768px) {
        gap: 0;
        padding-block: calc((100 / 390) * 144 * 1vw) 0;
      }

      /* ==== catch ==== */
      .catch {
        inline-size: fit-content;
        margin-block: calc((1em - 1lh) / 2);
        margin-inline: auto;
        font-size: 32px;
        font-weight: 500;
        background: linear-gradient(99deg, #274827 15.76%, #aad59a 97.34%);
        background-clip: text;
        -webkit-text-fill-color: transparent;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 26 * 1vw);
          font-size: calc((100 / 390) * 23 * 1vw);
        }

        & span {
          display: block flow;
          line-height: 2;
        }
      }

      /* ==== body ==== */
      .body {
        line-height: 2;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 26 * 1vw);
        }
      }

      /* ==== anchor ==== */
      .u-anchor {
        margin-block-start: 13px;
        margin-inline: auto;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 40 * 1vw);
        }
      }
    }
  }

  /* ==== .unit[data-id="2"] ==== */
  .unit[data-id='2'] {
    max-inline-size: 1130px;
    padding-block: 80px 90px;
    margin-inline: auto;

    @media (width <= 768px) {
      padding-block: calc((100 / 390) * 139 * 1vw) calc((100 / 390) * 65 * 1vw);
    }

    & ul {
      display: grid block;
      grid-template-columns: auto 1fr;
      gap: 230px;

      @media (width <= 768px) {
        display: block flex;
        flex-direction: column;
        gap: 13.7vw;
      }

      /* ==== li ==== */
      & li {
        position: relative;
        display: block grid;
        grid-template-columns: auto 1fr;
        justify-content: flex-start;

        @media (width <= 768px) {
          display: block flex;
          flex-direction: column;
          justify-content: center;
        }
      }

      /* ==== picture ==== */
      .picture {
        inline-size: 207px;
        box-shadow: 2px 2px 4px 0 rgb(0 0 0 / 25%);

        @media (width <= 768px) {
          display: block flow;
          order: 2;
          inline-size: calc((100 / 390) * 147 * 1vw);
          margin-block-start: 9.6vw;
          margin-inline: auto;
        }
      }

      /* ==== h2 ==== */
      & h2 {
        padding-block: 111px 0;
        padding-inline-start: 0;
        margin-block: calc((1em - 1lh) / 2);
        font-weight: 500;
        color: var(--green);
        text-decoration: underline dashed currentcolor 1px;
        text-underline-offset: 9px;
        translate: 28px 0;

        @media (width <= 768px) {
          order: 1;
          padding-block: 0;
          margin-inline: auto;
          font-size: calc((100 / 390) * 15 * 1vw);
          text-underline-offset: 3.4vw;
          translate: 0 0;
        }
      }

      /* ==== u-anchor ==== */
      .u-anchor {
        position: absolute;
        inset-block-start: 175px;
        inset-inline-start: 190px;
        z-index: 2;
        gap: 35px;
        padding-block: 15px;
        padding-inline: 42px 41px;
        white-space: nowrap;

        @media (width <= 768px) {
          position: relative;
          inset: unset;
          gap: 8.8vw;
          order: 3;
          padding-block: 3.5vw;
          padding-inline: 7.8vw;
          margin-block-start: 6.3vw;
          margin-inline: auto;
        }
      }
    }
  }
}

/* =====================
  animation
==================== */
:root {
  --_transition: transform 1s ease, opacity 0.4s ease;
}

.mv {
  .catch {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);
  }

  .catch-sub {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);
    transition-delay: 200ms, 400ms;
  }

  .list {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);
    transition-delay: 400ms;
  }

  &.on {
    .catch {
      opacity: 1;
      transform: translateY(0);
    }

    .catch-sub {
      opacity: 1;
      transform: translateY(0);
    }

    .list {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.company {
  .u-head {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .body p {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .img1 {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .img2 {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.products {
  .u-head {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .list {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .body {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.recruit {
  .u-head {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .catch {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .body {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.sdgs {
  .u-head {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .catch {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .body {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .unit[data-id='2'] {
    opacity: 0;
    transform: translateY(1em);
    transition: var(--_transition);

    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
