@charset "utf-8";

@font-face{
	font-family: 'alte DIN';
	src: url("../font/alte-din-1451-mittelschrift.gepraegt.ttf") format('truetype');
}

html{
	font-size: 62.5%;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){

}

/*--------------------------------------*/

body{
	font-family: 'Noto Sans JP', sans-serif !important;
	font-size: 16px !important;
	font-size: 1.6rem !important;
	line-height: 1.5 !important;
}
@media screen and (min-width: 771px){
	body{

	}
}
@media screen and (max-width: 770px){
	body{

	}
}

@keyframes csn-rotate{
	to{
		transform: rotate(360deg);
	}
}

/*--------------------------------------*/

#wrapper{

}
@media screen and (min-width: 771px){
	#wrapper{

	}
}
@media screen and (max-width: 770px){
	#wrapper{

	}
}

/*--------------------------------------*/

header{
	padding: 1em;
	position: fixed;
	width: 100%;
	top: 0;
	box-sizing: border-box;
	overflow: hidden;
	z-index: 1000;
}
@media screen and (min-width: 771px){
	header{

	}
}
@media screen and (max-width: 770px){
	header{
		overflow: visible;
		padding: 4vw;
	}
	header.fixed .area{
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		margin: auto;
		width: 100%;
		box-sizing: border-box;
		background: rgba(255,255,255,.96);
		z-index: 100;
	}
	header .gnavi{
		margin: 0;
		display: none;
		position: absolute;
		right: 5vw;
		top: 100px;
	}
	header .gnavi .container{
		flex-direction: column;
		align-items: flex-end;
		font-size: 1.8rem !important;
	}
	header .logo svg path{
		transition: fill .3s;
	}
	header.active .logo svg path{
		fill : #fff;
	}
	header .gnavi.active{
		display: block;
		color: #fff;
	}
}

/*--------------------------------------------------------------------*/

.gnavi a{
	padding: .4em 1em;
}
@media screen and (min-width: 771px){
	.gnavi .cursor{
		position: absolute;
		width: 3em;
		height: 2px;
		background-color: #3A8153;
		bottom: 0;
		left: -30vw;
		transition: left .4s;
		transform: translateX(-50%);
		opacity: 0;
	}
	.gnavi .cursor.lock{

	}
}
@media screen and (max-width: 999px){
	.gnavi .item a{
		font-size: 1.6rem;
		padding: .4em .6em;
	}
}
@media screen and (max-width: 770px){
	.gnavi .item{
		margin-bottom: .1em;
	}
	.gnavi .item a{
		opacity: 0;
		font-size: 2.3rem;
	}
	.gnavi .item:before,
	.gnavi.reveal .item:after{
		width: 0%;
		height: 100%;
		background-color: #000;
		left: 0;
		top: 0;
		z-index: 2;
	}
	.gnavi.reveal *:before{
		animation-name: textReveal;
		animation-duration: .5s;
		animation-timing-function: cubic-bezier(.91,.13,1,.72);
		animation-delay: .1s;
	}
	.gnavi.reveal *:after{
		animation-name: textReveal;
		animation-timing-function: cubic-bezier(.91,.13,1,.72);
		animation-duration: .5s;
		animation-delay: .2s;
		background-color: #979797;
	}
	.gnavi.reveal a{
		animation-name: textVisible;
		animation-timing-function: cubic-bezier(.91,.13,1,.72);
		animation-duration: .5s;
		animation-delay: .2s;
		animation-fill-mode: both;
	}
}

/*--------------------------------------------------------------------*/

#layer{
	display: block;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(58,129,83,.97);
	z-index: 999;
	transform: translateX(-100vw);
	transition: transform .3s cubic-bezier(.91,.13,1,.72);
}
@media screen and (min-width: 771px){
	#layer{
		display: none;
	}
}
@media screen and (max-width: 770px){
	.sp.menu{
		position: relative;
		align-items: stretch;
		display: inline-block;
		background: rgba(255,255,255,.9);
	}
	.sp.menu .button{
		position: relative;
		z-index: 1100;
		width: 14px;
		height: 14px;
		margin: 10px;
	}
	.sp.menu .button .line{
		display: inline-block;
		position: absolute;
		left: 0;
		right: 0;
		margin: auto;
		width: 100%;
		height: 2px;
		background-color: #333;
		border-radius: 4px;
		transition: all .3s;
	}
	.sp.menu .button .line:nth-of-type(1){
		top:0;
	}
	.sp.menu .button .line:nth-of-type(2){
		top: 0;
		bottom: 0;
	}
	.sp.menu .button .line:nth-of-type(3){
		bottom: 0;
	}
	.sp.menu.active .button .line:nth-of-type(1){
		top: 0;
		bottom: 0;
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	.sp.menu.active .button .line:nth-of-type(2){
		opacity: 0;
	}
	.sp.menu.active .button .line:nth-of-type(3){
		top: 0;
		bottom: 0;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	#layer.active{
		transform: translateX(0vw);
	}
}

/*--------------------------------------*/

#main{

}
@media screen and (min-width: 771px){
	#main{

	}
}
@media screen and (max-width: 770px){
	#main{

	}
}

/*--------------------------------------*/

#contents{

}
@media screen and (min-width: 771px){
	#contents{

	}
}
@media screen and (max-width: 770px){
	#contents{

	}
}

/*--------------------------------------------------------------------*/

.commonIndex{
	margin-bottom: 40px;
	display: inline-block;
}
.commonIndex .en{
	line-height: 1;
	margin-bottom: .1em;
}
.commonIndex .en:first-letter,
.commonIndex .en .-label:first-letter{
	color: #3A8153;
}
.commonIndex .ja{
	display: inline-block;
}

/*--------------------------------------------------------------------*/

.commonLink{

}
.commonLink .button{
	display: inline-block;
	line-height: 0;
}
.commonLink .button:before,
.commonLink .button:after{
	box-sizing: border-box;
	border: 1px solid #3A8153;
	width: 0px;
	height: 0px;
	transition: width .5s ease-in-out, height .5s ease-in-out;
}
.commonLink .button:before{
	border-right: 0;
	border-bottom: 0;
	left: 0;
	top: 0;
}
.commonLink .button:after{
	border-left: 0;
	border-top: 0;
	right: 0;
	bottom: 0;
}
.commonLink a{
	padding: 1em 1em;
	padding-right: 3em;
	border: 1px solid #000;
	position: relative;
	line-height: 1;
	min-width: 15em;
	box-sizing: border-box;
	z-index: 2;
}
.commonLink a .ico_arrow{
	position: static;
}
.commonLink a .ico_arrow:before{
	width: .4em;
	height: .4em;
	border-width: 1px;
	right: 1.3em;
	transition: right .3s, border-color .3s;
}
.commonLink a .ico_arrow:after{
	width: 1px;
	height: 100%;
	background-color: #000;
	right: 3em;
	top: 0;
	bottom: 0;
	margin:  auto;
}

/*--------------------------------------------------------------------*/

.commonLink .button:hover{

}
.commonLink .button:hover:before,
.commonLink .button:hover:after{
	width: 100%;
	height: 100%;
}
.commonLink a:hover{
	border-color: transparent;
	opacity: 1;
	color: #3A8153;
}
.commonLink a:hover .ico_arrow:before{
	right: .5em;
	border-color: #3A8153;
}
.commonLink a:hover .ico_arrow:after{
	animation-name: commonButtonSep;
	animation-duration: .5s;
	animation-fill-mode: both;
}

@keyframes commonButtonSep{
	0%{
		height: 0%;
		background-color: #000;
	}
	100%{
		height: 100%;
		background-color: #3A8153;
	}
}

/*--------------------------------------*/

#sidebar{

}
@media screen and (min-width: 771px){
	#sidebar{

	}
}
@media screen and (max-width: 770px){
	#sidebar{

	}
}

/*--------------------------------------*/

footer{

}
@media screen and (min-width: 771px){
	footer{

	}
}
@media screen and (max-width: 770px){
	footer{

	}
}

/*--------------------------------------------------------------------*/

footer .company{
	background-color: #383838;
	color: #fff;
	width: 464px;
	height: 464px;
}
footer .company .address{
	padding: 2em 0;
}
footer .company .contact a{
	padding: 1em 2em;
	border: 1px solid #fff;
}
footer .company .contact a .ico{
	padding-left: 2em;
	background-image: url("../img/footer_ico_email.svg");
	background-repeat: no-repeat;
	background-position: left center;
	background-size: auto 1em;
}
footer .company .copyright{
	margin-top: 5em;
	opacity: 0.5;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	footer .wrap{
		flex-direction: column-reverse !important;
	}
	footer .company{
		width: 100%;
		height: auto;
		padding: 15vw 0;
	}
}

/*--------------------------------------------------------------------*/

footer .links{
	flex-grow: 1;
	flex-direction: column;
}
footer .indication{
	padding: 3em;
	position: relative;
	width: 100%;
	box-sizing: border-box;
}
footer .indication .badge{
	margin-right: 1em;
}
footer .indication .auth{
	color: #787878;
}
footer .indication .backtop{
	position: absolute;
	right: .3em;
	bottom: .3em;
	color: #676767;
}
footer .indication .backtop a{
	padding: .8em 2em;
	background-color: #F5F5F5;
}
footer .indication .backtop a .ico_arrow{
	padding-right: 1.5em;
}
footer .indication .backtop a .ico_arrow:before{
	width: 5px;
	height: 5px;
	border-width: 1px;
	border-color: #676767;
	transform: rotate(-45deg) translateY(50%);
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	footer .indication{
		padding: 5vw;
	}
	footer .indication .badge img{
		zoom: 0.5;
	}
	footer .indication .backtop{
		display: none;
	}
}

/*--------------------------------------------------------------------*/

footer .sitemap{
	background-color: #F5F5F5;
	width: 100%;
	box-sizing: border-box;
	flex-grow: 1;
	padding: 3vw 4vw;
}
footer .sitemap .item{
	border-bottom: 1px solid #E4E4E4;
	position: relative;
	margin-bottom: 1em;
}
footer .sitemap .item:after{
	width: 6em;
	height: 1px;
	background-color: #3A8153;
	position: absolute;
	left: 0;
	bottom: 0;
	transition: width .3s;
}
footer .sitemap .item:hover:after{
	width: 100%;
}
footer .sitemap a{
	width: 100%;
	padding: 1.5em 0;
	box-sizing: border-box;
}
footer .sitemap a .ico_arrow:before{
	width: 6px;
	height: 6px;
	border-width: 1px;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	footer .sitemap{
		padding: 5vw 6vw;
	}
	footer .sitemap a{
		padding: 1em 0;
	}
}

/*--------------------------------------------------------------------*/

footer .services{

}
footer .services .plus{
	width: 30%;
}
footer .services .plus:before,
footer .services .plus:after{
	width: 13px;
	height: 1px;
	background-color: #000;
	top: 0;
	bottom: 0;
	right: 1em;
	margin: auto;
}
footer .services .plus:after{
	transform: rotate(90deg);
	transition: transform .4s;
}
footer .services.open .plus:after{
	transform: rotate(360deg);
}

/*--------------------------------------------------------------------*/

footer .accordion{
	display: none;
}
footer .accordion .inner{
	padding: 1em 0;
	display: inline-block;
}
footer .accordion .inner .each:before{
	width: .5em;
	height: .5em;
	border-left: 1px solid #707070;
	border-bottom: 1px solid #707070;
	top: 0;
	bottom: 0;
	margin: auto;
}
footer .accordion .inner .each a{
	padding: .5em 0 .5em 1.3em;
}

/*--------------------------------------------------------------------*/

footer .recruit{
	padding-top: 1em;
}
footer .recruit a{
	border: 5px solid #EEE;
	background-color: #fff;
	padding: 1.8em 2.2em;
}
footer .recruit a .text{
	margin-bottom: .1em;
	margin-left: 3em;
}

/*--------------------------------------------------------------------*/

.pages{
	padding: 2em 0 4em 0;
}
.pages .area{
	justify-content: center;
}
.pagination{

}
.pagination a,
.pagination span.current{
	border: 1px solid #999;
	padding: .5em 1em;
	margin: 3px;
	font-size: 1.2rem;
	width: 3em;
	height: 3em;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	background-color: #fff;
}
.pagination span.current{
	color: #fff;
	background-color: #3A8153;
	border: 1px solid #3A8153;
}
.pagination a:hover{
	opacity: 0.6;
}
.pagination span.ico_arrow:before{
	border-width: 1px;
	width: 6px;
	height: 6px;
	left: -.1em;
}
.pagination .prev span.ico_arrow:before{
	transform: rotate(-135deg);
	left: 0;
	right: -0.1em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.pages{
		padding: 1em 0 2em 0;
	}
	.pagination a,
	.pagination span.current{
		margin: 2px;
		font-size: 1rem;
		width: 3em;
		height: 3em;
	}
	.pagination span.ico_arrow:before{
		width: 4px;
		height: 4px;
	}
}

/*--------------------------------------*/

@media screen and (min-width: 771px){
	.sp{
		display: none !important;
	}
}
@media screen and (max-width: 770px){
	.pc{
		display: none !important;
	}
}
@media screen and (max-width: 770px){
	img{
		width: 100%;
	}
}
/* 装飾 */
.blue{
	color: #3CF !important;
}
.ease1s *{
	-webkit-transition: all ease-in-out .1s;
    transition: all ease-in-out .1s;
}
.ease2s *{
	-webkit-transition: all ease-in-out .2s;
    transition: all ease-in-out .2s;
}
.ease3s *{
	-webkit-transition: all ease-in-out .3s;
    transition: all ease-in-out .3s;
}
.ease4s *{
	-webkit-transition: all ease-in-out .4s;
    transition: all ease-in-out .4s;
}
.ease5s *{
	-webkit-transition: all ease-in-out .5s;
    transition: all ease-in-out .5s;
}
.tac{
	text-align: center !important;
}
.tar{
	text-align: right !important;
}
.tal{
	text-align: left !important;
}

/*--------------------------------------------------------------------*/

.flex{
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
}
.flex.-wrap{
	flex-wrap: wrap;
}
.flex.-alstretch{
	align-items: stretch;
}
.flex.-alstart{
	align-items: flex-start;
}
.flex.-alcenter{
	align-items: center;
}
.flex.-alend{
	align-items: flex-end;
}
.flex.-jsstart{
	justify-content: flex-start;
}
.flex.-jscenter{
	justify-content: center;
}
.flex.-jsend{
	justify-content: flex-end;
}
.flex.c4 > *{
	width: 24%;
	box-sizing: border-box;
}
.flex.c3 > *{
	width: 31%;
	box-sizing: border-box;
}
.flex.c2 > *{
	width: 48%;
	box-sizing: border-box;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.flex.-spcolumn{
		flex-direction: column;
	}
	.flex.-spcolumn > *{
		width: 100%;
	}
}

/*--------------------------------------------------------------------*/

.ico_arrow{
	position: relative;
	padding-right: 1em;
}
.ico_arrow:before{
	display: block;
	content: "";
	width: 4px;
	height: 4px;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
	transform: rotateZ(45deg);
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}
a{
	transition: all .3s;
	display: inline-block;
	line-height: 1;
}
a:hover{
	opacity: 0.6;
}

.-text p{
	margin-bottom: 2em;
}

.ff_midashigo{
	font-family: 'A-OTF 見出ゴMB31 Pro',MidashiGoPro-MB31, "Noto Sans Japanese" !important;
	font-weight: 700;
}
.ff_shingo{
	font-family: "A-OTF 新ゴ Pro",A-OTF Shin Go Pro,"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Noto Sans Japanese", sans-serif !important;
	font-weight: 800;
}
.ff_yugo{
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "小塚ゴシック", KozukaGothic, "Yu Gothic", "Noto Sans Japanese", sans-serif !important;
	font-weight: 500 !important;
}
.ff_din{
	font-family: 'alte DIN', sans-serif !important;
	font-weight: 500 !important;
}
.ff_catamaran{
	font-family: 'Catamaran', sans-serif !important;
	font-weight: 900 !important;
}

.visible{
	overflow: hidden;
	position: relative;
}
.visible img{
	width: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

.before,
.after{
	position: relative;
}
.before:before,
.after:after{
	content: "";
	display: block;
	position: absolute;
}

.fw_normal{
	font-weight: normal !important;
}
.fw_bold{
	font-weight: bold !important;
}

.lh_100{
	line-height: 1;
}
.lh_125{
	line-height: 1.25;
}
.lh_150{
	line-height: 1.5;
}
.lh_175{
	line-height: 1.75;
}
.lh_180{
	line-height: 1.8;
}
.lh_200{
	line-height: 2;
}

/*　フォントサイズ　*/

.fs_10{
	font-size: 10px !important;
	font-size: 1rem !important;
}
.fs_11{
	font-size: 11px !important;
	font-size: 1.1rem !important;
}
.fs_12{
	font-size: 12px !important;
	font-size: 1.2rem !important;
}
.fs_13{
	font-size: 13px !important;
	font-size: 1.3rem !important;
}
.fs_14{
	font-size: 14px !important;
	font-size: 1.4rem !important;
}
.fs_15{
	font-size: 15px !important;
	font-size: 1.5rem !important;
}
.fs_16{
	font-size: 16px !important;
	font-size: 1.6rem !important;
}
.fs_17{
	font-size: 17px !important;
	font-size: 1.7rem !important;
}
.fs_18{
	font-size: 18px !important;
	font-size: 1.8rem !important;
}
.fs_19{
	font-size: 19px !important;
	font-size: 1.9rem !important;
}
.fs_20{
	font-size: 20px !important;
	font-size: 2rem !important;
}
.fs_21{
	font-size: 21px !important;
	font-size: 2.1rem !important;
}
.fs_22{
	font-size: 22px !important;
	font-size: 2.2rem !important;
}
.fs_23{
	font-size: 23px !important;
	font-size: 2.3rem !important;
}
.fs_24{
	font-size: 24px !important;
	font-size: 2.4rem !important;
}
.fs_25{
	font-size: 25px !important;
	font-size: 2.5rem !important;
}
.fs_30{
	font-size: 30px !important;
	font-size: 3rem !important;
}
.fs_35{
	font-size: 35px !important;
	font-size: 3.5rem !important;
}
.fs_38{
	font-size: 38px !important;
	font-size: 3.8rem !important;
}
.fs_40{
	font-size: 40px !important;
	font-size: 4rem !important;
}
.fs_54{
	font-size: 54px !important;
	font-size: 5.4rem !important;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.fs_10{
		font-size: 8px !important;
		font-size: .8rem !important;
	}
	.fs_11{
		font-size: 9px !important;
		font-size: .9rem !important;
	}
	.fs_12{
		font-size: 10px !important;
		font-size: 1rem !important;
	}
	.fs_13{
		font-size: 11px !important;
		font-size: 1.1rem !important;
	}
	.fs_14{
		font-size: 12px !important;
		font-size: 1.2rem !important;
	}
	.fs_15{
		font-size: 13px !important;
		font-size: 1.3rem !important;
	}
	.fs_16{
		font-size: 14px !important;
		font-size: 1.4rem !important;
	}
	.fs_18{
		font-size: 14px !important;
		font-size: 1.4rem !important;
	}
	.fs_20{
		font-size: 16px !important;
		font-size: 1.6rem !important;
	}
	.fs_24{
		font-size: 1.7px !important;
		font-size: 1.7rem !important;
	}
	.fs_30{
		font-size: 20px !important;
		font-size: 2rem !important;
	}
}

.fss{
	font-size: 80% !important;
}

/* フォントカラー */

.fc_orange{
	color: #D9A877 !important;
}
.fc_green{
	color: #8AB879 !important;
}

/* インナー */
@media screen and (min-width: 771px){
	.inner880{
		width: 880px;
		margin: 0 auto;
	}
	.inner900{
		width: 900px;
		margin: 0 auto;
	}
	.inner920{
		width: 920px;
		margin: 0 auto;
	}
	.inner940{
		width: 940px;
		margin: 0 auto;
	}
	.inner950{
		width: 950px;
		margin: 0 auto;
	}
	.inner960{
		width: 960px;
		margin: 0 auto;
	}
	.inner980{
		width: 980px;
		margin: 0 auto;
	}
	.inner1000{
		width: 1000px;
		margin: 0 auto;
	}
	.inner1060{
		width: 1060px;
		margin: 0 auto;
	}
	.inner1200{
		width: 1200px;
		margin: 0 auto;
	}
}

.anchor{
	margin-top: -70px;
	padding-top: 70px;
}
#news.anchor{
	margin-top: 0px;
	padding-top: 0px;
}
