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

body{
	color:#212121;
    /*font-size: 62.5% ;*/   /* 1.0em = 10px  */
	/*font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
	font-family: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-weight: 400;
	/* background:url(../img/bg.gif); */
}
a{
	color:#212121;
	text-decoration:none;
}
a:hover{			color:#1b8bfb;}
a[href="#"]:hover{	color:#212121;}

a.overwhite{    display:block;}
a.overwhite:hover,
a.overwhite:hover img,
a.overwhite:hover li{
    cursor:pointer;
	filter: alpha(opacity=60);        /* ie lt 8 */
	-ms-filter: "alpha(opacity=60)";  /* ie 8 */
	-moz-opacity:0.6;                 /* FF lt 1.5, Netscape */
	-khtml-opacity: 0.6;              /* Safari 1.x */
	opacity:0.6;
	zoom:1;

	-webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -ms-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

.font-oswald{font-family: 'Oswald', sans-serif;}
.font-oswald.regular{  font-weight: 400;}
.font-oswald.medium{   font-weight: 500;}
.font-oswald.bold{     font-weight: 700;}

.aligncenter{
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.alignright{
	float: right;
	margin-left: 1.5em;
}
.alignleft{
	float: left;
	margin-right: 1.5em;
}


.contentsbox{
	overflow:hidden;
	width:100%;
	max-width:1163px;
	margin:0 auto;
	
	@media only screen and (max-width:1200px) {
		margin-right: 3vw;
		margin-left: 3vw;
		width: auto;
	}
}
.contentsbox-wide{
	overflow:hidden;
	width:100%;
	max-width:1443px;
	margin:0 auto;

	@media only screen and (max-width:1500px) {
		margin-right: 3vw;
		margin-left: 3vw;
		width: auto;
	}

}
.contentsbox-full{
	overflow:hidden;
	width:100%;
}

ul{padding: 0;}

/****************************/

#header{
	background-color: #000;
	overflow: hidden;
	padding: 20px 30px;
}
#header > h1{
	float: left;
	margin-top: 7px;
	@media only screen and (max-width:1600px) {
		max-width: 20%;
	}
}

#head-menu{
	float: right;
	
}
#head-menu ul{
	float: left;
	width: 75vw;
	max-width: 700px;
	display: flex;
	justify-content: space-between;

	@media only screen and (max-width:1600px) {
		max-width: 550px;
		font-size: 14px;
	}
}

#head-menu ul li{
	list-style: none;
}
#head-menu ul li a{
	color: #fff;
}

#head-contact{
	color: #fff;
	display: block;
	float: right;
	border: 2px solid #939393;
	border-radius: 30px;
	padding: 1em 3em 1em 90px;
	background:url(../img/icoMail.png) no-repeat 50px 50%;
	margin-left: 2em;
	
	@media only screen and (max-width:1600px) {
		font-size: 14px;
		padding: 1em 2em 1em 70px;
		background-position-x: 30px;
	}
}

#container{
	position: relative;
}

#btnPagetop{
	position: absolute;
	bottom: 0;
	right: -2.2vw;
	transform: rotate(90deg);
    z-index: 10;
	font-family: 'Oswald', sans-serif;
	padding-left: 60px;
}

#btnPagetop:hover{
	color:#aaa;
}
#btnPagetop:hover::before,
#btnPagetop:hover::after{
	border-color:#aaa;
}


#btnPagetop:before,
#btnPagetop:after{
	content: "";
	display: block;
	position: absolute;
}
#btnPagetop::before{
    width: 50px;
    height: 1px;
    border-top: 1px solid #333;
    top: 50%;
    left: 0;
}
#btnPagetop::after{
    width: 8px;
    height: 1px;
    transform: rotate(-45deg);
    border-top: 1.5px solid #333;
    top: calc(50% - 3px);
    left: 0;
}



#contents{
	overflow: hidden;
}

#topEntrance{
	background: #e1e7ec;
	padding-top: 3.25vw;
	position: relative;
}
#topEntrance:before{
	content: "";
	display: block;
	position: absolute;
	background: url(../img/logo-transparent.png) no-repeat;
	width: 890px;
	height: 545px;
	top: 125vh;
	left: 50%;
	margin-left: -1000px;
	z-index: 0;
}

#topEntrance:after{
	content: "";
	display: block;
	position: absolute;
	background: url(../img/arrowScroll.png) no-repeat;
	width: 14px;
	height: 175px;
	top: calc(100vh - 175px - 100px - 3.25vw);
	right: 1vw;
}


#mainvisual{
	position: relative;
	/*background:#eff4f7;*/
	margin: 0 3.25vw;
	/*height: calc(100vh - 6.5vw);*/
	background: url(../img/mainvisual1.jpg) no-repeat;
	background-size: cover;
	z-index: 1;

}
#mainvisual::before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: url(../img/logo-w.png) no-repeat 50% 50%;
}

#mainvisual{
	img, video {
		max-width: 100%;
		height: auto;
	}
	
	.p-top-kv {
		position: relative;
		/*padding-top: 62px;*/
	}
	
	.w-full {
		width: 100%;
	}
	.hidden {
		display: none;
	}
	
	.p-top-kv__inner {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		height: 100svh;
		max-height: 100%;
		pointer-events: none;
	}
	
	.p-top-kv__copy {
		display: flex;
		position: absolute;
		align-items: center;
		justify-content: center;
		inset: 0;
		padding: 0 2.5rem;
		pointer-events: none;
	}
	
	.p-top-kv__access-button {
		position: absolute;
		right: .625rem;
		bottom: .625rem;
	}
	.p-top-kv__access-button a {
		display: block;
	}

	#mv-logo{
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		max-width: max(10em, 15vw);

		& img{
			opacity: 0.7;
		}
	}
}

@media (min-width: 768px) {
	#mainvisual{
		/*.p-top-kv {
			padding-top: 100px;
		}*/

		.md\:block {
			display: block;
		}

		.md\:hidden {
			display: none;
		}

		.p-top-kv__access-button {
			right: 10%;
			bottom: 10%;
		}
	}
}
@media only screen and (max-width:1600px) {
	#mainvisual{
		/*padding: 50px 3.25vw;*/
	}
}




#newsArea{
	position: relative;
	z-index: 0;
	background: #fff;
	padding:6.5vw 0 3.25vw;
	margin:-3.25vw 0 0 auto;
	width: 70%;

	display: flex;
	align-items: stretch;
}

#newsArea h2,
#topInformation h2,
#topWorks h2,
#topConstructionCase h2{
	color: #1b8bfb;
	font-size: 18px;
	margin-bottom: 45px;
}
#newsArea h2 span,
#topInformation h2 span,
#topWorks h2 span,
#topConstructionCase h2 span{
	font-family: 'Oswald', sans-serif;
	font-weight: 700;
	color: #000;
	letter-spacing: 2px;
	font-size: 56px;
	display: block;
}
#newsArea h2{
	font-size: 14px;
    width: 20%;
    text-align: center;
	align-self: baseline;
	margin: 0 1em 0 -1em;
}
#newsArea h2 span{
	font-size: 40px;
	text-indent: 1em;
}

#newsArea ul{
	line-height: 1.75;
	width: 60%;
	padding-right: 5%;
	font-size:	14px;
	border-right: 1px solid #c2c2c2;
}
#newsArea ul li{
	list-style: none;
	margin-bottom: 1.5em;
}
#newsArea .btnMore{
	width: 20%;
	font-weight: 600;
	font-size: 16px;
	position: relative;
	display: flex;
	align-items: center;
    justify-content: center;
	padding-right:4em;
	text-align: right;
}

#newsArea .btnMore span::before,
#newsArea .btnMore span::after{
	content: "";
    display: block;
    position: absolute;
}
#newsArea .btnMore span::before{
    width: 23px;
    height: 1px;
    border-top: 1px solid #333;
    top: 51%;
    left: 50%;
    margin-left: 1.5em;
    box-shadow: #aaa 0 -0.5px 1px;
}
#newsArea .btnMore span::after{
    width: 8px;
    height: 1px;
    transform: rotate(45deg);
    border-top: 1.5px solid #333;
    top: calc(51% - 3px);
    left: 50%;
    margin-left: 2.5em;
}

.top-news-date{ color: #666;}


#topInformation{
	padding: 75px 3.25vw;
	position: relative;
}

ul#info-lists{
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	padding:0 10px;
}

ul#info-lists li{
	width: 32%;
	margin-right: 2%; 
	margin-bottom:30px;
	background: #fff;
	border-radius: 8px;
	box-shadow: #ccc 0 0 10px;
	list-style: none;
	overflow: hidden;
}
ul#info-lists li:nth-child(3n){margin-right: 0;}
ul#info-lists li:hover{	background: #1b8bfb; color: #fff;	}

ul#info-lists li img{
	width: 100%;
	height: auto;
}



.top-info-link{
	display: block;
}
.top-info-link:hover{
	color: #fff;
}

.top-info-area{
	padding: 1.5em;
	overflow: hidden;
}

.top-info-date{
	font-size: 0.8em;
	margin-bottom: 1em;
	color: #666;
}

.top-info-title{
	margin-bottom: 1em;
	font-weight: bold;
	line-height: 1.75;
}

ul#info-lists li:hover{
	.btnMore,
	.top-info-date,
	.top-info-title{
		color: #fff;
	}
	.top-info-area .btnMore::before,
	.top-info-area .btnMore::after{
		border-color: #fff;
	}
}

.top-info-area .btnMore{
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	float: right;
	padding-right: 30px;
	position: relative;
}
.top-info-area .btnMore::before{
	content: "";
    display: block;
    position: absolute;
    width: 23px;
    height: 1px;
    border-top: 1px solid #333;
    top: 14px;
    right: 0;
    box-shadow: #aaa 0 -0.5px 1px;
}
.top-info-area .btnMore::after{
	content: "";
    display: block;
    position: absolute;
    width: 8px;
    height: 1px;
    transform: rotate(45deg);
    border-top: 1.5px solid #333;
    top: 11px;
    right: 0;
}


#top-info-more{
	width: 12em;
	font-size: 16px;
	font-weight: 600;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: right;
    padding-right: 3em;
	margin: 0 0 0 auto;

	&::before,
	&::after{
		content: "";
		display: block;
		position: absolute;
	}

	&::before{
		width: 23px;
		height: 1px;
		border-top: 1px solid #333;
		top: 51%;
		right:1em ;
		margin-left: -1.5em;
		box-shadow: #aaa 0 -0.5px 1px;
	}

	&::after{
		width: 8px;
		height: 1px;
		transform: rotate(45deg);
		border-top: 1.5px solid #333;
		top: calc(51% - 3px);
		right:1em ;
		margin-left: -2.5em;
	}
}


#topWorks{
	position: relative;
	padding: 50px 0;
	background:#eff4f7;
	border: 75px solid #fff;
    border-right-width: 3.25vw;
    border-left-width: 3.25vw;

	@media only screen and (max-width:1600px) {
		padding: 50px 3.25vw;
	}
}

#topWorks > .contentsbox-wide{
	overflow: visible;
}

#topWorks ul{
	margin-right: -9vw;
	counter-reset: servicenum 0;
}

#topWorks ul li{
	list-style: none;
	width: calc( 100vw - ((100vw - 1443px) / 2) );
	display: block;
	background: no-repeat right;
	background-size: contain;
	padding: 3.25vw 0;

	@media only screen and (max-width:1600px) {
		width:100%;
	}
}


#topWorks ul li:nth-child(1){	background-image:url(../img/topWork1.jpg);}
#topWorks ul li:nth-child(2){	background-image:url(../img/topWork2.jpg);}
#topWorks ul li:nth-child(3){	background-image:url(../img/topWork3.jpg);}
#topWorks ul li:nth-child(4){	background-image:url(../img/topWork4.jpg);}

.top-works-area{
	background: #fff;
	position: relative;
	width: 610px;
	overflow: hidden;
	box-shadow: #ccc 0 0 15px;
}
.top-works-area::before{
	content: "SERVICES 0" counter(servicenum);
	counter-increment: servicenum 1;
	position: absolute;
	top: 65px;
    left: -10px;
	transform: rotate(90deg);
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 500;
    letter-spacing: 1px;
	color: #2993fb;
}

.top-works-area::after{
	display: block;
	content: "";
	width: 45px;
	height: 45px;
	background-color:#2993fb ;
	transform: rotate(45deg);
	position: absolute;
	top: -22px;
    left: -22px;
}

.top-works-link{
	padding: 80px 90px;
	display: block;
}


.top-works-area:hover{
	background-color:#2993fb ;
	a{
		color: #fff;
	}
	.btnMore::before,
	.btnMore::after{
		border-color: #fff;
	}
}
.top-works-area:hover::before{
	color: #fff;
}


.top-works-area .btnMore{
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	position: relative;
	float: right;
	padding-right: 30px;
	display: block;
    width: 64px;
    position: absolute;
    bottom: 1em;
    right: 2em;
    margin-bottom: 0;
}
.top-works-area .btnMore::before{
	content: "";
    display: block;
    position: absolute;
    width: 23px;
    height: 1px;
    border-top: 1px solid #333;
    top: 18px;
    right: 0;
    box-shadow: #aaa 0 -0.5px 1px;
}
.top-works-area .btnMore::after{
	content: "";
    display: block;
    position: absolute;
    width: 8px;
    height: 1px;
    transform: rotate(45deg);
    border-top: 1.5px solid #333;
    top: 15px;
    right: 0;
}

.top-works-area h3{
	margin-bottom: 1.5em;
}

.top-works-area p{
	line-height: 2;
	word-break: auto-phrase;
	margin-bottom: 3em;
}

#topConstructionCase{
	/*margin-bottom: 75px;*/

	@media only screen and (max-width:1600px) {
		padding: 50px 3.25vw;
	}
}

#topConstructionCase ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}


#topConstructionCase ul li{
	list-style: none;
	width: 48.5%;
	margin-right: 3%;
	margin-bottom: 50px;
	line-height: 2;
}
#topConstructionCase ul li:nth-child(2n){
	margin-right: 0;
}


.top-const-link{
	display: block;
	position: relative;

	.top-const-img{
		background: #000;
		margin-bottom: 1em;
		overflow: hidden;
	}
	img{
		opacity: 0.3;
		transition: all 0.5s;
		transform: scale(1);
	}
}

.top-const-link:hover{
	img{
		opacity: 1;
		transform: scale(1.05);
	}

	h3{
		color: #2993fb;
	}
}

.top-const-link .btnMore{
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	position: relative;
	float: right;
	padding-right: 30px;
	display: block;
    width: 64px;
    position: absolute;
    bottom: 1em;
    right: 2em;
    margin-bottom: 0;
}
.top-const-link .btnMore::before{
	content: "";
    display: block;
    position: absolute;
    width: 23px;
    height: 1px;
    border-top: 1px solid #333;
    top: 18px;
    right: 0;
    box-shadow: #aaa 0 -0.5px 1px;
}
.top-const-link .btnMore::after{
	content: "";
    display: block;
    position: absolute;
    width: 8px;
    height: 1px;
    transform: rotate(45deg);
    border-top: 1.5px solid #333;
    top: 15px;
    right: 0;
}

#topAimingstory{
	position: relative;
	background: url(../img/topAiming.jpg);
	background-size: cover;
	width: 100%;
	height: 36.4vw;
	min-height: 720px;
	border: 75px solid #fff;
    border-right-width: 3.25vw;
    border-left-width: 3.25vw;
	text-align: center;
	margin-bottom: 25px;
}
.company #topAimingstory{
	margin-bottom: 50px;
    border-bottom: none;
}

#topAimingstory:after,
#topAimingstory:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

#topAimingstory.mixblendmode:before {
    background: #2993fbaa;
    z-index: 2;
}
#topAimingstory.mixblendmode:after {
    background: #2993fb;
    mix-blend-mode: screen;
    z-index: 1;
}



#topAimingstory a{
	display: flex;
	flex-direction: column;
    /*flex-wrap: wrap;*/
    justify-content: center;
	width: 100%;
	height: 100%;
	z-index: 5;
    position: relative;
	background: url(../img/logo-transparent.png) no-repeat 50% 50%;
    background-size: auto 75%;
}

#topAimingstory h3{
	position: relative;
	z-index: 10;
	color: #fff;
	font-size: 18px;
    margin-bottom: 100px;
}
#topAimingstory h3 span {
    display: block;
    font-size: 56px;
	font-family: 'Oswald', sans-serif;
	position: relative;
	letter-spacing: 3px;
}

#topAimingstory h3 span:before{
	content: "";
	display: block;
	width:45px;
	border-bottom:1px solid #fff;
	position: relative;
	left: calc(50% - 22.5px);
	top:-40px;
	margin-top:60px;
}

#topAimingstory img{
	display: block;
	margin: 0 auto;
	max-width: 80%;
}

#snsLinks {
    display: flex;
    justify-content: center;
    background: #eff4f7;
    border-radius: 50px;
	align-items: center;
	font-family: 'Oswald', sans-serif;
	font-weight: 500;
	letter-spacing: 1px;
	margin-bottom: 50px;
}
#snsLinks ul {
    display: flex;
	align-items: center;
    justify-content: center;
	margin: 20px 0 20px 30px;
}

#snsLinks ul li{
	list-style: none;
	margin-left: 40px;
}

#footLinks{
	background: #232323;
}

#footLinks .contentsbox{
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#footLinks a{	color: #fff;}

#footLinks ul {
    display: flex;
    justify-content: center;
	margin:3em 0;
}

#footLinks ul li{
	list-style: none;
}
#footLinks ul:first-child{
	font-size: 14px;
	li {
		margin-right: 2em;
	}
}
#footLinks ul:nth-child(2){
	font-size: 12px;
	li:first-child {
		padding-right: 1em;
		border-right: 1px solid #fff;
		margin-right: 1em;
	}
}

#footer {
    background: #000;
	padding: 45px 0;
	color: #fff;
}

#registration-info{
	float: left;
	margin-right: 100px;
	color: #8b8d90;
}

#registration-info dl{
	line-height: 1.8;
    font-size: 12px;
}


#registration-info img{
	margin-bottom: 60px;
}

#footAddress {
    overflow: hidden;
}
#footAddress > p:first-child {
    margin-bottom: 2em;
}

#footAddress address {
    float: left;
	font-style: normal;
	line-height: 1.75;
}

#footAddress a[href*="tel"] {
    font-size: 1.6em;
    font-weight: bold;

	span{
		font-size: 1.5em;
	}

}


#footContact{
	float: right;
	display: block;
	padding: 35px 90px 35px 125px;
	background: url(../img/icoMail.png) no-repeat #1b8bfb 80px;
	color:	#fff;
}

#copyright{
	text-align: right;
	font-size: 12px;
	margin-top: 50px;
	color: #cde8ff;
}

/**************/

#pageHeader{
	padding-top: 45px;
}

#subpage #container{
	background: #e1e7ec;
	padding-bottom: 50px;
	margin-bottom: 50px;
}
#subpage.company #container{
	padding-bottom: 0;
	margin-bottom:0;
}
#subpage.aimingstory #container,
#subpage.recruit #container{
	padding-bottom: 0;
}

#subpage.works #container{
	background-color: #fff;
}

#pageVisual{
	background: #aaa;
	padding: 150px;
	margin: 0 auto 45px;
	background-size: cover;
	background-position: center;
	max-width: 1748px;
}
@media only screen and (max-width:1800px) {
	#pageVisual{
		margin:0 45px 45px;
	}
}
.post-type-archive.news #pageVisual,
.single.news #pageVisual{ background-image:url(../img/headerNews.jpg);}
.post-type-archive.post #pageVisual,
.post-type-archive-post #pageVisual,
.single-post #pageVisual{ background-image:url(../img/headerBlog.jpg);}
.aimingstory #pageVisual{ background-image:url(../img/headerAiming.jpg);}
.company #pageVisual{ background-image:url(../img/headerCompany.jpg);}
.construction #pageVisual{ background-image:url(../img/headerConstruct.jpg);}
.sitemap #pageVisual{ background-image:url(../img/headerSitemap.jpg);}
.privacypolicy #pageVisual{ background-image:url(../img/headerPrivacy.jpg);}
.contact #pageVisual{ background-image:url(../img/headerContact.jpg); background-position: right;}
.recruit #pageVisual{ background-image:url(../img/headerRecruit.jpg);}
.recruit.spview #pageVisual{ background-image:url(../img/headerRecruit-sp.jpg);}
.works #pageVisual{ background-image:url(../img/headerWorks.jpg);}
.works.spview #pageVisual{ background-image:url(../img/headerWorks-sp.jpg);}

#pageVisual h1{
	color: #fff;
	font-size: 18px;
}
#pageVisual h1 span{
	font-family: 'Oswald', sans-serif;
	font-weight: 700;
	color: #fff;
	letter-spacing: 2px;
	font-size: 56px;
	display: block;
	text-transform: uppercase;
}

.page.company #pageBody h2,
.page.construction #pageBody h3,
.page.sitemap #pageBody h2,
.page.privacypolicy #pageBody h2 {
    font-size: 34px;
    letter-spacing: 4px;
    padding-left: 1.5em;
    position: relative;
	margin-bottom: 1.5em;
	font-family:'Noto Sans JP';
	font-weight: 700;
}
.page.construction #pageBody h3{
	margin-top: 50px;
}

.page.company #pageBody h2:before,
.page.construction #pageBody h3:before,
.page.sitemap #pageBody h2:before,
.page.privacypolicy #pageBody h2:before {
    content: "";
    position: absolute;
    width: 1em;
    height: 4px;
    background: #0788ff;
    display: block;
    left: 0;
    top: 0.5em;
}

#greeting {
    background: #fff;
    padding: 75px 0;
    margin-bottom: 75px;
}
#greeting > .contentsbox{
	overflow: hidden;
}

#greeting p{
	margin-bottom: 1.5em;
	font-size: 14px;
	line-height: 2;
}

#img-ceoface-area {
    float: right;
    width: 38.7%;
	margin-top: -3.5em;
    font-size: 34px;
}
#ceo-message-area{
	float: left;
	width: 57%;
}
#img-ceoface-area img{
	margin-bottom: 1em;
}
#img-ceoface-area p {
    text-align: right;
}
#img-ceoface-area p span{
    font-size: 1.5em;
	margin-left: 1em;
	font-family: serif;
	font-weight: bold;
}

#aboutCompany table {
    border-spacing: 0;
	border-bottom: 1px solid #bbb;
	margin-bottom: 75px;
	font-size: 14px;
	line-height: 2;
}

#aboutCompany th,
#aboutCompany td {
	padding: 1em 3em;
	border-top: 1px solid #bbb;
}
#aboutCompany th {
    vertical-align: top;
    text-align: left;
    background: #fff;
	width: 25%;
    font-weight: normal;
}

#accessmap{
	margin-bottom: 75px;
}

#info-categories{
    display: flex;
    justify-content: space-between;
	margin: 50px 10px;
}

#info-categories li{
    width: 19%;
	list-style: none;
    background: #fff;
    border: 1px solid #bbc1c6;

	display: flex;
    align-items: center;
}
#info-categories li a{
    display: block;
    padding: 1em 0;
    text-align: center;
	width: 100%;
}

#info-categories li:hover{
    background:#2993fb;
	border-color: #2993fb;
}
#info-categories li a:hover{
    color: #fff;
}

.category-info #pageBody,
.single #pageBody,
.post-type-archive #pageBody{
    background: #fff;
	padding: 75px 0;
    border-radius: 5px;
    box-shadow: #ccc 0 0 10px;
}

.single #pageBody h2{
	margin-bottom: 2em;
}
.single #pageBody h2 span {
    display: block;
    font-size: 12px;
    color: #aaa;
    margin-bottom: 1em;
}

.single #pageBody h3 {
    text-wrap: wrap;
    padding-bottom: 0.5em;
    border-bottom: 1px solid #1b8bfb;
    margin-bottom: 1em;
    color: #1b8bfb;
}
/*
.single-post #pageBody h3:before {
    position: relative;
    content: "";
    display: inline-block;
    width: 1.5em;
    height: 2px;
    background: #1b8bfb;
    margin-bottom: 0.3em;
}
*/

.single #pageBody p{
	line-height: 2.5;
}


.single #pageBody hr{
	border: 1px solid #f5f5f5;
	margin-top: 50px;
	clear:both;
}


#paging ul {
	display: flex;
	justify-content: center;
	margin: 3em 0 0;
	font-size: 12px;
}
#paging li {
    list-style: none;
	margin:0 0.5em;
}

#paging a{
	padding: 1em;
    border: 1px solid #ddd;
    border-radius: 25px;
    display: block;
    min-width: 3.5em;
    text-align: center;
}

#paging a:hover{
	color: #fff;
	background: #1b8bfb;
	border-color: #1b8bfb;
}
#paging a.gotoListpage{
	padding:1em 5em;
}

#archive-info-list {
    margin: 3em 0 0 0;
    border-top: 1px solid #ddd;
}
#archive-info-list li {
    padding: 1em 0;
    border-bottom: 1px solid #ddd;
	display: flex;
	align-items: center;
}

#archive-info-list p,
#archive-info-list a{
	display: inline;
}

.info-tag{
	display: inline-block;
	padding: 0.5em 2em;
	color: #1b8bfb;
	background: #ddeeff;
	border-radius: 20px;
    margin-right: 2em;
}
.info-date{
	color: #bbc1c6;
    margin-right: 2em;
}
#archive-info-list a:hover{
	color: #1b8bfb;
}


.pagination {
    text-align: center;
    margin-top: 20px;
	font-size: 1.3em;
}

.pagination .page-numbers {
	display: inline-block;
    padding: 5px 10px;
    margin: 0 5px;
    background: #f4f4f4;
    color: #333;
    text-decoration: none;
}

.pagination .current {
    background: #333;
    color: #fff;
}


.box-construction{
	margin-top: 75px;
	line-height: 2;
}

.box-construction h2 {
    font-size: 32px;
    margin-bottom: 32px;
}

.box-construction h2 span{
	font-size: 16px;
    color: #1b8bfb;
	display: block;
	margin-bottom: 1em;
	font-family: 'Oswald', sans-serif;
    font-weight: 400;
}

ul.construct-cases{
	display: flex;
	justify-content: space-between;
}
ul.construct-cases > li{
	width: 30.5%;
	list-style: none;
}


ul.construct-cases > li > img{
	margin-bottom: 1em;
}

.aiming-stories{
	position: relative;
	padding: 10vh 0;
	/*max-width: 1920px;*/
	margin: 0 auto 50px;
}
.aiming-stories:before{
	content: "";
	position: absolute;
	width: 90%;
	height: 100%;
	background:no-repeat 0 50%;
	background-size: cover;
	z-index: 0;
	top: 0;
	opacity: 0;
	
	transition: all 1s;
}
.aiming-stories:nth-child(even):before{	left: auto; right: 0;}


.aiming-stories.anim:nth-child(odd):before{ left: -5%; right: auto; }
.aiming-stories.anim:nth-child(even):before{ left: auto; right: -5%; }


.aiming-stories.animate__animated::before{ opacity: 1;}
.aiming-stories.animate__animated:nth-child(odd):before{
	left: 0; right: auto;
}
.aiming-stories.animate__animated:nth-child(even):before{
	left: auto; right: 0;
}

#aiming03.aiming-stories:before{ background-image: url(../img/bgAiming3.jpg);}
#aiming04.aiming-stories:before{ background-image: url(../img/bgAiming4.jpg);}
#aiming05.aiming-stories:before{ background-image: url(../img/bgAiming5.jpg);}
#aiming06.aiming-stories:before{ background-image: url(../img/bgAiming6.jpg);}
#aiming07.aiming-stories:before{ background-image: url(../img/bgAiming7.jpg);}
#aiming08.aiming-stories:before{ background-image: url(../img/bgAiming8.jpg);}
#aiming09.aiming-stories:before{ background-image: url(../img/bgAiming9.jpg);}

#aiming01{
	background: url(../img/bgAiming1.jpg) no-repeat;
	background-size:100% 100%;
	padding: 0;
	margin: 0;
	min-height: 90vh;
	display: flex;
    align-items: center;
}
#aiming02{
	background: url(../img/bgAiming2.jpg) no-repeat center bottom;
	background-size: cover;
	padding: 0;
	margin: 0;
	min-height: 100vh;
}
#aiming10{
	background: url(../img/bgAiming0.jpg) no-repeat left top;
	background-size: cover;
	padding: 5vw;
	margin: 0;
	min-height: 100vh;
}


#aiming10 > div {
    background: rgba(255,255,255,0.9);
    height: calc(90vh - 10vw);
	position: relative;
	text-align: center;
	padding-top: 10vh;
	padding-bottom: 10vh;

}

#aiming10 > div::before {
	content: "";
	display: block;
	position: absolute;
	width: calc(100% - 20px);
	height: calc(100% - 20px);
	border:1px solid #b8bec1;
	top: 10px;
	left: 10px;
}


#aiming10 > div p{
	line-height: 2.5;
	margin-bottom: 1em;
}

.aiming-stories:after {
    content: "";
    display: block;
    width: 555px;
    height: 50px;
    background: url(../img/createthefuture.png) no-repeat;
	background-size: contain;
    position: absolute;
    bottom: -50px;
    left: calc(100% - 555px);
}
.aiming-stories:nth-child(even):after{	left: 0;}

#aiming09.aiming-stories:after{
	content: none;
	display: none;
}

.aimingbox {
	position: relative;
	z-index: 1;
    background: #ffffffdd;
    width: 60%;
    min-height: 75vh;
	max-height: 680px;
	padding: 7% 5%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin:auto;
}
.aiming-stories:nth-child(odd) .aimingbox {
	margin-right: 0;
	padding-right: 15%;
}
.aiming-stories:nth-child(even) .aimingbox {
	margin-left: 0;
	padding-left: 15%;
}
/*
.aimingbox:after{
	position: absolute;
    content: "CREATE THE FUTURE";
    font-family: 'Oswald', sans-serif;
    color: #2993fb;
    top: calc(1em + 10%);
}
.aiming-stories:nth-child(odd) .aimingbox:after{
	transform: rotate(90deg);
    right: -1em;
}
.aiming-stories:nth-child(even) .aimingbox:after{
	transform: rotate(-90deg);
    left: -1em;
}
*/
.aimingbox h2{
	font-family : YuMincho,	'Yu Mincho', serif;
	font-size: 2vw;
	letter-spacing: 3px;
	text-wrap: nowrap;
}

.aimingbox h2:after{
	content: "";
	display: block;
	height: 1px;
	width: 45px;
    background: #000;
    margin: 1em 0;
}

.aimingbox p {
    line-height: 2;
    margin-bottom: 2em;
}

#aiming-createthefuture{
	margin: 5vh auto;
    max-width: 580px;
    text-align: center;
}

#aiming-createthefuture h2,
#aiming10 > div h2 {
    margin-bottom: 45px;
	font-family : YuMincho,	'Yu Mincho', serif;
	font-size: 52px;
	letter-spacing:1em;
	text-indent: -1em;
	padding-left: 2vw;
}
#aiming10 > div h2 {
	letter-spacing: 0.5em;
	text-indent: -0.5em;
}

#aiming-createthefuture h2 span,
#aiming10 > div h2 span{
	display: block;
    font-family: 'Oswald', sans-serif;
	font-size: 21px;
    font-weight: 400;
    margin-bottom: 45px;
	letter-spacing: 3px;
}


#aiming-createthefuture h2 span:after,
#aiming10 > div h2 span:after{
	content: "";
	display: block;
	margin: 25px auto 0;
	width: 40px;
	height: 1px;
	background: #000;
    position: relative;
	left: -1vw;
}
div#aiming-createthefuture p {
    line-height: 2.5;
    margin-bottom: 1em;
}

#aiming-createthefuture img {
    display: block;
    margin: 60px auto 0;
}

#aiming-kizuku{
	writing-mode: vertical-rl;
	margin:0 auto;
	padding-top: 15vh;
}

#aiming-kizuku h2{
	margin-left: 80px;
}
#aiming-kizuku p{
	margin-left: 1em;
	margin-top: 60px;
	line-height: 2.5;
    letter-spacing: 1px;
}

.page.sitemap #pageBody ul{
	padding-left: 1em ;
} 
.page.sitemap #pageBody ul > li{
    padding-left: 0.5em;
	padding-bottom: 2em;
	margin-bottom: 2em;
	position: relative;
}
.page.sitemap #pageBody ul > li::marker{
	content: "－";
	font-weight: bold;
}

.page.sitemap #pageBody ul > li > ul{
	margin-top: 1em;
	display: flex;
	justify-content: start;
	padding-left: 0;
}
.page.sitemap #pageBody ul > li > ul li{
	margin:0;
	border: none;
	padding:0 1em 0 0;
}
.page.sitemap #pageBody ul > li > ul li::marker{
	content:none;
}
.page.sitemap #pageBody ul > li > ul li:after{
	content: "｜";
	padding-left: 1em;
}
.page.sitemap #pageBody ul > li > ul li:last-child:after{
	content: none;
}

.page.sitemap #pageBody ul > li:before{
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 1px;
	left: -1em;
	background-color: #acb1b5;
}

.page.sitemap #pageBody ul > li > ul li:before{ content: none;}


.page.privacypolicy #pageBody h3{
	margin: 2em 0 1em;
	color: #444;
	border-top:1px solid #acb1b5;
	padding-top: 1.5em;
}

.page.privacypolicy #pageBody h3:first-child{ border:none;}

.page.privacypolicy #pageBody p{
	line-height: 2;
	font-size:16px;
}

.privacypolicy #pageBody address{
	font-style: normal;
	padding: 1em 0 2em;
	border-bottom: 1px solid #acb1b5;
	margin-bottom: 2em;
}

.page.privacypolicy #pageBody ul{
	padding:0 1em;
	line-height: 2;
}
.page.privacypolicy #pageBody ul > li{
    padding-left: 0.5em;
	position: relative;
}
.page.privacypolicy #pageBody ul > li::marker{
	content: "－";
	font-weight: bold;
}


.privacypolicy #pageBody address p{
	margin-bottom: 1em;
}


.contact #pageBody p{
	font-size: 14px;
	line-height: 2;
}

#tblContact {
    border-collapse: collapse;
	margin-top:50px;
}

#tblContact th,#tblContact td{
	padding: 2em 2em;
	border-bottom:1px solid #acb1b5;
}
#tblContact th{
	background-color: #fff;
	text-align: left;
	font-size: 0.9em;
}
#tblContact th.vtop {
    vertical-align: top;
}

#tblContact th.hissu:after{
	content:"必須";
	display: inline-block;
	padding:3px 0.5em;
	background: #e04b47;
	color: #fff;
	float: right;
	border-radius: 3px;
	font-size: 0.9em;
}

#tblContact td[colspan="2"]{
	border-bottom: none;
}
#tblContact td[colspan="2"] h3{
	margin-bottom: 1em;
	font-size: 14px;
}

#tblContact input,
#tblContact select,
#tblContact textarea{
	border: none;
	padding: 0.5em 1em;
	background: #fff;
	border-radius: 5px;
	width: 100%;
	
    outline: none;
}
#tblContact input[name*="zip"]{
	width: 16em;
}

#tblContact select{
	width: 16em;
	text-align: center;
}

#tblContact a{
	text-decoration: underline;
}
#tblContact input[type="submit"]{
	margin: 0 auto;
	display: block;
	border-radius: 0;
	color: #fff;
	width: 360px;
    padding: 1.5em;
    letter-spacing: 2px;
	font-weight: bold;
	background: url(../img/arrowWhite.gif) no-repeat #1d8fff;
	background-position: 222px 50%;
    text-indent: -1em;
}

#btnSubmit.aligncenter{display: table-cell;}

#contact-banner {
    display: flex;
    padding: 0;
	align-items: center;
	height: 200px;
	box-shadow: 0 0 10px #ccc;
}

#contact-banner li{
	width: 50%;
	list-style: none;
	text-align: center;
    height: 100%;
	align-items: center;
    display: flex;
    justify-content: center;
}
#contact-banner li:nth-child(1) {
    font-size: 26px;
    color: #fff;
    font-weight: bold;
    background: url(../img/logo-transparent.png) 50% 50% no-repeat #303b47;
	background-size: auto 75%;

}
#contact-banner li:nth-child(2) {
	background: #fff;
	flex-direction: column;
}

#contact-banner li:nth-child(2) a{
	font-size: 36px;
	color: #2993fb;
	font-weight: 500;
    font-family: 'Oswald', sans-serif;
    letter-spacing: 1px;s
}
#contact-banner li:nth-child(2) a span{
	font-size: 0.8em;
	color: #000;
	margin-right: 10px;
}

#contact-banner li:nth-child(2) p{
	font-size: 16px;
}

.contact #pageBody .contentsbox{
	overflow:visible;
}


#messageRecruit {
    background:url(../img/recruitMV.jpg) no-repeat center top #fff;
	background-size: cover;
    padding: 285px 0;
}
#messagePartner {
    background:url(../img/recruitMV-2.jpg) no-repeat center top #fff;
	background-size: cover;
    padding: 285px 0;
}

#subpage.recruit .boxRecruitBlue{
	background-color: #005ebbe0;
	color: #fff;
	text-align: center;
	padding: 100px 0;
}

#subpage.recruit .boxRecruitBlue h2{
	position: relative;
	padding-bottom: 1em;
    margin-bottom: 1em;
    font-weight: 400;
    font-size: 2.3em;
    letter-spacing: 3px;
}
#subpage.recruit .boxRecruitBlue h2:after{
	position: absolute;
	content: "";
	display: block;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 200px;
	height: 4px;
	background-color: #fff;
}
#subpage.recruit .boxRecruitBlue p{
	line-height: 3;
}

#aboutRecruit{
	background: #fff;
	padding: 5%;
	margin: 5% auto;
}


#aboutRecruit h2{
	text-align: center;
    font-size: 2.3em;
    line-height: 1.5;
    margin-bottom: 1.5em;
}

#aboutRecruit h2 span{
	color: #1B8BFB;
	font-size: 0.5em;
	letter-spacing: 2px;
	font-size: 16px;
    letter-spacing: 1px;
    display: block;
}


#aboutRecruit table {
    border-spacing: 0;
	margin-bottom: 75px;
	font-size: 14px;
	line-height: 2;
	width: 100%;
}

#aboutRecruit th,
#aboutRecruit td {
	padding: 1em 0;
	border-bottom: 1px solid #E1E1E1;
}
#aboutRecruit th {
    vertical-align: top;
    text-align: left;
    background: #fff;
	width: 25%;
    font-weight: normal;
	text-decoration: underline #1B8BFB 1px;
    text-underline-offset: 5px;
	font-weight: bold;
}


#recruitPartner1{
	counter-reset: numRecruitPartner;

}
.boxRecruitPartner{
	padding: 100px 0 0;
	position: relative;
}
#recruitPartner4.boxRecruitPartner{
	margin-bottom: 160px;
}

.boxRecruitPartner::after{
	position: absolute;
	counter-increment: numRecruitPartner;
	content: "PARTNER COMPANIES RECRUITMENT0" counter(numRecruitPartner);
	font-family: oswald;
	font-size: 4.5vw;
	letter-spacing: 0.1vw;
	color: #8cc6ffcc;
    line-height: 1em;
    bottom: -0.5em;
    right: 0;
    font-weight: bold;
    mix-blend-mode: screen;
}

.boxRecruitPartner-white{
	background-color: #fff;
	width: fit-content;
	padding: 60px;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
}
.boxRecruitPartner-white::before{
	position: absolute;
	content: "";
	top:-35px;
	left: -35px;
	display: block;
	background: #1B8BFB;
	width: 60px;
    height: 60px;
    transform: rotate(45deg);
}

.boxRecruitPartner > .contentsbox-wide{
	padding: 100px 0;
	background: no-repeat center center;
	background-size: cover;
}

#recruitPartner1 > .contentsbox-wide{	background-image: url(../img/recruit-partner1.jpg);}
#recruitPartner2 > .contentsbox-wide{	background-image: url(../img/recruit-partner2.jpg);}
#recruitPartner3 > .contentsbox-wide{	background-image: url(../img/recruit-partner3.jpg);}
#recruitPartner4 > .contentsbox-wide{	background-image: url(../img/recruit-partner4.jpg);}

.boxRecruitPartner h3{
	text-align: center;
    font-size: 2.3em;
    line-height: 1.5;
    margin-bottom: 1.5em;
}

.boxRecruitPartner h3 span{
	color: #1B8BFB;
	font-family: oswald;
	letter-spacing: 2px;
	font-size: 16px;
	text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
}

.boxRecruitPartner p{
	line-height: 3;
}
#recruitPartner2 .descriptPartnerRecruit > p{	text-align: center;}

.descriptPartnerRecruit ul{
	display: flex;
	justify-content: space-around;
}
.descriptPartnerRecruit ul li{
	width: 46%;
	list-style: none;
}
.descriptPartnerRecruit h4{
	font-size: 1.75em;
	margin-bottom: 0.5em;
}
.descriptPartnerRecruit h4:before{
	content: "ー";
	color: #1B8BFB;
	margin-right: 10px;
	display: inline-block;
}
.descriptPartnerRecruit p{
	line-height: 2;
}

#contactRecruit{
	background: #fff;
	padding: 60px 0 0;
	text-align: center;
}
#contactRecruit a{
	background: #1B8BFB;
	display: inline-block;
	font-size: 1.7em;
    margin: 1em auto;
    color: #fff;
    padding: 0.5em 10em;
	transition:  all 0.3s;
}
#contactRecruit a:after{
	content: "";
	display: inline-block;
	width: 36px;
    height: 26px;
    margin-left: 10px;
    background: url(../img/arrowRight.png) no-repeat center top;
    vertical-align: middle;
}

#contactRecruit a:hover{
	background: #dfefff;
}


body.works{
	counter-reset: intWorks;
}

.blockWorks{
	position: relative;
	padding-top: 20px;
	margin: 80px;

	&::before,&::after{
		position: absolute;
		content: "";
		background: #eff4f7;
		height: 80%;
		top: 0;
		z-index: 0;
	}
	&::before{
		position: absolute;
		content: "";
		display: block;
		width: 100%;
		left: 50%;
		transform: translateX(-50%);
		max-width: 1443px;
	}
	&::after{
		width: 100%;
		left: 50%;
	}

	& > .contentsbox{
		position: relative;
		overflow: visible;
		z-index: 1;
	}

	& h2{
		padding-top: 4em;
		font-size: 2em;
        margin-bottom: 1em;
		text-decoration: underline;
        text-decoration-thickness: 2px;
        text-decoration-color: #1789fb;
        text-underline-offset: 0.5em;

		&::before,&::after{
			position: absolute;
			font-family: 'Oswald', sans-serif;
			font-weight: 200;
			color: #fff;
			z-index: -1;
		}

		&::before{
			content: "Service";
			top: 3rem;
            font-size: 1.75em;
		}
		&::after{
			counter-increment: intWorks;
			content:counter(intWorks, decimal-leading-zero);
			font-style: italic;
			font-size: 5em;
            top: 0;
			left: 8.5rem;
		}
	}

	& .boxWorksDescipt{
		min-height: 23em;
        margin-bottom: 3em;

		&.large{
			min-height: 28em;
		}

		& > p{
			background: rgb(255 255 255 / 90%);
			padding: 2em;
			position: relative;
			width: 53%;
			text-align: justify;
			line-height: 2;
		}
	}

	& .boxWorksImage{
		position: absolute;
		left: 0;
        transform: translateX(30%);
        width: 120%;
        top: 6em;
		height: 30em;
		overflow: hidden;
		&.large{
			height: 35em;
		}

		& > img{
			max-width: none;
		}
	}

	& ul.worksSubImages{
		display: flex;
		justify-content: space-between;
		position: relative;
		z-index: 3;

		& > li{
			width: 31%;
			list-style: none;

			& > img{
			}
			& > p{
				padding: 1em;
				line-height: 2;
			}
		}
	}
}


/**************************************************************/

.anim {
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
	-webkit-animation-iteration-count: 1;
	animation-iteration-count: 1;
}

.anim[data-animate^="blur"],
.anim[data-animate^="fadeIn"]{
	opacity: 0;
}

.animate__blur{
    animation-name:blurAnime;
    animation-duration:1s;
    animation-fill-mode:forwards;
}

@keyframes blurAnime{
    from {
    filter: blur(10px);
    transform: scale(1.02);
    opacity: 0;
    }

    to {
    filter: blur(0);
    transform: scale(1);
    opacity: 1;
    }
}

@keyframes fadeIn-andSpread {
	from {
		animation-timing-function: ease-out;
		transform: translate(0px,0px);
		letter-spacing: 0;
		opacity: 0.0;
	} to {
		animation-timing-function: linear;
		transform: translate(0px,0px);
		opacity: 1.0;
	} 
}

.animate__fadeIn-andSpread {
	-webkit-animation-name: fadeIn-andSpread;
	animation-name: fadeIn-andSpread;
	-webkit-transform-origin: center center;
	transform-origin: center center;
}
