/********************
*  共通スタイル
********************/
:root {
  /* color */
  --fc_default: #440910;
  --fc_pink: #F27387;
  --fc_darkpink: #EA3767;
  --fc_red: #F01C3D;
  --fc_lightpink: #FFE0E0;
  --fc_lightorenge: #FFF4E8;
  --fc_violet: #F6EFF8;
  --fc_gray: #F8F8F8;
  --fc_yellow: #FCF5E5;
  --fc_yellow2: #F8FCA6;
  --fc_yellow3: #FAF9D5;
  /* space */
  --con_space: 60px;
  --con_space_nrw: 30px;
}


body {
  font-family: "Zen Maru Gothic", serif;
  font-weight: 300;
  line-height: 1.8;
  color: var(--fc_default);
  overflow-wrap: anywhere;
  font-size: 18px;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: inherit;
}

em {
  font-style: normal;
}

.dots {
  background-image: radial-gradient(circle at center, var(--fc_default) 20%, transparent 20%);
  background-position: top right;
  background-repeat: repeat-x;
  background-size: 1em 0.3em;
  padding-top: 5px;
}

.dots.pink_d {
  background-image: radial-gradient(circle at center, var(--fc_pink) 20%, transparent 20%);
}

ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

a {
  color: inherit;
}

a:hover {
  color: inherit;
  text-decoration: none;
}

p {
  margin: 0;
}

img {
  max-width: 100%;
}

.contain {
  max-width: 700px;
  margin: 0 auto;
  overflow: hidden;
}

.inner_block {
  max-width: 500px;
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
}


/***** color *****/
.fc_pink {
  color: var(--fc_pink);
}

.fc_darkpink {
  color: var(--fc_darkpink);
}

.fc_red {
  color: var(--fc_red);
}

/***** bg *****/
.bg_gray {
  background-color: var(--fc_gray);
}

.bg_pink {
  background-color: var(--fc_lightpink);
}

.bg_violet {
  background-color: var(--fc_violet);
}

.bg_yellow {
  background-color: var(--fc_yellow);
}

.bg_yellow3 {
  background-color: var(--fc_yellow3);
}

.bg_orenge {
  background-color: var(--fc_lightorenge);
}

/***** font size *****/
.font3S {
  font-size: 10px;
}

.fontSS {
  font-size: 12px;
}

.fontS {
  font-size: 14px;
}

.fontR {
  font-size: 16px;
}

.fontDefault {
  font-size: 18px;
}

.fontM {
  font-size: 20px;
}

.fontL {
  font-size: 22px;
}

.font3L {
  font-size: 24px;
}

.font4L {
  /* 28px/32px */
  font-size: clamp(1.75rem, 1.659rem + 0.45vw, 2rem);
}

@media screen and (min-width: 700px) {
  .font3S {
    font-size: 14px;
  }

  .fontSS {
    font-size: 14px;
  }

  .fontS {
    font-size: 15px;
  }
}

/***** ttl_block *****/
.ttl_block {
  position: relative;
  margin-bottom: 20px;
  z-index: 9;
}

.ttl_block .ja_ttl {
  font-weight: bold;
  font-size: 24px;
  margin-bottom: 0;
}

.ttl_block .ja_ttl em {
  color: var(--fc_pink);
}

/***** compare_table *****/
.compare_table {
  border-color: #CBB9B9;
}

.compare_table.fixed {
  table-layout: fixed;
}

.compare_table th {
  background-color: #FA73A7;
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 2px;
}

.compare_table td.td_bg {
  background-color: #FEFFEF;
}

/***** list *****/
.check_list li {
  position: relative;
  padding-left: 28px;
  font-weight: bold;
}

.check_list li em {
  color: var(--fc_pink);
}

.check_list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  background-image: url(/img/check_list_icon01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 23px;
  height: 21px;
}

.dot_list li {
  position: relative;
  display: flex;
}

.dot_list li::before {
  content: "●";
  display: inline-block;
  padding-right: 2px;
}

.dot_list_style02 li {
  position: relative;
  display: block;
  padding-bottom: 0.5em;
}

.dot_list_style02 li::before {
  content: "●";
  display: inline-block;
  padding-right: 2px;
}

.check_style li {
  text-indent: -6px;
  padding-left: 9px;
  font-weight: bold;
}

.check_style li::before {
  content: url(../img/table_check.svg);
  display: inline-block;
  padding-right: 2px;
}

@media screen and (min-width: 700px) {
  .con_space {
    padding: 100px 0;
  }
}

/***** fadein *****/
.fadein {
  transform: translateY(30px);
  opacity: 0;
  visibility: hidden;
  transition: transform 1s, opacity 1s, visibility 1s;
}

.is-fadein {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
}

/********************
* wave_bg
********************/
@media screen and (min-width: 700px) {
  .wave_bg img {
    height: 120px;
  }
}

/********************
* kv_wrap
********************/
.kv_wrap {
  position: relative;
  z-index: 2;
  background: var(--fc_gray);
}

.kv_wrap .bg_img {
  width: 100%;
}

.kv_wrap .h1_ttl {
  position: absolute;
  top: 15px;
  left: 0;
  z-index: 3;
  width: 100%;
}

.kv_wrap .h1_ttl img {
  width: 100%;
}

.kv_wrap .logo_img {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  width: 75px;
}

@media screen and (min-width: 700px) {
  .kv_wrap .logo_img {
    width: 90px;
  }
}

/********************
* question_wrap
********************/
.question_wrap {
  position: relative;
  z-index: 4;
  background: var(--fc_gray);
  padding-bottom: 65px;
}

.question_wrap::before,
.question_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 193px;
}

.question_wrap::before {
  top: -75px;
  left: 0;
  background-image: url(/img/question_shape01.svg);
  width: 72px;
}

.question_wrap::after {
  top: -75px;
  right: 0;
  background-image: url(/img/question_shape02.svg);
  width: 83px;
}

.question_wrap .check_list {
  display: table;
  margin-inline: auto;
}

.question_wrap .img_ttl {
  max-width: 67%;
}

.question_wrap .img_ttl img {
  width: 100%;
}

.question_wrap .img_icon {
  position: absolute;
  right: 20px;
  bottom: -55px;
}

.question_wrap .img_icon img {
  width: 100%;
}

@media screen and (min-width: 700px) {
  .question_wrap {
    padding-top: 35px;
    padding-bottom: 0;
  }

  .question_wrap .img_icon img {
    width: 100%;
  }

  .question_wrap::before,
  .question_wrap::after {
    height: 250px;
  }

  .question_wrap::before {
    top: -75px;
    width: 93px;
  }

  .question_wrap::after {
    top: -75px;
    width: 108px;
  }
}

/********************
* recommend_wrap
********************/
.recommend_wrap {
  position: relative;
  background: var(--fc_lightpink);
  padding-bottom: var(--con_space);
}

.recommend_wrap::before {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  top: -100px;
  left: 0;
  background-image: url(/img/recommend_shape01.svg);
  width: 123px;
  height: 107px;
}

.recommend_wrap .txt_box {
  position: relative;
  background-color: #fff;
  border-radius: 12px;
  padding: 20px 15px;
}

.recommend_wrap .txt_box img {
  position: absolute;
  top: -20px;
  right: -10px;
}

.crown_area {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  text-align: center;
}

.recommend_wrap .recommend_table {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.recommend_wrap .recommend_table li {
  position: relative;
  overflow: hidden;
  background-color: #fff;
  border: 1px solid #CBB9B9;
}

.recommend_wrap .recommend_table li>div {
  text-align: center;
}

.recommend_wrap .recommend_table li .evaluation_box {
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.recommend_wrap .recommend_table li .logo_box {
  height: 66px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-bottom: 1px #F0E7B1 solid;
}



.recommend_wrap .recommend_table li .list_box {
  padding: 6px 10px 10px;
}

a.cta_ani_btn {
  display: table;
  position: relative;
  text-align: center;
  overflow: hidden;
  margin-inline: auto;
  border-radius: 50px;
}

a.cta_ani_btn::before {
  position: absolute;
  content: '';
  display: inline-block;
  top: -180px;
  left: 0;
  width: 30px;
  height: 100%;
  background-color: #fbfbfb;
  animation: btn_animation 2.5s ease-in-out infinite;
}

@-webkit-keyframes btn_animation {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0;
  }

  80% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }

  81% {
    -webkit-transform: scale(4) rotate(45deg);
    opacity: 1;
  }

  100% {
    -webkit-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}

.recommend_wrap .recommend_table li.num01 {
  border: 2px solid #D9C034;
  border-radius: 10px 0 0 6px;
  background-color: #FEFFEE;
}

.recommend_wrap .recommend_table li.num01 .evaluation_box {
  background-color: #F3F89A;
}

.recommend_wrap .recommend_table li.num02 .evaluation_box {
  background-color: #DFEDF4;
}

.recommend_wrap .recommend_table li.num03 {
  border-radius: 0 10px 10px 0;
}

.recommend_wrap .recommend_table li.num03 .evaluation_box {
  background-color: #FDDCB8;
}

@media screen and (min-width: 700px) {
  .recommend_wrap::before {
    top: -115px;
    width: 139px;
    height: 121px;
  }
}

/********************
* about_wrap
********************/
.about_wrap {
  position: relative;
  background: var(--fc_yellow);
  padding-bottom: var(--con_space_nrw);
}

.about_wrap::before,
.about_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 193px;
}

.about_wrap::before {
  background-image: url(/img/about_shape01.svg);
  width: 51px;
  height: 41px;
  top: -60px;
  left: 10px;
}

.about_wrap::after {
  background-image: url(/img/about_shape02.svg);
  width: 96px;
  height: 128px;
  top: -90px;
  right: 0;
}

.about_wrap .con_block {
  position: relative;
  background-color: #fff;
  padding: 25px 20px 20px;
  margin-bottom: 40px;
  border-radius: 15px;
}

.about_wrap .con_block:last-child {
  margin-bottom: 0;
}

.about_wrap .con_block .con_ttl {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -10px;

  background-color: var(--fc_pink);
  color: #fff;
  text-align: center;
  padding: 5px 15px;
  border-radius: 50px;
  font-size: clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);
  line-height: 1;
  font-weight: bold;
  white-space: pre;
}

.about_wrap .sub_ttl {
  background-color: var(--fc_pink);
  color: #fff;
  padding: 7px;
  text-align: center;
  border-radius: 12px;
  font-weight: bold;
  line-height: 1.4;
}

.about_wrap .sub_ttl span {
  color: var(--fc_yellow2);
}

span.marker {
  background: linear-gradient(transparent 70%, #FFE452 70%);
  font-weight: bold;
}

/********************
* difference_wrap
********************/
.difference_wrap {
  position: relative;
  padding-top: var(--con_space_nrw);
  padding-bottom: var(--con_space_nrw);
  background-color: var(--fc_violet);
}

.difference_wrap::before,
.difference_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 193px;
}

.difference_wrap::before {
  background-image: url(/img/difference_shape01.svg);
  width: 47px;
  height: 126px;
  top: -60px;
  left: 0;
}

.difference_wrap::after {
  background-image: url(/img/difference_shape02.svg);
  width: 77px;
  height: 52px;
  top: -12px;
  right: 0;
}

@media screen and (min-width: 700px) {
  .difference_wrap::before {
    width: 60px;
    height: 161px;
    top: -118px;
  }

  .difference_wrap::after {
    width: 101px;
    height: 68px;
    top: -50px;
  }
}

/********************
* compare_wrap
********************/
.compare_wrap {
  position: relative;
  padding-top: var(--con_space_nrw);
  padding-bottom: var(--con_space_nrw);
  background-color: var(--fc_violet);
  background-color: #fff;
}

.compare_wrap::before,
.compare_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 193px;
}

.compare_wrap::before {
  background-image: url(/img/compare_shape01.svg);
  width: 72px;
  height: 99px;
  top: -60px;
  left: 0;
}

.compare_wrap::after {
  background-image: url(/img/compare_shape02.svg);
  width: 52px;
  height: 98px;
  top: -50px;
  right: 0;
}

.compare_wrap .img_ttl {
  max-width: 45.6%;
}

.compare_wrap .img_ttl img {
  width: 100%;
}

@media screen and (min-width: 700px) {
  .compare_wrap::before {
    width: 90px;
    height: 123px;
    top: -95px;
  }

  .compare_wrap::after {
    width: 73px;
    height: 139px;
    top: -95px;
  }
}


/********************
* point_wrap
********************/
.point_wrap {
  position: relative;
  background-color: var(--fc_lightorenge);

}

.point_wrap::before,
.point_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 147px;
}

.point_wrap::before {
  background-image: url(/img/point_shape01.svg);
  width: 46px;
  top: -70px;
  left: 0;
}

.point_wrap::after {
  background-image: url(/img/point_shape02.svg);
  width: 47px;
  top: -50px;
  right: 0;
}

.point_wrap .point_num_img {
  max-width: 95%;
}

@media screen and (min-width: 700px) {

  .point_wrap::before,
  .point_wrap::after {
    height: 173px;
  }

  .point_wrap::before {
    width: 60px;
    top: -110px;
  }

  .point_wrap::after {
    width: 60px;
    top: -75px;
  }

  .point_wrap .point_num_img {
    max-width: 600px;
  }
}

/********************
* clinic_wrap
********************/
.clinic_wrap {
  position: relative;
  padding-top: var(--con_space_nrw);
  padding-bottom: var(--con_space_nrw);
}

.clinic_wrap::before,
.clinic_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 121px;
}

.clinic_wrap::before {
  background-image: url(/img/clinic_shape01.svg);
  width: 47px;
  top: -40px;
  left: 0;
}

.clinic_wrap::after {
  background-image: url(/img/clinic_shape02.svg);
  width: 95px;
  top: -60px;
  right: 0;
}

.clinic_wrap .img_ttl {
  max-width: 75%;
  display: block;
  margin: 0 auto;
}

.compare_wrap .img_ttl img {
  width: 100%;
}

.clinic_wrap .content_block {
  background: #fff;
  border-radius: 12px;
  padding: 1.0rem;
  border: 2px solid #F1CE20;
}

.clinic_wrap .compare_table th {
  background-color: #FDF4F4;
  width: 40%;
  text-align: left;
  color: var(--fc_default);
  padding: 8px;
}

.clinic_wrap .compare_table td {
  width: 60%;
}

.clinic_wrap .reviews_box {
  display: flex;
  align-items: flex-start;
}

.clinic_wrap .reviews_box.reverse {
  flex-direction: row-reverse;
}

.clinic_wrap .reviews_box img {
  width: 60px;
}

.clinic_wrap .reviews_box .balloon {
  flex: 1;
  position: relative;
  display: inline-block;
  margin-left: 17px;
  padding: 7px 10px;
  font-size: 16px;
  background: var(--fc_yellow);
  border: solid 2px var(--fc_lightpink);
  box-sizing: border-box;
  border-radius: 10px;
}

.clinic_wrap .reviews_box.reverse .balloon {
  margin-right: 17px;
}

.clinic_wrap .reviews_box .balloon:before {
  content: "";
  position: absolute;
  top: 40px;
  left: -22px;
  margin-top: -14px;
  border: 9px solid transparent;
  border-right: 14px solid var(--fc_yellow);
  z-index: 2;
}

.clinic_wrap .reviews_box .balloon:after {
  content: "";
  position: absolute;
  top: 40px;
  left: -25px;
  margin-top: -14px;
  border: 9px solid transparent;
  border-right: 14px solid var(--fc_lightpink);
  z-index: 1;
}

.clinic_wrap .reviews_box.reverse .balloon:before {
  left: inherit;
  right: -22px;
  margin-top: -14px;
  border: 9px solid transparent;
  border-left: 14px solid var(--fc_yellow);
  z-index: 2;
}

.clinic_wrap .reviews_box.reverse .balloon:after {
  left: inherit;
  right: -25px;
  margin-top: -14px;
  border: 9px solid transparent;
  border-left: 14px solid var(--fc_lightpink);
  z-index: 1;
}

.clinic_wrap .reviews_box .balloon p {
  margin: 0;
  padding: 0;
}

.clinic_wrap .clinic_btn {
  display: table;
  margin-inline: auto;
}

.clinic_wrap .clinic_btn img {
  max-width: 240px;
}

.clinic_wrap.sub_con_wrap {
  background-color: #FAF9D5;
  padding-bottom: var(--con_space);
	padding-top: 0;
}

@media screen and (min-width: 700px) {

  .clinic_wrap::before,
  .clinic_wrap::after {
    height: 173px;
  }

  .clinic_wrap::before {
    width: 60px;
    top: -110px;
  }

  .clinic_wrap::after {
    width: 60px;
    top: -75px;
  }

  .clinic_wrap .reviews_box .balloon p.fontSS {
    font-size: 15px;
  }
}


/********************
* voice_wrap
********************/
.voice_wrap {
  background: var(--fc_lightorenge);
  position: relative;
  padding-top: var(--con_space_nrw);
  padding-bottom: var(--con_space_nrw);
}

.voice_wrap::before,
.voice_wrap::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 113px;
}

.voice_wrap::before {
  background-image: url(/img/voice_shape01.svg);
  width: 50px;
  top: -40px;
  left: 0;
}

.voice_wrap::after {
  background-image: url(/img/voice_shape02.svg);
  width: 64px;
  top: -60px;
  right: 0;
}

.voice_wrap .content_block {
  background-color: #fff;
  border-radius: 12px;
  padding: 1.0rem;
}

@media screen and (min-width: 700px) {

  .voice_wrap::before,
  .voice_wrap::after {
    height: 173px;
  }

  .voice_wrap::before {
    width: 60px;
    top: -110px;
  }

  .voice_wrap::after {
    width: 60px;
    top: -75px;
  }
}



/********************
* footer_area
********************/
.float-cta {
  position: fixed;
  bottom: 20px;
  right: 10px;
  width: 72px;
  z-index: 999;
}

.footer_area {
  background: #FEE0E0;
  padding-bottom: 2.0rem;
}

.foot_nav a {
  text-decoration: none;
}

.foot_nav li {
  display: inline-block;
}

.foot_nav li:after {
  padding: 0 0.5em;
  content: "/";
}

.foot_nav li:last-child:after {
  content: none;
}

/********************
* inner_header_wrap
********************/
.inner_header_wrap {
  padding: 10px 15px;
}

/********************
* bottom_page
********************/
.bottom_page .h1_area {
  position: relative;
  text-align: center;
  margin-top: 60px;
}

.bottom_page .h1_area .h1_ttl {
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  margin-top: 50px;
  max-width: 365px;
  margin: 0 auto;
  font-weight: bold;
}

.bottom_page .h1_area::before,
.bottom_page .h1_area::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
  z-index: 4;
  height: 193px;
}

.bottom_page .h1_area::before {
  background-image: url(/img/compare_shape01.svg);
  width: 56px;
  height: 78px;
  top: -47px;
  left: 0;
}

.bottom_page .h1_area::after {
  background-image: url(/img/compare_shape02.svg);
  width: 44px;
  height: 84px;
  top: -43px;
  right: 0;
}

.bottom_page .compare_table th {
  width: 23%;
}

.bottom_page .compare_table td {
  width: 80%;
}

@media screen and (min-width: 700px) {
  .bottom_page .h1_area .h1_ttl {
    max-width: 500px;
  }

  .bottom_page .h1_area::before {
    width: 90px;
    height: 123px;
    top: -39px;
  }

  .bottom_page .h1_area::after {
    width: 73px;
    height: 139px;
    top: -41px;
  }
}

/********************
* bottom_page/column_wrap
********************/
.bottom_page.column_wrap .column_list li {
  margin-bottom: 10px;
}

.bottom_page.column_wrap .column_list li a {
  display: block;
  position: relative;
  padding-left: 20px;
}

.bottom_page.column_wrap .column_list li a::before {
  content: "";
  position: absolute;
  top: 15px;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid var(--fc_pink);
  border-right: 1px solid var(--fc_pink);
  -webkit-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
}

.bottom_page.column_wrap .column_post.inner_block {
  max-width: 600px;
}

.bottom_page.column_wrap .column_post h2 {
  background-color: var(--fc_yellow);
  border-radius: 5px;
  padding: 8px 15px;
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  margin-bottom: 15px;
  margin-top: 30px;
}

.bottom_page.column_wrap .column_post h3 {
  border-bottom: 1px solid var(--fc_pink);
  padding-bottom: 10px;
  font-size: clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);
  margin-bottom: 15px;
  margin-top: 30px;
}

.bottom_page.column_wrap .column_post h4 {
  font-weight: bold;
  font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
  margin-bottom: 15px;
  margin-top: 30px;
}

.bottom_page.column_wrap .column_post p {
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  margin-bottom: 30px;
  margin-top: 15px;
}

.bottom_page.column_wrap .column_post a {
  color: var(--fc_pink);
  text-decoration: solid;
}

.bottom_page.column_wrap .column_post b {
  font-weight: bold;
}

.bottom_page.column_wrap .column_post {
  list-style: disc;
}