.header {
  width: 100%;
  aspect-ratio: 1440 / 880;
  background: url(../img/mv.png) no-repeat center / cover;
  position: relative;
}
@media screen and (max-width: 768px) {
  .header {
    aspect-ratio: 1 / 1
  }
}
.header_icon {
  min-width: 11.625rem;
  position: absolute;
  top: 1.25rem;
  left: 1.875rem;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .header_icon {
    top: 0.625rem;
    left: 0.625rem;
  }
}
.header_icon img {
  width: 5rem;
  height: auto;
}

.header_icon p {
  font-size: 1.5625rem;
  color: #fff;
  padding-bottom: 1.125rem;
}
.header .container{
  position: absolute;
  top: 16vw;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width:768px) {
  .header .container{
    top: 38vw;
  }
  
}
.header h1{
  font-size: min(2.6vw,3.125rem);
  display: flex;
  flex-direction: column;
  row-gap: min(1.3vw,1.5625rem);
  align-items: flex-start;
  padding-bottom:min(5.2vw,6.25rem);
  margin-left: 1.25rem;
}
@media screen and (max-width: 768px) {
  .header h1{
    font-size: 4vw;
    margin-left: 0;
  }
}
.header h1 span{
  display: block;
  background: #BAE2FF;
  color:#133248;
  padding: 0.625rem 1.25rem;
}
section{
  padding: 120px 0;
}
@media screen and (max-width: 768px) {
  section{
    padding: 60px 0;
  }
}
section:nth-child(even){
  background: #CEEBFF94;
}

.feature_list{
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  justify-content: center;  
}
.feature_list >  div{
  width: calc((100% - 2.5rem) / 2);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width:768px) {
  .feature_list >  div{
    width: 100%;
    display: block;
  }
}
.feature_list > div > *{
  width: calc((100% - 0.625rem) / 2);
}
@media screen and (max-width:768px) {
  .feature_list > div > *{
    width: 100%;
  }
}
.feature_list > div > dd{
  font-size: min(2.06vw,1.5rem);
  line-height: 1.1;
}
@media screen and (max-width:768px) {
  .feature_list > div > dd{
    font-size: 1rem;
  }
}
.feature_list > div:last-child{
  width: 100%;
  display: block;
}
.feature_list > div:last-child dd{
  width: 100%;
}
.feature_list >div:last-child table{
  width: 100%;
  border-collapse: collapse;
  margin-top: 1.25rem;
}
.feature_list >div:last-child table tr th,
.feature_list >div:last-child table tr td{
  width: 25%;
  padding: 2% 0;
  text-align: center;
  vertical-align: middle;
  border: 8px solid #fff;
  font-size: 1.6875rem;
}
@media screen and (max-width:768px) {
  .feature_list >div:last-child table tr th,
  .feature_list >div:last-child table tr td{
    font-size: 0.875rem;
    border: 3px solid #fff;
    padding: 4% 0;
  }
}
.feature_list >div:last-child table thead th{
  background: #D3ECFF;
}
.feature_list >div:last-child table thead th.bg_orange{
  background: #FFD0A9;
  font-size: 1.9375rem;
  font-weight: bold;
}
@media screen and (max-width:768px) {
  .feature_list >div:last-child table thead th.bg_orange{
    font-size: 1.125rem;
  }
}
.feature_list >div:last-child table tbody tr th,
.feature_list >div:last-child table tbody tr td{
 background: #ECF7FF;
}
.feature_list >div:last-child table tbody tr td.bg_orange{
  background: #FFECDD;
  font-size:2rem;
  font-weight: bold;
}
@media screen and (max-width:768px) {
  .feature_list >div:last-child table tbody tr td.bg_orange{
    font-size:1.125rem;
  }
}
.voice_list{
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  justify-content: center;
  padding-bottom: 3.75rem;
}
.voice_list > li{
  width: calc((100% - 2.5rem) / 2);
}
@media screen and (max-width:768px) {
  .voice_list > li{
    width: 100%;
  }
}
.voice_list li p.voice_comment{
  font-size: min(2.06vw,24px);
  line-height: 1.2;
  aspect-ratio:1 / 1 ;
  background-image: url(../img/voice_bg.png);
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  padding: min(8.10vw,94px);
}
@media screen and (max-width:768px) {
  .voice_list li p.voice_comment{
    font-size: 4vw;
    padding: 20vw 12vw;
  }
}
.voice_list li p.voice_comment span{
  font-weight: bold;
  background: linear-gradient(transparent 70%,#FEFC88ED 70%);
}
.voice_list li div.voice_name{
  font-size: min(1.56vw,18px);
  text-align: right;
  margin-top: 0.625rem;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: 0.625rem;
}
@media screen and (max-width:768px) {
  .voice_list li div.voice_name{
    font-size: 3.5vw;
  }
}
.voice_list li div.voice_name img{
  width: min(13.275vw,154px);
  height: auto;
  border-radius: 50%;
  border: 2px solid #FEFC88ED;
  margin-top: -2.375rem;
}
@media screen and (max-width:768px) {
  .voice_list li div.voice_name img{
    width: 20vw;
  }
}
.intro_content{
  position: relative;
}
@media screen and (max-width:768px) {
  .intro_content{
    padding-top: 25%;
  }
}
.intro_content img{
  width:24%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
@media screen and (max-width:768px) {
  .intro_content img{
    width:40%;
    top: 0;
    left: 50%;
    transform: translate(-50%,0);
  }
}
.intro_content p{
  width:81% ;
  margin-left: auto;
  font-size: min(2.12vw, 27px);
  padding: 30px 1% 30px 5%;
  border: 5px solid #CEEBFF;
  border-radius: 20px;
}
@media screen and (max-width:768px) {
  .intro_content p{
    width: 100%;
    font-size: 4vw;
    padding: 15vw 5% 15vw 5%;
    border: 3px solid #CEEBFF;
    border-radius: 10px;
  }
}
.howto_list{
  display: flex;
  justify-content: space-between;
  column-gap: 0.625rem;
}
@media screen and (max-width:768px) {
  .howto_list{
    flex-wrap: wrap;
    row-gap: 1.25rem;
  }
}
.howto_list > div{
  width: calc((100% - 1.25rem) / 3);
  background-color: #fff;
  padding: 1.875rem 1.25rem;
  border-radius: 1.875rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width:768px) {
  .howto_list > div{
    width: 100%;
  }
}
.howto_list > div dt{
  font-size: min(3.19vw,2.3125rem);
  font-weight: bold;
  margin-bottom: 1.25rem;
  line-height: 1;
}
@media screen and (max-width:768px) {
  .howto_list > div dt{
    font-size: 5vw;
    margin-bottom: 1rem;
  }
}
.howto_list > div dt span{
  display: inline-block;
  font-size: min(6.89vw,5rem);
  color: #EC944C;
  margin-right: 0.625rem;
}
@media screen and (max-width:768px) {
  .howto_list > div dt span{
    font-size: 12vw;
    margin-right: 0.5rem;
  }
}
.howto_list > div dd{
  font-size: min(2.4vw,1.625rem);
  line-height: 1.4;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
@media screen and (max-width:768px) {
  .howto_list > div dd{
    font-size: 4vw;
  }
}
.howto_list > div dd p{
  padding-bottom: 1.25rem;
}
.howto small{
  font-size: min(1.46vw, 17px);
  display: block;
  padding: 1.25rem 0 2.5rem;
  text-align: right;
}
@media screen and (max-width:768px) {
  .howto small{
    font-size: 2.9vw;
    padding: 1rem 0 2rem;
  }
}
.area .container > div:not(:first-of-type){
  padding-top: 3.75rem;
}
@media screen and (max-width:768px) {
  .area .container > div:not(:first-of-type){
    padding-top: 2.5rem;
  }
}
.area dt{
  font-size: min(2.6vw, 3.125rem);
  font-weight: bold;
  display: flex;
  align-items: center;
}
@media screen and (max-width:768px) {
  .area dt{
    font-size: 6vw;
    margin-bottom: 1rem;
    line-height: 1;
  }
}
.area dt::before{
  content: "";
  display: inline-block;
  width: min(3.25vw, 39px);
  height: min(3.25vw, 39px);
  border-radius: 50%;
  background: #EC944C;
}
@media screen and (max-width:768px) {
  .area dt::before{
    width: 6vw;
    height: 6vw;
  }
}
.area_map{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width:768px) {
  .area_map{
    flex-direction: column;
    row-gap: 2.5rem;
  }
}
.area_map img{
  width: 50%;
}
@media screen and (max-width:768px) {
  .area_map img{
    width: 100%;
  }
}
.area_map dl{
  width: 48%;
}
@media screen and (max-width:768px) {
  .area_map dl{
    width: 100%;
  }
}
.area_map dl > div{
  padding-bottom: 1.875rem;
}
.area_map dl dd{
  font-size: min(1.9vw,22px);
  line-height: 1.4;
  padding-left: min(3.25vw, 39px);
}
@media screen and (max-width:768px) {
  .area_map dl dd{
    font-size: 4.5vw;
    padding-left: 0;
  }
}
.area_price table{
  width: 100%;
  border-collapse: collapse;
  margin-top: 1.25rem;
}
@media screen and (max-width:768px) {
  .area_price table{
    margin-top: 0.625rem;
  }
}
.area_price table tr th,
.area_price table tr td{
  width: 25%;
  padding: 2% 0;
  text-align: center;
  vertical-align: middle;
  border: 8px solid #fff;
  font-size: min(2.76vw,2rem);
  border: 3px solid #fff;
}
@media screen and (max-width:768px) {
  .area_price table tr th,
  .area_price table tr td{
    font-size: 1.125rem;
    border: 3px solid #fff;
    padding: 4% 0;
    line-height: 1.2;
  }
}
.area_price table thead th{
  background: #E0F2FF;
}
.area_price table tbody tr:nth-child(1) th,
.area_price table tbody tr:nth-child(1) td{
  background: #ECFFB8;
}
.area_price table tbody tr:nth-child(2) th,
.area_price table tbody tr:nth-child(2) td{
  background: #B8DCFF;
}
.area_price table tbody tr:nth-child(3) th,
.area_price table tbody tr:nth-child(3) td{
  background: #B8FFE4;
}
.area_price table tbody tr:nth-child(4) th,
.area_price table tbody tr:nth-child(4) td{
  background: #FFE8B8;
}
.area_price small{
  font-size: min(1.46vw, 17px);
  display: block;
  text-align: right;
  padding-top: 1.25rem;
}
@media screen and (max-width:768px) {
  .area_price small{
    font-size: 2.9vw;
  }
}
.area_priceinfo table{
  width: 100%;
  border-collapse: collapse;
  margin-top: 1.25rem;
}
.area_priceinfo table th{
  width: 30%;
  background-color: #E0F2FF;
  font-size: min(1.89vw,1.375rem);
  text-align: center;
  vertical-align: middle;
  border: 3px solid #fff;
}
@media screen and (max-width:768px) {
  .area_priceinfo table th{
    font-size: 3.5vw;
  }
}
.area_priceinfo table td{
  width: 70%;
  background-color: #EAF6FF;
  font-size: min(1.89vw,1.375rem);
  text-align: center;
  vertical-align: middle;
  border: 3px solid #fff;
  padding: 2% 0;
}
@media screen and (max-width:768px) {
  .area_priceinfo table td{
    font-size: 3.5vw;
  }
}
.area_notice ul{
  padding-bottom: 3.75rem;
}

.area_notice li{
  font-size: min(1.56vw,18px);
  line-height: 1.4;
  padding: 0.625rem 0 0 1.25rem;
  position: relative;
}
@media screen and (max-width:768px) {
  .area_notice li{
    font-size: 3.5vw;
    padding: 0 0 10px 3.5vw;
  }
}
.area_notice li::before{
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  font-size: min(2.6vw,3.125rem);
  line-height: 0.8;
}
@media screen and (max-width:768px) {
  .area_notice li::before{
    font-size: 3.5vw;
    top: 1vw;
  }
}
.faq_list{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.625rem;
}
@media screen and (max-width:768px) {
  .faq_list{
    flex-direction: column;
  }
}
.faq_list > div{
  width: calc((100% - 0.625rem) / 2);
  background-color: #fff;
  padding: 1.875rem 1.25rem;
  border-radius: 1.875rem;
}
@media screen and (max-width:768px) {
  .faq_list > div{
    width: 100%;
  }
}
.faq_list > div dt{
  font-size: min(1.72vw,1.25rem);
  font-weight: bold;
  margin-bottom: 1.25rem;
  line-height: 1;
  padding-left: min(5vw,50px);
  position: relative;
  letter-spacing: 0.01em;
}
@media screen and (max-width:768px) {
  .faq_list > div dt{
    font-size: 4vw;
    margin-bottom: 1rem;
    padding-left: 7vw;
  }
}
.faq_list > div dt span{
  display: inline-block;
  color: #fff;
  background: #EC944C;
  width: min(5vw,40px);
  height: min(5vw,40px);
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-20%);
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width:768px) {
  .faq_list > div dt span{
    width: 6vw;
    height: 6vw;
    font-size: 4vw;
    transform: translateY(0);
  }
}
.faq_list > div dd{
  font-size: min(1.72vw,1.25rem);
  line-height: 1.4;
}
@media screen and (max-width:768px) {
  .faq_list > div dd{
    font-size: 4vw;
  }
}
.faq_list > div dd span{
  background: linear-gradient(transparent 80%,#FEFC88 80%);
}
.form_input{
  max-width: 61.25rem;
  margin: 0 auto;
}
.form_input > div{
  display: flex;
  padding-bottom: 1.875rem;
}
@media screen and (max-width:768px) {
  .form_input > div{
    display: block;
    padding-bottom: 1.25rem;
  }
}
.form_input > div dt{
  width: 50%;
  font-size: min(2.25vw,2.25rem);
}
@media screen and (max-width:768px) {
  .form_input > div dt{
    width: 100%;
    font-size: 4vw;
    margin-bottom: 0.625rem;
  }
}
.form_input > div dd{
  width: 50%;
}
@media screen and (max-width:768px) {
  .form_input > div dd{
    width: 100%;
  }
}
.wpcf7-form-control-wrap{
  width: 100%;
}
.wpcf7-list-item{
  margin: 0;
  display: block;
}
@media screen and (max-width:768px) {
  .wpcf7-list-item-label{
    font-size: 4vw;
  }
}
.form_input > div dd input,
.form_input > div dd select,
.form_input > div dd textarea,
.form_input > div dd label{
  width: 100%;
  font-size: min(1.56vw,18px);
  padding: 0.625rem;
  border: 2px solid #2CA9FF;
  border-radius: 0.625rem;
  box-sizing: border-box;
  margin-bottom: 10px;
}
@media screen and (max-width:768px) {
  .form_input > div dd input,
  .form_input > div dd select,
  .form_input > div dd textarea{
    font-size: 4vw;
  }
}
.form_input > div dd label{
  display: flex;
  align-items: baseline;
}
.form_input > div dd label input{
  width: fit-content;
}
.form_input > div dd small{
  display: block;
  padding-top: 0.625rem;
  font-size: min(1.25vw,14px);
  text-align: right;
}
@media screen and (max-width:768px) {
  .form_input > div dd small{
    font-size: 3.5vw;
  }
}
.form_lower{
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width:768px) {
  .form_lower{
    display: block;
  }
}
.form_lower > *{
  width: 48%;
  font-size: min(2.58vw,1.875rem);
}
@media screen and (max-width:768px) {
  .form_lower > *{
    width: 100%;
    margin-bottom: 1.25rem;
    font-size: 4vw;
  }
}