@charset "utf-8";

/* 共通 ------------------------ */
.block_mv {
  overflow: hidden;
  .inner {
    position: relative;
    z-index: 0;
    margin: 0 auto;
    width: 1206px;
    max-width: 88.29%;
    padding: 287px 0 0;
    min-height: 767px;
    &::before {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      background-image: url("../img/common/sub_dec01.png");
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center center;
      top: -133px;
      left: -230px;
      width: 602px;
      aspect-ratio: 602 / 675;
    }
    &::after {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      background-image: url("../img/common/sub_dec02.png");
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center center;
      bottom: -70px;
      right: -200px;
      width: 639px;
      aspect-ratio: 639 / 717;
    }
    h1 {
      margin-bottom: 84px;
      font-weight: bold;
      font-size: 28px;
      .jp {
        display: flex;
        align-items: center;
        gap: 18px;
        margin-bottom: 32px;
        &::before {
          content: "";
          z-index: 0;
          background-image: url("../img/common/dec_ttl_a.svg");
          background-repeat: no-repeat;
          background-size: cover;
          background-position: center center;
          width: 29px;
          aspect-ratio: 1;
        }
      }
      .en {
        position: relative;
        z-index: 0;
        background: linear-gradient(to left, #ff1414 0%, #4b00c4 100%) padding-box text;
        font-weight: 600;
        font-size: 100px;
        -webkit-text-fill-color: transparent;
        color: rgb(0, 0, 0);
      }
    }
  }
  h1 + .mv_text {
    font-weight: bold;
    font-size: 20px;
    line-height: 2;
    text-align: left;
    color: #393939;
  }
  h1 + div.mv_text {
    margin-top: -19px;
  }

  @media screen and (max-width: 768px) {
    .inner {
      max-width: 86.13%;
      padding: calc(150 / 375 * 100vw) 0 0;
      min-height: calc(454 / 375 * 100vw);
      &::before {
        background-image: url("../img/common/sub_dec01_sp.png");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        top: calc(-77 / 375 * 100vw);
        left: calc(-103 / 375 * 100vw);
        width: calc(286.5 / 375 * 100vw);
      }
      &::after {
        background-image: url("../img/common/sub_dec02_sp.png");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        bottom: calc(-19 / 375 * 100vw);
        right: calc(-122 / 375 * 100vw);
        width: calc(331.5 / 375 * 100vw);
      }
      h1 {
        margin-bottom: calc(29 / 375 * 100vw);
        font-size: calc(14 / 375 * 100vw);
        .jp {
          display: flex;
          align-items: center;
          gap: calc(10 / 375 * 100vw);
          margin-bottom: calc(15 / 375 * 100vw);
          &::before {
            content: "";
            width: calc(15 / 375 * 100vw);
          }
        }
        .en {
          font-size: calc(46 / 375 * 100vw);
        }
      }
    }
    h1 + .mv_text {
      font-size: calc(16 / 375 * 100vw);
    }
    h1 + div.mv_text {
      margin-top: 0;
    }
  }
}

.fadein {
  opacity: 0;
  transform: translateX(0);
  transition: opacity 0.7s, transform 0.7s;
}
.go.fadein {
  opacity: 1;
  transform: translateX(0);
}

/* #about ------------------------ */

#about {
  /* block_purpose ------------------------ */
  .block_purpose {
    overflow: hidden;
    padding: 60px 0 172px;
    .inner {
      position: relative;
      z-index: 0;

      margin: 0 auto;
      width: 1080px;
      padding: 0 20px;
      max-width: 95%;
      display: flex;
      flex-flow: wrap;
      justify-content: space-between;
    }

    h2 {
      font-weight: bold;
      font-size: 45px;
      line-height: calc(75 / 45);
      .size_s {
        margin-bottom: 16px;
        display: block;
        font-size: 15px;
        line-height: 1;
      }
    }
    h2 + p {
      width: 408px;
      font-weight: 500;
      font-size: 20px;
      line-height: 3;
    }

    ul {
      width: 100%;
      padding: 0 60px;
      display: flex;
      justify-content: space-between;

      li {
        position: relative;
        z-index: 0;
        width: 370px;
        height: 294px;
        align-self: auto;
        &:nth-of-type(2) {
          margin-top: 125px;
        }

        > * {
          transition: opacity 0.7s, transform 0.7s;
          opacity: 0;
        }
        &.go > * {
          opacity: 1;
        }
        &.go {
          h3 {
            transform: translateX(0);
          }
          h3 + p {
            transform: translateX(0);
          }

          .dec01 {
            transform: translate(-50%, 0);
          }
          .dec02 {
            transform: translate(-50%, 0);
          }
          .dec03 {
            transform: translate(-50%, 0);
          }
        }
      }

      h3 {
        font-family: Montserrat;
        font-weight: 600;
        font-size: 60px;
        text-align: center;
        color: #4b00c4;
        margin-bottom: 16px;
        transform: translateY(20px);
        transition-delay: 1.2s;
      }
      h3 + p {
        font-weight: 500;
        font-size: 16px;
        line-height: 2;
        text-align: center;
        transform: translateY(10px);
        transition-delay: 1.2s;
      }

      .dec01 {
        position: absolute;
        z-index: -1;
        bottom: 100px;
        left: 50%;
        transform: translate(-50%, 30px);
        width: 575px;
        aspect-ratio: 575 / 132;
        transition-delay: 0.8s;
      }
      .dec02 {
        position: absolute;
        bottom: 70px;
        left: 50%;
        transform: translate(-50%, 30px);
        z-index: -2;
        background: #fff;
        width: 441px;
        aspect-ratio: 441 / 112;
        border-radius: 50%;
        transition-delay: 0.4s;
      }
      .dec03 {
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translate(-50%, 30px);
        z-index: -3;
        background: linear-gradient(to left, #ff1414 0%, #4b00c4 100%);
        width: 343px;
        aspect-ratio: 343 / 88;
        border-radius: 50%;
        transition-delay: 0.1s;
      }
    }
    .dec_text {
      position: absolute;
      z-index: -1;
      left: 50%;
      transform: translateX(-50%);
      top: 276px;
      font-family: Montserrat;
      font-weight: 600;
      font-size: 245px;
      text-align: left;
      color: #f2f1fb;
    }

    @media screen and (max-width: 1366px) {
      .dec_text {
        font-size: calc(245 / 1366 * 100vw);
      }
    }
    @media screen and (max-width: 1060px) {
      ul {
        li {
          &:nth-of-type(2) {
            margin-top: 280px;
          }
        }
      }
    }
    @media screen and (max-width: 856px) {
      h2 + p {
        margin: 40px 0 -6px auto;
      }
    }

    @media screen and (max-width: 768px) {
      padding: calc(4 / 375 * 100vw) 0 calc(158 / 375 * 100vw);
      .inner {
        padding: 0;
        max-width: 86.13%;
      }

      h2 {
        font-size: calc(28 / 375 * 100vw);
        line-height: 1.7;
        margin-bottom: calc(-5 / 375 * 100vw);
        .size_s {
          margin-bottom: calc(16 / 375 * 100vw);
          line-height: 1;
        }
      }
      h2 + p {
        width: 100%;
        font-size: calc(18 / 375 * 100vw);
        line-height: calc(50 / 18);
      }

      ul {
        margin-top: calc(60 / 375 * 100vw);
        width: 100%;
        padding: 0;
        flex-flow: column;
        align-items: center;

        li {
          position: relative;
          z-index: 0;
          width: calc(300 / 375 * 100vw);
          height: calc(212 / 375 * 100vw);
          align-self: auto;
          &:nth-of-type(2) {
            margin-top: calc(50 / 375 * 100vw);
          }
        }

        h3 {
          font-family: Montserrat;
          font-size: calc(40 / 375 * 100vw);
        }
        h3 + p {
          font-size: calc(13 / 375 * 100vw);
          line-height: calc(28 / 13);
        }

        .dec01 {
          bottom: calc(63 / 375 * 100vw);
          width: calc(355 / 375 * 100vw);
        }
        .dec02 {
          bottom: calc(38 / 375 * 100vw);
          width: calc(265 / 375 * 100vw);
          aspect-ratio: 441 / 112;
        }
        .dec03 {
          bottom: calc(5 / 375 * 100vw);
          width: calc(206 / 375 * 100vw);
          aspect-ratio: 343 / 88;
        }
      }
      .dec_text {
        white-space: nowrap;
        writing-mode: vertical-rl;
        left: calc(-44 / 375 * 100vw);
        transform: translateX(0);
        top: calc(-36 / 375 * 100vw);
        font-size: calc(108 / 375 * 100vw);
        br {
          display: none;
        }
      }
    }
  }
  /* block_director ------------------------ */
  .block_director {
    padding: 0 0 100px;
    .inner {
      margin: 0 auto;
      max-width: 1040px;
      padding: 0 20px;
      display: flex;
      justify-content: space-between;
    }

    .ttl_sec {
      width: 250px;
      line-height: 1.1;
    }

    .director_list {
      margin-top: 34px;
      width: 592px;
      display: flex;
      flex-flow: column;
      gap: 53px 0;
      .item00 {
        display: flex;
        justify-content: space-between;
        padding-bottom: 24px;
        border-bottom: 1px solid #cecce6;

        h3 {
          width: 110px;
          font-weight: bold;
          font-size: 16px;
          line-height: calc(30 / 16);
        }

        .box_data {
          width: 423px;
          h4 {
            font-weight: bold;
            font-size: 24px;
            line-height: calc(30 / 24);
            margin-bottom: 23px;
            .size_s {
              font-size: 0.8em;
            }
          }
          .box_prof {
            h5 {
              font-family: Montserrat;
              font-weight: 600;
              font-size: 12px;
              line-height: calc(15 / 12);
              width: fit-content;
              background: #eeecf7;
              padding: 2px 12px;
              border-radius: 99px;
              margin-bottom: 4px;
              &.adjust01 {
                margin-top: 23px;
              }
            }
            .text_prof,
            .text_special {
              font-weight: 500;
              font-size: 13px;
              line-height: calc(28 / 13);
              .dec_link {
                border-bottom: 1px solid #393939;
              }
            }
          }
        }
      }
      .list_adviser {
        font-weight: 500;
        font-size: 18px;
        line-height: calc(30 / 18);
        display: flex;
        flex-flow: column;
        gap: 16px 0;
        li {
          position: relative;
          z-index: 0;
          padding: 0 0 0 22px;
          &::after {
            content: "";
            display: block;
            position: absolute;
            z-index: 0;
            background-image: url("../img/about/dec_list.svg");
            background-repeat: no-repeat;
            background-size: cover;
            background-position: center center;
            top: 9.5px;
            left: 0;
            width: 9px;
            aspect-ratio: 1;
          }
          &:last-of-type {
            font-size: 13px;
            border-bottom: 0;
            text-align: right;
            &::after {
              display: none;
            }
          }
        }
      }
    }
    @media screen and (max-width: 900px) {
      .inner {
        gap: 50px;
      }
      .director_list {
        width: calc(100% - 300px);
        .item00 {
          flex-flow: column;
          h3 {
            margin-bottom: 20px;
          }
        }
      }
    }
    @media screen and (max-width: 768px) {
      padding: 0 0 calc(103 / 375 * 100vw);
      .inner {
        max-width: 86.93%;
        padding: 0 0;
        flex-flow: column;
        gap: calc(7 / 375 * 100vw);
      }

      .ttl_sec {
        width: 100%;
        br {
          display: none;
        }
      }

      .director_list {
        width: 100%;
        display: flex;
        flex-flow: column;
        gap: calc(46 / 375 * 100vw) 0;
        .item00 {
          padding-bottom: calc(25 / 375 * 100vw);
          h3 {
            width: 100%;
            font-weight: bold;
            font-size: calc(16 / 375 * 100vw);
          }

          .box_data {
            width: 100%;
            h4 {
              font-weight: bold;
              font-size: calc(24 / 375 * 100vw);
              margin-bottom: calc(23 / 375 * 100vw);
              .size_s {
                font-size: 0.52em;
              }
            }
            .box_prof {
              h5 {
                font-size: calc(12 / 375 * 100vw);
                width: fit-content;
                padding: 1px calc(12 / 375 * 100vw);
                border-radius: calc(99 / 375 * 100vw);
                margin-bottom: calc(5 / 375 * 100vw);
                &.adjust01 {
                  margin-top: calc(25 / 375 * 100vw);
                }
              }
              .text_prof,
              .text_special {
                font-size: calc(13 / 375 * 100vw);
              }
            }
          }
        }
        .list_adviser {
          font-size: calc(18 / 375 * 100vw);
          line-height: calc(30 / 18);
          gap: calc(16 / 375 * 100vw) 0;
          li {
            position: relative;
            z-index: 0;
            padding: 0 0 0 calc(22 / 375 * 100vw);
            &::after {
              top: calc(9.5 / 375 * 100vw);
              width: calc(9 / 375 * 100vw);
            }
            &:last-of-type {
              text-align: right;
            }
          }
        }
      }
    }
  }
  /* block_overview ------------------------ */
  .block_overview {
    padding: 0 0 100px;
    .inner {
      margin: 0 auto;
      max-width: 1040px;
      padding: 0 20px;

      display: flex;
      justify-content: space-between;
    }
    dl {
      width: 59.2%;
      display: flex;
      flex-flow: column;
      gap: 50px;
      font-family: "Noto Sans JP";
      font-weight: 500;
      font-size: 14px;
      line-height: 2;
      .item {
        display: flex;
        padding-bottom: 20px;
        border-bottom: 1px solid #cecce6;
        dt {
          width: 28.2%;
          font-weight: bold;
          font-size: 16px;
        }
        dd {
          width: 71.8%;
        }
      }
    }
    @media screen and (max-width: 768px) {
      padding: 0 0 calc(100 / 375 * 100vw);
      .inner {
        max-width: 86.13%;
        padding: 0;
        flex-flow: column;
        gap: calc(42 / 375 * 100vw);
      }
      dl {
        width: 100%;
        gap: calc(36 / 375 * 100vw);
        font-size: calc(14 / 375 * 100vw);
        .item {
          display: flex;
          padding-bottom: calc(13 / 375 * 100vw);
          dt {
            width: 32.3%;
            font-weight: bold;
            font-size: calc(16 / 375 * 100vw);
          }
          dd {
            width: 67.7%;
          }
        }
      }
    }
  }
  /* block_partner ------------------------ */
  .block_partner {
    padding: 0 0 20px;
    .wrapper_partner {
      margin-left: 80px;
      padding: 87px 80px 87px 0;
      border-radius: 999px 0px 0px 999px;
      background: linear-gradient(to left, #ff1414 0%, #4b00c4 100%);
      @media screen and (min-width: 1366px) {
        margin-left: calc(80px + 0.5 * (100vw - 1366px));
        width: 1285px;
      }
    }
    .inner {
      padding-left: 102px;
      width: 100%;
      /* margin: 0 auto ;
      width: 1100px; */
      display: flex;
      gap: 0 54px;
    }
    .box_ttl {
      width: 303px;
      .ttl_sec {
        color: #fff;
        & .en {
          color: #fff;
          &::before {
            filter: grayscale(100%) invert(100%);
          }
        }
      }
      p {
        margin-top: 40px;
        font-weight: 500;
        font-size: 16px;
        line-height: 2;
        color: #fff;
      }
    }
    .box_logo01 {
      width: 745px;

      width: calc(100% - 303px);

      overflow: hidden;
      display: flex;
      flex-flow: column;
      gap: 20px;
      .partner_list {
        display: flex;
        gap: 0 20px;
        li {
          display: flex;
          gap: 0 20px;
          animation: scroll_a 20s linear infinite;
          a {
            width: 235px;
            background: #fff;
            border-radius: 15px;
            overflow: hidden;
            display: flex;
          }
        }
        &:nth-of-type(2) {
          li {
            animation: scroll_b 20s linear infinite;
            translate: -100% 0;
          }
        }
        &:nth-of-type(3) {
          display: none;
        }
      }
    }
    .box_logo02 {
      overflow: hidden;
      /* width: 745px; */
      width: calc(100% - 303px - 54px);
      display: flex;
      flex-flow: wrap;
      justify-content: center;
      a {
        width: 235px;
        background: #fff;
        border-radius: 15px;
        overflow: hidden;
        display: flex;
        align-self: center;
      }
      gap: 20px;
    }

    @media screen and (max-width: 1110px) and (min-width: 769px) {
      .inner:has(.box_logo02) {
        flex-flow: column;
        gap: 54px;
        .box_ttl {
          width: 100%;
          margin-left: 11%;
        }
        .box_logo02 {
          width: 100%;
        }
      }
    }
    @media screen and (max-width: 768px) {
      padding: 0 0 calc(40 / 375 * 100vw);
      .wrapper_partner {
        margin: 0 auto;
        width: 85.86%;
        padding: calc(130 / 375 * 100vw) 0 calc(130 / 375 * 100vw) 0;
        border-radius: calc(999 / 375 * 100vw);
        background: linear-gradient(to left, #ff1414 0%, #4b00c4 100%);
      }
      .inner {
        width: 100%;
        flex-flow: column;
        padding: 0 calc(30 / 375 * 100vw);
      }
      .box_ttl {
        width: 100%;
        margin-bottom: calc(31 / 375 * 100vw);
        p {
          margin-top: calc(20 / 375 * 100vw);
          font-size: calc(14 / 375 * 100vw);
        }
      }
      .box_logo01 {
        overflow: hidden;
        margin-left: calc(-30 / 375 * 100vw);
        width: calc(100% + calc(60 / 375 * 100vw));
        display: flex;
        flex-flow: column;
        gap: calc(20 / 375 * 100vw);
        .partner_list {
          gap: 0 calc(20 / 375 * 100vw);
          li {
            display: flex;
            gap: 0 calc(20 / 375 * 100vw);
            animation: scroll_a 20s linear infinite;
            a {
              width: calc(200 / 375 * 100vw);
              border-radius: calc(15 / 375 * 100vw);
              display: flex;
            }
          }
          &:nth-of-type(2) {
            li {
              animation: scroll_b 20s linear infinite;
              translate: -100% 0;
            }
          }
          &:nth-of-type(3) {
            display: flex;
          }
        }
      }
      .box_logo02 {
        overflow: hidden;
        width: 100%;
        flex-flow: column;
        a {
          width: 100%;
          aspect-ratio: 259 / 70;
          border-radius: calc(15 / 375 * 100vw);
          justify-content: center;
          img {
            object-fit: cover;
            width: auto;
            height: 100%;
          }
        }
        gap: calc(20 / 375 * 100vw);
      }
    }
  }
}
@keyframes scroll_a {
  100% {
    translate: -100% 0;
  }
}
@keyframes scroll_b {
  100% {
    translate: 0 0;
  }
}

.block_general {
  .inner {
    margin: 0 auto;
    max-width: 1244px;
    padding: 0 20px;
  }

  .note {
    margin-bottom: 25px;
    font-weight: normal;
    font-size: 14px;
    line-height: 2;
    text-align: left;
    color: #000;
  }
  .list_general {
    display: flex;
    flex-flow: column;
    gap: 20px 0;

    font-weight: normal;
    font-size: 14px;
    line-height: 2;
    text-align: left;
    color: #000;
  }

  .item00 {
    position: relative;
    z-index: 0;
    background: #fff;
    border-radius: 15px;
    padding: 40px 50px;
    &:has(.news_link) {
      padding: 29px 50px 24px;
      h2 {
        margin-bottom: -7px;
      }
    }
    h2 {
      margin-bottom: 7px;
      font-weight: bold;
      font-size: 18px;
      line-height: calc(45 / 18);
    }

    .inlist {
      margin-top: 10px;
      li {
        position: relative;
        z-index: 0;
        padding-left: 20px;
        line-height: 2.15;
        &::after {
          content: "";
          display: block;
          position: absolute;
          z-index: 0;
          background-color: #cecce6;
          top: 1.142em;
          left: 0;
          width: 0.714em;
          height: 1px;
        }
      }
    }
    time {
      display: block;
      font-family: Montserrat;
      font-weight: 600;
      font-size: 15px;
      color: #aaa5ea;
    }
  }

  .news_link {
    display: flex;
    .wrapper_news {
      width: calc(100% - 150px);
    }

    .dec_more {
      display: none;
      position: relative;
      z-index: 0;
      align-self: flex-end;
      margin: 0 0 0 auto;
      width: 110px;
      font-family: Montserrat;
      font-weight: 600;
      font-size: 12px;
      padding-bottom: 5px;
      border-bottom: 1px solid #393939;
      &::after {
        content: "";
        display: block;
        position: absolute;
        z-index: 0;
        background-image: url("../img/common/news_arrow.svg");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        top: 7px;
        right: 0;
        width: 11px;
        aspect-ratio: 11 / 12;
      }
    }
  }
  .pager {
    margin: 44px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px 40px;
    font-family: Montserrat;
    font-weight: 600;
    font-size: 18px;

    a {
      color: #cecce6;
      transition: 0.3s;
      &.active,
      &:hover {
        color: #4b00c4;
      }
    }

    .arrow00 {
      width: 17px;
      opacity: 0.4;
      align-self: center;
      transition: 0.3s;
      &.active,
      &:hover {
        opacity: 1;
      }

      &.arrow_pre {
        transform: scale(-1, 1);
      }
    }
    .nolink {
      pointer-events: none;
    }
  }

  @media screen and (max-width: 768px) {
    padding: calc(75 / 375 * 100vw) 0 calc(42 / 375 * 100vw);
    &.news {
      padding-top: 0;
    }
    .inner {
      margin: 0 auto;
      max-width: 85.87%;
      padding: 0;
    }
    .note {
      margin-bottom: calc(36 / 375 * 100vw);
      font-size: calc(14 / 375 * 100vw);
    }
    .list_general {
      gap: calc(20 / 375 * 100vw) 0;

      font-weight: normal;
      font-size: calc(14 / 375 * 100vw);
      line-height: 2;
      text-align: left;
      color: #000;
    }

    .item00 {
      border-radius: calc(15 / 375 * 100vw);
      padding: calc(21 / 375 * 100vw) calc(30 / 375 * 100vw);
      &:has(.news_link) {
        padding: calc(29 / 375 * 100vw) calc(30 / 375 * 100vw);
        h2 {
          margin: calc(6 / 375 * 100vw) 0 calc(-2 / 375 * 100vw);
        }
      }
      h2 {
        margin-bottom: calc(7 / 375 * 100vw);
        font-size: calc(18 / 375 * 100vw);
      }

      .inlist {
        margin-top: calc(10 / 375 * 100vw);
        li {
          padding-left: calc(17 / 375 * 100vw);
          line-height: 2.1;
          &::after {
            /* em 単位は変換対象外 */
            top: 1.0714em;
            width: 0.714em;
          }
        }
      }
      time {
        font-size: calc(15 / 375 * 100vw);
      }
    }
    .news_link {
      display: contents;
      .wrapper_news {
        display: contents;
      }

      .dec_more {
        margin: calc(21 / 375 * 100vw) calc(8 / 375 * 100vw) 0 auto;
        width: calc(110 / 375 * 100vw);
        font-size: calc(12 / 375 * 100vw);
        padding-bottom: calc(5 / 375 * 100vw);
        &::after {
          top: calc(7 / 375 * 100vw);
          width: calc(11 / 375 * 100vw);
        }
      }
    }
    .pager {
      margin: calc(27 / 375 * 100vw) 0 0;
      gap: calc(20 / 375 * 100vw) calc(26 / 375 * 100vw);
      font-size: calc(15 / 375 * 100vw);
      .arrow00 {
        width: calc(15 / 375 * 100vw);
      }
    }
  }
}

.block_service {
  padding: 0 0 45px;
  .inner {
    margin: 0 auto;
    max-width: 1244px;
    padding: 0 20px;

    display: flex;
    flex-flow: wrap;
    gap: 98px 118px;
  }
  .card00 {
    position: relative;
    z-index: 0;
    min-height: 467px;
    width: 43.68%;
    padding: 70px 40px;
    align-self: flex-start;
    transition: 0.7s;
    opacity: 0;

    &::after {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      background-color: #fff;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border-radius: 15px;
    }
    &::before {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      border: 1px solid #4b00c4;
      top: 24px;
      left: 24px;
      width: 100%;
      height: 100%;
      border-radius: 15px;
    }
    /* &:nth-of-type(2) {
      margin-top: 176px;
    } */

    .dec_ttl {
      margin-bottom: 12px;
      font-family: Montserrat;
      font-weight: 600;
      font-size: 14px;
      color: #4b00c4;
      display: flex;
      align-items: center;
      gap: 8px;
      .no {
        position: relative;
        z-index: 0;
        width: 23px;
        aspect-ratio: 23 /36;
        background: #4b00c4;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
        color: #fff;
        &::before,
        &::after {
          content: "";
          display: block;
          position: absolute;
          z-index: -1;
          background-repeat: no-repeat;
          background-size: cover;
          background-position: center center;
          top: 0;
          right: -12px;
          width: 100%;
          height: 100%;
          border-radius: 50%;
          border: 1px solid rgba(75 0 196 /0.72);
        }
        &::after {
          right: -24px;
          border: 1px solid rgba(75 0 196 /0.27);
        }
      }
    }

    h2 {
      margin-bottom: 41px;
      font-weight: bold;
      font-size: 35px;
      line-height: calc(44 / 35);
      text-align: left;
      color: #4b00c4;
      letter-spacing: 0;
    }
    .in_list {
      display: flex;
      flex-flow: column;
      gap: 16px;
      font-weight: 500;
      font-size: 16px;
      line-height: calc(28 / 16);
      color: #000;

      li {
        position: relative;
        z-index: 0;
        padding-left: 14px;
        &::after {
          content: "";
          display: block;
          position: absolute;
          z-index: 0;
          background-color: #4b00c4;
          top: 10px;
          left: 0;
          width: 4px;
          aspect-ratio: 1;
          border-radius: 99px;
          filter: drop-shadow(0 8px 0 #cfb3fc);
        }
      }
    }
    figure {
      transform-origin: bottom right;
      transform: scale(0, 0);
      transition: 1.4s;
    }

    &:nth-of-type(1) {
      transform: translateY(30px);
      figure {
        position: absolute;
        width: 60.83%;
        bottom: -86px;
        right: -34px;
      }
    }
    &:nth-of-type(2) {
      transform: translateY(176px);
      transform: translateY(206px);
      figure {
        position: absolute;
        width: 51.56%;
        bottom: -59px;
        right: -34px;
      }
    }
    &:nth-of-type(3) {
      transform: translateY(30px);
      margin-left: 46px;
      figure {
        position: absolute;
        width: 69%;
        bottom: -76px;
        right: -122px;
      }
    }

    &.go {
      opacity: 1;
      figure {
        transform: scale(1);
      }

      &:nth-of-type(1) {
        transform: translateY(0);
      }
      &:nth-of-type(2) {
        transform: translateY(176px);
      }
      &:nth-of-type(3) {
        transform: translateY(0);
      }
    }
  }

  .consultation {
    opacity: 0;
    transform: translateY(237px);
    width: 42.68%;
    padding-left: 24px;
    transition: 0.7s;
    .dec_ttl {
      margin-bottom: 33px;
      font-weight: bold;
      font-size: 28px;
      line-height: calc(45 / 28);
    }
    p {
      font-weight: normal;
      font-size: 14px;
      line-height: 2;
      color: #000;
      margin-bottom: 36px;
    }
    .btn00 {
      margin-left: 14px;
    }
    &.go {
      opacity: 1;
      transform: translateY(207px);
    }
  }

  @media screen and (max-width: 1070px) {
    .inner {
      justify-content: center;
      gap: 98px 50px;
    }
    .card00 {
      &:nth-of-type(3) {
        margin-left: 0;
      }
    }
    .consultation {
      transform: translateY(87px);
    }
  }
  @media screen and (max-width: 768px) {
    padding: 0 0 calc(41 / 375 * 100vw);
    .inner {
      margin: 0 auto;
      max-width: 85.87%;
      padding: 0;

      flex-flow: column;
      gap: calc(100 / 375 * 100vw) 0;
    }
    .card00 {
      min-height: auto;
      width: 93.79%;
      padding: calc(50 / 375 * 100vw) calc(30 / 375 * 100vw) calc(98 / 375 * 100vw);
      &::after {
        border-radius: calc(15 / 375 * 100vw);
      }
      &::before {
        top: calc(20 / 375 * 100vw);
        left: calc(20 / 375 * 100vw);

        border-radius: calc(15 / 375 * 100vw);
      }

      .dec_ttl {
        margin-bottom: calc(5 / 375 * 100vw);
        font-size: calc(11 / 375 * 100vw);
        gap: calc(5 / 375 * 100vw);
        .no {
          width: calc(19 / 375 * 100vw);
          /* aspect-ratio 内の数値は変換対象外 */
          aspect-ratio: 19 /30;
          font-size: calc(12 / 375 * 100vw);
          &::before,
          &::after {
            top: 0;
            right: calc(-12 / 375 * 100vw);
          }
          &::after {
            right: calc(-24 / 375 * 100vw);
          }
        }
      }

      h2 {
        margin-bottom: calc(23 / 375 * 100vw);
        font-size: calc(24 / 375 * 100vw);
        line-height: calc(44 / 24);
      }
      .in_list {
        gap: calc(16 / 375 * 100vw);
        font-size: calc(16 / 375 * 100vw);
        letter-spacing: 0;

        li {
          padding-left: calc(14 / 375 * 100vw);
          &::after {
            top: calc(8 / 375 * 100vw);
            width: calc(4 / 375 * 100vw);
            /* drop-shadow 内の px 値を変換 */
            filter: drop-shadow(0 calc(6 / 375 * 100vw) 0 #cfb3fc);
          }
        }
      }
      &:nth-of-type(1) {
        figure {
          width: 77%;
          bottom: calc(-66 / 375 * 100vw);
          right: calc(-24 / 375 * 100vw);
        }
      }
      &:nth-of-type(2) {
        transform: translateY(30px);
        figure {
          width: 64.3%;
          bottom: calc(-53 / 375 * 100vw);
          right: calc(-21 / 375 * 100vw);
        }
      }
      &:nth-of-type(3) {
        figure {
          width: 73.17%;
          bottom: calc(-84 / 375 * 100vw);
          right: calc(-34 / 375 * 100vw);
        }
      }
      &.go {
        opacity: 1;
        &:nth-of-type(2) {
          transform: translateY(0);
        }
      }
    }

    .consultation {
      margin-top: calc(16 / 375 * 100vw);
      transform: translateY(30px);
      width: 100%;
      padding-left: 0;
      .dec_ttl {
        /* 既に vw 変換済みだが、 calc() 内のため再計算（結果は同じ） */
        margin-bottom: calc(33 / 375 * 100vw);
        font-size: calc(28 / 375 * 100vw);
        line-height: calc(45 / 28);
      }
      p {
        /* 既に vw 変換済みだが、 calc() 内のため再計算（結果は同じ） */
        font-size: calc(14 / 375 * 100vw);
        line-height: 2;
        margin-bottom: calc(36 / 375 * 100vw);
      }
      .btn00 {
        /* 既に vw 変換済みだが、 calc() 内のため再計算（結果は同じ） */
        margin-left: calc(12 / 375 * 100vw);
      }
      &.go {
        transform: translateY(0);
      }
    }
  }
}

.block_faq {
  padding-bottom: 20px;
  .inner {
    margin: 0 auto;
    max-width: 1244px;
    padding: 0 20px;
  }
  .list_faq {
    display: flex;
    flex-flow: column;
    gap: 46px;
  }
  .data00 {
    display: flex;
    justify-content: space-between;
    padding-bottom: 16px;
    border-bottom: 1px solid #cecce6;
    .ttl {
      margin-top: -38px;
      font-family: Montserrat;
      font-weight: 600;
      font-size: 11px;
      color: #4b00c4;
      display: flex;
      align-items: center;
      .no {
        width: 28px;
        aspect-ratio: 1;
        border-radius: 999px;
        background: #4b00c4;
        font-size: 13px;
        color: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        align-self: center;
      }
    }
    dl {
      width: calc(100% - 205px);
      font-weight: normal;
      font-size: 14px;
      line-height: 2;
      color: #000;
      dt {
        font-weight: bold;
        font-size: 18px;
        line-height: calc(32 / 18);
        color: #393939;
        margin-bottom: 13px;
      }
    }
  }
  .box_more {
    margin-top: 77px;
    .dec_ttl {
      margin-bottom: 33px;
      font-weight: bold;
      font-size: 28px;
      line-height: calc(45 / 28);
    }
    p {
      font-weight: normal;
      font-size: 14px;
      line-height: 2;
      color: #000;
      margin-bottom: 36px;
    }
    .btn00 {
      margin-left: 14px;
    }
  }
  @media screen and (max-width: 768px) {
    padding-bottom: calc(80 / 375 * 100vw);
    .inner {
      max-width: 86.4%;
      padding: 0;
    }
    .list_faq {
      gap: calc(87 / 375 * 100vw);
    }
    .data00 {
      flex-flow: column;
      gap: calc(8 / 375 * 100vw);
      padding-bottom: calc(16 / 375 * 100vw);
      .ttl {
        font-size: calc(11 / 375 * 100vw);
        .no {
          margin-left: calc(-5 / 375 * 100vw);
          width: calc(25 / 375 * 100vw);
          border-radius: calc(999 / 375 * 100vw);
          font-size: calc(13 / 375 * 100vw);
        }
      }
      dl {
        width: 100%;
        font-weight: normal;
        font-size: calc(14 / 375 * 100vw);
        line-height: 2;
        color: #000;
        dt {
          font-weight: bold;
          font-size: calc(18 / 375 * 100vw);
          line-height: calc(32 / 18);
          color: #393939;
          margin-bottom: calc(13 / 375 * 100vw);
        }
      }
    }
    .box_more {
      margin-top: calc(86 / 375 * 100vw);
      .dec_ttl {
        margin-bottom: calc(33 / 375 * 100vw);
        font-size: calc(28 / 375 * 100vw);
        line-height: calc(45 / 28);
      }
      p {
        font-size: calc(14 / 375 * 100vw);
        line-height: 2;
        margin-bottom: calc(36 / 375 * 100vw);
      }
      .btn00 {
        margin-left: calc(12 / 375 * 100vw);
        min-width: calc(240 / 375 * 100vw);
        padding: 0;
        height: calc(70 / 375 * 100vw);
      }
    }
  }
}

input,
textarea {
  display: block;
}
div.mv_text {
  .link_text {
    margin-bottom: 2em;
    a {
      color: #4b00c4;
      border-bottom: 1px solid #4b00c4;
    }
  }
  @media screen and (max-width: 768px) {
    margin-bottom: 2em;
  }
}

.block_contact {
  padding: 37px 0 18px;

  .inner {
    margin: 0 auto;
    padding: 0 20px;
    max-width: 836px;
    display: flex;
    flex-flow: column;
    gap: 37px;
  }

  .input_box {
    display: flex;
    flex-flow: column;
    gap: 5px;
    font-size: 16px;
    line-height: 2;
    label {
      font-weight: bold;
      display: flex;
      align-items: center;
      gap: 0 10px;
      &::before {
        content: "";
        display: block;
        background-image: url("../img/common/dec_contact.svg");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        width: 10px;
        aspect-ratio: 1;
      }
    }
    input,
    textarea {
      padding: 13px 20px;
      border-radius: 8px;
      border: 1px solid #393939;
      &::placeholder {
        color: #cecce6; /* 好きな色に変更 */
      }
    }
  }
  .note {
    text-align: center;
    font-weight: 500;
    font-size: 16px;
    line-height: 2;

    a {
      color: #4b00c4;
      border-bottom: 1px solid #4b00c4;
    }
  }
  .btn00 {
    margin: 0 auto;
    cursor: pointer;
  }

  .wrapper_error {
    margin: 40px 0;
    display: flex;
    flex-flow: column;
    gap: 16px;
    color: #ff1414;
  }

  .form_btn_block {
    display: flex;
    flex-flow: column;
    justify-content: center;
    gap: 20px;
    *:nth-of-type(2) {
      transform: scale(0.8);
    }
  }
  .btn00.re {
    &::after {
      display: none;
    }
  }

  @media screen and (max-width: 768px) {
    padding: calc(100 / 375 * 100vw) 0 alc(41 / 375 * 100vw);

    .inner {
      padding: 0;
      max-width: 85.87%;
      gap: calc(36 / 375 * 100vw);
    }

    .input_box {
      gap: calc(6 / 375 * 100vw);
      font-size: calc(16 / 375 * 100vw);
      label {
        gap: 0 calc(10 / 375 * 100vw);
        &::before {
          width: calc(10 / 375 * 100vw);
        }
      }
      input,
      textarea {
        padding: calc(13 / 375 * 100vw) calc(20 / 375 * 100vw);
        border-radius: calc(8 / 375 * 100vw);
      }
    }

    .note {
      font-size: calc(16 / 375 * 100vw);

      a {
        color: #4b00c4;
        border-bottom: 1px solid #4b00c4;
      }
    }
    .btn00 {
      width: calc(242 / 375 * 100vw);
      height: calc(70 / 375 * 100vw);
    }
    .wrapper_error {
      margin: calc(32 / 375 * 100vw) 0;
      gap: calc(10 / 375 * 100vw);
    }
  }
}

.ani00 {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s, transform 0.7s;
}
.ani00.go {
  opacity: 1;
  transform: translateY(0);
}
