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


#visual {
	width: 100%;
	height: 100vh;
	position: sticky;
	top: 0;
	overflow: hidden;
}
#visual .bg {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: 4s all 0s ease;
	transform: scale(1.2)
}
.loaded #visual .bg {
	opacity: 1;
	transform: scale(1)
}



#contents {
	background: #FFF;
	position: sticky;
	width: 100%;
	padding-top: 5vw
	
}
#contents section {
	width: 100%;
	box-sizing: border-box;
	padding: 5vw 10vw;
	position: relative;
}
#contents section:nth-last-of-type(1) {
	padding: 5vw 10vw 0;
}
#contents section .side {
	position: absolute;
	top: 0;
	left: 0;
	width: 33.3333%;
	height: 100%;
}
#contents section .side .inner {
	position: sticky;
	top: 5%;
	width: 100%;
	height: 75vh;
	box-sizing: border-box;
	padding: 5vw 150px 5vw 10vw;
}
#contents section .side h2 {
	font-size: 2rem;
	margin-bottom: 30px;
	padding-bottom: 15px;
	position: relative;
	font-weight: 400;
}
#contents section .side h2::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0%;
	height: 1px;
	background: #000;
	transition: 1.4s all 0s ease;
}
#contents section .side.ac h2::before {
	width: 100%;
}
#contents section .side .btn {
	font-size: 1rem;
}
#contents section .side .btn a {
	color: #000;
	text-decoration: none;
}
@media only screen and (max-width: 768px)  {
	#contents section {
		width: 100%;
		box-sizing: border-box;
		padding: 10vw 5vw;
		position: relative;
	}
	#contents section:nth-last-of-type(1) {
		padding: 10vw 5vw 0;
	}
	#contents section .side {
		position: relative;
		top: auto;
		left: auto;
		width: 100%;
		height: auto;
		margin-bottom: 5vw;
	}
	#contents section .side .inner {
		position: relative;
		top: auto;
		width: 100%;
		height: auto;
		padding: 15px 0;
	}
	#contents section .side h2 {
		font-size: 2rem;
		margin-bottom: 15px;
	}
	#contents section .side .btn {
		text-align: right;
	}
}


#contents section .box {
	width: 66.666%;
	margin-left: 33.333%;
	box-sizing: border-box;
}
#contents .project .box ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 6vw;
}
#contents .project .box ul li {
	margin-bottom: 15%;
	position: relative;
}

#contents .project .box ul li a {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: 10
}

#contents .project .box ul li .img {
	line-height: 0;
	position: relative;
	overflow: hidden;
	margin-bottom: 15px;
	transform: translate(0,40px);
	transition: 1.5s all 0s ease;
	height: 0;
	width: 100%;
	padding-top: 100%;
}
#contents .project .box ul li .img.ac {
	opacity: 1;
	transform: translate(0);
}
#contents .project .box ul li .img .bg {
	opacity: 0;
	transition: 2s all 0s ease;
	transform: scale(1.2);
	position: absolute;
	top: 0%;
	left: 0%;
	width: 100%;
	height: 100%;
	background-size: cover;
}
#contents .project .box ul li .img.ac .bg {
	opacity: 1;
	transform: scale(1);
}
#contents .project .box ul li .name {
	font-size: 1.2rem;
	font-weight: 600;
	margin-bottom: 7.5px;
	position: relative;
	overflow: hidden;
	line-height: 1.6;
}

#contents .project .box ul li .part {
	font-size: 0.8rem;
	font-weight: 300;
}
#contents .project .box ul li .part span {
	display: inline-block;
	position: relative;
}
#contents .project .box ul li .part span::after {
	content: "|";
	padding: 0 5px;
}
#contents .project .box ul li .part span:nth-last-of-type(1)::after {
	display: none;
}
@media only screen and (max-width: 768px)  {
	#contents section .box {
		width: 100%;
		margin-left: 0%;
	}
	#contents .project .box ul {
		display: grid;
		grid-template-columns: 1fr;
		column-gap: 10%;
	}
	#contents .project .box ul li {
		margin-bottom: 15vw;
	}
}


#contents .service .box h3 {
	font-size: 2.6rem;
	margin-bottom: 50px;
	line-height: 1.6;
	font-weight: 400;

}
#contents .service .box p {
	font-size: 1.2rem;
	margin: 0;
}
#contents .service .box ul {
	margin: 50px 0;
}
#contents .service ul li {
	position: relative;
	padding: 50px 0 0;
	margin: 50px 0px;
	border-top: 1px solid #eee
}
#contents .service ul li .tit {
	font-size: 1.6rem;
	font-weight: 600;

}
#contents .service ul li span {
	display: block;
	font-size: 1.2rem;
	font-weight: 400;;
	margin-top: 15px;
	padding-left: 0%;
}
#contents .service ul li .zoom span {
	display: inline-block;
}
@media only screen and (max-width: 768px)  {
	#contents .service .box h3 {
		font-size: 2.4rem;
		margin-bottom: 50px;

	}	
	#contents .service .box ul {
		margin: 50px 0;
		width: 100%;
	}
	#contents .service ul li {
		font-size: 2rem;
	}
	#contents .service ul li .tit {
		font-size: 1.6rem;
		font-weight: 600;
		line-height: 1.6;

	}
}
