@charset "utf-8";

@import "_variable.css";

/* top */
/* ============================================ */

.top-mainvisual {
  position: relative;
  .top-mainvisual__img {
    img {
      width: 100%;
      max-width: none;
    }
  }
  .top-mainvisual__wrap {
    width: 90%;
    height: 100%;
    padding-top: calc((320 / 1920) * 100vw);
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% 0;
    @media (width <= 600px) {
      width: calc(100% - 40px);
      padding-top: calc((140 / 375) * 100vw);
    }
  }
  .top-mainvisual__ttl {
    img {
      width: min(748px, calc((748 / 1920) * 100vw));
      @media (width <= 600px) {
        width: calc((321 / 375) * 100vw);
      }
    }
  }
  .top-mainvisual__link {
    width: min(748px, calc((748 / 1920) * 100vw));
    display: flex;
    justify-content: space-between;
    margin-top: min(40px, calc((40 / 1920) * 100vw));
    @media (width <= 600px) {
      width: calc((321 / 375) * 100vw);
      margin-top: calc((20 / 375) * 100vw);
    }
    .top-mainvisual__link__btn {
      width: calc((374 / 769) * 100%);
      container-type: inline-size;
      .top-mainvisual__link__btn__link {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: calc((24 / 374) * 100cqw) calc((32 / 374) * 100cqw);
        height: 100%;
        background: var(--business_c);
        border: calc((4 / 374) * 100cqw) solid #028E20;
        border-radius: 16px;
        color: #fff;
        font-size: calc((32 / 374) * 100cqw);
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: 0.05em;
        box-shadow: 6px 6px 16px color-mix(in srgb, var(--font_c) 30%, transparent);
        @media (width <= 896px) {
          border-radius: 12px;
          box-shadow: 4px 4px 12px color-mix(in srgb, var(--font_c) 30%, transparent);
        }
        &::after {
          flex-shrink: 0;
          content: "";
          display: block;
          width: calc((20 / 374) * 100cqw);
          height: calc((20 / 374) * 100cqw);
          background: url("../images/common/arrow_right_w.svg") center center/ 100% auto no-repeat;
        }
      }
      .top-mainvisual__link__btn__txt {
        flex-grow: 1;
        padding-right: calc((56 / 374) * 100cqw);
        position: relative;
        &::after {
          content: "";
          display: inline-block;
          width: 1px;
          height: 100%;
          background: #fff;
          position: absolute;
          top: 0;
          right: calc((32 / 374) * 100cqw);
        }
      }
      &.--case {
        a {
          border-color: #0087C0;
          background: var(--case_c);
        }
      }
    }
  }
}

.bg-wrap {
  position: relative;
  .bg-wrap__circle {
    width: min(139px, calc((139 / 1920) * 100vw));
    position: absolute;
    &.--circle01 {
      top: min(107px, calc((107 / 1920) * 100vw));
      right: min(-14px, calc((-14 / 1920) * 100vw));
    }
    &.--circle02 {
      top: min(376px, calc((376 / 1920) * 100vw));
      left: min(-30px, calc((-30 / 1920) * 100vw));
    }
    &.--circle03 {
      top: min(720px, calc((720 / 1920) * 100vw));
      right: min(-30px, calc((-30 / 1920) * 100vw));
    }
    &.--circle04 {
      bottom: min(318px, calc((318 / 1920) * 100vw));
      left: min(86px, calc((86 / 1920) * 100vw));
    }
    &.--circle05 {
      bottom: min(127px, calc((127 / 1920) * 100vw));
      right: min(219px, calc((219 / 1920) * 100vw));
    }
    img {
      width: 100%;
      max-width: none;
    }
  }
}

.top-case {
  padding: 120px 0;
  position: relative;
  @media (width <= 896px) {
    padding: 40px 0 64px;
  }
  .common-ttl__jp {
    img {
      @media (width <= 896px) {
        width: calc(412px * 0.67);
      }
    }
  }
  .top-case__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 48px;
    @media (width <= 896px) {
      gap: 16px 12px;
      margin-top: 32px;
    }
    @media (width <= 600px) {
      grid-template-columns: repeat(2, 1fr);
    }
    .top-case__list__item {
      container-type: inline-size;
      &.--skyblue {
        .top-case__list__link {
          background: #DBF4FD;
          border-color: #28B2ED;
        }
        .top-case__list__block {
          &::after {
            background: #28B2ED;
          }
        }
        .top-case__list__arrow {
          img {
            filter: brightness(0) saturate(100%) invert(63%) sepia(45%) saturate(4343%) hue-rotate(169deg) brightness(104%) contrast(86%);
          }
        }
        .top-case__year{
          background: #28B2ED;
        }
      }
      &.--red {
        .top-case__list__link {
          background: #FFDEDE;
          border-color: #DF373A;
        }
        .top-case__list__block {
          &::after {
            background: #DF373A;
          }
        }
        .top-case__list__arrow {
          img {
            filter: brightness(0) saturate(100%) invert(20%) sepia(94%) saturate(3212%) hue-rotate(346deg) brightness(98%) contrast(78%);
          }
        }
        .top-case__year {
          background: #DF373A;
        }
      }
      &.--blue {
        .top-case__list__link {
          background: #DAEDFF;
          border-color: #1E6BB8;
        }
        .top-case__list__block {
          &::after {
            background: #1E6BB8;
          }
        }
        .top-case__list__arrow {
          img {
            filter: brightness(0) saturate(100%) invert(33%) sepia(96%) saturate(675%) hue-rotate(175deg) brightness(90%) contrast(92%);
          }
        }
        .top-case__year {
          background: #1E6BB8;
        }
      }
    }
    .top-case__list__link {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: calc((32 / 317) * 100cqw);
      height: 100%;
      background: #FFF4D2;
      border: calc((4 / 317) * 100cqw) solid #EDBF28;
      border-radius: 16px;
      @media (width <= 896px) {
        border-radius: 6px;
      }
    }
    .top-case__list__block {
      flex-grow: 1;
      padding-right: calc((56 / 317) * 100cqw);
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: calc((6 / 317) * 100cqw);
      &::after {
        content: "";
        display: inline-block;
        width: 1px;
        height: 100%;
        background: #EDBF28;
        position: absolute;
        top: 0;
        right: calc((32 /317) * 100cqw);
      }
    }
    .top-case__list__arrow {
      flex-shrink: 0;
      content: "";
      display: block;
      width: calc((20 / 317) * 100cqw);
      height: calc((20 / 317) * 100cqw);
      line-height: 1;
      img {
        width: 100%;
        max-width: none;
        vertical-align: top;
        filter: brightness(0) saturate(100%) invert(71%) sepia(55%) saturate(632%) hue-rotate(2deg) brightness(91%) contrast(93%);
      }
    }
    .top-case__year {
      font-size: calc((24 / 317) * 100cqw);
      font-weight: 700;
      line-height: 1.4;
      color: #fff;
      background: #EDBF28;
      padding: 0.2em 0.8em;
      border-radius: 9999px;
    }
    .top-case__txt {
      font-size: calc((26 / 317) * 100cqw);
      font-weight: 700;
      letter-spacing: 0.05em;
    }
  }
}

.top-about {
  padding: 72px 0 110px;
  position: relative;
  @media (width <= 896px) {
    padding-bottom: 64px;
  }
  @media (width <= 480px) {
    padding-top: 150px;
  }
  .top-about__img {
    position: absolute;
    z-index: 5;
    filter: drop-shadow(8px 8px 40px color-mix(in srgb, #37B5EA 60%, transparent));
    @media (width <= 896px) {
      filter: drop-shadow(4px 4px 20px color-mix(in srgb, #37B5EA 60%, transparent));
    }
    &.--img01 {
      width: min(680px, calc((680 / 1920) * 100vw));
      top: 0;
      left: min(-116px, calc((-116 / 1920) * 100vw));
      @media (width <= 480px) {
        left: min(-20px, calc((-20 / 1920) * 100vw));
      }
    }
    &.--img02 {
      width: min(256px, calc((256 / 1920) * 100vw));
      top: min(18px, calc((18 / 1920) * 100vw));
      right: min(230px, calc((230 / 1920) * 100vw));
      @media (width <= 480px) {
        top: 0;
      }
    }
    &.--img03 {
      width: min(561px, calc((561 / 1920) * 100vw));
      top: min(447px, calc((447 / 1920) * 100vw));
      right: min(-60px, calc((-60 / 1920) * 100vw));
      @media (width <= 480px) {
        top: min(280px, calc((280 / 1920) * 100vw));
        right: min(-20px, calc((-20 / 1920) * 100vw));
      }
    }
    &.--img04 {
      width: min(195px, calc((195 / 1920) * 100vw));
      top: min(752px, calc((752 / 1920) * 100vw));
      left: min(386px, calc((386 / 1920) * 100vw));
      @media (width <= 896px) {
        left: min(100px, calc((100 / 1920) * 100vw));
      }
    }
    img {
      width: 100%;
      max-width: none;
    }
  }
  .top-about__container {
    position: relative;
    z-index: 10;
    .common-ttl__jp {
      img {
        @media (width <= 896px) {
          width: calc(506px * 0.67);
        }
      }
    }
  }
  .top-about__txt {
    word-break: keep-all;
    text-align: center;
    font-size: clamp(1rem, -0.009rem + 1.8018vw, 1.5rem);/*24~16(1340~896)*/
    font-weight: 500;
    line-height: 2.4;
    letter-spacing: 0.15em;
    margin-top: 56px;
    @media (width <= 896px) {
      margin-top: 32px;
    }
    .txt_bold {
      font-weight: 900;
    }
  }
}

.top-message {
  background: #E6F9FF;
  margin-top: 80px;
  margin-inline: auto;
  max-width: 860px;
  padding: 32px 32px 56px;
  border-radius: 16px;
  @media (width <= 896px) {
    margin-top: 40px;
    padding: 24px 24px 32px;
    border-radius: 12px;
  }
  .top-message__container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row-reverse;
    gap: 32px;
    @media (width <= 480px) {
      flex-direction: column;
    }
  }
  .common-ttl__jp {
    img {
      @media (width <= 896px) {
        width: calc(275px * 0.67);
      }
    }
  }
  .top-message__img {
    img {
      @media (width <= 896px) {
        width: calc(309px * 0.67);
      }
    }
  }
  .top-message__inner {
    text-align: center;
    flex-shrink: 0;
    @media (width <= 480px) {
      width: 100%;
    }
  }
  .top-message__anime {
    width: 306px;
    @media (width <= 480px) {
      width: 100%;
      max-width: 250px;
    }
    canvas {
      width: 100%;
      height: 100%;
      object-fit: cover;
      aspect-ratio: 306 / 332;
    }
  }
}

.top-mode {
  padding: 200px 0 120px;
  min-height: 100vh;
  background: var(--main_c);
  color: #fff;
  @media (width <= 896px) {
    padding: 56px 0 64px;
    min-height: inherit;
  }
  .top-mode__container {
    margin-top: 48px;
    margin-inline: calc(50% - 50vw);
    overflow: hidden;
    @media (width <= 896px) {
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      &::-webkit-scrollbar {
        display: none;
      }
    }
  }
  .common-ttl__jp {
    img {
      @media (width <= 896px) {
        width: calc(250px * 0.67);
      }
    }
  }
  .top-mode__list {
    display: flex;
    gap: 20px;
    will-change: transform;
    @media (width <= 896px) {
      padding-inline: 20px;
    }
  }
  .top-mode__slide {
    flex-shrink: 0;
    width: calc((100vw - (20px * 4)) / 5);
    display: flex;
    flex-direction: column;
    align-items: center;
    @media (width <= 1920px) {
      width: clamp(200px, calc((401 / 1920) * 100vw), 401px);
    }
    @media (width <= 896px) {
      scroll-snap-align: start;
    }
  }
  .top-mode__list__img {
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    @media (width <= 896px) {
      border-radius: 12px;
    }
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      max-width: none;
    }
  }
  .top-mode__list__name {
    word-break: keep-all;
    text-align: center;
    font-size: clamp(1rem, -0.2613rem + 2.2523vw, 1.625rem);/*26~16(1340~896)*/
    font-weight: 700;
    line-height: 1.4;
    margin-top: 12px;
  }
  .top-mode__dots {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 40px;
    @media (width <= 896px) {
      gap: 12px;
      margin-top: 32px;
    }
  }
  .top-mode__dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid #fff;
    transition: background 0.3s, scale 0.3s;
    @media (width <= 896px) {
      width: 12px;
      height: 12px;
      border-width: 1px;
    }
    &.--active {
      background: #fff;
    }
  }
}

.top-link {
  padding: 100px 0 110px;
  @media (width <= 896px) {
    padding: 56px 0 64px;
  }
  .common-ttl__jp {
    img {
      @media (width <= 896px) {
        width: calc(308px * 0.67);
      }
    }
  }
  .top-link__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px 16px;
    margin-top: 80px;
    @media (width <= 896px) {
      margin-top: 40px;
    }
    @media (width <= 600px) {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  .top-link__list__img {
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      aspect-ratio: 323 / 246;
    }
  }
  .top-link__list__name {
    word-break: keep-all;
    text-align: center;
    font-size: clamp(0.875rem, 0.3705rem + 0.9009vw, 1.125rem);/*18~14(1340~896)*/
    font-weight: 500;
    line-height: 1.4;
    margin-top: 8px;
  }
}