@charset "UTF-8";
/* CSS Document */

/*=============================
源ノ角ゴシック
使うときはhタグのbold解除して、あと太さフォント別にcss用意
=============================*/
@font-face {
	font-family: "SourceHanSans-Bold";
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/SourceHanSans-Bold.woff') format('woff'),
	url('../fonts/SourceHanSans-Bold.otf') format('opentype')
}

/*=============================
フォント別太さ指定
=============================*/
.fgwb{font-family: "SourceHanSans-Bold"       !important; font-weight: 700 !important;}


html {
	background:#fff;
	color:#000;
}
html.lock{
	overflow: hidden;
	-ms-touch-action: none;
	touch-action: none;
}
body{
	font-size: 3.75vw;
	font-family:"游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic","Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 500;
	line-height:1.0;
	letter-spacing:0px;
	-webkit-text-size-adjust: 100%;/*スマホ文字拡大対策*/
}

/* --A-- */
a {
	cursor:pointer;
	text-decoration:none;
	-webkit-tap-highlight-color:rgba(0,0,0,0);/*リンクタップ時のハイライト表示無効*/
}
a:hover {
	text-decoration:underline;
}
/* --HEADLINE-- */
h1, h2, h3, h4, h5, h6 {
	font-size:100%;
	font-weight:normal;
	margin:0;
	max-height: 100%;/*android chrome対策*/
}
/* --OTHER TAGS-- */
p {
	margin-bottom:0;
	text-align:left;
	width:auto;
	max-height: 100%;/*android chrome対策*/
}
em, strong {
	font-weight:bold;
}
/* --clearfix-- */
.clf:after{
	content: ".";
	display: block;
	height: 0;
	font-size:0;
	clear: both;
	visibility:hidden;
}
.clf{
	display: inline-block;
}
	/* Hides from IE Mac */
	* html .clf{
		height: 1%;
	}
	.clf{
		display:block;
	}
	
.center{text-align:center;}
.left{text-align:left;}
.right{text-align:right;}
.Fright {float:right;}
.Fleft {float:left;}
.imgRight {float:right; margin:0px 0px 20px 20px ;}
.imgLeft {float:left; margin:0px 20px 20px 0px ;}
.vm,
.vmTxt{
	display: inline-block;
	position: relative;
	top:50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
	/*IE遊ゴずれ対応*/
	@media all and (-ms-high-contrast:none){
		.vmTxt{padding-top: 0.35em;}
	}


#backToTop {
	bottom:20px;
	right: 20px;
	z-index: 100;
	display: none;
}
#loaderOuter{
	position:fixed;
	width:100%;
	height:100%;
	z-index:499;
	background:#FFF;
}
#loader{
	position: fixed;
	top:50%;
	left:50%;
	z-index:90;
}
.fwb{font-weight: bold !important;}
.fwn{font-weight: normal !important;}
.txtInd{text-indent: -1em;padding-left: 1em;}
.bb1{border-bottom: 1px solid #000;}
.bt1{border-top: 1px solid #000;}
.posRe{position: relative;}
.posAb{position: absolute;}
.posFix{position: fixed;}
.lh2{line-height: 2.0;}
/*.sp{display: none !important;}*/
.pc{display: none !important;}

.noEvent{pointer-events:none}/*IE11以降（IE11ではaタグには利かない）*/

#wrapper{
	overflow: hidden;
}


/*=============================
header
=============================*/
header{
	width: 100%;
	height: 40px;
	background: #FFF;
	position: fixed;
	top:0;
	left:0;
	z-index: 500;
}
header .logo{
	position: relative;
	top:15px;
	left:15px;
	z-index: 500;
	background: url(../img/logo_w.svg) no-repeat top left/auto 10.78px;
}
header .logo img{
	height: 11px;
	width: auto;
	opacity: 1;
	-webkit-transition: opacity 0.3s ease;
	transition: opacity 0.3s ease;
}
header.open .logo img{
	opacity: 0;
	-webkit-transition: opacity 0.3s ease;
	transition: opacity 0.3s ease;
}


/*gnavBt
=============================*/
header #gnavBt {
	position: fixed;
	top:5px;
	right:5px;
	z-index:500;
}
header #gnavBt a{
	display: block;
	width:30px;
	height:30px;
	position: relative;
	border: 2px solid #FFF;
}

/*▼gnavBtアニメ*/
header #gnavBtBorder{
	z-index: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-left: -11px;
	margin-top: -1px;
	display: block;
	width: 22px;
	height: 2px;
	background-color: #000;
	-webkit-transition: -webkit-transform 0.3s ease, top 0.3s ease;
	transition: transform 0.3s ease, top 0.3s ease;
}
header #gnavBtBorder:before {
	top: -8px;
	content: "";
	display: block;
	width: 22px;
	height: 2px;
	background-color: #000;
	position: absolute;
	z-index: -1;
	-webkit-transition: -webkit-transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
	transition: transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
}
header #gnavBtBorder:after {
	top: 8px;
	content: "";
	display: block;
	width: 22px;
	height: 2px;
	background-color: #000;
	position: absolute;
	z-index: -1;
	-webkit-transition: -webkit-transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
	transition: transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
}
header #gnavBt a:hover #gnavBtBorder:before {
	margin-top: -3px;
}
header #gnavBt a:hover #gnavBtBorder:after {
	margin-top: 3px;
}
header #gnavBt a.open #gnavBtBorder {
	background: none;
}
header #gnavBt a.open #gnavBtBorder:before {
	background-color: #FFF;
	top:0 !important;
	margin-top: 0 !important;
	-webkit-transform:rotate(45deg);
	-ms-transform:rotate(45deg);
	transform:rotate(45deg)
}
header #gnavBt a.open #gnavBtBorder:after {
	background-color: #FFF;
	top:0 !important;
	margin-top: 0 !important;
	-webkit-transform:rotate(-45deg);
	-ms-transform:rotate(-45deg);
	transform:rotate(-45deg)
}

/*gnav ani
=============================*/
nav#gnav {
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	z-index: 200;
	background: rgba(46,198,72,1);
	display: none;
	text-align: center;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}
nav#gnav.opening {
	display: block;
	-webkit-animation: opening 0.8s ease 0s 1 normal both;
	animation: opening 0.8s ease 0s 1 normal both;
}
nav#gnav.opened{display: block;}

nav#gnav.closing {
	display: block;
	-webkit-animation: closing 0.25s ease 0s 1 normal both;
	animation: closing 0.25s ease 0s 1 normal both;
}
nav#gnav.closed{display: none;}


@-webkit-keyframes opening {
	0% {
		-moz-perspective:1300px;
		-webkit-perspective: 1300px;
				perspective: 1300px;
		-webkit-transform: scale(1.5);
		-ms-transform: scale(1.5);
			transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
	100% {
		-webkit-transform: scale(1.0);
		-ms-transform: scale(1.0);
			transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
}
@keyframes         opening {
	0% {
		-moz-perspective:1300px;
		-webkit-perspective: 1300px;
				perspective: 1300px;
		-webkit-transform: scale(1.5);
		-ms-transform: scale(1.5);
			transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
	100% {
		-webkit-transform: scale(1.0);
		-ms-transform: scale(1.0);
			transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
}

@-webkit-keyframes closing {
	0% {
		-webkit-transform: scale(1.0);
		-ms-transform: scale(1.0);
			transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
	100% {
		-moz-perspective:1300px;
		-webkit-perspective: 1300px;
				perspective: 1300px;
		-webkit-transform: scale(1.5);
		-ms-transform: scale(1.5);
			transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
}
@keyframes         closing {
	0% {
		-webkit-transform: scale(1.0);
		-ms-transform: scale(1.0);
			transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
	100% {
		-moz-perspective:1300px;
		-webkit-perspective: 1300px;
				perspective: 1300px;
		-webkit-transform: scale(1.5);
		-ms-transform: scale(1.5);
			transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
}
/*gmenu
=============================*/
nav#gnav::after{
	content: "";
	height: 100%;
	margin-left: -0.05em;
}
nav#gnav::after,
nav#gnav #gmenu{
	display: inline-block;
	vertical-align: top;
}
#gmenu{
	width: calc(100% - 4px);
	position: relative;
	top:0;
	opacity: 1;
	padding-top: 40px;
}
#gmenu > li{
	border-bottom: 1px solid #FFF;
}
#gmenu > li:first-child{
	border-top: 1px solid #FFF;
}
#gmenu > li a{
	display: block;
	color: #FFF;
	font-size: 4.69vw;
	text-align: center;
	padding: 1vw 0;
	text-decoration: none;
}
#gmenu > li a span{
	display: inline-block;
	width: 42vw;
	text-align: left;
}
#gmenu > li > a{padding: 3.91vw 0;}
#gmenu > li .sub{margin-bottom: 3.5vw;}
#gmenu > li .sub li a{
	padding: 1vw 0;
}
#gmenu > li .sub li a span::before{
	content: '－';
}

#gmenu > li.bt_contact a span.vmTxt{
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

/*deSVG
=============================*/
/*
.svgImg path{
	fill: #FFF;
}*/

/*=============================
footer
=============================*/
footer .bt_contact{
	text-align: center;
	padding: 3.91vw;
}
footer .bt_contact a{
	display: block;
	height: 7.8vw;
	position: relative;
	color: #2ec448;
	font-size: 4.22vw;
	font-weight: bold;
	border: 3px solid #2ec448;
	text-align: center;
}
footer .copyRight{
	background: #2ec448;
	text-align: center;
	color: #FFF;
	font-size: 2.19vw;
	font-weight: bold;
	letter-spacing: 0.05em;
	padding: 3.91vw 0;
}