@charset "utf-8";
/* CSS Document */
body {
  position: relative;
  z-index: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  font-feature-settings: "palt";
  color: #212a37;
  background: #f5f5f5;
}
body.menu_open {
  position: fixed;
  width: 100%;
  height: 100vh;
}

/*ヘッダー */

/* Header Section */
.l-header {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100vw;
  .l-header__inner {
    margin: 0 auto;
    width: 1340px;
    max-width: 95%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .l-header__logo {
    width: 200px;
  }
  .contact {
    width: 250px;
  }
  @media screen and (max-width: 768px) {
    .l-header__inner {
      margin: 0 auto 0 0;
      max-width: 96.15%;
    }
    .l-header__logo {
      width: calc(150 / 390 * 100vw);
    }
    .contact {
      width: calc(160 / 390 * 100vw);
    }
  }
}

/* Footer Section */
.l-footer {
  background: #212a37;
  color: #fff;
  .l-footer__inner {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: calc(100 / 1280 * 100vw);
    .box_data {
      padding-top: 66px;
      width: 581px;
      max-width: calc(581 / 1280 * 100vw);
      font-weight: 600;
      font-size: 16px;
      line-height: calc(28.8 / 16);
      text-align: left;
      color: #fefefe;

      h2 {
        margin-bottom: 34px;
        font-weight: 800;
        font-size: 40px;
        line-height: calc(45 / 40);
        color: #fefefe;

        .size_s {
          display: block;
          font-size: 24px;
          margin-bottom: 21px;
        }
      }
      .footer_text {
        margin-bottom: 27px;
        letter-spacing: 0.07em;
      }
      ul {
        margin-bottom: 50px;
        text-align: center;
        font-weight: 800;
        font-size: 20px;
        line-height: calc(45 / 20);
        display: flex;
        flex-flow: column;
        gap: 10px;

        li {
          padding: 2px 0 2px;
          width: calc(480 / 581 * 100%);
          background: #fff;
          color: #212a37;
          border-radius: 25px;
        }
      }
      small {
        font-weight: 600;
        font-size: 16px;
        line-height: calc(28.8 / 16);
        color: #fefefe;
      }
    }
    .box_img {
      width: calc(800 / 1920 * 100%);
      min-height: 617px;
      align-self: stretch;
      img {
        object-fit: cover;
        width: 100%;
        height: 100%;
      }
    }
  }
  @media screen and (min-width: 1920px) {
    .l-footer__inner {
      .box_img {
        height: 617px;
      }
    }
  }
  @media screen and (max-width: 1280px) {
    .l-footer__inner {
      .box_data {
        ul {
          li {
            width: 100%;
            text-align: center;
          }
        }
      }
    }
  }
  @media screen and (max-width: 980px) {
    .l-footer__inner {
      .box_data {
        ul {
          line-height: calc(24 / 16);
        }
      }
    }
  }

  @media screen and (max-width: 768px) {
    color: #fff;
    .l-footer__inner {
      flex-flow: column-reverse;
      gap: 0;
      .box_data {
        padding: calc(29 / 390 * 100vw) 0;
        width: 89.74%;
        max-width: unset;
        font-size: calc(16 / 390 * 100vw);
        line-height: calc(24 / 16);

        h2 {
          margin-bottom: calc(20 / 390 * 100vw);
          font-size: calc(30 / 390 * 100vw);
          line-height: calc(45 / 30);
          .size_s {
            font-size: calc(18 / 390 * 100vw);
            margin-bottom: calc(4 / 390 * 100vw);
          }
        }
        .footer_text {
          margin-bottom: calc(20 / 390 * 100vw);
        }
        ul {
          margin-bottom: calc(39 / 390 * 100vw);
          font-size: calc(16 / 390 * 100vw);
          line-height: calc(24 / 16);
          gap: calc(10 / 390 * 100vw);

          li {
            padding: calc(6 / 390 * 100vw) 0;
            width: 100%;
            border-radius: calc(30 / 390 * 100vw);
          }
        }
        small {
          display: block;
          text-align: center;
          font-size: calc(14 / 390 * 100vw);
          line-height: calc(2.28 / 14);
        }
      }
      .box_img {
        width: 100%;
        min-height: auto;
      }
    }
  }
}
/* ------------------------------------------------------------ */
/* 共通パーツ */
.sp_on,
.tb_on {
  display: none;
}
.tb_off {
  display: inline;
}

@media screen and (max-width: 980px) {
  .tb_on {
    display: inline;
  }
  .tb_off {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .sp_on {
    display: inline;
  }
  .sp_off {
    display: none;
  }
}
.btn00 {
  position: relative;
  z-index: 0;
  display: block;
  background: #5788ac;
  padding: 20px 25px 20px;
  border-radius: 30px;
  font-weight: bold;
  font-size: 20px;
  color: #fefefe;
  text-align: center;

  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    background: #fff;
    opacity: 0.5;
    top: 50%;
    left: 25px;
    transform: translate(0, -50%);
    width: 12px;
    aspect-ratio: 1;
    border-radius: 50%;
  }

  @media screen and (max-width: 768px) {
    padding: calc(12 / 390 * 100vw) calc(25 / 390 * 100vw) calc(12 / 390 * 100vw);
    border-radius: calc(30 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    text-align: center;

    &::after {
      left: calc(15 / 390 * 100vw);
      width: calc(10 / 390 * 100vw);
    }
  }
}

.ttl02_b {
  margin-bottom: 50px;
  font-weight: 800;
  font-size: 40px;
  line-height: calc(60 / 40);
  text-align: center;
  color: #5788ac;
  @media screen and (max-width: 768px) {
    margin-bottom: calc(20 / 390 * 100vw);
    font-size: calc(22 / 390 * 100vw);
    letter-spacing: 0.08em;
    line-height: calc(33 / 22);
  }
}
.ttl_text {
  font-size: 24px;
  letter-spacing: 0.1em;
  line-height: calc(43.2 / 24);
  text-align: center;
  @media screen and (max-width: 768px) {
    font-size: calc(16 / 390 * 100vw);
    line-height: calc(28.8 / 16);
    text-align: left;
  }
}

/* ------------------------------------------------------------ */

/* Main Visual (MV) Section */
.l-mv {
  overflow: hidden;
  position: relative;
  z-index: 0;
  padding-bottom: 50px;
  &::before {
    content: "";
    display: block;
    position: absolute;
    z-index: 0;
    background: #e5f3fa;

    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% - 50px);
  }

  .inner {
    padding: 167px 0 84px;
    position: relative;
    z-index: 1;
    margin: 0 auto;
    width: 1340px;
    max-width: 95%;
    height: 700px;

    .mv_ttl {
      margin-bottom: 26px;
      width: fit-content;
      padding-bottom: 7px;
      font-size: 70px;
      letter-spacing: -0.05em;
      line-height: calc(98 / 70);
      color: #5788ac;
      border-bottom: 8px solid #5788ac;

      .dec01 {
        color: #fefefe;
        background: #5788ac;
        padding: 0px 17px;
        margin: 0 16px;
        border-radius: 5px;
      }

      .dec02 {
        display: inline-block;
        width: fit-content;
        margin: 20px 0 27px;
        font-size: 70px;
        letter-spacing: -0.02em;
        line-height: 1.4;
        color: #2362db;
        border-bottom: 8px solid #2362db;
        margin-right: 11px;
      }
      .size_s {
        font-size: 30px;
      }
    }
    .mv_text {
      margin-bottom: 46px;
      font-family: "Noto Sans JP";
      font-weight: 600;
      font-size: 24px;
      letter-spacing: 0.03em;
      line-height: 43.2px;
      text-align: left;
      color: #212a37;
      font-weight: 600;
      font-size: 24px;
      letter-spacing: 0.1em;
      line-height: calc(43.2 / 24);
    }
    .btn00 {
      width: 350px;
      padding: 25px 25px 25px;
      border-radius: 40px;
      font-size: 30px;
    }
    .dec_icon {
      position: absolute;
      z-index: 999;
      bottom: -50px;
      right: 0;
      display: flex;
      gap: 13px;
      transform-origin: bottom right;
      li {
        width: 218px;
        aspect-ratio: 1;
        border: 5px solid #fff;
        background: #e66983;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        color: #fefefe;
        font-weight: 800;
        font-size: 29px;
        letter-spacing: -0.05em;
        line-height: 1.2;
        .size_m {
          font-size: 48px;
          letter-spacing: -0.05em;
        }
      }
    }
    &::after {
      content: "";
      display: block;
      position: absolute;
      z-index: -1;
      background-image: url("../img/mv.svg");
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center center;
      top: -100px;
      right: -569px;
      transform: translate(0, 0);
      width: 1200px;
      aspect-ratio: 1200 / 735;
    }
  }

  @media screen and (max-width: 1200px) {
    .inner {
      .mv_ttl {
        margin-bottom: calc(26 / 1200 * 100vw);
        padding-bottom: calc(7 / 1200 * 100vw);
        font-size: calc(70 / 1200 * 100vw);

        .dec01 {
          padding: 0px calc(17 / 1200 * 100vw);
          margin: 0 calc(16 / 1200 * 100vw);
        }
      }
      .mv_text {
        font-size: calc(24 / 1200 * 100vw);
      }

      .dec_icon {
        transform: scale(0.8);
      }
      &::after {
        top: calc(100px - 0.1160092807 * (100vw - 769px));
        right: calc(-328px + 0.06960556845 * (100vw - 769px));
        width: calc(710px + 0.2088167053 * (100vw - 769px));
      }
    }
  }

  @media screen and (max-width: 768px) {
    padding-bottom: calc(85 / 390 * 100vw);
    &::before {
      height: calc(100% - calc(60 / 390 * 100vw));
    }
    .inner {
      padding: calc(104 / 390 * 100vw) calc(14 / 390 * 100vw) calc(378 / 390 * 100vw);
      height: calc(744 / 390 * 100vw);

      .mv_ttl {
        margin-bottom: calc(15 / 390 * 100vw);
        padding-bottom: calc(5 / 390 * 100vw);
        font-size: calc(30 / 390 * 100vw);
        line-height: 1.6;
        border-bottom: calc(5 / 390 * 100vw) solid #5788ac;

        .dec01 {
          padding: 0 calc(11 / 390 * 100vw);
          margin: 0 calc(5 / 390 * 100vw);
          border-radius: calc(5 / 390 * 100vw);
        }
      }
      .mv_text {
        margin-bottom: calc(30 / 390 * 100vw);
        font-size: calc(16 / 390 * 100vw);
        line-height: calc(24 / 16);
      }
      .btn00 {
        width: calc(160 / 390 * 100vw);
        padding: calc(12 / 390 * 100vw) calc(24 / 390 * 100vw) calc(12 / 390 * 100vw);
        border-radius: calc(40 / 390 * 100vw);
        font-size: calc(16 / 390 * 100vw);
        text-align: right;
      }
      .dec_icon {
        bottom: calc(-65 / 390 * 100vw);
        right: calc(95 / 390 * 100vw);
        gap: calc(5 / 390 * 100vw);
        transform: scale(1);

        li {
          width: calc(130 / 390 * 100vw);
          border: calc(5 / 390 * 100vw) solid #fff;
          font-size: calc(18 / 390 * 100vw);
          .size_m {
            font-size: calc(30 / 390 * 100vw);
          }
        }
      }
      &::after {
        top: auto;
        right: auto;
        bottom: calc(50 / 390 * 100vw);
        left: 0;
        width: calc(500 / 390 * 100vw);
      }
    }
  }
}

/* Weakness Section */
.l-weakness {
  background: #f5f5f5;
  padding: 0 0 250px;

  .inner {
    position: relative;
    z-index: 0;
    margin: 0 auto;
    width: 1042px;
    max-width: 95%;
    h2 {
      margin-bottom: 47px;
      font-weight: 800;
      font-size: 40px;
      line-height: calc(60 / 40);
      text-align: center;
      color: #212a37;
      letter-spacing: 0.1em;

      .size_l {
        font-size: 60px;
      }
    }
    .list_weakness {
      position: relative;
      z-index: 0;
      display: flex;
      flex-flow: column;
      gap: 16px;

      .weakness00 {
        width: fit-content;
        font-weight: 600;
        font-size: 24px;
        letter-spacing: 0.05em;
        line-height: calc(36 / 24);
        color: #fefefe;
        border-radius: 10px;
        background: linear-gradient(45deg, #212a37 0%, #6a7079 100%);
        padding: 0.375em 19px;
      }
      &::after {
        content: "";
        display: block;
        position: absolute;
        z-index: -1;
        background-image: url("../img/img_weakness01.svg");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        top: -15px;
        right: 50px;
        width: 47.98%;
        aspect-ratio: 1;
      }
    }
  }
  @media screen and (max-width: 768px) {
    padding: 0;
    .inner {
      position: relative;
      z-index: 0;
      margin: 0 auto;
      width: calc(1042 / 390 * 100vw);
      max-width: 95%;
      padding: 0 calc(10 / 390 * 100vw);

      h2 {
        margin-bottom: calc(14 / 390 * 100vw);
        font-size: calc(18 / 390 * 100vw);
        line-height: calc(60 / 34);
        letter-spacing: 0.08em;

        .size_l {
          font-size: calc(34 / 390 * 100vw);
        }
      }
      .list_weakness {
        gap: calc(10 / 390 * 100vw);
        padding-bottom: calc(284 / 390 * 100vw);
        .weakness00 {
          font-size: calc(16 / 390 * 100vw);
          letter-spacing: 0.05em;
          line-height: calc(36 / 24);
          letter-spacing: 0.03em;
          border-radius: calc(10 / 390 * 100vw);
          padding: calc(10 / 390 * 100vw) calc(20 / 390 * 100vw);
        }
        &::after {
          top: auto;
          bottom: calc(94 / 390 * 100vw);
          right: calc(11 / 390 * 100vw);
          width: 57.05%;
        }
      }
    }
  }
}

/* Common Block Style */
.l-block_00 {
  .inner {
    margin: 0 auto;
    width: 1042px;
    max-width: 95%;
  }
}
/* Strategy Section */
.l-strategy {
  position: relative;
  z-index: 0;
  padding-bottom: 100px;
  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    background: url("../img/bc_strategy.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    top: 47px;
    left: 0;
    transform: translate(0, 0);
    width: 100%;
    height: calc(100% - 47px);
  }
  .sub_ttl {
    margin: -47px auto 94px;
    width: 628px;
    height: 94px;
    border-radius: 10px;
    background: #212a37;
    display: flex;
    justify-content: center;
    align-items: baseline;
    font-weight: 800;
    font-size: 24px;
    line-height: calc(60 / 24);
    text-align: center;
    color: #fefefe;

    .dec01 {
      font-size: 40px;
      text-align: center;
      color: #fed83b;
    }
  }
  .ttl02_a {
    margin-bottom: 64px;
    font-weight: 800;
    font-size: 60px;
    text-align: center;
    color: #fefefe;
    letter-spacing: 0.02em;

    .dec01 {
      color: #fed83b;
    }
  }
  .wrapper_content {
    background: #fff;
    border-radius: 50px;
    padding: 50px 50px 80px;
    display: flex;
    justify-content: space-between;
    flex-flow: wrap;
    gap: 50px 0;
    .ttl03 {
      width: 100%;
      font-weight: 800;
      font-size: 30px;
      line-height: calc(45 / 30);
      text-align: center;

      .wrapper_l {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0 15px;
        margin: 19px 10px 22px 0;

        .size_l {
          background: #5788ac;
          border-radius: 10px;
          color: #fefefe;
          padding: 10px 20px;
          font-size: 50px;
        }
      }
      .size_m {
        font-size: 40px;
        line-height: calc(45 / 40);
        .dec_c01 {
          color: #5788ac;
        }
      }
    }
    .wrapper_list {
      width: 41.34%;
      .box_list {
        line-height: calc(36 / 24);
        .ttl04 {
          margin-bottom: 10px;
          font-size: 24px;
          letter-spacing: 0.03em;
          color: #fefefe;
          background: #5788ac;
          border-radius: 10px;
          padding: 10px 20px;
        }
        ul {
          padding-left: 40px;
          display: flex;
          flex-flow: column;
          gap: 9px;

          li {
            position: relative;
            z-index: 0;
            font-size: 24px;
            letter-spacing: 0.03em;
            padding-left: 30px;
            &::after {
              content: "";
              display: block;
              position: absolute;
              z-index: 0;
              background: #5788ac;
              top: 50%;
              left: 0;
              transform: translate(0, -50%);
              width: 0.888em;
              aspect-ratio: 1;
              border-radius: 5px;
            }
          }
        }
        + .box_list {
          margin-top: 28px;
        }
      }
      .box_img {
        width: 53.07%;
      }
    }
    .box_img {
      width: 53.07%;
    }
  }
  @media screen and (max-width: 1042px) {
    .ttl02_a {
      line-height: 1.2;
    }
    .wrapper_content {
      .ttl03 {
        .wrapper_l {
          .size_l {
            font-size: calc(50 / 1042 * 100vw);
          }
        }
      }
      .wrapper_list {
        width: 100%;
        display: flex;
        flex-flow: wrap;
        justify-content: space-between;

        .box_list {
          width: 48%;
          + .box_list {
            margin-top: 0;
          }
          .ttl04 {
            height: 92px;
            display: flex;
            align-items: center;
          }
          ul {
            padding-left: 0;
            li {
              font-size: 22px;
            }
          }
        }
      }
      .box_img {
        margin: 0 auto;
      }
    }
  }

  @media screen and (max-width: 768px) {
    padding-bottom: calc(50 / 390 * 100vw);
    &::after {
      background: url("../img/bc_strategy_sp.jpg");
      top: calc(28 / 390 * 100vw);
      height: calc(100% - calc(28 / 390 * 100vw));
    }
    .inner {
      padding: 0 calc(10 / 390 * 100vw);
    }
    .sub_ttl {
      margin: calc(-28 / 390 * 100vw) auto calc(17 / 390 * 100vw);
      width: calc(335 / 390 * 100vw);
      height: calc(56 / 390 * 100vw);
      border-radius: calc(10 / 390 * 100vw);
      font-weight: 800;
      font-size: calc(16 / 390 * 100vw);
      line-height: 1;
      align-items: center;

      .dec01 {
        font-size: calc(18 / 390 * 100vw);
      }
    }
    .ttl02_a {
      margin-bottom: calc(27 / 390 * 100vw);
      font-size: calc(30 / 390 * 100vw);
      line-height: calc(50 / 30);
      letter-spacing: 0;
    }
    .wrapper_content {
      border-radius: calc(15 / 390 * 100vw);
      padding: calc(33 / 390 * 100vw) calc(21 / 390 * 100vw) calc(17 / 390 * 100vw);
      flex-flow: column;
      gap: calc(20 / 390 * 100vw) 0;

      .ttl03 {
        font-size: calc(18 / 390 * 100vw);
        line-height: 1;

        .wrapper_l {
          display: flex;
          justify-content: center;
          align-items: center;
          gap: 0 calc(5 / 390 * 100vw);
          margin: calc(15 / 390 * 100vw) 0 calc(11 / 390 * 100vw);

          .size_l {
            border-radius: calc(5 / 390 * 100vw);
            padding: calc(7 / 390 * 100vw) calc(10 / 390 * 100vw);
            font-size: calc(21 / 390 * 100vw);
            line-height: 1;
          }
        }
        .size_m {
          font-size: calc(20 / 390 * 100vw);
          line-height: calc(30 / 20);
          letter-spacing: -0.05em;
          .dec_c01 {
            color: #5788ac;
          }
        }
      }
      .wrapper_list {
        width: 100%;
        .box_list {
          width: 100%;
          line-height: calc(36 / 24);
          .ttl04 {
            height: auto;
            margin-bottom: calc(9 / 390 * 100vw);
            font-size: calc(18 / 390 * 100vw);
            border-radius: calc(10 / 390 * 100vw);
            padding: calc(10 / 390 * 100vw) calc(20 / 390 * 100vw);
            text-align: center;
          }
          ul {
            padding-left: calc(20 / 390 * 100vw);
            gap: calc(5 / 390 * 100vw);
            li {
              font-size: calc(18 / 390 * 100vw);
              padding-left: calc(25 / 390 * 100vw);
              &::after {
                width: calc(15 / 390 * 100vw);
                border-radius: calc(5 / 390 * 100vw);
              }
            }
          }
          + .box_list {
            margin-top: calc(18 / 390 * 100vw);
          }
        }
      }
      .box_img {
        margin-top: calc(-3 / 390 * 100vw);
        width: 100%;
      }
    }
  }
}
/* Strong Section */
.l-strong {
  overflow: hidden;
  position: relative;
  z-index: 0;
  background: #f3f4f7;
  padding: 80px 0 100px;

  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    background-image: url("../img/bc_strong.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center center;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 2000px;
    aspect-ratio: 2000 / 501;
  }
  .inner {
    margin: 0 auto;
    width: 1042px;
    max-width: 95%;

    .ttl_text {
      margin-bottom: 46px;
    }
    .list_strong {
      display: flex;
      flex-flow: wrap;
      justify-content: space-between;
      gap: 55px 0;

      li {
        position: relative;
        z-index: 0;
        width: 47.98%;
        background: #fefefe;
        border-radius: 10px;
        font-size: 24px;
        letter-spacing: 0.03em;
        line-height: calc(36 / 24);

        .dec_ttl01 {
          position: absolute;
          z-index: 1;
          top: -35px;
          left: -35px;
          width: 70px;
          aspect-ratio: 1;
          background: #e66983;
          font-weight: bold;
          font-size: 20px;
          letter-spacing: 0.03em;
          line-height: calc(24 / 20);
          text-align: center;
          color: #fefefe;
          display: flex;
          flex-flow: column;
          justify-content: center;
          align-items: center;
          border-radius: 50%;
        }
        .ttl03 {
          font-weight: 800;
          font-size: 24px;
          line-height: calc(45 / 24);
          color: #fefefe;
          background: #5788ac;
          border-radius: 10px 10px 0 0;
          padding: 14.5px 30px;
        }
        p {
          padding: 20px 30px;
        }
      }
    }
  }

  @media screen and (max-width: 1200px) {
    .inner {
      .list_strong {
        li {
          .dec_ttl01 {
            top: max(-45px, calc(-45px + 0.1 * (100vw - 1100px)));
            left: min(-10px, calc(-10px - 0.25 * (100vw - 1100px)));
          }
        }
      }
    }
  }
  @media screen and (max-width: 768px) {
    padding: calc(50 / 390 * 100vw) 0 calc(50 / 390 * 100vw);

    &::after {
      width: 100%;
    }
    .inner {
      .ttl_text {
        margin-bottom: calc(25 / 390 * 100vw);
        padding: 0 calc(10 / 390 * 100vw);
      }
      .list_strong {
        flex-flow: column;
        gap: calc(20 / 390 * 100vw) 0;
        padding: 0 calc(10 / 390 * 100vw);

        li {
          position: relative;
          z-index: 0;
          width: 100%;
          background: #fefefe;
          border-radius: calc(10 / 390 * 100vw);
          font-size: calc(18 / 390 * 100vw);
          letter-spacing: 0.03em;
          line-height: calc(32.4 / 18);

          .dec_ttl01 {
            top: calc(-10 / 390 * 100vw);
            left: calc(-10 / 390 * 100vw);
            width: calc(50 / 390 * 100vw);
            font-size: calc(16 / 390 * 100vw);
            letter-spacing: 0;
            line-height: calc(18 / 16);
          }
          .ttl03 {
            font-size: calc(20 / 390 * 100vw);
            line-height: calc(45 / 20);
            border-radius: calc(10 / 390 * 100vw) calc(10 / 390 * 100vw) 0 0;
            padding: calc(7.5 / 390 * 100vw) calc(20 / 390 * 100vw) calc(7.5 / 390 * 100vw) calc(50 / 390 * 100vw);
          }
          p {
            padding: calc(20 / 390 * 100vw) calc(20 / 390 * 100vw) calc(13 / 390 * 100vw);
          }
        }
      }
    }
  }
}

/* Area Section */
.l-area {
  background: #f3f4f7;
  padding-bottom: 80px;
  .inner {
    margin: 0 auto;
    width: 1042px;
    max-width: 95%;
    .ttl_text {
      margin-bottom: 45px;
    }

    .wrapper_area {
      display: flex;
      flex-flow: wrap;
    }

    .list_area {
      position: relative;
      z-index: 0;
      width: 32.05%;
      background: #fefefe;
      border-radius: 20px;
      display: flex;
      flex-flow: column;
      &.area01 {
        border: 10px solid #f2edaf;
        .ttl03 {
          background: #ec5b56;
          &::before {
            background: url(../img/icon_area01.svg);
          }
        }
        &::before {
          content: "";
          display: block;
          position: absolute;
          z-index: -1;
          background: #ebe8f6;
          top: 50%;
          right: -32px;
          transform: translate(0, -50%);
          width: 22px;
          height: 12px;
        }
        &::after {
          content: "";
          display: block;
          position: absolute;
          z-index: -1;
          background: #ebe8f6;
          bottom: -152px;
          left: 50%;
          transform: translate(-50%, 0);
          width: 12px;
          height: 142px;
        }
      }
      &.area02 {
        border: solid #ebe8f6;
        border-width: 10px 0 10px 10px;
        border-radius: 20px 0 0 0;
        background: #ebe8f6;
        margin-left: 20px;
        .ttl03 {
          background: #5788ac;
          &::before {
            background: url(../img/icon_area02.svg);
          }
        }
        ul {
          li {
            &::after {
              content: "";
              background: #5788ac;
            }
          }
        }
      }
      &.area03 {
        border: 10px solid #ebe8f6;
        border-radius: 0 20px 0 0;
        background: #ebe8f6;

        .ttl03 {
          background: #3983dc;
          &::before {
            background: url(../img/icon_area02.svg);
          }
        }
        ul {
          li {
            &::after {
              content: "";
              background: #3983dc;
            }
          }
        }
      }
      &.area04 {
        border: 10px solid #f2edaf;
        align-self: flex-end;
        &::after {
          content: "";
          display: block;
          position: absolute;
          z-index: -1;
          background-image: url("../img/img_area01.svg");
          background-repeat: no-repeat;
          background-size: cover;
          background-position: center center;
          top: -252px;
          right: -6px;

          width: 152px;
          aspect-ratio: 152 / 256;
        }
        .ttl03 {
          background: #f08c34;
          &::before {
            background: url(../img/icon_area03.svg);
            width: 36px;
            aspect-ratio: 36 / 40;
          }
        }
        ul {
          li {
            &::after {
              content: "";
              background: #f08c34;
            }
          }
        }
      }
      &.area05 {
        border: solid #ebe8f6;
        border-width: 0 0 10px 10px;
        border-radius: 0 0 0 20px;
        background: #ebe8f6;
        margin-left: 20px;
        .ttl03 {
          background: #7b55e6;
          &::before {
            background: url(../img/icon_area04.svg);
          }
        }
        ul {
          li {
            &::after {
              content: "";
              background: #7b55e6;
            }
          }
        }
      }
      &.area06 {
        border: solid #ebe8f6;
        border-width: 0 10px 10px 10px;
        border-radius: 0 0 20px 0;
        background: #ebe8f6;

        .ttl03 {
          background: #4a5ee5;
          &::before {
            background: url(../img/icon_area05.svg);
          }
        }
        ul {
          li {
            &::after {
              content: "";
              background: #4a5ee5;
            }
          }
        }
      }
      .ttl03 {
        font-weight: 800;
        font-size: 20px;
        line-height: calc(24 / 20);
        color: #fefefe;
        border-radius: 10px 10px 0 0;
        padding: 16px 20px;
        display: flex;
        align-items: center;
        gap: 15px;

        &::before {
          content: "";
          background-repeat: no-repeat;
          background-size: cover;
          background-position: center center;
          align-self: center;
          width: 40px;
          aspect-ratio: 1;
        }
      }
      ul {
        height: 100%;
        background: #fefefe;
        padding: 22px 20px 30px 30px;
        border-radius: 0 0 10px 10px;
        display: flex;
        flex-flow: column;
        gap: 24px 0;

        li {
          position: relative;
          z-index: 0;
          font-size: 20px;
          letter-spacing: 0.03em;
          padding-left: 30px;
          white-space: nowrap;
          &::after {
            content: "";
            display: block;
            position: absolute;
            z-index: 0;
            background: #ec5b56;
            top: 50%;
            left: 0;
            transform: translate(0, -50%);
            width: 0.888em;
            aspect-ratio: 1;
            border-radius: 5px;
          }
        }
      }
    }
  }
  @media screen and (max-width: 1200px) {
    .inner {
      .list_area {
        &.area04 {
          &::after {
            top: calc(-188px - 0.1481481481 * (100vw - 768px));
            width: calc(112px + 0.09259259259 * (100vw - 768px));
          }
        }
      }
    }
  }
  @media screen and (max-width: 768px) {
    padding-bottom: calc(50 / 390 * 100vw);
    .inner {
      padding: 0 calc(10 / 390 * 100vw);
      .ttl_text {
        margin-bottom: calc(25 / 390 * 100vw);
        /* padding: 0 calc( 10 / 390 * 100vw ); */
      }
      .wrapper_area {
        justify-content: space-between;
        gap: calc(11.5 / 390 * 100vw) 0;
      }
      .list_area {
        width: 48.57%;
        border-radius: calc(10 / 390 * 100vw);
        &.area01 {
          order: 1;
          border: calc(5 / 390 * 100vw) solid #f2edaf;
          &::before {
            right: calc(-15 / 390 * 100vw);
            width: calc(10 / 390 * 100vw);
            height: calc(10 / 390 * 100vw);
          }
          &::after {
            bottom: calc(-16 / 390 * 100vw);
            width: calc(10 / 390 * 100vw);
            height: calc(12 / 390 * 100vw);
          }
        }
        &.area02 {
          order: 3;
          border: solid #ebe8f6;
          border-width: calc(5 / 390 * 100vw) calc(5 / 390 * 100vw) 0 calc(5 / 390 * 100vw);
          border-radius: calc(10 / 390 * 100vw) 0 0 0;
          background: #ebe8f6;
          margin-left: 0;
          .ttl03 {
            background: #5788ac;
            &::before {
              background: url(../img/icon_area02.svg);
            }
          }
          ul {
            li {
              &::after {
                content: "";
                background: #5788ac;
              }
            }
          }
          &::after {
            content: "";
            display: block;
            position: absolute;
            z-index: -1;
            border-radius: calc(10 / 390 * 100vw);
            background-color: #ebe8f6;
            top: calc(-5 / 390 * 100vw);
            left: calc(-5 / 390 * 100vw);
            width: calc(350 / 390 * 100vw);
            height: calc(409 / 390 * 100vw);
          }
        }
        &.area03 {
          order: 4;
          border: solid #ebe8f6;
          border-width: calc(5 / 390 * 100vw) calc(5 / 390 * 100vw) 0 calc(5 / 390 * 100vw);
          border-radius: 0 calc(10 / 390 * 100vw) 0 0;
          background: #ebe8f6;

          .ttl03 {
            background: #3983dc;
            &::before {
              background: url(../img/icon_area02.svg);
            }
          }
          ul {
            li {
              &::after {
                content: "";
                background: #3983dc;
              }
            }
          }
        }
        &.area04 {
          order: 2;
          border: calc(5 / 390 * 100vw) solid #f2edaf;
          align-self: auto;
          &::after {
            z-index: 0;
            top: auto;
            bottom: calc(-23 / 390 * 100vw);
            right: calc(-6 / 390 * 100vw);
            width: calc(74.26 / 390 * 100vw);
          }
          .ttl03 {
            background: #f08c34;
            &::before {
              background: url(../img/icon_area03.svg);
              width: calc(14 / 390 * 100vw);
            }
          }
          &::before {
            content: "";
            display: block;
            position: absolute;
            z-index: -1;
            background: #ebe8f6;
            bottom: calc(-16 / 390 * 100vw);
            left: 50%;
            transform: translate(-50%, 0);
            width: calc(10 / 390 * 100vw);
            height: calc(12 / 390 * 100vw);
          }
        }
        &.area05 {
          order: 5;
          border: solid #ebe8f6;
          border-width: 0 calc(5 / 390 * 100vw) calc(5 / 390 * 100vw) calc(5 / 390 * 100vw);
          border-radius: 0 0 0 calc(10 / 390 * 100vw);
          margin-left: 0;
        }
        &.area06 {
          order: 6;
          border: solid #ebe8f6;
          border-width: 0 calc(5 / 390 * 100vw) calc(5 / 390 * 100vw) calc(5 / 390 * 100vw);
          border-radius: 0 0 calc(10 / 390 * 100vw) 0;

          .ttl03 {
            background: #4a5ee5;
            &::before {
              background: url(../img/icon_area05.svg);
            }
          }
        }
        .ttl03 {
          font-size: calc(12 / 390 * 100vw);
          line-height: 1;
          border-radius: calc(5 / 390 * 100vw) calc(5 / 390 * 100vw) 0 0;
          padding: calc(10.5 / 390 * 100vw) calc(10 / 390 * 100vw);
          gap: calc(5 / 390 * 100vw);

          &::before {
            width: calc(15 / 390 * 100vw);
          }
        }
        ul {
          padding: calc(10 / 390 * 100vw);
          border-radius: 0 0 calc(5 / 390 * 100vw) calc(5 / 390 * 100vw);
          gap: calc(6 / 390 * 100vw) 0;

          li {
            font-size: calc(14 / 390 * 100vw);
            letter-spacing: 0;
            padding-left: calc(15 / 390 * 100vw);
            line-height: calc(19 / 14);

            &::after {
              width: calc(10 / 390 * 100vw);
              border-radius: calc(3 / 390 * 100vw);
              top: calc(3 / 390 * 100vw);
              transform: translate(0, calc(3 / 390 * 100vw));
            }
          }
        }
      }
    }
  }
}

/* Medium Section */
.l-medium {
  position: relative;
  z-index: 0;
  padding: 80px 0;
  background-color: #d1e2ef;
  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    background-image: url("../img/bc_medium.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 100%;
    aspect-ratio: 1920 / 1038;
    mix-blend-mode: multiply;
  }
  .ttl_text {
    margin-bottom: 53px;
  }
  .wrapper_medium {
    background: #fefefe;
    border-radius: 10px;
    .ttl03 {
      padding: 23px 30px;
      background: #5788ac;
      border-radius: 10px 10px 0 0;
      font-size: 24px;
      color: #fefefe;
    }
    .list_medium {
      padding: 30px;
      display: flex;
      flex-flow: column;
      gap: 27px 0;

      li {
        &:nth-of-type(5) {
          .in_list {
            li {
              font-size: 19px;
            }
          }
        }
        .ttl04 {
          margin-bottom: 10px;
          font-size: 24px;
          letter-spacing: 0.03em;
          line-height: calc(36 / 24);
          color: #5788ac;
          display: flex;
          align-self: center;
          gap: 0 10px;
          &::before {
            content: "";
            background: #5788ac;
            width: 0.888em;
            aspect-ratio: 1;
            border-radius: 5px;
            align-self: center;
            transform: translateY(1px);
          }
        }
        .in_list {
          display: flex;
          flex-flow: wrap;
          gap: 10px 40px;
          padding-left: 28px;
          li {
            position: relative;
            z-index: 0;
            font-size: 20px;
            letter-spacing: 0.03em;
            line-height: 1.5;
            &::before {
              content: "";
              display: block;
              position: absolute;
              z-index: 0;
              background-color: #5788ac;
              top: 50%;
              left: -25px;
              transform: translate(0, -50%);
              width: 10px;
              aspect-ratio: 1;
              opacity: 0.25;
              border-radius: 50%;
              align-self: center;
            }
            &.no_maker {
              &::before {
                display: none;
              }
            }

            .size_s {
              font-size: 16px;
            }
          }
        }
      }
    }
    + .wrapper_medium {
      margin-top: 20px;
    }
  }
  .cap {
    margin-top: 3px;
    font-size: 16px;
    letter-spacing: 0.1em;
    line-height: calc(43.2 / 16);
    text-align: right;
  }
  .attention {
    margin: 52px auto 0;
    padding-bottom: 10px;
    width: fit-content;
    font-weight: 800;
    font-size: 30px;
    letter-spacing: 0.03em;
    line-height: calc(45 / 30);
    text-align: center;
    color: #e66983;
    border-bottom: 5px solid #e66983;
  }
  @media screen and (max-width: 768px) {
    padding: calc(50 / 390 * 100vw) 0;

    &::after {
      background-image: url("../img/bc_medium_sp.png");
      aspect-ratio: 780 / 1600;
    }

    .inner {
      padding: 0 calc(10 / 390 * 100vw);
    }

    .ttl_text {
      margin-bottom: calc(14 / 390 * 100vw);
      letter-spacing: 0.075em;
    }
    .wrapper_medium {
      border-radius: calc(10 / 390 * 100vw);
      .ttl03 {
        padding: calc(21 / 390 * 100vw) calc(20 / 390 * 100vw);
        border-radius: calc(10 / 390 * 100vw) calc(10 / 390 * 100vw) 0 0;
        font-size: calc(18 / 390 * 100vw);
      }
      .list_medium {
        padding: calc(14 / 390 * 100vw) calc(20 / 390 * 100vw) calc(20 / 390 * 100vw);
        gap: 0;

        li {
          &:nth-of-type(5) {
            .in_list {
              li {
                font-size: calc(14 / 390 * 100vw);
              }
            }
          }
          .ttl04 {
            margin-bottom: calc(-3 / 390 * 100vw);
            font-size: calc(18 / 390 * 100vw);
            letter-spacing: 0.03em;
            line-height: calc(36 / 18);
            gap: 0 calc(10 / 390 * 100vw);

            &::before {
              content: "";
              width: calc(15 / 390 * 100vw);
              transform: translateY(2px);
            }
          }
          .in_list {
            display: flex;
            flex-flow: wrap;
            gap: 0 calc(16 / 390 * 100vw);
            padding-left: 0;

            li {
              position: relative;
              z-index: 0;
              font-size: calc(14 / 390 * 100vw);
              letter-spacing: 0.03em;
              line-height: 1.86;

              &::before {
                left: calc(-11 / 390 * 100vw);
                width: calc(6 / 390 * 100vw);
              }
              &.no_maker {
                &::before {
                  display: none;
                }
              }
              &.no_maker_sp {
                &::before {
                  display: none;
                }
              }

              .size_s {
                font-size: calc(12 / 390 * 100vw);
              }
            }
          }
        }
      }
      + .wrapper_medium {
        margin-top: calc(20 / 390 * 100vw);
      }
    }
    .cap {
      margin-top: calc(15 / 390 * 100vw);
      font-size: calc(14 / 390 * 100vw);
      letter-spacing: 0;
      line-height: 1.5;
      text-align: left;
    }
    .attention {
      margin: calc(29 / 390 * 100vw) auto 0;
      padding-bottom: calc(9 / 390 * 100vw);
      font-size: calc(22 / 390 * 100vw);
      line-height: calc(33 / 22);
      border-bottom: calc(5 / 390 * 100vw) solid #e66983;
    }
  }
}

/* Flow Section */
.l-flow {
  padding: 80px 0 190px;
  .ttl_text {
    margin-bottom: 55px;
  }
  .list_flow {
    display: flex;
    justify-content: space-between;

    li {
      position: relative;
      z-index: 0;
      width: 18.23%;
      .dec_step {
        position: absolute;
        z-index: 1;
        top: -10px;
        left: -10px;
        width: 75px;
        aspect-ratio: 1;
        background: #e66983;
        font-weight: bold;
        font-size: 20px;
        letter-spacing: 0.03em;
        line-height: calc(22 / 20);
        text-align: center;
        color: #fefefe;
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        border-radius: 50%;
      }
      .ttl03 {
        height: 71px;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 10px 0 14px;
        font-weight: 800;
        font-size: 24px;
        line-height: calc(36 / 24);
        text-align: center;
        color: #5788ac;
      }
      p {
        font-size: 18px;
        line-height: calc(26 / 18);
      }
    }
  }
  @media screen and (max-width: 1100px) {
    .list_flow {
      li {
        .dec_step {
          top: -40px;
        }
      }
    }
  }
  @media screen and (max-width: 900px) {
    .list_flow {
      li {
        .ttl03 {
          font-size: calc(24 / 900 * 100vw);
        }
      }
    }
  }
  @media screen and (max-width: 768px) {
    padding: calc(50 / 390 * 100vw) 0 calc(132 / 390 * 100vw);

    .inner {
      padding: 0 calc(10 / 390 * 100vw);
    }
    .ttl_text {
      margin-bottom: calc(25 / 390 * 100vw);
    }
    .list_flow {
      flex-flow: column;
      gap: calc(18 / 390 * 100vw);

      li {
        width: 100%;
        display: grid;
        grid-template-columns: 28.57% 68.57%;
        grid-template-rows: repeat(3, 1fr);
        grid-column-gap: 2.86%;
        grid-row-gap: 0;

        .dec_step {
          position: absolute;
          z-index: 1;
          top: calc(-10 / 390 * 100vw);
          left: calc(-10 / 390 * 100vw);
          width: calc(50 / 390 * 100vw);
          font-size: calc(14 / 390 * 100vw);
          letter-spacing: 0;
          line-height: calc(16 / 14);
        }
        .box_img {
          grid-area: 1 / 1 / 4 / 2;
        }
        .ttl03 {
          height: auto;
          margin: 0;
          font-size: calc(18 / 390 * 100vw);
          line-height: calc(36 / 18);
          justify-content: flex-start;
          align-self: baseline;
          grid-area: 1 / 2 / 2 / 3;
        }
        p {
          font-size: calc(16 / 390 * 100vw);
          line-height: calc(24 / 16);
          grid-area: 2 / 2 / 4 / 3;
        }
      }
    }
  }
}

/* Contact Section */
.l-contact {
  position: relative;
  z-index: 0;
  padding: 0 0 80px;
  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    background: url("../img/bc_contact_sp.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    bottom: 0;
    left: 0;
    transform: translate(0, 0);
    width: 100%;
    height: calc(100% - 110px);
  }
  .inner {
    margin: 0 auto;
    width: 1042px;
    max-width: 95%;

    .dec_ttl {
      margin: -110px 0 100px;
      background: #ffffff;
      border-radius: 30px;
      padding: 53px 0 34px;
      font-weight: 800;
      font-size: 24px;
      letter-spacing: 0.03em;
      line-height: calc(43.2 / 24);
      text-align: center;

      .size_l {
        margin-bottom: 30px;
        display: block;
        font-size: 60px;
        line-height: 1;
      }
      .dec_c01 {
        color: #e66983;
      }
    }

    .dec_text01 {
      margin-bottom: 47px;
      font-weight: 600;
      font-size: 30px;
      letter-spacing: 0.03em;
      line-height: calc(45 / 30);
      text-align: center;
      color: #fefefe;

      .dec01 {
        background: #fff;
        color: #2362db;
        padding: 12px 37px 15px;
        border-radius: 35px;
        margin-right: 10px;
        letter-spacing: 0.1em;
      }
    }

    h2 {
      margin-bottom: 62px;
      font-weight: 800;
      font-size: 60px;
      letter-spacing: 0.03em;
      line-height: calc(45 / 50);
      text-align: center;
      color: #fed83b;
      letter-spacing: 0.05em;
    }
    .box_form {
      aspect-ratio: 1042/1390;
      background: #fff;
      border-radius: 30px;
      iframe {
        display: block;
        width: 100%;
        height: 100%;
        transform: scale(0.95);
        transform-origin: center;
      }
    }
  }
  @media screen and (max-width: 1090px) {
    .inner {
      .box_form {
        aspect-ratio: unset;
        height: 1396px;
      }
    }
  }
  @media screen and (max-width: 900px) {
    .inner {
      .dec_ttl {
        .size_l {
          font-size: calc(60 / 900 * 100vw);
        }
      }
    }
  }

  @media screen and (max-width: 768px) {
    padding: 0 0 calc(50 / 390 * 100vw);
    &::after {
      background: url("../img/bc_contact_sp.jpg");
      height: calc(100% - calc(82 / 390 * 100vw));
    }
    .inner {
      max-width: 89.74%;

      .dec_ttl {
        margin: calc(-82 / 390 * 100vw) 0 calc(45 / 390 * 100vw);
        border-radius: calc(10 / 390 * 100vw);
        padding: calc(18 / 390 * 100vw);
        font-size: calc(16 / 390 * 100vw);
        letter-spacing: 0.03em;
        line-height: calc(27 / 16);

        .size_l {
          margin-bottom: calc(10 / 390 * 100vw);
          font-size: calc(30 / 390 * 100vw);
          line-height: calc(45 / 30);
        }
      }

      .dec_text01 {
        margin-bottom: calc(9 / 390 * 100vw);
        font-size: calc(18 / 390 * 100vw);
        letter-spacing: 0.025em;
        line-height: calc(45 / 30);

        .dec01 {
          display: inline-block;
          margin: 0px calc(12 / 390 * 100vw) calc(9 / 390 * 100vw) auto;
          width: fit-content;
          padding: calc(8 / 390 * 100vw) calc(20 / 390 * 100vw) calc(8 / 390 * 100vw);
          border-radius: calc(21 / 390 * 100vw);
        }
      }

      h2 {
        margin-bottom: calc(25 / 390 * 100vw);
        font-size: calc(24 / 390 * 100vw);
        letter-spacing: 0.025em;
        line-height: calc(45 / 24);
      }
      .box_form {
        aspect-ratio: unset;
        height: 1396px;

        border-radius: calc(10 / 390 * 100vw);
      }
    }
  }
  @media screen and (max-width: 535px) {
    .inner {
      .box_form {
        /* aspect-ratio: 319/1663; */
        height: calc(1920px - 0.623255814 * (100vw - 320px));
      }
    }
  }
}
