body{margin:0;padding:0;line-height:1.5rem;font-family:sans-serif;}
p,table,dl,ul,ol,hr,
h1,h2,h3,h4,h5,h6{margin-top:1rem;margin-bottom:1rem;}
img{max-width:100%;height:auto;vertical-align:bottom;border:none;}

a img{transition:0.3s;}
a:hover img{opacity:0.8;}

.center{margin-left:auto;margin-right:auto;text-align:center;}
.ta_r{text-align:right;}
.ta_l{text-align:left;}
.ofh{overflow:hidden;}
.ofa{overflow:auto;}
.tofh{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.w1px{width:1px;}
.w100{width:100%;box-sizing:border-box;}
.wsnr{white-space:nowrap;}
.mincho{font-family:serif;}
.dpn{display:none;}
.hide_txt{
	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;
}

.inner_w,
.inner{max-width:1024px;margin:auto;box-sizing:border-box;}
.inner{padding:0 8px;}
.inner>*{overflow:hidden;}



.content{
	padding-top:30px;
	margin-bottom:50px;
}
.clr{
	color:#a74;
}
.lnkbtn{
	display:table;
	background:#000;
	color:#fff;
	text-decoration:none;
	padding:15px 30px;
	font-size:18px;
	line-height:25px;
	border:none;
	appearance:none;
	-webkit-appearance:none;
}
.lnkbtn.line{
	background:none;
	border:2px solid #fff;
	min-width:400px;
	text-align:center;
	padding:0;
	line-height:50px;
	border-radius:25px;
	margin:0 auto;
}
.mark{
	display:inline-block;
	background:#f00;
	color:#fff;
	padding:0 6px;
	font-size:13px;
	line-height:20px;
	margin-left:10px;
}



#footer_wrapper .copy,
.bgcc{
	background:#c8bf62;
}
.bgcc{
	overflow:hidden;
	padding:30px 0;
}



#header_wrapper{
	color:#fff;
	width:100%;
	z-index:2;
	position:absolute;
}
#header{
	display:flex;
	justify-content:space-between;
	box-align:center;
	align-items:center;
	margin:5px 0;
}
#header *{
	margin:0;
}



#footer_wrapper .copy{
	padding:10px 0;
	margin:0;
	font-size:14px;
	line-height:20px;
}
#footer{
	padding:15px 0;
}
#footer .nav{
	padding:0;
	list-style:none;
}
#footer .nav a{
	text-decoration:none;
	color:inherit;
}



#visual_wrapper{
	background-repeat:no-repeat;
	background-position:center;
	background-size:cover;
	color:#fff;
	background-image:url('../img/visual.jpg');
}
#visual{
	height:45vw;
	position:relative;
}
#visual .wrp{
	position:absolute;
}



#visual_wrapper.contact .wrp.name,
#visual_wrapper.price .wrp.name,
#visual_wrapper.index .wrp.name{
	left:0;
}
#visual_wrapper.index .wrp.lnk{
	right:0;
}
#visual_wrapper.contact .wrp.name .hdr,
#visual_wrapper.price .wrp.name .hdr,
#visual_wrapper.index .wrp.name .eng{
	font-weight:normal;
}
#visual_wrapper.index .wrp.lnk a{
	text-decoration:none;
	color:inherit;
	border:1px solid #fff;
	display:block;
	white-space:nowrap;
	text-align:center;
}



#btm_contact .tel{
	font-size:20px;
}
#btm_contact .tel span{
	font-size:40px;
	line-height:50px;
}



#price .hdr,
#price_other .hdr,
#btm_contact .hdr{
	font-size:30px;
	line-height:40px;
	font-weight:normal;
}
#btm_contact .txt{
	display:table;
	margin:30px auto;
}



#flow .hdr,
#recom .hdr,
#review .hdr,
#course .hdr,
#about .hdr{
	font-size:26px;
	line-height:35px;
}
#flow .hdr .eng,
#review .hdr .eng,
#course .hdr .eng,
#about .hdr .eng{
	font-weight:normal;
}



#review{
	background:url('../img/bg_review.jpg') center no-repeat;
	background-size:cover;
	position:relative;
}

#review::after{
	content:"";
	width:100%;
	height:100%;
	background:rgba(255,255,255,0.8);
	top:0;
	left:0;
	position:absolute;
}
#review .inner{
	position:relative;
	z-index:1;
	overflow:hidden;
	padding-top:20px;
	padding-bottom:20px;
}
#review .rvw{
	box-shadow:3px 3px 5px rgba(0,0,0,0.5);
	margin:0 10px 40px;
}



#recom{
	background:url('../img/bg_recom.jpg') center no-repeat;
	background-size:cover;
	color:#fff;
}
#recom .inner{
	padding-top:20px;
	padding-bottom:20px;
}



#flow .wrp{
	overflow:visible;
	display:flex;
	flex-wrap:wrap;
	column-gap:80px;
	row-gap:60px;
	justify-content:center;
}
#flow .cell{
	width:380px;
	box-shadow:3px 3px 5px rgba(0,0,0,0.5);
	box-sizing:border-box;
	padding:10px 20px;
}
#flow .cell .step{
	font-size:24px;
	line-height:30px;
	font-weight:normal;
}



#price_other .wrp,
#price .wrp{
	background:#fff;
	display:flex;
	flex-wrap:wrap;
}
#price_other .cell,
#price .cell{
	display:flex;
	justify-content:space-between;
	border-bottom:2px solid #999;
	box-sizing:border-box;
}
#price_other .min,
#price .min{
	font-weight:bold;
}
#price_other .box,
#price .box{
	margin:1rem auto;
	position:relative;
	max-width:800px;
}
#price .attn{
	position:absolute;
	margin:0;
	width:100%;
	font-size:13px;
	line-height:18px;
	text-align:right;
}
#price_other .txt{
	background:#ddd;
	padding:20px;
	max-width:800px;
	margin:1rem auto;
}



#contact form{
	max-width:800px;
	margin-left:auto;
	margin-right:auto;
}
#contact form .lnkbtn{
	padding-left:60px;
	padding-right:60px;
}





/***** form *****/
select,
textarea,
input[type=password],
input[type=tel],
input[type=url],
input[type=email],
input[type=search],
input[type=number],
input[type=reset],
input[type=text]{
	padding:10px;
	font-size:1.1rem;
	border:1px solid rgba(0,0,0,0.1);
	border-radius:5px;
	
	border:none;
	background:#eee;
	
	margin:1px;
	box-sizing:border-box;
	width:100%;
}
input[type=reset]{
	padding:5px 15px;
	font-size:1rem;
}

/***** color *****/
.red{color:#ff0000;}
.green{color:#008000;}
.blue{color:#0000ff;}
.cyan{color:#00ffff;}
.magenta{color:#ff00ff;}
.yellow{color:#ffff00;}
