@charset "UTF-8";

/* =====================
  wrapper1
===================== */
.wrapper[data-id='1'] {
  position: relative;
  overflow: clip;

  /* text */
  >.marquee {
    position: absolute;
    inset-block-start: 678px;
    inset-inline-start: -50px;
    z-index: 3;
    display: block flex;
    gap: 1em;
    inline-size: 100vw;
    margin-inline: calc(50% - 50vw);
    pointer-events: none;

    @media (width < 1440px) {
      margin-inline: auto;
    }

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

    &::before,
    &::after {
      display: block flow;
      flex-shrink: 0;
      inline-size: 3957px;
      aspect-ratio: 3957 / 174;
      content: '';
      background-image: url('../../img/recruit/top/mv/text.svg');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;

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

      animation: marquee 200s linear 0s infinite normal none running;
    }
  }
}

/* =====================
  mv
===================== */
.mv {
  --_block-size: 800px;

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

  position: relative;
  block-size: var(--_block-size);
  color: white;

  .zoom img {
    animation: zoom 15s linear 0ms 1 normal both running;
  }

  /* @media (width > 1440px) {
    .marquee {
      position: absolute;
      inset-block-start: 685px;
      inset-inline-start: -70px;
      z-index: 3;
      display: block flex;
      gap: 1em;
      inline-size: 100vw;
      margin-inline: calc(50% - 50vw);
      pointer-events: none;

      &::before,
      &::after {
        display: block flow;
        flex-shrink: 0;
        inline-size: 3957px;
        aspect-ratio: 3957 / 174;
        content: '';
        background-image: url('../../img/recruit/top/mv/text.svg');
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;

        animation: marquee 200s linear 0s infinite normal none running;
      }
    }
  } */

  &::before {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    content: '';
    background: linear-gradient(0deg, #001636 2.21%, rgb(255 255 255 / 0%) 17.48%);
  }

  /* ==== inner ==== */
  .inner {
    position: relative;
    z-index: 3;
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    block-size: inherit;
    min-block-size: inherit;
    padding-block-start: 589px;
    padding-inline-start: 40px;

    @media (width <=768px) {
      gap: 3vw;
      padding-block-start: calc((100 / 390) * 610 * 1vw);
      padding-inline: var(--nudge-2);
    }

    >* {
      position: relative;
      z-index: 2;
    }

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

    /* ==== catch ==== */
    .catch {
      position: relative;
      align-self: flex-start;
      inline-size: fit-content;
      block-size: fit-content;
      margin-inline: auto;
      font-size: 24px;
      font-weight: 600;
      line-height: 1.9;
      text-align: center;
      text-shadow: 0 0 10px rgb(0 22 54 / 60%);
      translate: -21px 0;

      @media (width <=768px) {
        inset-inline-start: unset;
        font-size: calc((100 / 390) * 20 * 1vw);
        translate: unset;
      }
    }
  }

  /* =====================
      Scroll
    ===================== */
  /* スクロールダウンの位置 */
  .scroll {
    position: absolute;
    right: 36px;
    bottom: 245px;
    z-index: 12;

    @media (width <=768px) {
      right: calc((100 / 390) * 24 * 1vw);
      bottom: calc((100 / 390) * 300 * 1vw);
    }

    /* 線のアニメーション部分 */
    &::before {
      position: absolute;
      top: 82px;
      left: 50%;
      z-index: 2;
      width: 2px;
      height: 80px;
      margin: auto;
      content: '';
      background-color: var(--main);
      border-radius: 50rem;
      animation: scroll 2s cubic-bezier(1, 0, 0, 1) infinite;
    }

    /* 線の背景色 */
    &::after {
      position: absolute;
      top: 82px;
      left: 50%;
      width: 2px;
      height: 80px;
      margin: auto;
      content: '';
      background-color: transparent;
      border-radius: 50rem;
    }

    &>span {
      position: relative;

      &::after {
        display: block flow;
        inline-size: 12px;
        block-size: 66px;
        content: '';
        background-image: url('../../img/recruit/top/mv/scroll.svg');
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
      }

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

    @media (width <=768px) {
      &::before {
        top: calc((100 / 390) * 82 * 1vw);
        width: calc((100 / 390) * 2 * 1vw);
        height: calc((100 / 390) * 80 * 1vw);
      }

      &::after {
        top: calc((100 / 390) * 82 * 1vw);
        width: calc((100 / 390) * 2 * 1vw);
        height: calc((100 / 390) * 80 * 1vw);
      }
    }
  }

  /* =====================
    バナー
  ===================== */
  .bnr-wrap {
    position: absolute;
    bottom: 189px;
    left: 0;
    z-index: 8;

    @media only screen and (width <=768px) {
      bottom: calc((100 / 390) * 200 * 1vw);
    }

    .bnr {
      position: relative;
      display: block grid;
      grid-template-rows: repeat(2, max-content);
      row-gap: 11px;
      align-content: flex-start;
      justify-items: flex-end;
      inline-size: 280px;
      block-size: 80px;
      padding-block-start: 8px;
      padding-inline: 16px;

      @media only screen and (width <=768px) {
        row-gap: calc((100 / 390) * 6 * 1vw);
        inline-size: calc((100 / 390) * 252 * 1vw);
        block-size: calc((100 / 390) * 69 * 1vw);
        padding-inline: calc((100 / 390) * 0 * 1vw) calc((100 / 390) * 19 * 1vw);
      }

      &::before {
        position: absolute;
        bottom: 0;
        left: 0;
        display: block flow;
        content: '';
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
      }

      .catch {
        font-size: 15px;
        font-weight: 600;
        line-height: 1.4;

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

        +a {
          --_transition: 250ms ease 0s;
          display: block flex;
          gap: 10px;
          padding: 6.2px 15.3px;
          margin-block: calc((1em - 1lh) / 2);
          font-size: 16px;
          line-height: 1;
          color: var(--main);
          background: white;
          transition:
            color var(--_transition),
            background var(--_transition);

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

          @media (any-hover: hover) {
            &:hover {
              color: white;
              background: #001636;
            }
          }

          &::after {
            inline-size: 9px;
            aspect-ratio: 1 / 1;
            content: '';
            background-color: currentcolor;
            mask-image: var(--icon-arrow);
            mask-repeat: no-repeat;
            mask-position: center;
            mask-size: contain;

            @media (width <=768px) {
              inline-size: 6px;
            }
          }
        }

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

    .bnr[data-id='1'] {
      background-image: linear-gradient(to bottom, #007bc7, #9ecde5);

      &::before {
        left: 11px;
        inline-size: 94px;
        block-size: 105px;
        background-image: url('../../img/recruit/top/mv/bnr_1.png');
      }

      @media only screen and (width <=768px) {
        &::before {
          left: calc((100 / 390) * 2 * 1vw);
          inline-size: calc((100 / 390) * 79 * 1vw);
          block-size: calc((100 / 390) * 89 * 1vw);
        }
      }
    }

    .bnr[data-id='2'] {
      margin-block-start: 32px;
      background-image: linear-gradient(to bottom, #00396e, #7eb2cd);

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

      &::before {
        inline-size: 120px;
        block-size: 105px;
        background-image: url('../../img/recruit/top/mv/bnr_2.png');
      }

      @media only screen and (width <=768px) {
        &::before {
          left: calc((100 / 390) * -1 * 1vw);
          inline-size: calc((100 / 390) * 98 * 1vw);
          block-size: calc((100 / 390) * 85 * 1vw);
        }
      }
    }
  }
}

/* =====================
  message
===================== */
.message {
  position: relative;
  z-index: 2;
  padding-block: 160px 120px;
  overflow: clip;
  color: white;
  background: var(--gradation);

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

  /* 🌊 */
  &::before {
    position: absolute;
    inset-block-start: -189px;
    inset-inline-start: -101px;
    inline-size: 1922px;
    block-size: 1202px;
    margin-inline: auto;
    pointer-events: none;
    content: '';
    background-image: url('../../img/recruit/top/message/bg.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;

    @media (width <=768px) {
      inset-block-start: -57vw;
      inset-inline-start: -51vw;
      inline-size: 200vw;
      aspect-ratio: 1922 / 1202;
    }
  }

  /* ==== u-inner ==== */
  .u-inner {
    position: relative;
    z-index: 2;
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    gap: 47px;

    @media (width <=768px) {
      gap: var(--nudge-4);
      padding-block: var(--nudge-8) 32vw;
    }

    /* gradation */
    &::before {
      position: absolute;
      inset-block-start: -160px;
      inset-inline: 0;
      z-index: 4;
      inline-size: 100vw;
      block-size: 36.5%;
      margin-inline: calc(50% - 50cqi);
      content: '';
      background: linear-gradient(180deg, rgb(0 22 54 / 100%) 0%, rgb(0 22 54 / 0%) 100%);

      @media (width < 1440px) {
        inline-size: auto;
        margin-inline: auto;
      }

      @media (width <=768px) {
        inset-block-start: -20.7vw;
        block-size: 30vw;
      }
    }
  }

  /* ==== catch ==== */
  .catch {
    position: relative;
    z-index: 3;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;

    @media (width <=768px) {
      font-size: var(--nudge-3);
    }
  }

  /* ==== body ==== */
  .body {
    display: block grid;
    gap: 17px;
    max-inline-size: 569px;
    margin-inline: auto;
    font-weight: 400;

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

    .u-anchor {
      margin-block-start: 40px;
      font-family: 'Noto Serif JP', serif;
    }
  }

  /* ==== image ==== */
  .image {
    position: absolute;
    inset-block-start: -185px;
    z-index: 3;
    display: block flex;
    flex-direction: column;
    gap: 16px;
    pointer-events: none;

    @media (width <=768px) {
      inset-block-start: 0;
      flex-direction: row;
      gap: var(--nudge-1);
      block-size: fit-content;

      img {
        flex-shrink: 0;
        inline-size: 32vw;
        object-fit: contain;
      }
    }

    --_animation: 80s linear infinite;

    &[data-id='1'] {
      inset-inline-start: 0;
      animation: marquee-y var(--_animation);

      @media (width <=768px) {
        inset-block-start: -14vw;
        animation: marquee-x var(--_animation) reverse;
      }
    }

    &[data-id='2'] {
      @media (width > 768px) {
        inset-block-start: -1059px;
        inset-inline-end: 0;
        animation: marquee-y var(--_animation) reverse;
      }

      @media (width <=768px) {
        inset: unset;
        inset-block-end: 0;
        inset-inline-start: -90vw;
        animation: marquee-x var(--_animation);
      }
    }
  }
}

/* =====================
  about
===================== */
.about {
  position: relative;
  padding-block: 104px 0;
  overflow: clip;

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

  /* ==== 🌊 ==== */
  &::before {
    position: absolute;
    inset-block-start: -542px;
    inset-inline-end: -287px;
    inline-size: 1525px;
    block-size: 1390px;
    pointer-events: none;
    content: '';
    background-image: url('../../img/recruit/top/about/bg.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 0.7;

    @media (width <=768px) {
      inset-block-start: -169vw;
      inset-inline-end: -10vw;
      inline-size: 100vw;
      aspect-ratio: 1525 / 1390;
      opacity: 1;
    }
  }

  /* ==== .u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    gap: 56px;

    @media (width > 768px) {
      max-inline-size: 100%;
      padding-inline: 80px;
    }

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

  /* ==== body ==== */
  .body {
    inline-size: fit-content;
    color: var(--main);

    @media (width > 768px) {
      padding-inline: 80px;
    }

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

  /* ==== video ==== */
  .video {
    position: relative;
    inline-size: 1040px;
    margin-inline: auto;
    overflow: hidden;

    @media (width > 768px) {
      block-size: 585px;
      margin-block-start: -7px;
    }

    @media (width <=768px) {
      inline-size: 100%;
      aspect-ratio: 16 / 9;
    }

    &:has([data-dummy='true'])::before {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: block flow;
      inline-size: 100%;
      block-size: 100%;
      content: '';
      background-image: url('../../img/recruit/top/about/dummy.webp');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;

      @media (width <=768px) {
        scale: 1.1;
      }
    }

    &:has([data-dummy='true'])::after {
      position: absolute;
      inset: 0;
      inset-block-start: 50%;
      z-index: 3;
      display: block flow;
      inline-size: 83px;
      aspect-ratio: 512 / 341;
      margin-inline: auto;
      content: '';
      background-image: url('../../img/recruit/_common/youtube.svg');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      translate: 0 -50%;

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

    iframe {
      display: block flow;
      inline-size: 100%;
      block-size: 100%;
    }
  }
}

/* =====================
  keyword
===================== */
.keyword {
  position: relative;
  padding-block: 104px 120px;
  overflow: clip;
  background: linear-gradient(180deg, rgb(12 125 181 / 0%) 0%, #001636 100%);

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

  /* 🌊 */
  &::before {
    position: absolute;
    inset-block-start: 331px;
    inset-inline-start: -444px;
    inline-size: 1210px;
    block-size: 1121px;
    pointer-events: none;
    content: '';
    background-image: url('../../img/recruit/top/keyword/bg.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 1;

    @media (width > 1440px) {
      inset-block-start: 580px;
      inset-inline-start: -280px;
    }

    @media (width <=768px) {
      inset-block-start: 360vw;
      inset-inline-start: -50vw;
      inline-size: 150vw;
      aspect-ratio: 1210 / 1121;
    }
  }

  /* ==== u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    gap: 48px;
    max-inline-size: 1200px;
    padding-block: 80px;
    background: rgb(255 255 255 / 40%);
    backdrop-filter: blur(20px);

    @media (width <=768px) {
      gap: var(--nudge-4);
      max-inline-size: 90vw;
      padding-block: var(--nudge-8) var(--nudge-3);
    }
  }

  /* ==== ul ==== */
  ul {
    display: grid;
    grid-template-rows: 137px auto auto;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding-inline: 80px;

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

    li {
      display: block grid;
      grid-template-rows: subgrid;
      grid-row: span 3;
      gap: 13px;
      align-items: center;
      inline-size: 100%;
      padding-block: 48px 45px;
      padding-inline: 32px;
      color: var(--main);
      background: white;

      @media (width <=768px) {
        gap: 0;

        padding-block: var(--nudge-4) var(--nudge-3);
        padding-inline: var(--nudge-2);
      }

      .num {
        display: block flex;
        gap: 11px;
        align-items: baseline;
        order: 2;
        margin-block: -18px calc((1em - 1lh) / 2);
        margin-inline: auto;
        translate: 0 -6px;

        @media (width <=768px) {
          gap: var(--nudge-1);
          margin-block: var(--nudge-1);
          translate: unset;
        }

        .count {
          font-family: var(--title);
          font-size: 96px;
          font-weight: 700;
          font-feature-settings: 'tnum' 1;
          font-variant: tabular-nums;
          line-height: 1.2;

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

        [data-decimal] {
          position: relative;
          right: -6px;
          font-family: var(--title);
          font-size: 64px;
          font-weight: 700;
          font-feature-settings: 'tnum' 1;
          font-variant: tabular-nums;
          line-height: 1.2;

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

        .small {
          font-size: 32px;
          font-weight: 600;
          line-height: 1;

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

      &[data-id='2'] .num {
        gap: 24px;

        @media (width <=768px) {
          gap: var(--nudge-2);
        }

        .small {
          font-family: var(--title);
          font-size: 96px;

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

      img {
        display: block flow;
        order: 1;
        block-size: 107px;
        margin-block: calc((1em - 1lh) / 2);
        margin-inline: auto;

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

      h3 {
        order: 3;
        inline-size: 100%;
        padding-block-start: 15px;
        margin-block: -16px calc((1em - 1lh) / 2);
        text-align: center;
        border-block-start: 1px solid #001636;

        @media (width <=768px) {
          padding-block-start: var(--nudge-1);
          margin-block: calc((1em - 1lh) / 2);
          font-size: calc((100 / 390) * 20 * 1vw);
        }
      }
    }
  }
}

/* =====================
  categories
===================== */
.categories {
  padding-block: 97px 96px;

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

  /* ==== u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-columns: 650px auto;
    gap: 36px 93px;
    align-items: flex-start;

    @media (width > 768px) {
      padding-inline: 40px;
    }

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

  /* ==== u-hgroup ==== */
  .u-hgroup {
    grid-row: 1 / 2;
    grid-column: 2 / 3;
    align-self: flex-start;
    margin-block-start: 24px;

    @media (width > 768px) {
      padding-block: 19px 17px;
      padding-inline: 27px;
    }

    @media (width <=768px) {
      align-items: center;
      justify-content: center;
      margin-block-start: 0;
      margin-inline: auto;

      .title {
        margin-inline: auto;
        text-align: center;
      }
    }
  }

  /* ==== picture ==== */
  .picture {
    grid-row: 1 / 5;
    grid-column: 1 / 2;
  }

  /* ==== catch ==== */
  .catch {
    grid-row: 2 / 3;
    grid-column: 2 / 3;
    align-self: start;
    font-size: 24px;
    font-weight: 600;
    color: var(--main);

    @media (width <=768px) {
      margin-inline: auto;
      font-size: calc((100 / 390) * 18 * 1vw);
      text-align: center;
    }
  }

  /* ==== body ==== */
  .body {
    grid-row: 3 / 4;
    grid-column: 2 / 3;
    align-self: flex-start;
    margin-block-start: -30px;
    color: var(--main);

    @media (width <=768px) {
      padding-inline: var(--nudge-2);
      margin-block-start: -4vw;
      font-size: calc((100 / 390) * 15 * 1vw);
    }
  }
}

/* =====================
  staff
===================== */
.staff {
  position: relative;
  padding-block: 120px;
  overflow: clip;
  color: white;
  background: var(--gradation);

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

  /* ==== 🌊 ==== */
  &::before,
  &::after {
    position: absolute;
    pointer-events: none;
    content: '';
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }

  &::before {
    inset-block-start: -207px;
    inset-inline-end: -30px;
    inline-size: 1928px;
    block-size: 1205px;
    background-image: url('../../img/recruit/top/staff/bg01.png');

    @media (width > 1441px) {
      inset-block-start: -210px;
      inset-inline-end: -9px;
      opacity: 1;
    }

    @media (width <=768px) {
      inset-block-start: -131vw;
      inset-inline-end: 1vw;
      inline-size: 100vw;
      aspect-ratio: 1928 / 1205;
      opacity: 1;
    }
  }

  &::after {
    inset-block-end: -205px;
    inset-inline-start: -34px;
    inline-size: 1642px;
    block-size: 1025px;
    background-image: url('../../img/recruit/top/staff/bg02.png');

    @media (width > 1441px) {
      inset-block-end: -296px;
      inset-inline-start: 0;
      inline-size: 1946px;
      block-size: 1215px;
      background-image: url('../../img/recruit/top/staff/bg02_wide.png');
      opacity: 1;
    }

    @media (width <=768px) {
      inset-block-end: -91vw;
      inset-inline-start: -41vw;
      inline-size: 200vw;
      aspect-ratio: 1642 / 1025;
      opacity: 1;
    }
  }

  /* ==== u-inner ==== */
  .inner {
    position: relative;
    z-index: 2;
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
    gap: 56px;

    @media (width <=768px) {
      gap: var(--nudge-4);
    }
  }

  /* ==== u-hgroup ==== */
  .u-hgroup {
    @media (width > 768px) {
      padding-inline: 26px;
    }
  }

  /* ==== list ==== */
  .list {
    position: relative;
    overflow: clip;

    .item {
      display: block grid;
      grid-template-rows: repeat(auto-fit, minmax(0, min-content));
      padding-block: 16px 24px;
      padding-inline: 16px;
      background: white;

      @media (width <=768px) {
        padding-block: var(--nudge-2);
        padding-inline: var(--nudge-2);
        overflow: clip;
      }

      :is(span[lang='en'], .year, .division p, .comment span) {
        inline-size: fit-content;
        background: var(--gradation);
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }

      span[lang='en'] {
        padding-inline: 16px;
        margin-block-start: 16px;
        font-family: var(--title);
        font-size: 32px;
        font-weight: 400;
        line-height: 1.5;
        word-break: break-all;

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

      .img {
        text-align: center;
      }

      img {
        inline-size: 100%;
        margin-inline: auto;
        object-fit: cover;

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

      .status {
        display: block grid;
        padding-inline: 16px;
        margin-block-start: -3px;
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 16px;

        @media (width <=768px) {
          padding-inline: var(--nudge-1);
          margin-block-start: -1vw;
          font-size: calc((100 / 390) * 13 * 1vw);

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

        .division {
          display: block flex;
          gap: 8px;

          @media (width <=768px) {
            gap: var(--nudge-1);
          }

          p {
            display: block flex;
            gap: 9px;

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

          p+p::before {
            content: '/';
          }
        }
      }

      .comment {
        position: relative;
        padding-block-start: 15px;
        margin-block-start: 13px;
        margin-inline: 16px;
        font-size: 24px;
        border-block-start: 1px solid var(--main);
        border-image: var(--gradation) 1;

        @media (width <=768px) {
          padding-block-start: var(--nudge-1);
          margin-block-start: var(--nudge-1);
          margin-inline: var(--nudge-1);
          font-size: calc((100 / 390) * 16 * 1vw);

          br {
            display: none;
          }
        }

        span {
          display: block flow;
          line-height: 1.5;
        }
      }
    }

    .anchor {
      @media (any-hover: hover) {
        &:hover {
          .img {
            overflow: clip;

            & img {
              scale: 1.05;
              transition: all 250ms ease 0s;
            }
          }
        }
      }
    }
  }

  .control {
    display: block flex;
    gap: 134px;
    justify-content: center;

    @media only screen and (width <=768px) {
      flex-direction: column;
      gap: calc((100 / 390) * 32 * 1vw);
      align-items: center;

      .u-anchor {
        margin-inline: auto;
      }
    }
  }

  /* ==== swiper-controller ==== */
  .swiper-controller {
    position: relative;
    z-index: 2;
    display: block flex;
    gap: 32px;
    inline-size: fit-content;
    pointer-events: none;

    @media only screen and (width <=768px) {
      gap: calc((100 / 390) * 16 * 1vw);
    }

    :where(.next, .prev) {
      position: relative;
      z-index: 2;
      display: block grid;
      place-content: center;
      inline-size: 60px;
      block-size: 60px;
      color: white;
      pointer-events: auto;
      border: 1px solid #fff;
      border-radius: calc(infinity * 1px);

      @media only screen and (width <=768px) {
        inline-size: calc((100 / 390) * 40 * 1vw);
        block-size: calc((100 / 390) * 40 * 1vw);
      }

      &::after {
        inline-size: 18px;
        aspect-ratio: 1/1;
        content: '';
        background-color: currentcolor;
        mask-image: var(--icon-arrow);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
      }

      @media only screen and (width <=768px) {
        &::after {
          inline-size: calc((100 / 390) * 16 * 1vw);
        }
      }
    }

    .prev::after {
      transform: rotate(-135deg);
    }

    .next::after {
      transform: rotate(45deg);
    }
  }
}

/* =====================
  inst
===================== */
.inst {
  padding-block: 64px 120px;
  overflow: clip;
  background: linear-gradient(180deg, #0c7db5 0%, rgb(255 255 255 / 0%) 100%);

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

  /* ==== .u-inner ==== */
  .u-inner {
    display: block grid;
    grid-template-rows: repeat(auto-fit, minmax(0, min-content));
  }

  /* ==== u-hgroup ==== */
  .u-hgroup {
    @media (width > 768px) {
      padding-inline: 25px;
      translate: -10px 0;
    }
  }

  /* ==== image ==== */
  .image {
    display: block grid;
    gap: 24px;
    margin-block-start: 56px;

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

    .gallery {
      position: relative;

      --_animation: 80s linear infinite;
      z-index: 1;
      display: block flex;
      gap: 16px;
      translate: -80px;
      animation: marquee-x var(--_animation);

      @media (width > 1440px) {
        translate: -320px;
      }

      @media (width > 1920px) {
        translate: -100%;
      }

      @media (width <=768px) {
        --_animation: 20s linear infinite;
        gap: calc((100 / 390) * 16 * 1vw);
        translate: unset;

        .js-loop-child {
          display: none;
        }
      }

      a {
        position: relative;
        display: block flow;
        flex-shrink: 0;
        inline-size: 240px;
        transition: all 250ms ease 0s;
        aspect-ratio: 4 / 5!important;
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

        @media (any-hover: hover) {
          &:hover {
            filter: brightness(1.25);
          }
        }

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

        img {
          inline-size: 100%;
          block-size: 100%;
          object-fit: cover;
        }
      }
    }
  }

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

    @media (width > 768px) {
      padding-inline: 40px;
    }

    @media (width <=768px) {
      margin-block-start: var(--nudge-4);
    }
  }
}

/* =====================
  animation
===================== */
[data-parallax='fade'] {
  opacity: 0;
  filter: blur(1rem);
  transition: all 1000ms var(--slideInBezier) var(--_delay, 0ms);

  &.on {
    opacity: 1;
    filter: blur(0);
  }
}

[data-parallax='slideUp'] {
  --_transition: transform 1s var(--slideInBezier), opacity 0.4s var(--slideInBezier);

  opacity: 0;
  transform: translateY(1.5rem);
  transition: var(--_transition);
  transition-delay: var(--_delay, 200ms), var(--_delay, 200ms);
  will-change: transform, opacity;

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