@charset "UTF-8";
/* ---------------------
  common
--------------------- */
.f20 {
  font-size: 2rem;
}
@media screen and (max-width: 834px) {
  .f20 {
    font-size: 1.8rem;
  }
}

.f26 {
  font-size: 2.6rem;
}
@media screen and (max-width: 834px) {
  .f26 {
    font-size: clamp(1.8rem, 5.6vw, 3.2vw);
  }
}

.f34 {
  font-size: 3.4rem;
}
@media screen and (max-width: 834px) {
  .f34 {
    font-size: clamp(1.8rem, 5.6vw, 2.8vw);
  }
}

.f46 {
  font-size: 4.6rem;
}
@media screen and (max-width: 834px) {
  .f46 {
    font-size: clamp(2rem, 5.6vw, 5.6vw);
  }
}

.f52 {
  font-size: 5.2rem;
}
@media screen and (max-width: 834px) {
  .f52 {
    font-size: clamp(2rem, 5.6vw, 5.6vw);
  }
}

.fc-blue {
  color: #3b9cff;
}

.fc-dkbl {
  color: #2468ae;
}

.fc-wht {
  color: #fff;
}

.c-txt {
  font-weight: 500;
}
@media screen and (max-width: 450px) {
  .c-txt.tac {
    text-align: left;
  }
}

strong {
  font-weight: unset;
}

/* ---------------------
  problem03
--------------------- */
.problem03-intro__ttl {
  width: fit-content;
  margin: 0 auto 5rem;
  padding: 1.6rem 1.6rem 1.2rem;
  color: #fff;
  background: linear-gradient(90deg, rgb(2, 111, 237) 0%, rgb(1, 173, 247) 100%);
}
@media screen and (max-width: 834px) {
  .problem03-intro__ttl {
    margin-bottom: 2rem;
    padding: 1rem 1.5rem 0.7rem;
  }
}
.problem03-intro .f26 {
  margin: 5rem 0 3rem;
}
@media screen and (max-width: 834px) {
  .problem03-intro .f26 {
    margin: 2rem 0;
  }
}
.problem03-intro .c-txt {
  margin-top: 5rem;
}
@media screen and (max-width: 834px) {
  .problem03-intro .c-txt {
    margin-top: 2rem;
  }
}
.problem03-intro__swiper {
  margin: 7rem auto 0;
  padding-bottom: 5rem;
  max-width: 80rem;
  max-height: 50rem;
  aspect-ratio: 800/500;
}
@media screen and (max-width: 834px) {
  .problem03-intro__swiper {
    margin-top: 3rem;
    padding-bottom: 3rem;
  }
}
.problem03-intro__swiper .swiper-slide {
  display: block;
  max-height: 45rem;
}
.problem03-intro__swiper img {
  display: block; /* 画像のベースライン隙間を消す */
  width: 100%;
  height: auto;
}

@media screen and (min-width: 835px) {
  .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 0.75rem;
  }
  .swiper-pagination-bullet {
    width: 1.5rem;
    height: 1.5rem;
  }
}
.swiper-pagination-bullet-active {
  background: #3c9cff;
}

.problem03-method {
  margin-top: 15rem;
  padding: 15rem 0;
  background: linear-gradient(45deg, rgb(207, 231, 250) 0%, rgb(239, 248, 255) 20%, rgb(239, 248, 255) 80%, rgb(206, 231, 250) 100%);
}
@media screen and (max-width: 834px) {
  .problem03-method {
    margin-top: 5rem;
    padding: 5rem 0;
  }
}
@media screen and (max-width: 450px) {
  .problem03-method .f42 {
    font-size: 5.8vw;
  }
}
.problem03-method__flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  gap: 3rem;
}
@media screen and (max-width: 1100px) {
  .problem03-method__flex {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-direction: normal;
    -webkit-box-orient: horizontal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 1rem;
  }
}
.problem03-method__flex .c-txt {
  max-width: 50rem;
  padding-bottom: 1em;
}
@media screen and (max-width: 1100px) {
  .problem03-method__flex .c-txt {
    max-width: 100%;
    padding-bottom: 0;
  }
}
.problem03-method__cont {
  max-width: 63.5rem;
  min-width: 63.5rem;
}
@media screen and (max-width: 1100px) {
  .problem03-method__cont {
    max-width: 100%;
    min-width: auto;
  }
}
.problem03-method__cont .f46 {
  margin-top: 3rem;
}
@media screen and (max-width: 834px) {
  .problem03-method__cont .f46 {
    margin-top: 2rem;
  }
}
.problem03-method .js-scroll {
  margin-top: 8rem;
  padding-bottom: 1rem;
}
@media screen and (max-width: 834px) {
  .problem03-method .js-scroll {
    margin-top: 3rem;
  }
}
.problem03-method__list {
  min-width: 120rem;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}
.problem03-method__item {
  position: relative;
}
.problem03-method__item::before {
  position: absolute;
  content: "";
  top: calc(50% - 1.5rem - 0.8rem);
  left: -2.1rem;
  height: 1.6rem;
  aspect-ratio: 0.8660254038;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  background: #3c9cff;
}
.problem03-method__item:first-of-type::before {
  display: none;
}
.problem03-method__item .f30 {
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 834px) {
  .problem03-method__item .f30 {
    font-size: 2rem;
  }
}
.problem03-method__item figure {
  margin-top: -1.5rem;
}
@media screen and (max-width: 834px) {
  .problem03-method__item figure {
    margin-top: -1rem;
  }
}
.problem03-method__item .f15 {
  margin-top: 1em;
}
.problem03-method__wrap {
  margin-top: 8rem;
  padding: 8rem 6rem;
  width: 100%;
  background-color: #dfeff7;
  border-radius: 1rem;
  -webkit-border-radius: 1rem;
}
@media screen and (max-width: 834px) {
  .problem03-method__wrap {
    margin-top: 3rem;
    padding: 3rem;
  }
}
@media screen and (max-width: 450px) {
  .problem03-method__wrap {
    padding: 2rem;
  }
}
@media screen and (max-width: 834px) {
  .problem03-method .f36 {
    font-size: 2rem;
  }
}
.problem03-method__tb {
  margin-top: 5rem;
  width: 100%;
  border-spacing: 0;
}
@media screen and (max-width: 834px) {
  .problem03-method__tb {
    margin-top: 0rem;
  }
}
@media screen and (max-width: 834px) {
  .problem03-method__tb-pc {
    display: none;
  }
}
.problem03-method__tb-sp {
  display: none;
}
@media screen and (max-width: 834px) {
  .problem03-method__tb-sp {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .problem03-method__tb-sp:not(:first-of-type) {
    margin-top: 2rem;
  }
}
@media screen and (max-width: 500px) {
  .problem03-method__tb .f20 {
    line-height: 1.4;
    font-size: 3.8vw;
  }
}
@media screen and (max-width: 500px) {
  .problem03-method__tb .f14 {
    font-size: 3vw;
  }
}
@media screen and (max-width: 834px) {
  .problem03-method__th01 {
    width: 50%;
    height: 100%;
  }
  .problem03-method__th01:not(:has(.problem03-method__th-stg)) {
    padding: 3rem 0;
    border-bottom: 1px solid #a6bbd0;
  }
}
.problem03-method__th02, .problem03-method__td {
  border-top: 1px solid #a6bbd0;
}
@media screen and (max-width: 834px) {
  .problem03-method__th02, .problem03-method__td {
    width: 50%;
    padding: 1rem;
    border-top-width: 0;
  }
}
.problem03-method__th02 {
  width: 21rem;
}
@media screen and (max-width: 834px) {
  .problem03-method__th02 {
    width: 100%;
    height: 100%;
    padding: 1rem;
    border-top-width: 0;
    border-bottom-width: 0;
  }
}
.problem03-method__th-stg {
  padding: 3rem 0;
  display: block;
  background-color: rgba(255, 255, 255, 0.6);
  border-radius: 1rem 1rem 0 0;
  -webkit-border-radius: 1rem 1rem 0 0;
  border: 1px solid #3b9cff;
  border-bottom-width: 0;
  font-weight: 500;
}
@media screen and (max-width: 834px) {
  .problem03-method__th-stg {
    padding: 3rem 1rem;
    height: 100%;
    border-radius: 0;
    -webkit-border-radius: 0;
    border-bottom-width: 1px;
    border-right-width: 0;
  }
}
@media screen and (max-width: 450px) {
  .problem03-method__th-stg.-fouth {
    padding: 4rem 1rem;
  }
}
.problem03-method__td {
  text-align: center;
  line-height: 1.4;
}
@media screen and (max-width: 834px) {
  .problem03-method__td {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-direction: normal;
    -webkit-box-orient: horizontal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .problem03-method__td:has(.problem03-method__td-stg) {
    padding: 0;
  }
  .problem03-method__td:not(:has(.problem03-method__td-stg)) {
    border-bottom: 1px solid #a6bbd0;
  }
  .problem03-method__td:last-of-type {
    padding-bottom: 2.8rem;
  }
  .problem03-method__td:last-of-type:has(br) {
    padding: 1.1rem 0;
  }
}
.problem03-method__td-stg {
  padding: 5rem 0;
  display: block;
  border-left: 1px solid #3b9cff;
  border-right: 1px solid #3b9cff;
  background-color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}
@media screen and (max-width: 834px) {
  .problem03-method__td-stg {
    width: 100%;
    padding: 1rem;
    height: calc(100% - 2px);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border: 1px solid #3b9cff;
    border-left-width: 0;
  }
}
.problem03-method__td-stg.-last {
  border-bottom: 1px solid #3b9cff;
  border-radius: 0 0 1rem 1rem;
  -webkit-border-radius: 0 0 1rem 1rem;
}

.problem03-merit {
  padding: 15rem 0;
  background-color: #155ea9;
}
@media screen and (max-width: 834px) {
  .problem03-merit {
    padding: 5rem 0;
  }
}
@media screen and (max-width: 450px) {
  .problem03-merit .f42 {
    line-height: 1.3;
  }
}
.problem03-merit__list {
  margin-top: 8rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}
@media screen and (max-width: 834px) {
  .problem03-merit__list {
    margin-top: 3rem;
    grid-column-gap: 2rem;
    grid-row-gap: 2rem;
  }
}
@media screen and (max-width: 600px) {
  .problem03-merit__list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.problem03-merit__item {
  padding: 4rem;
  background-color: #fff;
  border-radius: 1rem;
  -webkit-border-radius: 1rem;
}
@media screen and (max-width: 1100px) {
  .problem03-merit__item {
    padding: 3rem;
  }
}
@media screen and (max-width: 834px) {
  .problem03-merit__item {
    padding: 2rem;
  }
}
.problem03-merit__item .f30 {
  margin: 4rem 0 2rem;
  font-size: 3rem;
}
@media screen and (max-width: 834px) {
  .problem03-merit__item .f30 {
    margin: 2rem 0 1rem;
    font-size: 2.2rem;
    line-height: 1.4;
  }
}