@charset "utf-8";


/*==================================================
  Common
==================================================*/
html{
	width: 100%;
	min-height: 100vh;
	font-size: 62.5%;
}


body{
	width: 100%;
	height: 100vh;
	font-size: 1.4rem;
	color: #000000;
	margin: 0;
	padding: 0;
	font-family: "メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
}


img{
	border: none;
	vertical-align: bottom;
}


li{
	list-style: none;
}


a{
	text-decoration: none;
}


.clearfix::after{
	content: "";
	display: block;
	clear: both;
}




/*==================================================
  Wrapper
==================================================*/
#wrapper{
	background-color: #ffffff;
	width: 100%;
	min-height: 100vh;
	margin: 0;
	padding: 0;
	position: relative;
}


#loader{
	background-color: #ffffff;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9998;
}


#loader div{
	width: 80px;
	height: 80px;
	margin-top: -40px;
	margin-left: -40px;
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 9999;
}




/*==================================================
  Header
==================================================*/
header{
	width: 300px;
	height: 100vh;
	margin: 0;
	padding: 0;
	position: fixed;
	top: 0;
	left: 0;
	box-shadow: 1px 0 10px 4px rgba(0,0,0,0.4);
	z-index: 999;
}


.header_upper{
	background-color: #ffffff;
	width: 100%;
	height: 50%;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 0;
	left: 0;
}


.header_lower{
	background-color: #ffcc00;
	width: 100%;
	height: 50%;
	margin: 0;
	padding: 0;
	position: absolute;
	bottom: 0;
	left: 0;
}


.logo{
	width: 250;
	height: 180px;
	margin: -90px 0 0 -125px;
	padding: 0;
	position: absolute;
	top: 50%;
	left: 50%;
}


.logo h1{
	width: 250px;
	height: 180px;
	margin: 0;
	padding: 0;
}


.sns{
	width: 100%;
	margin: 0;
	padding: 0;
	position: absolute;
	bottom: 45px;
	left: 0;
}


.sns ul{
	width: 180px;
	margin: 0 auto;
	padding: 0;
}


.sns ul li{
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0 15px;
	float: left;
}


.sns ul li img{
	width: 30px;
	height: 30px;
}


#sns_sp{
	display: none;
}


#copyright{
	width: 100%;
	font-size: 1.0rem;
	margin: 0;
	padding: 0 0 5px 0;
	position: absolute;
	bottom: 0;
	left: 0;
	text-align: center;
}


.header_sp{
	display: none;
}




@media only screen and (max-width: 1000px){

	header{
		display: none;
	}


	.header_sp{
		display: block;
		background: #ffffff url(../images/gnavi_bg.png) no-repeat left bottom;
		width: 100%;
		height: 100px;
		margin: 0;
		padding: 0 10px 0 0;
		box-sizing: border-box;
		box-shadow: 0 1px 10px 4px rgba(0,0,0,0.4);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999;
	}


	.header_sp h1{
		background: url(../images/logo_bg.png) no-repeat right top;
		width: 290px;
		height: 100px;
		margin: 0;
		padding: 0 0 0 10px;
		float: left;
	}


	.gnavi_tgl{
		background-color: #333333;
		width: 80px;
		height: 80px;
		margin: 10px 0 0 0;
		padding: 28px 20px 0 20px;
		box-sizing: border-box;
		border-radius: 5px;
		float: right;
		cursor: pointer;
	}


	.gnavi_tgl p{
		background-color: #ffffff;
		width: 40px;
		height: 2px;
		margin: 0 0 9px 0;
		padding: 0;
	}


	#sns_sp{
		display: block;
		background-color: #000000;
		width: 100%;
		margin: 0;
		padding: 30px 0;
	}


	.sns_sp_title{
		font-size: 1.6rem;
		color: #ffffff;
		margin: 0;
		padding: 0 0 10px 0;
		text-align: center;
	}


	#sns_sp ul{
		width: 270px;
		height: 40px;
		margin: 0 auto;
		padding: 20px 0;
		border-top: solid 1px #ffffff;
	}


	#sns_sp li{
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0 25px;
		float: left;
	}


	#sns_sp ul li img{
		width: 40px;
		height: 40px;
	}


	.sns_sp_copyright{
		font-size: 1.0rem;
		color: #ffffff;
		margin: 0;
		padding: 10px 0 0 0;
		text-align: center;
	}

}




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

	.header_sp{
		display: block;
		background: #ffffff url(../images/header_bg_sp.png) no-repeat left bottom;
		width: 100%;
		height: 80px;
		margin: 0;
		padding: 0 10px 0 0;
		box-sizing: border-box;
		box-shadow: 0 1px 10px 4px rgba(0,0,0,0.4);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999;
	}


	.header_sp h1{
		background: none;
		width: 208px;
		height: 80px;
		margin: 0;
		padding: 0 0 0 10px;
		float: left;
	}


	.header_sp h1 img{
		width: 208px;
		height: 80px;
	}


	.gnavi_tgl{
		background-color: #333333;
		width: 60px;
		height: 60px;
		margin: 10px 0 0 0;
		padding: 18px 15px 0 15px;
		box-sizing: border-box;
		border-radius: 5px;
		float: right;
		cursor: pointer;
	}


	.gnavi_tgl p{
		background-color: #ffffff;
		width: 30px;
		height: 2px;
		margin: 0 0 9px 0;
		padding: 0;
	}

}




/*==================================================
  GrobalNavi
==================================================*/
#gnavi_upper{
	position: absolute;
	bottom: 120px;
	left: 70px;
}

#gnavi_upper ul{
	border-top: dotted 1px #ffcc00;
}


#gnavi_upper li{
	border-bottom: dotted 1px #ffcc00;
}


#gnavi_lower{
	position: absolute;
	top: 120px;
	left: 70px;
}

#gnavi_lower ul{
	border-top: dotted 1px #ffffff;
}


#gnavi_lower li{
	border-bottom: dotted 1px #ffffff;
}


.gnavi{
	width: 230px;
	margin: 0;
	padding: 0;
}


.gnavi ul{
	width: 100%;
	margin: 0;
	padding: 0;
}


.gnavi ul li{
	font-size: 1.4rem;
	line-height: 44px;
	margin: 0;
	padding: 1px 0 0 0;
}


.gnavi ul li a{
	display: block;
	background: url(../images/arrow.png) no-repeat -230px 0;
	color: #333333;
	padding: 0 0 0 15px;
	-webkit-transition: .3s ease;
	transition: .3s ease;
}


.gnavi ul li a:hover{
	background: url(../images/arrow.png) no-repeat 0 0;
	color: #ffffff;
}


.gnavi ul li a i{
	width: 40px;
	font-size: 2.0rem;
	margin: 0;
	padding: 0;
	position: relative;
	top: 2px;
}




@media only screen and (max-width: 1000px){

	.gnavi_sp{
		background-color: rgba(255,204,0,0.95);
		width: 100%;
		margin: 0;
		padding: 0;
		position: absolute;
		top: 100px;
		left: 0;
		display: none;
	}


	.gnavi_sp ul{
		width: 100%;
		margin: 0;
		padding: 0;
	}


	.gnavi_sp ul li{
		width: 100%;
		font-size: 1.4rem;
		line-height: 40px;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
	}


	.gnavi_sp ul li a{
		color: #000000;
		text-decoration: none;
		padding: 10px 30px;
		border-top: dotted 1px #333333;
		display: block;
	}


	.gnavi_sp ul li a i{
		padding: 0 5px 0 0;
	}

}




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

	.gnavi_sp{
		background-color: rgba(255,204,0,0.95);
		width: 100%;
		margin: 0;
		padding: 0;
		position: absolute;
		top: 80px;
		left: 0;
		display: none;
	}


	.gnavi_sp ul{
		width: 100%;
		margin: 0;
		padding: 0;
	}


	.gnavi_sp ul li{
		width: 100%;
		font-size: 1.4rem;
		line-height: 30px;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
	}


	.gnavi_sp ul li a{
		color: #000000;
		text-decoration: none;
		padding: 6px 30px;
		border-top: dotted 1px #333333;
		display: block;
	}


	.gnavi_sp ul li a i{
		padding: 0 5px 0 0;
	}

}




/*==================================================
  Main
==================================================*/
main{
	margin: 0;
	padding: 0;
	position: absolute;
	top: 0;
	left: 300px;
}




@media only screen and (max-width: 1000px){

	main{
		margin: 0;
		padding: 0;
		position: absolute;
		top: 100px;
		left: 0;
	}

}




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

	main{
		margin: 0;
		padding: 0;
		position: absolute;
		top: 80px;
		left: 0;
	}

}




/*==================================================
  Footer
==================================================*/
footer{
	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
	z-index: 1;
}




/*==================================================
  高さ調整
==================================================*/
@media only screen and (max-height: 860px){

	.sns{
		width: 25px;
		margin: 0;
		padding: 0;
		position: absolute;
		bottom: 45px;
		left: 20px;
	}


	.sns ul{
		width: 25px;
		margin: 0;
		padding: 0;
	}


	.sns ul li{
		width: 25px;
		height: 25px;
		margin: 0;
		padding: 10px 0;
		float: none;
	}

}




@media only screen and (max-height: 755px){

	.logo{
		width: 222;
		height: 160px;
		margin: -80px 0 0 -111px;
		padding: 0;
		position: absolute;
		top: 50%;
		left: 50%;
	}


	.logo h1{
		width: 222px;
		height: 160px;
		margin: 0;
		padding: 0;
	}


	.logo h1 img{
		width: 222px;
		height: 160px;
		margin: 0;
		padding: 0;
	}


	#gnavi_upper{
		position: absolute;
		bottom: 100px;
		left: 70px;
	}


	#gnavi_lower{
		position: absolute;
		top: 100px;
		left: 70px;
	}

}




@media only screen and (max-height: 710px){

	#gnavi_upper{
		position: absolute;
		bottom: 85px;
		left: 70px;
	}


	#gnavi_lower{
		position: absolute;
		top: 85px;
		left: 70px;
	}


	.logo{
		width: 194px;
		height: 140px;
		margin: -70px 0 0 -97px;
		padding: 0;
		position: absolute;
		top: 50%;
		left: 50%;
	}


	.logo h1{
		width: 194px;
		height: 140px;
		margin: 0;
		padding: 0;
	}


	.logo h1 img{
		width: 194px;
		height: 140px;
		margin: 0;
		padding: 0;
	}

}




@media only screen and (max-height: 680px){

	#gnavi_upper{
		position: absolute;
		bottom: 70px;
		left: 70px;
	}


	#gnavi_lower{
		position: absolute;
		top: 70px;
		left: 70px;
	}


	.logo{
		width: 166px;
		height: 120px;
		margin: -60px 0 0 -83px;
		padding: 0;
		position: absolute;
		top: 50%;
		left: 50%;
	}


	.logo h1{
		width: 166px;
		height: 120px;
		margin: 0;
		padding: 0;
	}


	.logo h1 img{
		width: 166px;
		height: 120px;
		margin: 0;
		padding: 0;
	}

}




@media only screen and (max-height: 640px){

	.gnavi ul li{
		font-size: 1.3rem;
		line-height: 39px;
		margin: 0;
		padding: 1px 0 0 0;
	}


	.gnavi ul li a i{
		width: 40px;
		font-size: 1.8rem;
		margin: 0;
		padding: 0;
		position: relative;
		top: 2px;
	}

}
