@charset "UTF-8";


/* ===============================
layout
=============================== */
figure img{
	width:100%;
}


/* -------------------------------------------
header
------------------------------------------- */

/* mv
------------------------------------------- */
.lower #topMv{
	width:100%;
	height: 300px;
	color: #FFF;
	position: relative;
}
.lower #topMv h1{
	position:relative;
	width:auto;
	height:auto;
	left: 15%;
	top: 50%;
	font-size: 32px;
	font-weight: 400;
	margin-left:0;
	margin-top:0;
	z-index: 200;
	letter-spacing: 4px;
	text-align: left;
}
#products.lower #topMv,
#contact.lower #topMv{
	color: #000;
}
#about #topMv{
	background: url(../images/about/mv.jpg) no-repeat center bottom #000;
	background-size: cover;
}
#access #topMv{
	background: url(../images/access/mv.jpg) no-repeat center bottom #000;
	background-size: cover;
}
#products #topMv{
	background: url(../images/products/mv.jpg) no-repeat center center;
	background-size: cover;
}
#class #topMv{
	background: url(../images/class/mv.jpg) no-repeat center center;
	background-size: cover;
}
#contact #topMv{
	background: url(../images/contact/mv.jpg) no-repeat center center;
	background-size: cover;
}
#booking #topMv{
	background: url(../images/booking/mv.jpg) no-repeat center bottom;
	background-size: cover;
}

/* article
------------------------------------------- */
.lower .main{
	padding-bottom: 80px;
}
.lower .main .inner{
	width:900px;
}
.lower .main .inner h1{
	font-size: 22px;
	letter-spacing: 3px;
	text-indent: 3px;
	font-weight: 400;
}
.lower .main .inner h1 span{
	display: block;
	font-size: 30px;
}
#class.lower .main .inner h1 span{
	display: block;
	font-size: 26px;
}
.lower .main .inner h2{
	font-size:20px;
	font-weight: 400;
	margin-bottom: 10px;
	letter-spacing: 3px;
}
.lower .main .inner h3{
	font-size:18px;
	font-weight: 400;
}
.lower .main .inner i{
	font-size:80%;
	font-style: normal;
	letter-spacing: 1px;
}
.intro_ttl{
	width:80%;
	margin: 0 auto 30px !important;
}
.intro_desc{
	width:80%;
	margin: 0 auto 40px;
	line-height: 2.4;
}
.cut_in{
	margin:100px 0;
	opacity: .8;
	height:320px;
}
#about .cut_in{
	background: url(../images/about/cut_in.jpg) no-repeat center center;
	background-size: cover;
	background-attachment: fixed;
}
#products .cut_in{
	margin:50px 0 100px;
	background: url(../images/products/cut_in.jpg) no-repeat center center;
	background-size: cover;
	background-attachment: fixed;
}
#class .cut_in{
	margin:50px 0 100px;
	background: url(../images/class/cut_in.jpg) no-repeat center center;
	background-size: cover;
	background-attachment: fixed;
}

/* table
------------------------------------------- */
.table_normal{
	width:100%;
}
.table_normal tr th,
.table_normal tr td{
	padding: 20px;
	border-bottom: #ddd solid 1px;
	letter-spacing: 2px;
	position: relative;
	vertical-align: top;
}
.table_normal tr th{
	width:40%;
	letter-spacing: 0;
}
.table_normal.class{
	width:100%;
	border-top:#000 solid 3px;
	margin-bottom: 40px;
}
.table_normal.class tr td{
	padding: 20px 10px;
	font-size: 17px;
	letter-spacing: 1px;
}
/* =================================
About
=================================*/
.about_img{
	margin-bottom: 15px;
	
}
#about .main figure figcaption{
	line-height: 1.7;
	font-size: 12px;
	padding-top: 8px;
}
#about .main figure figcaption span{
	font-size: 14px;
	font-weight: 700;
	display: block;
	margin-bottom: 10px;
}
/* =================================
Access
=================================*/
#access footer #map-canvas{
	display: none;
}
.map{
	margin: 40px auto 80px;
	position: relative;
	padding-bottom: 56.25%;
	padding-top: 30px;
	height: 0;
	overflow: hidden;
}
.map iframe,
.map object,
.map embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.access_detail{
}
.access_detail h3{
	margin-bottom:15px;
	padding-bottom:15px;
	border-bottom: #ddd solid 1px;
}
.access_detail h3::before{
	content: '▶︎';
	color: #64c8c8;
	display: inline-block;
	margin-right: 6px;
	font-size: 12px;
}
.access_detail p{
	margin:0 auto 40px;
	width: 80%;
}
/* =================================
Products
=================================*/
.item{
	position: relative;
	margin-bottom: 40px;
}
.item figcaption{
	position:absolute;
	top: 10px;
	padding: 5px 10px;
	right: 10px;
	border: #000 solid 1px;
	background: rgba(255,255,255,.75);
}
.btn_bnr01 a{
	margin:0 auto 20px;
	width: 690px;
	height: 200px;
	box-sizing: border-box;
	background: url(../images/products/bnr_store.jpg) no-repeat center top;
	background-size: 690px 200px;
	padding: 135px 40px 0;
	color: #000;
	letter-spacing: 3px;
	text-align:left;
	font-size: 24px;
	position: relative;
	border: #000 solid 1px;
	opacity: .8;
}
.btn_bnr01 a:hover{
	color: #b26eff;
	border: #b26eff solid 1px;
	opacity: 1;
}
.btn_bnr01 a::after{
	content:'';
	background: url(../images/arrow_bnr.png) no-repeat center center;
	background-size: 9px 7px;
	width: 9px;
	height: 7px;
	display: block;
	position: absolute;
	bottom:40px;
	right: 40px;
}
.btn_bnr01 a:hover::after{
	background: url(../images/arrow_off.png) no-repeat center center;
	background-size: 9px 7px;
	right: 30px;
}
/* =================================
Class
=================================*/
.bg_gray{
	background: #f1f1f1;
	padding: 40px;
	box-sizing: border-box;
	margin-bottom: 40px;
}
.list_class li{
	margin-bottom: 10px;
	position: relative;
	padding-left:16px; 
}
.list_class li:last-child{
	margin-bottom:0;
}
.list_class li::before{
	content: '▶︎';
	color: #64c8c8;
	display: block;
	font-size: 10px;
	position:absolute;
	left: 0;
	top:50%;
	margin-top: -7px;
}
a.mail{
	text-decoration: underline;
}
a.mail:hover{
	color: #b26eff;
}
.submit_desc{
	line-height:2;
}
.lower .main .inner table i{
	display: block;
}

.list_flow{
	width: 90%;
	margin: 0 auto 40px;
}
.list_flow li{
	position: relative;
}
.list_flow li figure{
}
.list_flow li:nth-child(2n) figure{
	margin-left:auto;
}
.list_flow li .flow_txt{
	text-align: center;
	background: rgba(240,220,255,.7);
	box-sizing: border-box;
	padding: 0 20px;
	letter-spacing: 2px;
	text-indent: 2px;
}
.list_flow li:nth-child(2n) .flow_txt{
	background: rgba(220,255,255,.7);
}
.lower .main .inner .list_flow li .flow_txt h3{
	font-size: 40px;
	font-weight: 100;
	font-style: italic;
	color: #b26eff;
	line-height: 1;
  position: relative;
  top: 36%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
.lower .main .inner .list_flow li:nth-child(2n) .flow_txt h3{
	color: #18bbbb;
}
.lower .main .inner .list_flow li .flow_txt p{
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
/* =================================
Contact
=================================*/
.form_inner{
	width: 80%;
	margin: 0 auto;
}
.table_form{
	border-top:3px #000 solid;
}
.table_form th{
	width:30%;
}
.table_form td span i{
	display: inline-block !important;
	font-size: 100% !important;
	width: 120px;
}
.required{
	display: inline-block;
	padding: 2px 5px;
	letter-spacing: 0;
	font-size: 80%;
	color: #FFF;
	background: #FF603C;
	margin-left:auto;
	position: absolute;
	right: 0;
	top:20px;
}
.text,
textarea{
	width:100%;
	border: none;
	background: #f8f6f6;
	padding: 10px;
	font-size: 18px;
	box-sizing: border-box;
}
.caution_box{
	background: #f8f6f6;
	box-sizing: border-box;
	padding: 30px;
	border-bottom: 3px #000 solid;
	margin-bottom: 80px;
}
.caution_box h4{
	text-align: left;
	margin-bottom: 20px;
	font-size: 15px
}
.caption_desc{
	font-size: 13px;
	text-align:left;
}
.caution_box label{
	display: block;
	padding:10px;
	background: #FFF;
	margin: 10px 0 20px;
	font-size: 18px;
}
.btn_box{
}
.btn_box .btn_submit{
	border:none;
	background: #b26eff;
	color: #FFF;
	font-size: 20px;
	font-family: Times New Roman, Times, "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "メイリオ", Meiryo, serif;
	padding: 15px 40px;
	letter-spacing: 3px;
	margin: 0 30px;
	cursor: pointer;
}
.btn_box .btn_reset{
	border:none;
	background: #888;
	color: #FFF;
	font-size: 16px;
	font-family: Times New Roman, Times, "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "メイリオ", Meiryo, serif;
	padding: 18px 40px;
	letter-spacing: 3px;
	margin-right: 30px;
	cursor: pointer;
}
.btn_box .btn_submit:hover{
	background: #64c8c8;
}
.btn_box .btn_reset:hover{
	background: #555;
}
.border_box{
	border:#ccc solid 1px;
	padding: 30px 0 10px;
}
.border_box h3{
	line-height: 2;
	letter-spacing: 2px;
	padding-left: 40px;
}

/* =================================
Booking
=================================*/
.lower .main .inner table.class span{
	padding: 5px 15px;
	background: #FF603C;
	color: #FFF;
	display: inline-block;
	margin-bottom: 10px;
}
select{
	border:none;
	border-radius: 0;
	padding: 10px;
	font-size: 14px;
	box-sizing: border-box;
}
.table_form td span{
	letter-spacing: 0;
	display: block;
	margin-top: 8px;
	color:#3A093C;
}
.block{
	display: block;
	letter-spacing: 1px;
}
#booking .caution_box h4{
	margin-bottom: 10px;
}
.person2{
	visibility: hidden;
	opacity: 0;
	transition: .3s;
}
.person2.show{
	visibility:visible;
	opacity: 1;
}
/* =================================
===============================
SPスタイル
===============================
===================================*/

@media screen and (max-width: 1059px) {
	.lower .main .inner {
    width: 94%;
	}
}
@media only screen
 and (min-device-width: 768px)
 and (max-device-width: 1024px) {
	#about .cut_in{
		background: url(../images/about/cut_in.jpg) no-repeat center center;
		background-size: cover;
		background-attachment:inherit;
	}
	#products .cut_in{
		background: url(../images/products/cut_in.jpg) no-repeat center bottom;
		background-size: cover;
		background-attachment:inherit;
	}
	#class .cut_in{
		margin:0 0 40px;
		background: url(../images/class/cut_in.jpg) no-repeat center bottom;
		background-size: cover;
		background-attachment:inherit;
	}
}

@media screen and (max-width: 767px) {
	.lower .main{
		padding-bottom: 40px;
	}
	.lower .main .inner i{
		display: block;
	}
	
	/* MV
		-------------------------------------------------------------- */
	.lower #topMv h1{
		left: 6%;
		top:32%;
		font-size: 26px;
	}
	#about #topMv{
		background: url(../images/about/mv.jpg) no-repeat 35% bottom #000;
		background-size: cover;
	}
	#access #topMv{
		background: url(../images/access/mv.jpg) no-repeat 20% bottom #000;
		background-size: cover;
	}
	#products #topMv{
		background: url(../images/products/mv.jpg) no-repeat 30% bottom;
		background-size: cover;
	}
	#class #topMv{
		background: url(../images/class/mv.jpg) no-repeat 50% center;
		background-size: cover;
	}
	#contact #topMv{
		background: url(../images/contact/mv.jpg) no-repeat 60% 120px;
		background-size: auto 200px;
	}
	#booking #topMv{
		background: url(../images/booking/mv.jpg) no-repeat right bottom #000;
		background-size:auto 240px;
	}

	.intro_ttl{
		width:90%;
	}
	.intro_desc{
		width:90%;
		line-height: 1.9;
	}
	.cut_in{
		margin:40px 0;
		height:180px;
	}
	#about .cut_in{
		background: url(../images/about/cut_in.jpg) no-repeat center center;
		background-size: cover;
		background-attachment:inherit;
	}
	#products .cut_in{
		background: url(../images/products/cut_in.jpg) no-repeat center bottom;
		background-size: cover;
		background-attachment:inherit;
	}
	#class .cut_in{
		margin:0 0 40px;
		background: url(../images/class/cut_in.jpg) no-repeat center bottom;
		background-size: cover;
		background-attachment:inherit;
	}
	.img_sp{
		width: 70%;
		margin: 0 auto 15px;
	}
	.img_sp_x{
		width:42%;
		display: inline-block;
		padding: 0 10px;
	}
	/* =================================
	Aabout
	=================================*/
	.about_img02 img{
		margin-left: 0;
	}
	/* =================================
	Access
	=================================*/
	.map{
		margin: 20px auto;
	}
	.table_normal tr th,
	.table_normal tr td{
		display: block;
		padding: 0 0 10px ;
		letter-spacing: 0;
	}
	.table_normal tr th{
		border:none;
		padding: 10px 0 2px ;
		width: 100%;
    text-align: center;

	}
	.access_detail p{
		margin:0 auto 15px;
		width: 90%;
	}
	/* =================================
		Class
		=================================*/
	.bg_gray{
		padding: 15px;
	}
	.list_class li{
		font-size: 12px;
	}
	.list_flow li figure{
	}
	.list_flow li .flow_txt{
		padding: 0 20px;
		margin-bottom: 20px;
	}
	.lower .main .inner .list_flow li .flow_txt h3{
		width: 50%;
		margin: 0 auto;
		top:-30px;
		transform: none;
		background: rgba(255,255,255,.9);
		padding: 10px 0;
	}
	.lower .main .inner .list_flow li .flow_txt p{
		position: relative;
		top:-15px;
		transform: none;
	}
	/* =================================
		Contact
		=================================*/
	.form_inner{
		width: 100%;
		margin: 0 auto;
	}
	.table_form.table_normal tr th{
		width:100%;
		padding-bottom: 10px;
	}
	.required{
		margin-left:12px;
		position:static;
	}
	.caution_box{
		padding: 20px;
		margin-bottom: 40px;
	}
	.btn_box .btn_submit{
		padding: 15px 20px;
		margin: 0;
	}
	.btn_box .btn_reset{
		padding: 17px 20px 18px;
		margin-right:0;
		margin-left: 15px;
	}
	.border_box{
		border:#ccc solid 1px;
		padding: 20px 0 10px;
	}
	.border_box h3{
		line-height: 1.6;
		padding-left: 0;
		margin-bottom: 15px;
		text-align: center;
	}
	.border_box .btn_submit a{
		width: 60%;
	}
	textarea{
		height:150px;
	}

	.btn_bnr01 a{
		width: 280px;
		height: 120px;
		padding: 55px 20px 0;
		font-size: 16px;
		opacity: 1;
	background: url(../images/products/bnr_store.jpg) no-repeat center top;
	background-size: 280px auto;
	}
	.btn_bnr01 a::after{
		bottom:33px;
		right: 20px;
	}
	.btn_bnr01 a:hover::after{
		right: 20px;
	}

}


@media screen and (max-width: 479px) {
	/* 479px以下用（スマートフォン用）の記述 */
}
