@charset "utf-8";



/**************************************************
 visualHanger
**************************************************/
#visualHanger{
	position: relative;
	height: calc(100vh - 100px);
	min-height: 500px;
	background: url("../img/loading.gif") no-repeat center center;
	overflow: hidden;
}
#visualHanger::before{
	width: 35vw;
	height: 35vw;
	min-width: 350px;
	min-height: 350px;
	top: 0;
	left: 0;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	background: #20AEE5;
	opacity: 0.35;
	mix-blend-mode: screen;
	z-index: 1;
	transition: none;
	opacity: 0;
}
#visualHanger img{
	position: relative;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	opacity: 0;
	transform: scale(1.15);
}
#visualHanger.show img{animation:visualAction 0.25s ease-in-out forwards 0.25s;}
#visualHanger.show::before{animation:visualAction2 0.25s ease-in-out forwards 0.5s;}
@keyframes visualAction{
	0% {
		opacity: 0;
		transform: scale(1.15);
	}
	100% {
		opacity: 1.0;
		transform: scale(1.0);
	}
}
@keyframes visualAction2{
	0% {
		opacity: 0;
	}
	100% {
		opacity: 0.35;
	}
}

.visualCopy{
	position: absolute;
	font-size: 4.2rem;
	font-weight: 700;
	letter-spacing: 4px;
	line-height: 1.8;
	width: 100%;
	height: 65%;
	top: 0;
	left: 0;
	padding-left: 100px;
	z-index: 10;
	-webkit-box-pack: center;
	justify-content: center;
}
.visualCopy span{
	position: relative;
	display: block;
	left: -20px;
	opacity: 0;
}
.visualCopy.show span{animation:copyAction 0.25s ease-in-out forwards 0.6s;}
@keyframes copyAction{
	0% {
		opacity: 0;
		left: -20px;
	}
	100% {
		opacity: 1.0;
		left: 0;
	}
}



/**************************************************
 main
**************************************************/
article h2{position: relative;}

article h2.common{
	height: 80px;
	font-size: 2.8rem;
	font-weight: 700;
	letter-spacing: 3px;
	line-height: 1.3;
	color: #FFFFFF;
	padding: 0 25px;
	background: var(--color-gr1);
	-webkit-box-align: center;
	align-items: center;
}
article h2.common::before{
	width: 80px;
	height: 80px;
	top: 0;
	left: 0;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	background: var(--color-gr2);
	transition: none;
}
article h2 span{
	position: relative;
	z-index: 1;
}

article h3{
	font-size: 2.2rem;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.3;
	padding-left: 20px;
	margin-top: 50px;
	border-left: 5px solid var(--color-gr1);
}

article p{
	position: relative;
	font-size: 1.6rem;
	line-height: 2.0;
	padding-top: 30px;
}

article table{
	margin-top: 20px;
	width: 100%;
}
article table th{
	font-size: 1.6rem;
	line-height: 1.4;
	font-weight: 500;
	padding: 10px 0;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid #000000;
}
article table td{
	font-size: 1.6rem;
	line-height: 1.4;
	padding: 10px 0 10px 20px;
	border-bottom: 1px solid #000000;
}
article table td a{
	color: #0036D9;
	text-decoration: underline;
}

.spacer{
	position: relative;
	/*height: 70vh;*/
	height: 100vh;
	overflow: hidden;
}
.spacer img{display: none;}
.spacer:first-of-type{
	background: url("../img/bg1.jpg") no-repeat center center;
	background-size: cover;
	background-attachment: fixed;
}
.spacer:last-of-type{
	background: url("../img/bg2.jpg") no-repeat center center;
	background-size: cover;
	background-attachment: fixed;
}

.btn{
	display: block;
	width: 300px;
	font-size: 1.6rem;
	text-align: center;
	color: #FFFFFF;
	padding: 20px 10px;
	background: #002870;
	border-radius: 10.0rem;
	margin: 50px auto 0 auto;
}
.btn:hover{opacity: 0.5;}



/**************************************************
 philosophy
**************************************************/
#philosophy{
	padding: 100px;
	overflow: hidden;
}
#philosophy::before{
	width: 60vw;
	height: 46vw;
	/*left: calc(50% - 23vw);*/
	/*top: calc((100% - 46vw) / 2);*/
	left: 30%;
	top: -20vw;
	background: linear-gradient(#73FF96, #0080FF);
	border-radius: 50%;
	filter: blur(50px);
	mix-blend-mode: multiply;
	opacity: 0.2;
	z-index: 0;
}

#philosophy h2{
	font-size: 4.0rem;
	font-weight: 700;
	letter-spacing: 5px;
	text-align: center;
	color: var(--color-gr2);
	padding-bottom: 45px;
}
#philosophy h2::before{
	width: 60px;
	height: 5px;
	bottom: 0;
	left: calc(50% - 30px);
	background: var(--color-gr2);
}

#philosophy p{
	font-size: 3.0rem;
	font-weight: 700;
	letter-spacing: 2px;
	text-align: center;
	z-index: 1;
}



/**************************************************
 greeting
**************************************************/
#greeting{background: var(--color-bg1);}

#greeting section{
	width: 80%;
	max-width: 1300px;
	padding: 100px 0;
	margin: 0 auto;
	-webkit-box-align: center;
	align-items: center;
}

#greeting h2{
	width: calc(160px + 5%);
	font-size: 3.0rem;
	font-weight: 700;
	letter-spacing: 2px;
	color: var(--color-gr2);
}

#greeting p{
	width: calc(100% - (160px + 5%));
	padding: 0;
	padding-left: 5%;
	border-left: 1px solid var(--color-gr2);
}
#greeting p span{
	display: block;
	text-align: right;
	padding-top: 10px;
	font-size: 2.0rem;
	font-weight: 500;
}
#greeting p span small{
	font-size: 1.5rem;
	padding-right: 15px;
}



/**************************************************
 business & company
**************************************************/
.twoColumn{
	width: 80%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0;
}

#business,
#company{width: 47%;}
#company{margin-left: 6%;}

#business dl{margin-top: 30px;}
#business dl dt{
	font-size: 2.0rem;
	font-weight: 700;
	letter-spacing: 2px;
	padding-bottom: 15px;
	border-bottom: 1px solid #000000;
}
#business dl dd{
	padding-top: 15px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.3;
}
#business dl dd span{
	width: 30%;
	margin-top: 15px;
	text-indent: -1em;
	padding-left: 1em;
}
#business dl dd span:nth-of-type(3n+2){margin: 15px 5% 0 5%;}

#company table th{width: 100px;}



/**************************************************
 works
**************************************************/
#works{
	width: 80%;
	max-width: 1300px;
	min-width: 1100px;
	margin: 0 auto;
	/*padding: 100px 0;*/
	padding: 0 0 100px 0;
}
#works dl{
	width: calc(94% / 3);
	margin-top: 40px;
}
#works dl:nth-of-type(3n+2){margin: 40px 3% 0 3%;}
#works dl dt{
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1.4;
	padding-bottom: 15px;
	border-bottom: 1px solid #000000;
}
#works dl dt img{
	display: block;
	width: 100%;
	margin-bottom: 20px;
}
#works dl dd{
	font-size: 1.5rem;
	line-height: 1.4;
	padding-top: 15px;
}
#works dl dd span{
	position: relative;
	display: block;
	margin-top: 3px;
}
#works dl dd span:first-of-type{padding-left: 61px;}
#works dl dd span:first-of-type::before{
	content: '発注者／';
	top: 0;
	left: 0;
}
#works dl dd span:last-of-type{padding-left: 48px;}
#works dl dd span:last-of-type::before{
	content: '概要／';
	top: 0;
	left: 0;
}



/**************************************************
 sdgs
**************************************************/
#sdgs{background: #EFF2F0;}

#sdgs section{
	width: 80%;
	max-width: 1300px;
	padding: 100px 0;
	margin: 0 auto;
	-webkit-box-align: center;
	align-items: center;
}

.iconHanger{
	margin-top: 40px;
	text-align: center;
}
.iconHanger img{
	width: 16%;
	margin: 0 2%;
}

.goals{
	margin-top: 40px;
	text-align: center;
}
.goals img{
	width: 76%;
	max-width: 1000px;
}

#sdgs p{
	padding-top: 60px;
	font-size: 2.4rem;
	font-weight: 700;
	text-align: center;
}

.report{
	margin-top: 60px;
	text-align: center;
}
.report img{
	display: block;
	margin: 0 auto;
	width: 60%;
	max-width: 1000px;
}



/**************************************************
 recruit
**************************************************/
#recruit{
	width: 80%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0;
}



/**************************************************
 bannerHanger
**************************************************/
.bannerHanger{
	text-align: center;
	padding: 60px 20px;
	background: var(--color-bg1);
}
.bannerHanger a{
	display: inline-block;
	background: var(--color-wh);
}
.bannerHanger a img{
	border: 1px solid #666666;
}


