@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Anton&family=M+PLUS+2:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');

.mincho{
	font-family: "Zen Old Mincho", serif;
	font-style: normal;
}
.en{
	font-family: "Anton", sans-serif;
	font-weight: 400;
	font-style: normal;
}


*{
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html{
/*
	font-size: min(62.5%, .8333333vw);
*/
	font-size: 62.5%;
}
body{
	font-family: "M PLUS 2", YuGothic, 游ゴシック, メイリオ, Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	font-size: 1.6rem;
	color: #fff;
	position: relative;
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	background: url(../images/body-bg.jpg);
}


img{
	border:none;
	-webkit-backface-visibility: hidden;
}
ul,ol{
	list-style: none;
}
li{
	list-style-type: none;
}

a{
	text-decoration: none;
	color: #fff;
}

p{
	font-size: 1.6rem;
	line-height: 1.75;
}

.pic img,
.pic picture,
.pic source,
.pic a{
	display: block;
	width: 100%;
}
.pic img{
	height: 100%;
	object-fit: cover;
}
table{
	border-collapse: collapse;
	table-layout: fixed;
	width: 100%;
}
.outer{
	width: 100%;
	position: relative;
	padding-inline: min(5rem,3.66300vw);
}
.inner{
	margin: 0 auto;
	position: relative;
	max-width: 91.6rem;
	width: 100%;
}

.flex{
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
}
.column{
	display: flex;
	flex-direction: column;
}


/* +++ #header +++ */
#header{
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: ;
	z-index: 999999;
	height: 15rem;
	align-items: center;
	justify-content: space-between;
}
#header:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	transition: .3s all ease;
	background: rgba(0,0,0,.5);
	mix-blend-mode: multiply;
	opacity: 0;
}
#header.bg-active:before{
	opacity: 1;
}
#header .logo{
	display: block;
	text-align: center;
	flex-shrink: 0;
	margin-left: min(5rem, 3.66300vw);
	width: 15rem;
	position: realtive;
	z-index: 9;
}
#header .logo *{
	width: 100%;
	display: block;
}
#header .logo img{
	display: block;
	width: 100%;
}



#header .logo span{
	display: block;
	--spacing: .1em;
	font-size: 1.3rem;
	padding-top: 1rem;
}
/* +++ nav +++ */
#menu-button{
	display: none;
}
nav{
	height: 100%;
	position: realtive;
	z-index: 9;
}
#global-navi{
	align-items: center;
	height: 100%;
}
#global-navi li:not(:nth-of-type(1)){
	margin-left: 2.2rem;
}
#global-navi li.current a{
	color: #00763f !important;
}
#global-navi .en{
	font-size: 3rem;
	display: block;
}
#global-navi .ja{
	font-size: 1.2rem;
	display: block;
	margin-top: .8rem;
	font-weight: 600;
}
#global-navi li.entry-button{
	width: 20rem;
	height: 100%;
	background: url(../images/header-entry-bg.png) no-repeat;
	background-size: cover;
	background-position: center;
	margin-left: 5rem;
}
#global-navi .entry-button a{
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
}
.button{
	position: relative;
}
.button>span{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9;
	position: relative;
}
.button:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0;
	z-index: 2;
	transition: .3s opacity ease;
	background: rgba(0,0,0,.5);
	mix-blend-mode: multiply;
}
.button:hover:before{
	opacity: 1;
}
.button01{
	border: 1px solid #00763f;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 18rem;
	height: 5rem;
	background: #00763f;
	font-size: 2rem;
	font-weight: 400;
	transition: .3s all ease;
}
.button01:hover{
	background: #fff;
	color: #00763f;
}


/* +++ .contact-area +++ */
#contact-area{
	padding-block: 10rem 6.8rem;
	font-weight: 500;
	position: relative;
	z-index: 99;
}
#contact-area ul{
	max-width: 117rem;
	margin-inline: auto;
	justify-content: space-between;
}
#contact-area li{
	width: calc(50% - .5rem);
}
#contact-area li a{
	display: block;
	width: 100%;
/*
	height: 25rem;
*/
	aspect-ratio: 580 / 250;
	background: url(../images/contact-area-bg01.png) no-repeat;
	background-size: cover;
	background-position: center;
}
#contact-area li a>span{
	font-size: 2.4rem;
	flex-direction: column;
}
#contact-area li a>span.en{
	font-size: 3.6rem;
}
.recruit-contact a span .contact-label:after{
	content: "";
	display: block;
	width: 1.5rem;
	height: 100%;
	margin-left: 1.8rem;
	background: url(../images/new-window-icon01.svg) no-repeat;
	background-size: 100% auto;
	background-position: center;
}

.recruit-entry .button:before{
	background: url(../images/contact-area-bg02.png) no-repeat;
	background-position: center;
	background-size: cover;
	mix-blend-mode: normal;
}
.recruit-contact a>span{
/*
	padding-top: 6.1rem;
*/
}
.entry-message{
	font-size: 1.5rem;
	line-height: 1.5;
	margin-top: 1.5rem;
	font-weight: 400;
}


/* key-visual */
.key-visual{
	aspect-ratio: 1366 / 400;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}
.key-visual .bg{
	transition: .8s all ease;
	transform-origin: left top;
	background-size: cover;
	background-position: left top;
}
.key-visual .bg.is-active{
	width: 100%;
}

/* key-visual01 entry / benefits */
.mask{
	clip-path: inset(0 100% 0 0);
	transition: .8s all ease;
	transition-delay: 1.2s;
}
.mask.is-active{
	clip-path: inset(0 0 0 0);
}
.key-visual01 .bg{
	position: absolute;
	left: 0;
	top: 0;
	background-repeat: no-repeat;
	background-size: cover;
	background-repeat: no-repeat;
	width: 0;
	height: 100%;
}
.key-visual01 .bg.is-active{
	width: 100%;
}
.key-visual01{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.4rem;
	font-weight: 700;
}
.key-visual01:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background: #1a0b08;
	mix-blend-mode: multiply;
	opacity: .5;
	z-index: 1;
}
.key-visual01 h1{
	font-size: 2.4rem;
	font-weight: 700;
	position: relative;
	z-index: 9;
}



/* key-visual02 people / works / gallery */
.key-visual02{
	aspect-ratio: 1366 / 550;
	display: flex;
	align-items: flex-end;
	position: relative;
}
.key-visual02 .bg{
	position: absolute;
	left: 0;
	top: 0;
	background-repeat: no-repeat;
	background-position: left top;
	background-size: cover;
	width: 0;
	height: 100%;
}
.key-visual02 .inner{
	max-width: 112.2rem;
	transform: translateY(6.8rem);
}
.page-title{
	transform: translateX(-1.6rem);
}
.page-title img{
	width: 100%;
}
.key-visual02 .catch-copy{
	margin-bottom: 5.4rem;
	font-weight: 900;
	font-size: 2.8rem;
}
.catch-copy>span{
	display: flex;
	height: 4rem;
	align-items: center;
	padding-inline: .6rem;
	width: fit-content;
	margin-bottom: 1rem;
	background: #00763f;
	letter-spacing: .02em;
	font-weight: 700;
	font-feature-settings: "palt" 1;
	-webkit-font-feature-settings: "palt" 1;
	padding-bottom: .12em;
}
/* key-visual03 numbers */
.key-visual03{
	aspect-ratio: 1366 / 324;
	display: flex;
	justify-content: center;
	align-items: center;
}
.key-visual03 .page-title{
	width: 46.5rem;
	margin-right: 4rem;
}

/* key-visual04 people-detail */
.key-visual04{
	aspect-ratio: 1366 / 400;
}
.key-visual04 .bg{
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
}
.key-visual04 .inner{
	max-width: 106.6rem;
	align-items: center;
	height: 100%;
}


/* +++bread-crumbs+++ */
.bread-crumbs{
	padding-top: 3.4rem;
	font-size: 1.2rem;
	font-weight: 400;
}
.bread-crumbs ul{
	max-width: 106.6rem;
	margin-inline: auto;
	justify-content: flex-end;
}
.bread-crumbs li a{
	opacity: .5;
}
.bread-crumbs li:not(:last-of-type):after{
	content: "/";
	margin-inline: 1em;
	opacity: .5;
}
.bread-crumbs ul li{
	opacity: 1;
}

/* +++googlemaps+++ */
#googlemaps{
	width: 100%;
	height: 43.6rem;
	position: relative;
}
#googlemaps>iframe{
	display: block;
	width: 100%;
	height: 100%;
}




/* +++ #footer +++ */
#footer .logo{
	margin-inline: auto;
	width: 17.2rem;
	margin-bottom: 5rem;
	display: block;
}
.footer-inner{
	max-width: 120rem;
	margin-inline: auto;
}
.sitemap{
	justify-content: center;
	padding-bottom: 4rem;
	border-bottom: 1px solid #fff;
	margin-bottom: 2.4rem;
	font-weight: 500;
}
.sitemap li{
	padding-inline: 1em;
	font-size: 1.5rem;
}
.sitemap a{
	display: flex;
	align-items: center;
}
.sitemap li.current a{
	color: #00763f !important;
}
.sitemap a[target="_blank"]:after{
	content: "";
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	background: url(../images/new-window-icon01.svg) no-repeat;
	background-position: center;
	margin-left: .5em;
}
#copyrights{
	text-align: center;
	display: block;
	padding-bottom: 5rem;
	font-size: 1.2rem;
	font-weight: 400;
	font-family: "Noto Sans", sans-serif;
}

/* +++main+++ */
main{
	display: block;
	position: relative;
	padding-bottom: 4.6rem;
}
.negative{
	letter-spacing: -.5em !important;
}







/* +++animation+++ */
.zoom-out-fade{
	transform: scale(.95) translateY(8rem);
	opacity: 0;
	transition: transform 1.1s cubic-bezier(0.12, 0.64, 0.35, 0.99);
}
.zoom-out-fade.is-active{
	transform: scale(1) translateY(0);
	opacity: 1;
}
.fade,
.fade-in{
	opacity: 0;
	transition: opacity 1.1s ease;
}
.is-active.fade,
.is-active.fade-in{
	opacity: 1;
}
.fade-in{
	transition-delay: 2s;
}
.fade-up{
	opacity: 0;
	transition: all 1.1s cubic-bezier(0.12, 0.64, 0.35, 0.99);
	transform: translateY(8rem);
}
.fade-up.is-active{
	opacity: 1;
	transform: translateY(0);
}



@media screen and (max-width: 1100px) and (min-width: 769px){
/* +++ #header +++ */
	#header .logo{
		width: 13.5rem;
	}
/* +++ nav +++ */
	#global-navi li:not(:nth-of-type(1)){
		margin-left: 2rem;
	}
	#global-navi .en{
		font-size: 2.7rem;
	}
	#global-navi .ja{
		font-size: 1.1rem;
	}
	#global-navi li.entry-button{
		margin-left: 4.5rem;
	}
}
@media screen and (max-width: 960px) and (min-width: 769px){
/* +++ #header +++ */
	#header{
		height: 11.25rem;
	}
	#header .logo{
		width: 11.25rem;
	}
/* +++ nav +++ */
	#global-navi li:not(:nth-of-type(1)){
		margin-left: 1.65rem;
	}
	#global-navi .en{
		font-size: 2.25rem;
	}
	#global-navi .ja{
		font-size: 1rem;
	}
	#global-navi li.entry-button{
		margin-left: 2rem;
		width: 14rem;
	}


/* +++.contact-area+++ */
	#contact-area li a span{
		font-size: 1.8rem;
	}
	#contact-area li a span.en{
		font-size: 2.7rem;
	}
	.recruit-contact a span .contact-label:after{
		width: 1.125rem;
		margin-left: 1.35rem;
	}
	#contact-area li a span .entry-message{
		font-size: 1.2rem;
		margin-top: 1.2rem;
	}

/* +++#footer+++ */
	.sitemap li{
		font-size: 1.2rem;
	}
	.sitemap a[target="_blank"]:after{
		width: .9rem;
		height: .9rem;
	}
}

@media screen and (max-width: 768px){
	html{
		font-size: 1.333333vw;
	}
	body{

	}
	.inner{
		max-width: 100%;
	}
	.outer{
		padding-inline: 4.8rem;
	}
	p{
		font-size: 3rem;
		line-height: 2;
	}
/* +++ #header +++ */
	#header{
		height: 11.2rem;
		align-items: flex-start;
		position: fixed;
	}
	#header .logo{
		margin-top: 3rem;
		margin-left:4.8rem;
		width: 18rem;
	}
	.logo{
		position: relative;
	}
	.logo img{
		transition: .3s all ease;
	}
	.logo .black{
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		opacity: 0;
	}
	.logo-black .logo .black{
		opacity: 1;
	}
	.logo-black .logo .white{
		opacity: 0;
	}

	.remove-mv .logo .black{
		opacity: 0 !important;
	}
	.remove-mv .logo .white{
		opacity: 1 !important;
	}
/* +++ #menu-button +++ */
	#menu-button{
		position: fixed;
		right: 0;
		top: 0;
		width: 8rem;
		height: 8rem;
		background: url(../images/menu-button-bg01.jpg) no-repeat;
		background-position: center;
		background-size: cover;
		z-index: 99999;
		transition: .3s all ease;
		display: block;
	}
	.opened #menu-button{
		background: #fff;
	}
	.opened #menu-button span{
		background-color: #006f3f;
	}
	.opened #menu-button span:nth-of-type(2){
		transform: translateX(40%);
		opacity: 0;
	}
	.opened #menu-button span:nth-of-type(1){
		transform: rotate(45deg);
		width: 3.5rem;
		height: .14rem;
	}
	.opened #menu-button span:nth-of-type(3){
		transform: rotate(-45deg);
		width: 3.5rem;
		height: .14rem;
	}
	#menu-button span{
		display: block;
		width: 50%;
		height: .25rem;
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		margin: auto;
		background: #fff;
		transition: .3s all ease;
	}
	#menu-button span:nth-of-type(1){
		transform: translateY(-.8rem);
	}
	#menu-button span:nth-of-type(3){
		transform: translateY(.8rem);
	}
/* +++ nav +++ */
	nav{
		width: 62.5rem;
		height: auto;
		position: fixed;
		right: 0;
		top: 0;
		background: rgba(0,0,0,.9);
		transition: .3s all ease;
		max-height: 100vh;
		overflow: auto;
		visibility: hidden;
		opacity: 0;
	}
	.opened nav{
		visibility: visible;
		opacity: 1;
	}
	#global-navi{
		flex-direction: column;
		align-items: flex-start;
		height: auto;
	}
	#global-navi li:not(:nth-of-type(1)){
		margin-left: 0;
	}
	#global-navi li{
		border-bottom: 1px solid rgba(255,255,255,.25);
		width: 100%;
	}
	#global-navi li a{
		align-items: flex-end;
		height: 10rem;
		padding-bottom: 2.6rem;
		display: flex;
		padding-left: 4.2rem;
	}
	#global-navi .en{
		font-size: 5rem;
	}
	#global-navi .ja{
		font-size: 2.8rem;
		display: block;
		margin-top: 0;
		margin-left: 1.6rem;
		padding-bottom: .3rem;
	}
	#global-navi li:nth-of-type(1){
		order: 2;
	}
	#global-navi li:nth-of-type(1) a .en{
		font-size: 2.8rem;
	}
	#global-navi li:nth-of-type(1) a:before{
		content: "";
		display: block;
		width: 4rem;
		height: 4rem;
		background: url(../images/sp-navi-icon01.svg) no-repeat;
		background-size: 100% auto;
		margin-right: 1.6rem;
	}
	#global-navi li:nth-of-type(2){
		order: 3;
	}
	#global-navi li:nth-of-type(3){
		order: 4;
	}
	#global-navi li:nth-of-type(4){
		order: 5;
	}
	#global-navi li:nth-of-type(5){
		order: 6;
	}
	#global-navi li:nth-of-type(6){
		order: 7;
		border: none;
	}
	#global-navi li.entry-button{
		width: calc(100% - 8rem);
		height: 8rem;
		margin-right: 8rem;
		margin-left: 0;
		order: 1;
		font-size: 3.6rem;
		border: none;
	}
	#global-navi .entry-button a{
		padding: 0;
		font-size: 3.6rem;
	}
.button{
	position: relative;
}
.button span{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9;
	position: relative;
}
.button:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0;
	z-index: 2;
	transition: .3s opacity ease;
	background: rgba(0,0,0,.5);
	mix-blend-mode: multiply;
}
.button:hover:before{
	opacity: 1;
}
.button01{
	border: 1px solid #00763f;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 18rem;
	height: 5rem;
	background: #00763f;
	font-size: 2rem;
	font-weight: 400;
	transition: .3s all ease;
}
.button01:hover{
	background: #fff;
	color: #00763f;
}


/* +++bread-crumbs+++ */
	.bread-crumbs{
		display: none;
	}

/* key-visual */
	.key-visual{
		aspect-ratio: 750 / 550;
	}

/* key-visual01 entry / benefits */
	.key-visual01 h1{
		font-size: 3.6rem;
		font-weight: 600;
	}



/* key-visual02 people / works / gallery */
.key-visual02{
	aspect-ratio: 750 / 550;
	display: flex;
	align-items: flex-end;
	position: relative;
}
	.key-visual02 .bg{
		aspect-ratio: 750 / 550;
		height: 73.333333vw;
		overflow: hidden;
	}
.key-visual02 .inner{
	max-width: 100%;
	transform: translateY(0);
}
	.page-title{
		transform: translateX(0);
		margin-inline: auto;
	}

	.key-visual02 .catch-copy{
		font-weight: 900;
		font-size: 3.6rem;
		margin-top: 27rem;
		margin-bottom: 4.7rem;
	}
	.catch-copy>span{
		height: 5.2rem;
	}
/* key-visual03 numbers */
	.key-visual03{
		aspect-ratio: 750 / 550;
	}
	.key-visual03 .page-title{
		width: 55.5rem;
		margin-inline: auto;
		transform: translateX(-1.5rem);
	}


/* key-visual04 people-detail */
	.key-visual04{
		aspect-ratio: 750 / 540;
	}
	.key-visual04 .inner{
		max-width: 100%;
		align-items: flex-start;
	}




/* +++ .contact-area +++ */
	#contact-area{
		padding-block: 14rem 10rem;
	}
	#contact-area ul{
		max-width: 100%;
		display: block;
	}
	#contact-area li{
		width: 100%;
	}
	#contact-area li:nth-of-type(1){
		margin-bottom: 2rem;
	}
	#contact-area li a{
		aspect-ratio: 650 / 280;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	#contact-area li a span{
		font-size: 3.6rem;
		line-height: 1.55;
/*
		display: block;
*/
		width: auto;
		height: auto;
		text-indent: .3em;
	}
	#contact-area li a span.en{
		text-indent: 0;
	}
	.recruit-contact a span .contact-label:after{
		display: inline-block;
		width: 2.3rem;
		height: 2.3rem;
		margin-left: .7rem;
	}
	#contact-area li a span .entry-message{
		font-size: 2.2rem;
		text-indent: 0;
	}

	.recruit-entry .button:before{
		background: url(../images/contact-area-bg02.png) no-repeat;
		background-position: center;
		background-size: cover;
		mix-blend-mode: normal;
	}


/* +++ #footer +++ */
	#footer .logo{
		width: 33.6rem;
		margin-bottom: 9rem;
	}
	.footer-inner{
		max-width: 100%;
	}
	.sitemap{
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		padding-bottom: 4.6rem;
		margin-bottom: 3.2rem;
	}
	.sitemap li{
		padding-inline: 0;
		margin-bottom: 4rem;
		font-size: 2.6rem;
	}
	.sitemap a[target="_blank"]:after{
		width: 2rem;
		height: 2rem;
		margin-left: .8rem;
		margin-top: .3rem
	}
	#copyrights{
		padding-bottom: 2.8rem;
		font-size: 2.4rem;
	}

	.button01{
		width: 28.8rem;
		height: 6rem;
		font-size: 3.2rem;
	}
}


@media screen and (min-width: 769px){
	.pc-none{
		display: none !important;
	}
	.pc-event-none{
		pointer-events: none;
	}

}
@media screen and (max-width: 768px){
	.sp-none{
		display: none !important;
	}
}