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



/* opening
--------------------- */
.opening{
    width: 100%;
    height: 100vh;
    position: relative;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999999;
    display: flex;
    align-items: center;
    justify-content: center;
	pointer-events: none;
}
.opening__mask{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(255,255,255,1);
    z-index: 1;
	pointer-events: none;
}
.opening__logo{
    display: block;
    width: 150px;
    height: 150px;
    z-index: 2;
    opacity: 0;/*予め透明に*/
	pointer-events: none;
}



	
/* kv
--------------------- */
#kv {
	width: 100%;
	padding-top: 180px;
	padding-bottom: 100px;
	position: relative;
}
#kv:after {
	content: "";
	width: 40%;
	height: 400px;
	background: #f0f7f4;
	position: absolute;
	top: 0;
	right: 0;
	z-index: -2;
}
#kv:before {
	content: "";
	width: 62%;
	height: 400px;
	background: #f0f7f4;
	position: absolute;
	top: 350px;
	right: 0;
	z-index: -2;
}
	#kv .fv-area {
		width: 100%;
		position: relative;
	}
		#kv .fv-area .ttl {
			padding-top: 40px;
			padding-left: 100px;
			padding-bottom: 110px;
		}
			#kv .fv-area .ttl h1 {
				width: 517px;
				margin-bottom: 35px;
			}

			#kv .fv-area .ttl p {
				font-size: 2.0rem;
				font-weight: 700;
				color: #fff;
			}
				#kv .fv-area .ttl p span {
					background: #000;
					padding: 0 5px;
				}

		#kv .fv-area .slider {
			width: 50%;
			overflow: hidden;
			position: absolute;
			top: 0;
			right: 0;
			z-index: -1;
		}
			#kv .fv-area .slider .slick-img {
				aspect-ratio: 1 / 1;
				width: 100%;
				height: 700px;
			}
				#kv .fv-area .slider .slick-img img {
					width: 100%;
					height: 100%;
					object-fit: cover;
				}


	#kv .pht-area {
		width: 100%;
		position: relative;
	}
	#kv .pht-area:before {
		content: "";
		width: 62%;
		height: 60%;
		background: #f0f7f4;
		position: absolute;
		top: 27%;
		right: 0;
		z-index: -2;
	}
		#kv .pht-area a.btn-scroll {
			width: 130px;
			position: absolute;
			bottom: 0;
			right: 7%;
		}
		#kv .pht-area a.btn-scroll:hover {
			opacity: 0.7;
		}

		#kv .pht-area .movie01 {
			aspect-ratio: 11.7 / 19;
			width: 27%;
			height: 100%;
			padding-top: 7%;
			overflow: hidden;
		}
			#kv .pht-area .movie01 video {
				width: auto;
				height: 130%;
				margin-left: -120%;
			}

		#kv .pht-area .movie02 {
			width: 30%;
			position: absolute;
			top: 40%;
			right: 18%;
			z-index: 2;
		}
			#kv .pht-area .movie02 video {
				aspect-ratio: 16 / 9.5;
				width: 100%;
				height: 100%;
			}

		#kv .pht-area .slider02 {
			width: 30%;
			position: absolute;
			top: 0;
			left: 25%;
		}
		#kv .pht-area .slider03 {
			width: 22%;
			position: absolute;
			bottom: 0;
			left: 36%;
		}
		#kv .pht-area .slider04 {
			width: 20%;
			position: absolute;
			top: 20%;
			right: 0;
			z-index: 1;
		}


.img-wrap{
    clip-path: inset(0 100% 0 0);
    overflow: hidden;
}


.add-animation {
	animation: zoomOut 7s linear 0s normal both;
}
@keyframes zoomOut {
	0% {
		transform: scale(1.20);
	}
	100% {
		transform: scale(1);
	}
}



	
/* profile
--------------------- */
#profile {
	width: 100%;
	background: #f0f7f4;
	padding: 60px 0 60px 0;
}
	#profile .ttl {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		position: absolute;
		top: -97px;
		left: 0;
	}
		#profile .ttl .en-txt {
			font-size: 4.0rem;
			font-weight: 400;
			color: #007F41;
			margin-right: 20px;
		}
		#profile .ttl h2 {
			font-size: 1.8rem;
			font-weight: 500;
		}


	#profile .list .box {
		width: 48%;
	}
	#profile .list .box.about {
		background: url("../img/profile_pht01.jpg") no-repeat center / cover;
	}
	#profile .list .box.role {
		background: url("../img/profile_pht02.jpg") no-repeat center / cover;
	}
		#profile .list .box a {
			display: flex;
			justify-content: center;
			align-items: center;
			height: 220px;
			background: rgba(0,0,0,0.5);
		}
		#profile .list .box a:hover {
			background: rgba(0,127,65,0.7);
		}
			#profile .list .box a h3 {
				font-size: 2.4rem;
				font-weight: 500;
				line-height: 1.6em;
				color: #fff;
				text-align: center;
			}
				#profile .list .box a h3 span {
					border-bottom: solid 1px #fff;
					padding-bottom: 3px;
				}



	
/* company
--------------------- */
#company {
	width: 100%;
	padding-top: 120px;
	padding-bottom: 120px;
	position: relative;
	overflow: hidden;
}
	#company .loop-txt {
		width: 4300px;
		margin-inline: auto;
		position: relative;
	}
		#company .loop-txt .loop {
			animation: loop 80s linear infinite;
			width: 100%;
		}
		#company .loop-txt .loop2 {
			position: absolute;
			top: 0;
			left: 0;
			animation: loop 80s -40s linear infinite;
		}
		@keyframes loop {
		  0%{
			transform: translateX(100%);
		  }
		  100%{
			transform: translateX(-100%);
		  }
		}


	#company .ttl {
		padding-top: 120px;
		margin-bottom: 70px;
		text-align: center;
	}
		#company .ttl .en-txt {
			font-size: 8.7rem;
			font-weight: 700;
			line-height: 1;
			color: #007F41;
			opacity: 0.1;
		}

		#company .ttl h2 {
			margin-top: -15px;
			font-size: 1.8rem;
			font-weight: 500;
			line-height: 1;
		}
			#company .ttl h2 span {
				padding-bottom: 3px;
				border-bottom: solid 1px #007F41;
			}


	#company a.linkbox {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 70px;
	}
	#company a.linkbox:nth-last-child(1) {
		margin-bottom: 0;
	}
	#company a.linkbox:hover {
		opacity: 0.7;
	}
		#company a.linkbox .illust {
			width: 360px;
			opacity: 0.5;
		}

		#company a.linkbox .text {
			width: -webkit-calc(100% - 360px);
			width: calc(100% - 360px);
			padding-left: 8%;
		}
			#company a.linkbox .text .en {
				font-size: 1.6rem;
				line-height: 1;
				color: #007F41;
				margin-bottom: 10px;
			}

			#company a.linkbox .text h3 {
				font-size: 2.0rem;
				line-height: 1.4em;
				color: #007F41;
				margin-bottom: 15px;
			}
				#company a.linkbox .text h3 span {
					font-size: 3.0rem;
				}

			#company a.linkbox .text p {
				font-size: 1.8rem;
				line-height: 1.6em;
			}



	
/* recruit
--------------------- */
#recruit {
	width: 100%;
	padding-bottom: 140px;
}
	#recruit .whitebox {
		width: 770px;
		background: url("../common/img/recruit_bg.jpg") no-repeat center / cover;
		padding: 70px 45px 35px 0;
		margin: 0 auto;
		border-radius: 25px;
		position: relative;
	}
	#recruit .whitebox:before {
		content: "";
		width: 486px;
		height: 305px;
		background: url("../common/img/recruit_pht.png") no-repeat center bottom / 100%;
		position: absolute;
		bottom: 0;
		right: -25px;
	}
		#recruit .whitebox .ttl {
			border-left: solid 12px #5094A1;
			margin-bottom: 20px;
			padding: 10px 0 10px 45px;
		}
			#recruit .whitebox .ttl h2 {
				display: flex;
				justify-content: flex-start;
				align-items: center;
				font-size: 4.8rem;
				letter-spacing: 0.1em;
				line-height: 1;
				font-weight: 400;
				color: #5094A1;
				margin-bottom: 15px;
			}
				#recruit .whitebox .ttl h2 img {
					width: 44px;
					margin-right: 5px;
					margin-top: 5px;
				}

			#recruit .whitebox .ttl .en-txt {
				font-size: 1.2rem;
				letter-spacing: 0.1em;
				line-height: 1;
			}

		#recruit .whitebox .btn {
			margin-left: 60px;
		}



	
/* bnr_recruit
--------------------- */
#bnr_recruit {
	width: 160px;
	position: fixed;
	bottom: 50px;
	right: 50px;
	z-index: 10;
}
	#bnr_recruit a {
		display: block;
		background: url("../img/bnr_recruit_pht.png") no-repeat center / 100%;
		border: solid 2px #fff;
		border-radius: 50%;
	}
	#bnr_recruit a:hover {
		opacity: 0.7;
	}














/* max 1100px */
@media screen and (max-width: 1100px) {



	
/* kv
--------------------- */
#kv {
	padding-top: 100px;
	padding-bottom: 100px;
}
#kv:after {
	height: 200px;
}
#kv:before {
	width: 75%;
	height: 30%;
	top: 22%;
}
		#kv .fv-area .ttl {
			padding-top: 4%;
			padding-left: 3%;
			padding-bottom: 8%;
		}
			#kv .fv-area .ttl h1 {
				width: 50%;
				margin-bottom: 4%;
			}

			#kv .fv-area .ttl p {
				font-size: 2.0vw;
			}

		#kv .fv-area .slider {
			width: 58%;
		}
			#kv .fv-area .slider .slick-img {
				aspect-ratio: 1 / 1.1;
				height: 100%;
			}


	#kv .pht-area a.btn-scroll {
		width: 100px;
		right: 3%;
	}



	
/* profile
--------------------- */
#profile .ttl {
	top: -90px;
	left: 3%;
}
	#profile .ttl .en-txt {
		font-size: 3.4rem;
	}
	#profile .ttl h2 {
		font-size: 1.7rem;
	}


	#profile .list .box a {
		height: 190px;
	}
		#profile .list .box a h3 {
			font-size: 2.0rem;
		}



	
/* company
--------------------- */
#company {
	padding-top: 100px;
	padding-bottom: 100px;
}
	#company .loop-txt {
		width: 3500px;
	}


	#company .ttl {
		padding-top: 80px;
		margin-bottom: 60px;
	}
		#company .ttl .en-txt {
			font-size: 8.0rem;
		}

		#company .ttl h2 {
			margin-top: -12px;
			font-size: 1.7rem;
		}


	#company a.linkbox {
		margin-bottom: 50px;
	}
		#company a.linkbox .illust {
			width: 300px;
		}

		#company a.linkbox .text {
			width: -webkit-calc(100% - 300px);
			width: calc(100% - 300px);
			padding-left: 5%;
		}
			#company a.linkbox .text .en {
				font-size: 1.4rem;
			}

			#company a.linkbox .text h3 {
				font-size: 1.8rem;
			}
				#company a.linkbox .text h3 span {
					font-size: 2.6rem;
				}

			#company a.linkbox .text p {
				font-size: 1.6rem;
			}



	
/* recruit
--------------------- */
#recruit {
	padding-bottom: 100px;
}
	#recruit .whitebox {
		width: 100%;
		padding: 45px 35px 35px 0;
	}
	#recruit .whitebox:before {
		width: 420px;
		height: 270px;
		right: -20px;
	}
		#recruit .whitebox .ttl {
			border-left: solid 10px #5094A1;
			padding: 10px 0 10px 7%;
		}
			#recruit .whitebox .ttl h2 {
				font-size: 3.8rem;
			}
				#recruit .whitebox .ttl h2 img {
					width: 38px;
				}

			#recruit .whitebox .ttl .en-txt {
				font-size: 1.1rem;
			}

		#recruit .whitebox .btn {
			margin-left: 8%;
		}
	
	
}





/* max 767px */
@media screen and (max-width: 767px) {



	
/* kv
--------------------- */
#kv {
	padding-top: 60px;
	padding-bottom: 60px;
}
#kv:after {
	height: 200px;
}
#kv:before {
	width: 75%;
	height: 30%;
	top: 22%;
}
		#kv .fv-area .ttl {
			padding-top: 6%;
			padding-left: 3%;
			padding-bottom: 8%;
		}
			#kv .fv-area .ttl h1 {
				width: 52%;
				margin-bottom: 4%;
			}

			#kv .fv-area .ttl p {
				font-size: 3.0vw;
			}

		#kv .fv-area .slider {
			width: 58%;
		}
			#kv .fv-area .slider .slick-img {
				aspect-ratio: 1 / 1.2;
				height: 100%;
			}


	#kv .pht-area a.btn-scroll {
		width: 16%;
		right: 3%;
	}



	
/* profile
--------------------- */
#profile {
	padding: 50px 0;
}
	#profile .ttl {
		top: -80px;
		left: 5%;
	}


	#profile .list {
		display: block;
	}
		#profile .list .box {
			width: 100%;
		}
		#profile .list .box.about {
			margin-bottom: 25px;
		}
			#profile .list .box a {
				height: 160px;
			}



	
/* company
--------------------- */
#company {
	padding-top: 70px;
	padding-bottom: 70px;
}
	#company .loop-txt {
		width: 2500px;
	}


	#company .ttl {
		padding-top: 50px;
		margin-bottom: 60px;
	}
		#company .ttl .en-txt {
			font-size: 6.0rem;
		}


	#company a.linkbox {
		display: block;
		margin-bottom: 50px;
	}
		#company a.linkbox .illust {
			width: 100%;
			max-width: 300px;
			margin: 0 auto 20px auto;
		}

		#company a.linkbox .text {
			width: 100%;
			padding-left: 0;
			text-align: center;
		}
			#company a.linkbox .text .en {
				font-size: 1.4rem;
			}

			#company a.linkbox .text h3 {
				font-size: 1.7rem;
				margin-bottom: 10px;
			}
				#company a.linkbox .text h3 span {
					font-size: 2.4rem;
				}

			#company a.linkbox .text p {
				font-size: 1.5rem;
			}



	
/* recruit
--------------------- */
#recruit {
	padding-bottom: 70px;
}
	#recruit .whitebox {
		width: 100%;
		padding: 35px 25px 200px 25px;
	}
	#recruit .whitebox:before {
		width: 300px;
		height: 190px;
		right: 50%;
		margin-right: -150px;
	}
		#recruit .whitebox .ttl {
			border-left: none;
			text-align: center;
			padding: 0;
			margin-bottom: 25px;
		}
			#recruit .whitebox .ttl h2 {
				justify-content: center;
				font-size: 3.8rem;
				margin-bottom: 10px;
			}
				#recruit .whitebox .ttl h2 img {
					width: 38px;
				}

		#recruit .whitebox .btn {
			margin: 0 auto;
		}



	
/* bnr_recruit
--------------------- */
#bnr_recruit {
	width: 100px;
	bottom: 20px;
	right: 20px;
}
	
	
	
}