@charset "utf-8";


@media only screen and (max-width:991px) {}
@media only screen and (max-width:767px) {}


/*************************************************

 wrapper

*************************************************/
#wrapper {
	overflow: hidden;
	color: #64655C;
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, '游ゴシック', 'Yu Gothic', '游ゴシック体', 'YuGothic', 'ＭＳ Ｐゴシック', sans-serif;
	font-size: 18px;
	line-height: 2.2;
	text-align: left;
}
input {
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, '游ゴシック', 'Yu Gothic', '游ゴシック体', 'YuGothic', 'ＭＳ Ｐゴシック', sans-serif;
}
.wrap {
	margin-right: auto;
	margin-left: auto;
	max-width: 1200px;
	padding-right: 20px;
	padding-left: 20px;
}
@media only screen and (max-width:767px) {
	#wrapper {
		font-size: 12px;
		line-height: 2;
	}
}



/*************************************************

 header

*************************************************/
#header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	background-color: #fff;
	z-index: 100;
}
@media only screen and (max-width:991px) {
	#header {
		position: fixed;
	}
	#header .headTop {
		position: relative;
		background-color: #fff;
		z-index: 20;
	}
}

/* siteLogo
--------------------------------------*/
#header .siteLogo {
	display: table;
	height: 80px;
	padding: 0 30px;
	line-height: 0;
}
#header .siteLogo a {
	display: table-cell;
	vertical-align: middle;
}
#header .siteLogo img {
	width: 160px;
	height: auto;
}
@media only screen and (max-width:991px) {
	#header .siteLogo {
		height: 40px;
		padding: 0 12px;
	}
	#header .siteLogo img {
		width: 94px;
	}
}


/* spIcons
--------------------------------------*/
#header .spIcons {
	display: none;
}
@media only screen and (max-width:991px) {
	#header .spIcons {
		position: absolute;
		top: 0;
		right: 0;
		display: flex;
		width: 120px;
	}
	#header .spIcons li {
		position: relative;
		flex: 1;
		height: 40px;
	}
	#header .spIcons li a {
		overflow: hidden;
		position: relative;
		display: block;
		width: 100%;
		height: 100%;
		text-indent: -9999px;
		background: no-repeat center center;
	}
	#header .spIcons li.tel a {
		background-color: #163C91;
		background-image: url(../images/common/ico_tel.svg);
		background-size: 13px auto;
	}
	#header .spIcons li.mail a {
		background-color: #8A9B1E;
		background-image: url(../images/common/ico_mail.svg);
		background-size: 16px auto;
	}

	/* spMenu */
	#spMenu {
		cursor: pointer;
	}
	#spMenu:before,
	#spMenu:after {
		position: absolute;
		top: 50%;
		left: 50%;
		display: block;
		content: '';
		width: 22px;
		height: 2px;
		margin-left: -11px;
		background-color:#707070;
	}
	#spMenu:before {
		margin-top: -5px;
	}
	#spMenu:after {
		margin-top: 3px;
	}
	.open #spMenu:before {
		animation: menuAnime01 .3s forwards;
	}
	.open #spMenu:after {
		animation: menuAnime02 .3s forwards;
	}
	.open #spMenu span {
		opacity: 0;
	}
	.close #spMenu:before {
		animation: menuAnime01_close .3s forwards;
	}
	.close #spMenu:after {
		animation: menuAnime02_close .3s forwards;
	}
	@keyframes menuAnime01 {
		50% {
			margin-top: -1px;
			transform: rotate(0deg);
		}
		100% {
			margin-top: -1px;
			transform: rotate(45deg);
		}
	}
	@keyframes menuAnime01_close {
		0% {
			margin-top: -1px;
			transform: rotate(45deg);
		}
		50% {
			margin-top: -1px;
			transform: rotate(0deg);
		}
		100% {
			margin-top: -5px;
			transform: rotate(0deg);
		}
	}
	@keyframes menuAnime02 {
		50% {
			margin-top: -1px;
			transform: rotate(0deg);
		}
		100% {
			margin-top: -1px;
			transform: rotate(-45deg);
		}
	}
	@keyframes menuAnime02_close {
		0% {
			margin-top: -1px;
			transform: rotate(-45deg);
		}
		50% {
			margin-top: -1px;
			transform: rotate(0deg);
		}
		100% {
			margin-top: 3px;
		}
	}

}






/*************************************************

 gNav

*************************************************/

@media only screen and (max-width:991px) {
	#gNav {
		overflow-y: auto;
		position: fixed;
		top: 0;
		right: 0;
		width: 250px;
		max-height: 100%;
		background-color: #fff;
		transition-property: transform;
		transition-duration: 0.4s;
		transform: translateX(100%);
		-webkit-overflow-scrolling: touch;
		z-index: 10;
	}
	.open #gNav {
		transform: translateX(0);
	}
	#gNav nav {
		padding: 60px 20px 20px;
	}
}


/* mainNav
--------------------------------------*/
#gNav .mainNav {
	position: absolute;
	top: 50%;
	right: 45px;
	display: flex;
	transform: translateY(-50%);
}
#gNav .mainNav li + li {
	margin-left: 50px;
}
#gNav .mainNav li a {
	display: block;
	color: #64655C;
	font-size: 14px;
	text-decoration: none;
}
#gNav .mainNav li.color a {
	color: #8A9B1E;
}
@media only screen and (max-width:1440px) {
	#gNav .mainNav {
		right: 30px;
	}
	#gNav .mainNav li + li {
		margin-left: 20px;
	}
	#gNav .mainNav li a {
		font-size: 13px;
	}
}
@media only screen and (max-width:991px) {
	#gNav .mainNav {
		position: static;
		display: block;
		transform: translateY(0);
	}
	#gNav .mainNav li {
		border-bottom: #707070 solid 1px;
	}
	#gNav .mainNav li:first-child {
		border-top: #707070 solid 1px;
	}
	#gNav .mainNav li + li {
		margin-left: 0;
	}
	#gNav .mainNav li a {
		padding: 8px 0;
		font-size: 12px;
	}
	#gNav .mainNav li.color a {
		color: #64655C;
	}
}


/* sns
--------------------------------------*/
#gNav .sns {
	position: absolute;
	top: 50%;
	left: 360px;
	display: flex;
	align-items: center;
	transform: translateY(-50%);
}
#gNav .sns li + li {
	margin-left: 35px;
}
#gNav .sns li a {
	overflow: hidden;
	display: block;
	height: 24px;
	text-indent: -9999px;
	text-decoration: none;
	background: no-repeat center center;
	background-size: contain;
}
#gNav .sns li.twitter a {
	width: 21px;
	background-image: url(../images/common/ico_twitter.svg);
}
#gNav .sns li.youtube a {
	width: 27px;
	background-image: url(../images/common/ico_youtube.svg);
}
@media only screen and (max-width:1440px) {
	#gNav .sns {
		left: 220px;
	}
	#gNav .sns li + li {
		margin-left: 15px;
	}
}
@media only screen and (max-width:991px) {
	#gNav .sns {
		position: static;
		margin-top: 20px;
		transform: translateY(0);
	}
	#gNav .sns li + li {
		margin-left: 60px;
	}
	/*#gNav .sns li a {
		height: 12px;
	}
	#gNav .sns li.twitter a {
		width: 11px;
	}
	#gNav .sns li.youtube a {
		width: 14px;
	}*/
}





/*************************************************

 spMenu

*************************************************/




/*************************************************

 container

*************************************************/
#container {
	padding-top: 80px;
}
@media only screen and (max-width:991px) {
	#container {
		padding-top: 40px;
	}
}



/*************************************************

 footer

*************************************************/
#footer {
	position: relative;
	z-index: 10;
}

/* pagetop
--------------------------------*/
#pagetop {
	position: relative;
	line-height: 0;
}
#pagetop > div {
	position: fixed;
	bottom: 20px;
	right: 20px;
	transition-property: transform;
	transition-duration: 0.4s;
	transform: translateY(100px);
}
#pagetop.on > div {
	transform: translateY(0);
}
#pagetop.stop > div {
	position: absolute;
}
#pagetop a {
	display: block;
}
@media only screen and (max-width:767px) {
	#pagetop > div {
		display: none;
	}
}




/* footerContact
--------------------------------*/
#footer #footerContact {
	position: relative;
	background: #000;
}
#footer #footerContact:before,
#footer #footerContact:after {
	position: absolute;
	top: 0;
	display: block;
	content: '';
	width: 50%;
	height: 100%;
	background: no-repeat center center;
	background-size: cover;
}
#footer #footerContact:before {
	left: 0;
	background-image: url(../images/common/contact_bg01.jpg);
}
#footer #footerContact:after {
	right: 0;
	background-image: url(../images/common/contact_bg02.jpg);
}
#footer #footerContact .inner {
	position: relative;
	display: table;
	width: 100%;
	height: 320px;
	max-width: 1200px;
	margin: 0 auto;
	z-index: 2;
}
#footer #footerContact .inner > * {
	box-sizing: border-box;
	display: table-cell;
	width: 50%;
	padding: 0 10px;
	vertical-align: middle;
	text-align: center;
}
#footer #footerContact .inner .btn {
	display: table;
	width: 100%;
	max-width: 380px;
	height: 60px;
	margin: 0 auto;
	text-align: center;
	text-decoration: none;
	background-color: #fff;
	border-radius: 5px;
}
#footer #footerContact .inner .btn .cell {
	display: table-cell;
	vertical-align: middle;
}
#footer #footerContact .mail .btn > div {
	color: #64655C;
	font-weight: 500;
}
#footer #footerContact .mail .btn span {
	display: inline-block;
	padding-left: 40px;
	background: url(../images/common/ico_mail02.svg) no-repeat left center;
}
#footer #footerContact .tels {
	color: #fff;
}
#footer #footerContact .tels .txt01 {
	font-weight: 700;
}
#footer #footerContact .tels .txt02 {
	font-size: 14px;
}
#footer #footerContact .tels .btn {
	cursor: default;
}
#footer #footerContact .tels .btn > div {
	color: #163C91;
	font-size: 22px;
	font-weight: 500;
}
#footer #footerContact .tels .btn span {
	display: inline-block;
	padding-left: 50px;
	background: url(../images/common/ico_tel02.svg) no-repeat left center;
}

@media only screen and (max-width:767px) {
	#footer #footerContact:before,
	#footer #footerContact:after {
		display: none;
	}
	#footer #footerContact .inner {
		display: block;
		height: auto;
	}
	#footer #footerContact .inner > * {
		display: table;
		width: 100%;
		height: 125px;
		padding: 0;
		background: no-repeat center center;
		background-size: cover;
	}
	#footer #footerContact .inner .spCell {
		display: table-cell;
		vertical-align: middle;
	}
	#footer #footerContact .inner .btn {
		max-width: 220px;
		height: 40px;
	}
	#footer #footerContact .mail {
		background-image: url(../images/common/contact_bg01.jpg);
	}
	#footer #footerContact .mail .btn span {
		padding-left: 20px;
		background-size: 13px auto;
	}
	#footer #footerContact .tels {
		background-image: url(../images/common/contact_bg02.jpg);
	}
	#footer #footerContact .tels .txt02 {
		font-size: 12px;
	}
	#footer #footerContact .tels .btn {
		margin: 5px auto;
	}
	#footer #footerContact .tels .btn > div {
		font-size: 14px;
	}
	#footer #footerContact .tels .btn span {
		padding-left: 30px;
		background-size: 14px auto;
	}
}


/* footerInfos
--------------------------------*/
#footer #footerInfos {
	padding: 25px 20px;
	color: #fff;
	background-color: #707070;
}
#footer #footerInfos .inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
}
#footer #footerInfos .left {
	position: relative;
}
#footer #footerInfos .inTb {
	display: table;
}
#footer #footerInfos .inTb > * {
	box-sizing: border-box;
	display: table-cell;
	vertical-align: top;
}
#footer #footerInfos .txt {
	font-size: 14px;
	line-height: 1.4;
}
#footer #footerInfos .logo {
	width: 160px;
	line-height: 0;
}
#footer #footerInfos .copyright {
	position: absolute;
	right: 0;
	bottom: 0;
	font-size: 14px;
	line-height: 1.3;
}
#footer #footerInfos .sns {
	position: absolute;
	bottom: 0;
	left: 450px;
	display: flex;
	align-items: center;
}
#footer #footerInfos .sns li + li {
	margin-left: 30px;
}
#footer #footerInfos .sns li a {
	overflow: hidden;
	display: block;
	height: 24px;
	text-indent: -9999px;
	text-decoration: none;
	background: no-repeat center center;
	background-size: contain;
}
#footer #footerInfos .sns li.twitter a {
	width: 21px;
	background-image: url(../images/common/ico_twitter02.svg);
}
#footer #footerInfos .sns li.youtube a {
	width: 27px;
	background-image: url(../images/common/ico_youtube02.svg);
}
@media only screen and (max-width:991px) {
	#footer #footerInfos .copyright {
		position: static;
		margin-top: 25px;
	}
}
@media only screen and (max-width:767px) {
	#footer #footerInfos .inTb {
		display: block;
	}
	#footer #footerInfos .inTb > * {
		display: block;
	}
	#footer #footerInfos .txt {
		font-size: 12px;
	}
	#footer #footerInfos .logo {
		width: auto;
		margin-bottom: 10px;
	}
	#footer #footerInfos .logo img {
		width: 100px;
	}
	#footer #footerInfos .copyright {
		font-size: 12px;
	}
	#footer #footerInfos .sns {
		position: static;
		margin-top: 25px;
	}
	#footer #footerInfos .sns li + li {
		margin-left: 25px;
	}
}




/*************************************************

 each style

*************************************************/

/* commonKeyVisual
--------------------------------*/
.commonKeyVisual {
	position: relative;
	height: 460px;
	margin-bottom: 200px;
	background: no-repeat center center;
	background-size: cover;
}
.commonKeyVisual .text {
	box-sizing: border-box;
	position: absolute;
	bottom: -80px;
	left: 0;
	width: 100%;
}
.commonKeyVisual .text .inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 30px 20px 0;
	color: #fff;
	background-color: rgba(13,35,85,0.7);
}
.commonKeyVisual .text .inner:before {
	position: absolute;
	top: 0;
	right: 100%;
	display: block;
	content: '';
	width: 100vw;
	height: 100%;
	background-color: rgba(13,35,85,0.7);
}
.commonKeyVisual .text .title {
	font-size: 36px;
	font-weight: 500;
	line-height: 1.5;
}
.commonKeyVisual .text .en {
	display: table;
	width: 100%;
	height: 80px;
	margin-top: 10px;
	font-size: 20px;
	font-weight: 100;
	line-height: 1.4;
}
.commonKeyVisual .text .en span {
	display: table-cell;
	vertical-align: middle;
}
@media only screen and (max-width:767px) {
	.commonKeyVisual {
		height: 230px;
		margin-bottom: 70px;
	}
	.commonKeyVisual .text {
		bottom: -40px;
	}
	.commonKeyVisual .text .inner {
		padding: 15px 20px 0;
	}
	.commonKeyVisual .text .title {
		font-size: 17px;
	}
	.commonKeyVisual .text .en {
		height: 40px;
		margin-top: 3px;
		font-size: 11px;
	}
}



/* commonBdrTitle
--------------------------------*/
.commonBdrTitle {
	position: relative;
	margin-bottom: 50px;
	font-size: 36px;
	font-weight: 500;
	text-align: center;
	line-height: 1.4;
}
.commonBdrTitle span {
	display: inline-block;
	padding: 0 2px 15px;
	color: #8A9B1E;
	border-bottom: #8A9B1E dotted 3px;
}
.commonBdrTitle.wh span {
	color: #fff;
	border-color: #fff;
}
@media only screen and (max-width:767px) {
	.commonBdrTitle {
		margin-bottom: 25px;
		font-size: 16px;
	}
	.commonBdrTitle span {
		padding-bottom: 8px;
		border-width: 2px;
	}
}



/* commonBtn01
--------------------------------*/
.commonBtn01 {
	display: block;
	max-width: 380px;
	margin: 0 auto;
	padding: 10px 0;
	color: #fff;
	font-weight: 500;
	text-align: center;
	text-decoration: none;
	background-color: #8A9B1E;
	border-radius: 5px;
}
@media only screen and (max-width:767px) {
	.commonBtn01 {
		max-width: 220px;
	}
}





/* fade anime
--------------------------------*/
.effectFU,
.effectFL,
.effectFR,
.effectFD,
.effectIn,
.ch-effectFU,
.ch-effectFL,
.ch-effectFR,
.ch-effectFD,
.ch-effectIn {
	opacity: 0;
	transition-property: transform opacity;
	transition-duration: 1.2s;
}

.effectFU,.ch-effectFU {transform: translateY(50px);}
.effectFL,.ch-effectFL {transform: translateX(50px);}
.effectFR,.ch-effectFR {transform: translateX(-50px);}
.effectFD,.ch-effectFD {transform: translateY(-50px);}

.site-start .effectFU.is-View,
.site-start .effectFL.is-View,
.site-start .effectFR.is-View,
.site-start .effectFD.is-View,
.site-start .effectIn.is-View,
.site-start .is-View .ch-effectFU,
.site-start .is-View .ch-effectFL,
.site-start .is-View .ch-effectFR,
.site-start .is-View .ch-effectFD,
.site-start .is-View .ch-effectIn {
	opacity: 1;
	transform: translate(0,0);
}






