@charset "utf-8";
/*------------------------------------------------------------
	トープページ
------------------------------------------------------------*/
canvas{
  display:block;
  vertical-align:bottom;
}


/* ---- stats.js ---- */

.count-particles{
  background: #000022;
  position: absolute;
  top: 48px;
  left: 0;
  width: 80px;
  color: #13E8E9;
  font-size: .8em;
  text-align: left;
  text-indent: 4px;
  line-height: 14px;
  padding-bottom: 2px;
  font-family: Helvetica, Arial, sans-serif;
  font-weight: bold;
}

.js-count-particles{
  font-size: 1.1em;
}

#stats,
.count-particles{
  -webkit-user-select: none;
  margin-top: 5px;
  margin-left: 5px;
}

#stats{
  border-radius: 3px 3px 0 0;
  overflow: hidden;
}

.count-particles{
  border-radius: 0 0 3px 3px;
}

a.under {
	text-decoration: underline;
}

a.under:hover {
	text-decoration: none;
}

/* ---- particles.js container ---- */

#particles-js{
  width: 100%;
  height: 100vh;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}


.mainVisual {
	min-height: 580px;
	position: relative;
	overflow: hidden;

}
/*.mainVisual:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	

	background: url(../../image/main_visual_bg01.jpg) no-repeat center center;
	background-size: cover;
	left: -100%;
}

.mainVisual.on:before {
	left: 0;
	opacity: 1;
}*/

.mainVisual .inner {
	margin: 0 auto;
	top: 28%;
	left: 10%;
	position: absolute;
	z-index: 2;
}

.mainVisual h2 {
	color: #43B5D2;
	font-size: 100px;
	letter-spacing: 6.2px;
	line-height: 1.3;
	font-family: 'Lato', sans-serif;
	transition-delay: 0.3s;
	-webkit-transition-delay: 0.3s;
}

#main .about {
	position: relative;
	margin-bottom: 105px;
	padding: 138px 0 6.3%;
	overflow: hidden;
	
}

#main .about:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	right: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: url(../../image/bg01.png) no-repeat left top, url(../../image/bg06.png) no-repeat left bottom;
	background-size: 852px auto, 100% auto;
}

#main .about.on:before {
	right: 0;
	opacity: 1;
}

#main .about .bg {
	padding: 77px 0;
	min-height: 405px;
	box-sizing: border-box;
	position: relative;
	z-index: 2;
}

#main .about .bg:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	right: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: url(../../image/bg07.png) no-repeat center center;
	background-size: cover;
}

#main .about.on .bg:before {
	right: 0;
	opacity: 1;
}

#main .about .imgBox {
	margin: 0 auto;
	padding-right: 137px;
	width: 1000px;
	position: relative;
	box-sizing: border-box;
	z-index: 3;
}

#main .about .imgBox .photoBox {
	width: 487px;
	float: left;
	transition-delay: 0.3s;
	-webkit-transition-delay: 0.3s;
}

#main .about .imgBox .photoBox img {
	width: 100%;
}

#main .about .imgBox .textBox {
	margin-top: 24px;
	width: 250px;
	float: right;
	transition-delay: 0.3s;
	-webkit-transition-delay: 0.3s;
}

#main .about .imgBox .textBox p {
	font-size: 12px;
	line-height: 1.8;
}

#main .service {
	margin-bottom: 100px;
	padding-top: 78px;
	position: relative;
	overflow: hidden;
}

#main .service:before {
	width: 1400px;
	height: 147px;
	position: absolute;
	right: 100%;
	top: 0;
	background: url(../../image/bg02.png) no-repeat;
	background-size: 1400px auto;
	
	content: "";
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	z-index: 2;
}

#main .service.on:before {
	right: 0;
}

#main .service .titleBox {
	padding: 98px 0;
	position: relative;
	z-index: 1;
}

#main .service .titleBox:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	left: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: #36B0CE url(../image/bg01.png) no-repeat right top;
	background-size: 100px 100%;
}

#main .service.on .titleBox:before {
	left: 0;
	opacity: 1;
}

#main .service .titleBox .inner {
	margin: 0 auto;
	width: 1000px;
}

#main .service .titleBox .headLine01 {
	margin-bottom: 0;
	width: 210px;
	color: #FFF;
	font-size: 26px;
	position: relative;
	z-index: 3;
}

#main .service .titleBox .headLine01:after {
	background-color: #FFF;
}

#main .service .imgArea {
	margin: -34px auto 0;
	padding: 0 0 20px 21px;
	width: 1020px;
	position: relative;
	z-index: 4;
}

#main .service .imgArea:before {
	width: 9999px;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background: url(../../image/bg08.png) repeat left top;
	background-size: 12px 12px;
	
	content: "";
}

#main .service .imgArea .inner {
	padding: 56px 0 75px 50px;
	position: relative;
	background-color: #FFF;
}

#main .service .imgArea .inner:before {
	width: 9999px;
	height: 20px;
	position: absolute;
	left: 0;
	top: -20px;
	background-color: #FFF;
	
	content: "";
}

#main .service .imgArea .inner:after {
	width: 9999px;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background-color: #FFF;
	
	content: "";
}

#main .service .imgList {
	margin: 0 auto;
	width: 980px;
	position: relative;
	z-index: 5;
}

#main .service .imgList li {
	width: 214px;
	float: left;
	margin-right: 40px;
	text-align: center;
}

#main .service .imgList li:last-of-type {
	margin-right: 0;
}

#main .service .imgList li img {
	height: 90px;
}

#main .service .imgList li span {
	display: block;
	text-align: left;
}

#main .service .imgList li .ttl {
	margin: 37px 0 11px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 1.5px;
}

#main .service .imgList li .txt {
	font-size: 12px;
	line-height: 1.85;
}

#main .works {
	position: relative;
	margin-bottom: 119px;
	padding: 232px 0 0 105px;
	overflow: hidden;
}

#main .works:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	left: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: url(../../image/bg03.png) no-repeat left top;
	background-size: auto 145px;
}

#main .works.on:before {
	left: 0;
	opacity: 1;
}

#main .works .comming {
	font-family: 'Lato', sans-serif;
	font-size: 1.4em;
	letter-spacing: .25em;
	margin: 40px 0 80px;
}


#main .works .content {
	width: 1106px;
	position: relative;
	z-index: 2;
}

#main .works .headLine01 {
	position: absolute;
	right: 0;
	top: -50px;
	font-size: 26px;
}

#main .works .headLine01:before {
	background: #000;
}

#main .works .imgList {
	margin-bottom: 28px;
	overflow: hidden;
	zoom: 1;
}

#main .works .imgList:last-child {
	margin-bottom: 0;
}

#main .works .imgList li {
	width: 350px;
	float: left;
}

#main .works .imgList li a:hover {
	filter: alpha(opacity=70);
	opacity: 0.7;
}

#main .works .imgList li:nth-child(3n-1) {
	margin: 50px 26px 0;
}

#main .works .imgList li:nth-child(3n) {
	margin-top: 100px;
}

#main .works .imgList li img {
	width: 100%;
}

#main .works .imgList li .txt {
	margin-top: 13px;
	display: block;
	color: #333;
	font-size: 12px;
	letter-spacing: 1px;
}

#main .company {
	position: relative;
	margin-bottom: 165px;
	overflow: hidden;
}

#main .company .title {
	text-align: right;
	z-index: 2;
	opacity: 0;
	position: relative;
	right: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
}

#main .company.on .title {
	right: 0;
	opacity: 1;
}

#main .company .title img {
	height: 152px;
}

#main .company .titleBox {
	margin-top: -75px;
	position: relative;
	padding: 110px 0 131px;
	z-index: 1;
	
}

#main .company .titleBox:before {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	right: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: #36B0CE;
}

#main .company.on .titleBox:before {
	right: 0;
	opacity: 1;
}

#main .company .titleBox .headLine01 {
	margin: 0 0 0 -500px;
	width: 165px;
	color: #FFF;
	font-size: 26px;
	position: relative;
	left: 50%;
	z-index: 2;
}

#main .company .titleBox .headLine01:before {
	background: #fff; 
}

#main .company .titleBox .headLine01:after {
	background-color: #FFF;
}

#main .company .bgBox {
	padding-top: 502px;
	position: relative;
	background: #F3F3F3 url(../image/bg01.png) no-repeat right top;
	background-size: 100px 100%;
	z-index: 2;
}

#main .company .tableBox {
	margin-left: -500px;
	width: 1000px;
	position: absolute;
	left: 50%;
	top: -88px;
}

#main .company .tableBox .tabInner {
	padding: 50px 20px 10px 33px;
	width: 487px;
	float: left;
	background-color: #FFF;
	box-sizing: border-box;
}

#main .company .tableBox .tabInner:nth-child(2n) {
	float: right;
}

#main .company .tableBox table {
	width: 100%;
	border-collapse: collapse;
}

#main .company .tableBox th,
#main .company .tableBox td {
	padding: 5px 5px 12px;
	width: 31%;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 1.95;
	text-align: left;
	vertical-align: top;
	box-sizing: border-box;
}

#main .company .tableBox td {
	width: 69%;
}

#main .company .tableBox .tabInner01 th,
#main .company .tableBox .tabInner01 td {
	width: 22%;
}

#main .company .tableBox .tabInner01 td {
	width: 78%;
}

#main .company .map iframe,
#main .company .map object,
#main .company .map embed {
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

#main .company .map {
	margin: -165px auto 0;
	width: 100%;
	height: 350px;
	position: relative;
	z-index: 3;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	right: -100%;
}

#main .company .map.on {
	right: 0;
	opacity: 1;
}

#main .company .map .subBox:before {
	content: "";
	width: calc((100% - 1000px) / 2);
	height: 350px;
	display: block;
	float: left;
}

#main .company .map .subBox {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
}

#main .company .map .subBox #map {
	height: 350px;
	position: relative;
}

#main .company .map .subBox #map iframe {
	top: 0;
    left: 0;
    position: absolute;
}

#main .contact {
	padding: 163px 0 67px;
	position: relative;
	z-index: 1;
	overflow: hidden;
}

#main .contact:after {
	margin-top: 60px;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	left: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: #F6F6F6 url(../image/bg01.png) no-repeat right top;
	background-size: 100px 100%;
}

#main .contact.on:after {
	left: 0;
	opacity: 1;
}

#main .contact:before {
	width: 853px;
	height: 510px;
	z-index: 2;
	opacity: 0;
	right: 100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	position: absolute;
	
	top: 0;
	background: url(../../image/bg05.png) no-repeat;
	background-size: 853px auto;
	content: "";
}

#main .contact.on:before {
	right: 0;
	opacity: 1;
}

#main .contact .content {
	position: relative;
	z-index: 2;
}

#main .contact .headLine01 {
	margin-bottom: 22px;
	font-size: 26px;
	
}

#main .contact .headLine01:before {
	background: #000;
}

#main .contact .photo {
	width: 800px;
}

#main .contact .photo img {
	width: 100%;
}








#main .recruit {
	padding: 163px 0 67px;
	position: relative;
	z-index: 1;
	overflow: hidden;
}

#main .recruit:after {
	margin-top: 60px;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	content: "";
	z-index: 1;
	opacity: 0;
	left: -100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	background: #F6F6F6 url(../image/bg01.png) no-repeat right top;
	background-size: 100px 100%;
}

#main .recruit.on:after {
	left: 0;
	opacity: 1;
}

#main .recruit:before {
	width: 853px;
	height: 510px;
	z-index: 2;
	opacity: 0;
	right: 100%;
	transition: all .5s cubic-bezier(.04,.435,.315,.9);
	-webkit-transition: all .5s cubic-bezier(.04,.435,.315,.9);
	position: absolute;
	
	top: 80px;
	background: url(../../image/bg09.png) no-repeat;
	background-size: 853px auto;
	content: "";
}

#main .recruit.on:before {
	right: 0;
	opacity: 1;
}

#main .recruit .content {
	position: relative;
	z-index: 2;
}

#main .recruit .headLine01 {
	margin-bottom: 22px;
	font-size: 26px;
	
}

#main .recruit .headLine01:before {
	background: #000;
}


#main .recruit .recruit-title {
	margin-bottom: 22px;
	text-align:center;
	font-size: 24px;
	
}

#main .recruit .photo {
	width: 800px;
}

#main .recruit .photo img {
	width: 100%;
}

#main .recruit table {
	font-size: 16px;
	margin: 20px auto;
	border-spacing: 10px;
}
#main .recruit .tbl-r02 th {
	background: #36b0ce;
	color: #fff;
	padding: 10px;
}
#main .recruit .tbl-r02 td {
	background:#fff;
	padding: 1em;
	line-height: 1.8;
}

/* ここから下がボタンのCSS　*/

#main .recruit .container{
	text-align:center;
}

#main .recruit .btn-border {
  display: inline-block;
  width: 250px;
  text-align: center;
  border: 2px solid #36b0ce;
  font-size: 16px;
  color: #36b0ce;
  text-decoration: none;
  font-weight: bold;
  padding: 8px 16px;
  border-radius: 4px;
  transition: .4s;
  margin-bottom: 4em;
}

#main .recruit .btn-border:hover {
  background-color: #36b0ce;
  border-color: #50bfda;
  color: #FFF;
}

 
@media screen and (max-width: 640px) {
	#main .recruit table {
	font-size: 13px;
	width:90%;
	margin-left:0;
	}
	.last td:last-child {
		border-bottom: solid 1px #ccc;
		width: 100%;
	  }
	.tbl-r02 {
 	   width: 80%;
	  }
	.tbl-r02 th,
	.tbl-r02 td {
	　　border-bottom: none;
	    display: block;
	    width: 100%;
	  }
}


@media screen and (max-width: 767px) {
	.mainVisual {
		min-height: 440px;
	}
	
	.mainVisual .inner {
		padding: 0;
		width: auto;
		left: 5%;
	}

	.mainVisual h2 {
		font-size: 45px;
		letter-spacing: 3px;
		line-height: 1.32;
		word-break: break-all;
	}

	#main .about {
		margin-bottom: 64px;
		padding: 0;
	}

	#main .about:before {
		background: url(../../image/sp_bg01.png) no-repeat center top;
		background-size: 100% auto;
	}
	
	#main .about .bg {
		padding: 60px 0 0;
		min-height: inherit;
		background: none;
	}
	
	#main .about .bg:before {
		display: none;
	}
	
	#main .about .imgBox {
		padding-right: 0;
		width: auto;
	}

	#main .about .imgBox .photoBox {
		margin: 0 auto 63px;
		padding-left: 18px;
		width: 86%;
		float: none;
	}

	#main .about .imgBox .photoBox img {
		width: 100%;
	}
	
	#main .about .imgBox .textBox {
		margin: 0 34px;
		width: auto;
		float: none;
	}
	
	#main .service {
		margin-bottom: 67px;
		padding-top: 30px;
	}

	#main .service:before {
		width: 100%;
		height: 100%;
		top: -0;
		background-image: url(../../image/sp_bg02.png);
		background-size: 100% auto;
	}

	#main .service.on:before {
		right: 0;
	}
	
	#main .service .titleBox {
		padding: 63px 36px 90px;
	}
	
	#main .service .titleBox:before {
		background-size: 5.4% 100%;
	}

	#main .service .titleBox .headLine01 {
		margin: 0;
		width: auto;
	}
	
	#main .service .imgArea {
		margin: -34px 0 0 3.5%;
		padding: 0 0 20px 21px;
		width: auto;
		position: relative;
		z-index: 5;
		background: url(../../image/bg08.png) repeat left top;
		background-size: 12px 12px;
	}

	#main .service .imgArea .inner {
		padding: 17px 5.4% 30px 0;
	}
	
	#main .service .imgList {
		margin: 0 54px 0 54px;
		width: auto;
	}

	#main .service .imgList li {
		margin-bottom: 23px;
		width: auto;
		float: none;
		margin-right: 0;
	}
		
	#main .service .imgList li:nth-child(3n-1) {
		margin: 0 0 23px;
	}

	#main .service .imgList li img {
		margin: 0 auto;
		height: 90px;
	}

	#main .service .imgList li span {
		display: block;
		text-align: left;
	}

	#main .service .imgList li .ttl {
		margin: 20px 0 11px;
		letter-spacing: 1.5px;
	}

	#main .service .imgList li .ttl01 {
		margin-top: 8px;
	}

	#main .works {
		margin-bottom: 8px;
		padding: 95px 35px 10px;
	}
	
	#main .works:before {
		background-image: url(../../image/sp_bg03.png);
		background-size: 100% auto;
	}

	#main .works .content {
		width: auto;
		position: inherit;
	}
	
	#main .works .headLine01 {
		margin-bottom: 36px;
		position: relative;
		right: inherit;
		top: inherit;
	}

	#main .works .imgList {
		margin-bottom: 28px;
		overflow: visible;
	}
	
	#main .works .imgList:last-child {
		margin-bottom: 0;
	}

	#main .works .imgList li {
		margin-bottom: 45px;
		width: 47.2%;
		float: left;
	}
	
	#main .works .imgList li:nth-child(3n-1) {
		margin: 30px 0 45px;
		float: right;
	}

	#main .works .imgList li:nth-child(3n) {
		margin-top: 0;
	}

	#main .works .imgList li .txt {
		margin-top: 7px;
	}

	#main .works .imgList01 li:first-child,
	#main .works .imgList01 li:nth-child(3n) {
		margin: 0 0 47px;
		float: right;
	}

	#main .works .imgList01 li:nth-child(3n-1) {
		margin-top: 0;
		float: left;
	}
	
	#main .company {
		margin-bottom: 74px;
	}
		
	#main .company .title {
		position: relative;
		text-align: left;
		z-index: 3;
	}
	
	#main .company .title img {
		width: 100%;
		height: auto;
	}

	#main .company .titleBox {
		margin-top: -34px;
		padding: 60px 20px 94px;
		position: relative;
		z-index: 2;
	}
	
	#main .company .titleBox .headLine01 {
		margin: 0;
		width: auto;
		font-size: 26px;
		left: 0;
	}
	
	#main .company .bgBox {
		padding: 0 0 205px;
		background: #F3F3F3;
	}

	#main .company .tableBox {
		margin: 0;
		width: auto;
		position: relative;
		left: inherit;
		top: inherit;
		z-index: 6;
	}

	#main .company .tableBox .tabInner {
		margin: 0 20px;
		padding: 40px 10px 20px 30px;
		width: auto;
		position: relative;
		top: -55px;
		float: none !important;
		box-sizing: border-box;
		z-index: 6;
	}

	#main .company .tableBox .tabInner01 {
		margin-top: -10px;
		padding-top: 0;
		opacity: 1;
		transform: none;
		-webkit-transform: none;
	}
	
	#main .company .tableBox th,
	#main .company .tableBox td {
		padding: 5px 5px 6px;
		width: 100% !important;
		float: left !important;
	}

	#main .company .tableBox td {
		padding-bottom: 40px;
	}
	
	#main .company .map {
		margin: -220px 0 0 5.3%;
		width: auto;
		height: auto;
	}
	
	#main .company .map .subBox {
		width: auto;
		height: auto;
		position: inherit;
		left: inherit;
		top: inherit;
	}	
	
	#main .company .map img {
		width: 100%;
	}
	
	#main .contact {
		padding: 94px 20px 50px;
		padding-top: calc(86px + 40vw - 140px);
	}
	
	#main .contact:after {
		margin-top: 36px;
		background-size: 5.5% 100%;
	}
	
	#main .contact:before {
		width: 100%;
		height: 100%;
		right: 0;
		top: 0;
		background-image: url(../../image/sp_bg05.png);
		background-size: 100% auto;
	}
	
	#main .contact.on:before {
		right: 0;
	}
	
	#main .contact .headLine01 {
		margin-bottom: 39px;
		font-size: 26px;
	}
	
	#main .contact .photo {
		width: auto;
	}




	#main .recruit {
		padding: 94px 20px 50px;
		padding-top: calc(86px + 40vw - 140px);
	}
	
	#main .recruit:after {
		margin-top: 36px;
		background-size: 5.5% 100%;
	}
	
	#main .recruit:before {
		width: 100%;
		height: 100%;
		right: 0;
		top: 0;
		background-image: url(../../image/sp_bg06.png);
		background-size: 100% auto;
	}
	
	#main .recruit.on:before {
		right: 0;
	}
	
	#main .recruit .headLine01 {
		margin-bottom: 39px;
		font-size: 26px;
	}
	
	#main .recruit .photo {
		width: auto;
	}





	
}
@media (min-width: 320px) and (max-width: 374px) {
	.mainVisual h2 {
		font-size: 44px;
		letter-spacing: 0;
	}
}

