@charset "utf-8";
/*コース・料金CSS*/
.menu_title {
  padding: 50px 0 55px;
}
.menu_title > .con {
  max-width: 470px;
}
.menu_title > .con .tx_menu img {
  width: 90%;
  margin-bottom: 25px;
}
.step01,.step02,.step03 {
  position: relative;
  padding: 40px 0 40px;
}
.step02 .con {
  margin: 20px auto;
}
.step01::after,
.step02::after {
  content: '';
  transform: translateX(-50%);
  width: 50px;
  height: 43px;
  position: absolute;
  bottom: -36px;
  left: 50%;
  z-index: 10;
}
.step01::after {
  background: url(../img/menu/ic_arrow_step01.svg) no-repeat center;
  background-size: contain;
}
.step02::after {
  background: url(../img/menu/ic_arrow_step02.svg) no-repeat center;
  background-size: contain;
}
.sec_step h3 {
  position: relative;
  margin-bottom: 1em;
}
.sec_step h3::before {
  content: '';
  height: 3px;
  width: 100%;
  background-color: var(--primary);
  position: absolute;
  bottom: 0;
  left: 0;
}
.sec_step h3 img {
  height: 40px;
}
.sec_step .flex:not(.point_box) .text p:not(.dc_text) {
  font-size: 1.1em;
  line-height: 2;
  text-align: justify;
  width: 95%;
  margin: auto;
}
.sec_step .im_bef-af {
  display: block;
  width: 98%;
  margin: 1em auto 0;
}
.step02 .dc_text {
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  display: inline;
  padding: 0px 1px 1px 3px;
  line-height: 2.2;
  letter-spacing: .5px;
  background-color: #fff;
}
.step02 .point_box {
  position: relative;
  padding: 30px 30px 30px 50px;
  margin-top: 120px;
  border-radius: 17px;
}
.step02 .point_box h4 {
  position: absolute;
  top: -17px;
  left: 45px;
}
.step02 .point_box h4 img {
  height: 34px;
  width: auto;
}
.step02 .point_box .text h5 {
  font-size: 25px;
}
.step02 .point_box .text p {
  font-weight: 500;
}
.plus_box,.choice_item:not(:last-of-type) {
  padding-bottom: 4em;
}
.plus_box {
  position: relative;
  background-color: #fff;
  border-radius: 20px;
  overflow: ;
}
.plus_box:not(:last-of-type) {
  margin-bottom: 100px;
}
.plus_box:not(:last-of-type)::after {
  content: '';
  background: url(../img/common/ic_or.svg) no-repeat center;
  background-size: contain;
  position: absolute;
  left: 50%;
  bottom: -70px;
  transform: translateX(-50%);
  width: 50px;
  height: 40px;
}
.plus_box h3 {
  background-color: var(--blue);
  border-radius: 20px 20px 0 0;
  padding: 16px;
  margin-bottom: 30px;
  text-align: center;
}
.plus_box h3 img {
  height: 80px;
  width: auto;
}
.plus_box .wrap {
  width: 93%;
  margin: auto;
}
.plus_box p.tx_course {
  font-weight: 500;
  font-size: 1.3em;
  color: var(--blue);
  text-align: center;
  letter-spacing: 1px;
}
.plus_box.face p.tx_course {
  font-size: 1.4em;
}
.plus_box p.tx_detail {
  width: 60%;
  margin: 2em auto 0;
  text-align: justify;
}
.plus_box p.tx_detail .blue.fb {
  display: inline;
}
.plus_box.face .tx_3choice {
  max-width: 520px;
  margin: 1em auto 3.5em;
}
.choice_item h4 {
  position: relative;
  background-color: var(--blue_bg);
  text-align: center;
  padding: 45px 30px 30px;
}
.choice_item h4 img.tx_choice {
  position: absolute;
  left: 50%;
  top: -25px;
  transform: translateX(-50%);
  width: auto;
  height: 50px;
  z-index: 10;
}
.choice_item h4 img.tx_choice_tt {
  height: 35px;
  width: auto;
}
.choice_item h4 .tx_notice_wrap {
  position: relative;
}
.choice_item h4 .tx_notice_wrap img.tx_notice {
  position: absolute;
  right: -4.5em;
  bottom: 1px;
  width: auto;
  height: 15px;
  z-index: 10;
}
.dl_worry {
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 1.5em auto 1.5em;
}
.dl_worry > dt {
  color: var(--blue);
  position: relative;
  letter-spacing: 1px;
}
.dl_worry > dt::after {
  content: '';
  background: url(../img/menu/ic_arrow_worry.svg) no-repeat center;
  background-size: contain;
  width: .8em;
  /* width: 1em; */
  height: 1.5em;
  position: absolute;
}
.dl_worry > dd {
  font-size: 1.05em;
}
.sec_price {
  margin-top: 60px;
}
.sec_price .con {
  max-width: 700px;
}
.sec_price .price_box:not(:last-of-type) {
  margin-bottom: 100px;
}
.sec_price .price_box:last-of-type {
  margin-bottom: 50px;
}
.sec_price .price_box h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 1.3em;
  font-weight: 500;
  line-height: 1;
  padding-bottom: .4em;
  border-bottom: 3px solid var(--gray_sub);
}
.sec_price .price_box h3 img {
  height: 1.1em;
  width: auto;
}
.sec_price .price_box h3 span {
  display: flex;
  align-items: center;
  line-height: 1;
}
.sec_price .price_box h3 span img {
  padding-left: .2em;
  padding-right: .2em;
}
.sec_price .price_box h3 img.tx_total_60min {
  height: .85em;
  margin-bottom: .08em;
  margin-left: .8em;
  margin-top: .2em;
}
.sec_price .price_box h3 span.tx_40min {
  color: var(--primary);
  letter-spacing: .9px;
}
.sec_price .price_box h3 span.tx_20min {
  color: var(--blue);
}
.ul_item {
  display: flex;
  justify-content: flex-start;
  margin: 1.2em 0;
  gap: .6em;
}
.ul_item li {
  width: calc( (100% / 4) - 0.5em);
  font-size: 0.9em;
  font-weight: 500;
  letter-spacing: 4px;
  line-height: 1;
  padding: 8px 10px 10.5px;
  border-radius: 30px;
  text-align: center;
}
.ul_item li.long {
  letter-spacing: 0;
}
@media (min-width: 769px) {
  .sec_step .menu_title {
    border-radius: 95px 95px 0 0;
  }
  .sec_plus {
    border-radius: 95px;
    padding-bottom: 100px;
  }
  .sec_step .flex .text {
    flex: 0 0 50%;
  }
  .sec_step .flex figure {
    flex: 0 0 47%;
    text-align: right;
  }
  .sec_step .flex figure img {
    width: calc(100% - 33px);
  }
  .sec_step .flex figure img:first-of-type {
    margin-top: 40px;
    width: calc(100% - 30px);
  }
  .step02 .flex.point_box figure img:first-of-type {
    margin-top: -70px;
  }
  .step02 .point_box .text {
    flex: 0 0 52%;
  }
  .plus_box figure.flex_all {
    column-gap: 1.4em;
  }
  .plus_box figure.flex_all > img {
    width: calc( 50% - .7em );
  }
  .plus_box figure.im_choice {
    width: 60%;
    margin: auto;
    display: block;
  }
  .dl_worry > dt {
    padding-right: 2em;
  }
  .dl_worry > dt::after {
    right: 0;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  .dl_worry > dd {
    margin-left: 1.5em;
  }
}

@media (min-width:1025px) {

}

@media (min-width: 1367px) {

}

@media (max-width:1024px) {

}

@media (max-width: 768px) {
  .menu_title {
    padding: 40px 0 45px;
  }
  .sec_step .menu_title,.sec_plus {
    border-radius: 70px 70px 0 0;
  }
  .sec_step .con {
    width: 76%;
  }
  .sec_step h3 img {
    height: 38px;
  }
  .choice_item h4 .tx_notice_wrap img.tx_notice {
    right: 50%;
    transform: translateX(50%);
    bottom: -24px;
    height: 14px;
  }
  .choice_item h4 {
    padding: 30px 0px 38px;
  }
  .choice_item h4 img.tx_choice {
    top: -18px;
    height: 36px;
  }
  .choice_item h4 img.tx_choice_tt {
    height: 26px;
  }
  .choice_item .choice_wrap {
    width: 85%;
    margin: auto;
  }
  .step01::after,
  .step02::after {
    width: 31px;
    height: 23px;
    bottom: -18px;
  }
  .sec_step .flex figure img:first-of-type {
    margin-top: 20px;
  }
  .step02 .point_box {
    position: relative;
    padding: 20px;
    margin-top: 50px;
    border-radius: 12px;
  }
  .step02 .point_box h4 {
    left: 30px;
  }
  .step02 .point_box .text h5 {
    font-size: 20px;
  }
  .sec_price {
    margin-top: 45px;
  }
  .sec_price .price_box:not(:last-of-type) {
    margin-bottom: 60px;
  }
  .sec_price .price_box:last-of-type {
    margin-bottom: 30px;
  }
  .plus_box:not(:last-of-type)::after {
    bottom: -55px;
    width: 30px;
    height: 21px;
  }
  .plus_box figure.flex_all {
    row-gap: 1em;
  }
  .plus_box.face .tx_3choice {
    width: 70%;
    max-width: 520px;
    margin: 1em auto 3.5em;
  }
  .dl_worry > dt,
  .dl_worry > dd {
    flex: 0 0 100%;
  }
  .dl_worry > dt::after {
    left: 50%;
    bottom: 0;
    transform: translateX(-50%) rotate(90deg);
  }
  .dl_worry > dt {
    text-align: center;
    padding-bottom: 1.5em;
    font-weight: 600;
  }
  .plus_box .wrap {
    width: 90%;
  }
  .plus_box h3 {
    padding: 12px;
  }
  .plus_box h3 img {
    height: 50px;
  }
  .plus_box p.tx_detail {
    width: 100%;
  }
  .sec_price .price_box h3 {
    font-size: 1.2em;
    padding-bottom: .4em;
    border-bottom: 2px solid #a19c9b;
  }
  .sec_price .price_box h3 span {
    line-height: 1.4;
  }
}

@media screen and (max-width: 480px) {
  .plus_box:not(:last-of-type) {
    margin-bottom: 80px;
  }
  .plus_box:not(:last-of-type)::after {
    bottom: -51px;
    width: 30px;
    height: 21px;
  }
  .sec_price .price_box h3 span.tx_20min {
    width: 13em;
  }
  .sec_price .price_box h3 img.tx_total_60min {
    margin-left: 5px;
  }
  .plus_box p.tx_course {
    line-height: 1.6;
  }
  .ul_item {
    gap: .8em;
  }
  .ul_item li {
    width: calc((100% / 2) - .8em);
    padding: 7px 10px 7.5px;
  }
}