@charset "UTF-8";
/* CSS Document */
body{
	margin:0;
	padding:0;
	color:#333333;
	background:#fff url("../img/kv_bg.png") center top no-repeat;
	font-size:16px;
	font-weight:500;
	line-height: 1.56;
	overflow-x:hidden;
	font-family: 'Noto Sans JP', sans-serif;
	-webkit-text-size-adjust: 100%;
}
*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
}

.en{
	font-family: 'Poppins', sans-serif;
}

body.open, body.modaal-noscroll{
	overflow: hidden;
}
input, textarea {
    border-radius: 0;
    outline: none;
    margin: 0;
    padding: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size:16px;
    -webkit-border-radius : 0;
    -webkit-tap-highlight-color : rgba(0,0,0,0);
}

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

a {
	color:#333;
	text-decoration:none;
	transition: all 0.3s ease-in-out 0s;
}

a:hover {
	text-decoration:none;
}
.flex_wrap{
	display: -webkit-flex;
    display: flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap:wrap;
}
.flex_wrap_between{
	display: -webkit-flex;
    display: flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap:wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.flex_wrap_center{
	display: -webkit-flex;
    display: flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap:wrap;
	justify-content: center;
}
.flex_wrap_middle{
	display: -webkit-flex;
    display: flex;
	-webkit-flex-wrap: wrap; /* Safari */
	flex-wrap:wrap;
	align-items: center;
}

.sp{display:none !important;}
.note{font-size:87.5%;font-weight: 400;}


/************************
header
************************/
header{
	position: fixed;
	width: 100%;
	z-index: 1000;
	transition: all 0.3s ease-in-out 0s;
}
header.fix{
}
header .logo{
	width: 184px;
}
.inner_header{
	margin: auto;
	width: 100%;
	align-items: center;
	padding-left: 20px;
}
.gnav{
	gap:15px;
	transition: all 0.3s ease-in-out 0s;
}
.ht_wrap{
	gap:10px;
}
.label_hd{
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #3093c1;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	display: grid;
	place-content: center;
}
.gnav a:hover{
	opacity: .5;
}

.hd_tel{
	gap:5px;
	align-items: center;
}
.hd_tel p{
	font-size: 12px;
	line-height: 1;
}
.hd_tel p span{
	font-size: 24px;
	display: block;
	font-weight: 600;
}
.btn_hd{
}
.btn_hd a{
	display: block;
	font-size: 14px;
	padding: 19px;
	background: #ffe752;
	text-align: center;
	border-radius: 0 0 0 20px;
	position: relative;
	width: 200px;
}
.btn_hd a::after{
	position: absolute;
	display: block;
	content: '';
	width: 6px;
    height: 6px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    transform: rotate(45deg);
    bottom: 0;
	top: 0;
	margin: auto;
    right: 20px;
    transition: all 0.3s ease-in-out 0s;
}
/************************
btn
************************/
.btn{
	width: 100%;
	max-width: 400px;
	margin: auto;
}
.btn a{
	display: block;
	text-align: center;
	padding: 24px;
	background: #ffe752;
	border-radius: 100vh;
	position: relative;
	font-weight: 900;
	font-size: 18px;
}
.btn a::after{
	position: absolute;
	display: block;
	content: '';
	width: 8px;
    height: 8px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    transform: rotate(45deg);
    bottom: 0;
	top: 0;
	margin: auto;
    right: 30px;
    transition: all 0.3s ease-in-out 0s;
}
.btn a:hover{
	opacity: .5;
}
.sec_def .btn{
	margin-top: 40px;
}

/************************
menu btn
************************/
.menu_btn{
	display:none;
    position: fixed;
	width: 50px;
	height: 50px;
	text-align: center;
	cursor:pointer;
	transition: all 0.3s ease-in-out 0s;
    z-index: 101;
	background: #ffe752;
	top: 0;
	right: 0;
	border-radius:0 0 0 5px;
}
.sp_nav_btn{
	width: 100%;
	height: 100%;
	z-index: 1000;
	text-align: center;
	position: relative;
}
#panel-btn{
  display: inline-block;
  width: 30px;
  height: 30px;
  margin: auto;
  position: absolute;
  top:0;
  bottom:0;
  left: 0;
  right: 0;
}
#panel-btn:hover{
}
#panel-btn-icon{
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom:0;
  right:0;
  width: 100%;
  height: 3px;
  margin: auto;
  background: #fff;
  transition: .2s;
}
#panel-btn-icon:before, #panel-btn-icon:after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background: #fff;
  transition: .5s;
}
#panel-btn:hover #panel-btn-icon, #panel-btn:hover #panel-btn-icon:before, #panel-btn:hover #panel-btn-icon:after{
}
#panel-btn-icon:before{
  margin-top: -10px;
}
#panel-btn-icon:after{
  margin-top: 8px;
}
#panel-btn .close, #panel-btn:hover #panel-btn-icon.close{
  background: transparent;
}
#panel-btn .close:before, #panel-btn .close:after{
  margin-top: 0;
}
#panel-btn .close:before{
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}
#panel-btn .close:after{
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
}

/************************
mv
************************/
.kv{
	padding: 100px 0 70px;
}
.kv .inner_kv{
	margin: auto;
	width: 88%;
	max-width: 1000px;
}
.kv_cnt{
	width: 64%;
}
.kv_lead{
	margin-bottom: 20px;
}
.kv_lead span{
	font-size: 18px;
	display: inline-block;
	background: #3093c1;
	color: #fff;
	padding: 5px 10px;
	font-weight: 700;
}
.kv_cnt h1{
	font-size: 48px;
	line-height: 1.4;
	margin-bottom: 0px;
	letter-spacing: 4px;
}
.kv_pic_area{
	width: 103.75%;
}
.kv_pic_area figure{
}


.kv_form{
	width: 30%;
}
.kv_fm_inner{
	border-radius: 10px;
	box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.14);
	background: #fff;
	padding: 0 20px 20px;
}
.kv_fm_inner h2{
	text-align: center;
	background: #65c6e1;
	padding: 10px;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	border-radius: 0 0 20px 20px;
	margin-bottom: 16px;
}

.sec_logo_area{
	margin-bottom: 84px;
}
.sec_logo_area h2{
	text-align: center;
	font-size: 20px;
	margin-bottom: 20px;
}
.sd_logo li figure{
	padding: 0 5px;
}

.sec_intro{
	padding-bottom: 80px;
}

.inner_1000{
	width: 88%;
	max-width: 1000px;
	margin: auto;
}
.intro_sub_ttl{
	text-align: center;
	margin-bottom: 20px;
}
.intro_sub_ttl span{
	background: #3093c1;
	padding: 5px 44px;
	color: #fff;
	font-weight: 700;
	font-size: 18px;
	position: relative;
}
.intro_sub_ttl span::after{
	content: '';
    display: inline-block;
    width: 18px;
    height: 11px;
    margin: auto;
	background: #3093c1;
	clip-path: polygon(0 0, 50% 100%, 100% 0%);
	bottom: -10px;
	left: 0;
	right: 0;
	position: absolute;
}
.sec_intro h2{
	text-align: center;
	font-size: 36px;
	margin-bottom: 24px;
}
.list_prob{
	gap:40px;
	margin-top: 48px;
}

.sec_about{
	background: #d0eef6;
	padding: 80px 0;
}
.about_top{
	margin-bottom: 60px;
}
.about_cnt{
	width: 50.5%;
}
.about_cnt h2{
	font-size: 36px;
	margin-bottom: 24px;
}
.about_cnt h2 span{
	display: block;
	font-size: 20px;
}
.about_top figure{
	width: 46%;
}
.sec_about h3{
	font-size: 28px;
	margin-bottom: 90px;
	text-align: center;
}
.list_merit{
	gap:90px 30px;
}
.list_merit li{
	max-width: 300px;
	background: #fff;
	border-radius: 10px;
	padding: 1px 24px 24px;
}
.list_merit li i{
	text-align: center;
	display: block;
	margin-top: -60px;
}
.list_merit li h4{
	text-align: center;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 16px;
}

.def_sec{
	padding: 80px 0;
}
.def_sec h2{
	text-align: center;
	font-size: 36px;
	margin-bottom: 40px;
}
.def_sec h2 span{
	display: block;
	font-size: 20px;
	color: #3093c1;
}
.list_case{
	gap:40px;
}
.list_case li{	
	max-width: 480px;
	width: 100%;
}
.case_head{
	align-items: center;
	font-weight: 700;
}
.case_num{
	font-family: 'Poppins', sans-serif;
	font-size: 18px;
	color: #fff;
	background: #3093c1;
	padding: 6px 16px;
	border-radius: 10px 10px 0 0;
}
.case_clinic{
	padding-right: 10px;
	font-size: 14px;
}
.case_body{
	padding: 16px;
	background: #eaf4f9;
	border: 2px solid #3093c1;
	height: calc(100% - 40px);
}
.case_top{
	line-height: 1.2;
	font-weight: 700;
	padding-bottom: 16px;
	border-bottom: 2px solid #3093c1;
	gap:24px;
	margin-bottom: 16px;
	align-items: center;
}
.case_top.non_b{
	border-bottom: 0;
	margin-bottom: -50px;
}
.case_top .num_case{
	color: #e86c00;
}
.case_top .num_case span{
	font-family: "Montserrat", sans-serif;
	font-size: 50px;
	line-height: 1;
}
.case_p{
	font-size: 14px;
	margin-bottom: 20px;
}
.case_bottom{
	gap:20px;
}
.case_cnt{
	text-align: center;
	width: 130px;
}
.case_04_cnt{
	width: 210px;
	padding: 20px;
	align-items: center;
	background: #f5fafc;
}
.case_04_cnt img{
	vertical-align: middle;
	padding: 0 8px;
}
.label_case{
	background: #fff;
	padding: 2px 10px;
	color: #3093c1;
	font-size: 14px;
	margin-bottom: 10px;
	border-radius: 100vh;
}
.case_func{
	font-size: 14px;
	font-weight: 700;
	height: 6em;
	display:flex;
	justify-content: center;
	align-items: center;
}
.case_func2{
	align-items: center;
	gap:16px;
}
.case_func p{
	line-height: 1.3;
}
.case_func img{
	vertical-align: middle;
}
.num_func{
	font-size: 18px;
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
}
.num_func_02{
	font-size: 28px;
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
}
.case_func2 .num_func{
	font-size: 28px;
	font-weight: 700;
}
.orange{
	color: #e86c00;
}
.num_func.big{
	font-weight: 700;
	font-size: 28px;
}
.case_func2 .num_func.big{
	font-size: 50px;
}

.ct_sec{
	background: url("../img/bg_ct.jpg") center / cover;
	padding: 80px 0;
	text-align: center;
	color: #fff;
}
.ct_sec h2{
	font-size:36px;
	margin-bottom: 20px;
}
.ct_sec .btn{
	margin-top: 24px;
}

.list_reason li:not(:last-child){
	margin-bottom: 60px;
}
.list_reason li:nth-child(even){
	flex-direction: row-reverse;
}
.list_reason li .reason_cnt{
	width: 50%;
}
.list_reason li figure{
	width: 46%;
	text-align: center;
}
.list_reason li .reason_cnt h3{
	font-size: 28px;
	line-height: 1.39;
	margin-bottom: 32px;
}
.list_reason li .reason_cnt h3 span{
	display: block;
}
.list_reason li .reason_cnt h3 .ttl_num{
	font-size: 120px;
	color: rgba(159,218,244,.5);
	line-height: 1;
	font-family: "Montserrat", sans-serif;
}
.list_reason li .reason_cnt h3 .mt_ttl{
	margin-top: -38px;
}

.bg_b{
	background: #d0eef6;
}

.tb_wrap{
	overflow: auto;
	margin-top: 40px;
	text-align: center;
}
.tb_wrap img{
	max-width: inherit;
	width: 735px;
}

.list_step{
	gap:38px;
}
.list_step li:nth-child(even){
	align-self: center;
}
.list_step li figure{
	margin-bottom: 8px;
}
.list_step li h3{
	text-align: center;
	font-size: 16px;
}

.inner_800{
	width: 88%;
	margin: auto;
	max-width: 800px;
}


.wrap_faq{
	margin: auto;
	max-width: 800px;
}
.wrap_faq dl{
	margin-bottom: 20px;
}
.wrap_faq dl:last-of-type{
	margin-bottom: 0;
}

.icon_faq{
    font-size: 42px;
    color: #3093c1;
    width: 46px;
    font-family: 'Poppins', sans-serif;
	font-weight: 600;
	line-height: 1;
}
.icon_faq.icon_a{
    color: #e86c00;
}
.wrap_faq dl dt{
    cursor: pointer;
    position: relative;
	padding: 16px 50px 16px 24px;
	background: #fff;
	color: #3093c1;
}
.wrap_faq dl dt h3{
    width: calc(100% - 46px);
    font-size: 18px;
	font-weight: 700;
}
.wrap_faq dl dt span{
	display: block;
	position: absolute;
	right: 20px;
	top: 0;
	bottom: 0;
	margin: auto;
	width: 20px;
	height: 20px;
}
.wrap_faq dl dt span::before, .wrap_faq dl dt span::after{
	display: block;
	content: '';
	position: absolute;
	margin: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background:#3093c1;
	transition: all 0.3s ease-in-out 0s;
}
.wrap_faq dl dt span::before{
	width: 100%;
	height: 2px;
}
.wrap_faq dl dt span::after{
	height: 100%;
	width: 2px;
}
.wrap_faq dl dt.is-active span::after{
	height: 0;
}
.wrap_faq dl dd{
    display: none;
	padding: 16px 50px 16px 24px;
}
.a_box{
    width: calc(100% - 46px);
	align-self: center;
	font-weight: 400;
}

.sec_contact{
	background: url("../img/bg_contact.jpg") center / cover;
}
.inner_contact{
	margin: auto;
	width: 88%;
	max-width: 800px;
	padding: 50px 100px 60px;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.14);
}



footer{
	padding: 32px 0;
}
.inner_1340{
	margin: auto;
	width: 90%;
	max-width: 1340px;
}
footer .flex_wrap_between{
	align-items: flex-end;
}
.ft_info{
	font-size: 14px;
	font-weight: 400;
}
.ft_info h2{
	margin-bottom: 10px;
	font-size: 14px;
}
.ft_r{
	text-align: right;
	font-size: 12px;
}
.ft_r .copy{
	font-size: 10px;
	margin-top: 24px;
}
.list_g_nav{
	display: none;
	text-align: center;
	margin-bottom: 60px;
	font-size: 18px;
}
.list_g_nav li:not(:last-child){
	margin-bottom: 30px;
}

.hbspt-form fieldset{
	margin-bottom: 10px !important;
	color: #333;
	max-width: 1000px !important;
}
.kv_form .hbspt-form fieldset label{
	font-size: 13px;
	margin-bottom: 5px;
}
.hs-form-required{
	color: #ff8b2e;
}
.hbspt-form fieldset.form-columns-1 .input{
	margin-right: 0 !important;
}
.hbspt-form input, .hbspt-form textarea{
	font-size: 14px;
	width: 100% !important;
	border-radius: 4px;
	background: #eff9fc;
	border: 1px solid #cfd0cc;
	padding: 5px;
}
.hbspt-form .actions{
	margin-top: 14px;
	text-align: center;
}
.hbspt-form .actions input{
	border-radius: 100vh;
	background: #ffe752;
	border: none;
	padding: 10px;
	cursor: pointer;
	max-width: 300px;
	margin: auto;
	font-weight: 700;
}
.sec_contact .hbspt-form fieldset label{
	margin-bottom: 5px;
}
.sec_contact .hbspt-form input, .sec_contact .hbspt-form textarea{
	font-size: 16px;
}
.sec_contact .hbspt-form .actions input{
	padding: 20px;
}
.plan_label{
	margin: 30px 0;
	text-align: center;
}
.plan_label > span{
	background: #fff;
	padding: 4px 40px;
	color: #3093c1;
	font-weight: 700;
	font-size: 14px;
	display: inline-block;
	line-height: 1;
}
.plan_label > span .en{
	font-size: 36px;
}
.list_plan{
	gap:30px;
	margin-bottom: 20px;
}
/********************************
sp
********************************/
@media screen and (max-width: 768px) {
	.menu_btn{display: block;}
	header{position: relative;}
	.inner_header{height: 50px;}
	.gnav{position: fixed; top: 0;width: 100%; background: #fff;right: 0;padding: 80px 4% 15px; transform-origin: top;height: 100%;opacity: 0;pointer-events: none;display: block;}
	.open .gnav{ opacity: 1;pointer-events: all;}
	.gnav_list li{width: 100%;text-align: center;font-size: 18px;}
	.h_b_list li{width: 100%; text-align: center;}
	.h_b_list{gap:20px;}
	.gnav_list{width: 100%; gap:30px;}
	.ht_wrap{height: 48px; justify-content: center; margin-bottom: 40px;}
	.btn_hd a{margin: auto;border-radius: 20px; width: 100%;max-width: 300px;}
	.list_g_nav{display: block;}
}
@media screen and (max-width: 768px) {
	body{font-size: 14px;}
	.sp{ display:block !important;}
	.pc{display:none !important;}
	.kv{padding: 50px 0;}
	.kv_cnt{width: 100%; margin-bottom: 30px;}
	.kv_lead span{font-size: 12px;}
	.kv_cnt h1{font-size: 30px;}
	.kv_pic_area{width: 100%;margin: 0;}
	.kv_pic_area figure{width: 100%;text-align: center;}
	.kv_pic_area ul{width: 100%;display: flex;justify-content: space-between;}
	.kv_pic_area ul li{width: 49%;}
	.kv_form{width: 100%;}
	.sec_intro h2{font-size: 26px;}
	.about_cnt{width: 100%; margin-bottom: 30px;}
	.about_cnt h2{font-size: 26px;text-align: center;}
	.about_top figure{width: 100%;}
	.sec_about h3{text-align: center;
	font-size: 18px;}
	.icon_faq{font-size: 32px; width: 38px;}
	.wrap_faq dl dt h3{width: calc(100% - 38px); font-size: 16px;}
	.a_box{width: calc(100% - 38px);}
	.ft_r{text-align: left; margin-top: 20px;width: 100%;}
	.def_sec h2, .ct_sec h2{font-size: 26px;}
	.list_reason li .reason_cnt{width: 100%; margin-bottom: 30px;}
	.list_reason li figure{width: 100%;}
	.list_reason li .reason_cnt h3{font-size: 24px;}
	.list_step{flex-direction: column;gap:16px;}
	.list_step li{text-align: center;}
	.list_step li:nth-child(even) img{width: 14px;}
	.list_reason li .reason_cnt h3 .ttl_num{font-size: 90px;}
	.list_reason li .reason_cnt h3 .mt_ttl{font-size: 20px;}
	.inner_contact{padding: 20px;}
	.btn a{font-size: 14px;}
	.intro_sub_ttl span{display: block;padding: 5px 20px;}
}