@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500&family=Noto+Sans+JP:wght@300;400;700&family=Ropa+Sans&display=swap');

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,figure{
background:transparent;border:0;margin:0;padding:0;}img{vertical-align: bottom;}body{line-height:1;}h1,h2,h3,h4,h5,h6,th{font-weight:normal;}
ol,ul{list-style:none;}blockquote{quotes:none;}blockquote:before,blockquote:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}a img{border:none;}
.clear:after{content:".";display:block;clear:both;height:0;visibility:hidden;}.clear{min-height:1px;}
* html .clear{height:1px;/*\*//*/height: auto;overflow: hidden;/**/
}
*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
address{font-style:normal;}
hr{margin:0;}
main{display: block;}/*IE11*/


html{
	font-size: 62.5%;
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	-webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
}
html,body,header{
	min-width: 980px;
}
body{
	color:#FFF;
	background-color: #242424;
	font-size: 1.6rem;
	font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", "メイリオ", sans-serif;
	font-weight: 400;
	letter-spacing: 0.1em;
}


a{text-decoration:none;}
a:link,a:visited{color:inherit;}


.lead{
	line-height: 2;
	font-size: 1.4rem;
}
.inner{
	max-width: 1366px;
	padding-left: 85px;
	padding-right: 85px;
	margin-left: auto;
	margin-right: auto;
}
.wf-a{
	font-family: 'Montserrat';
	font-weight: 500;
}
img{
	width: 100%;
	height: auto;
}
@media screen and (max-width:768px){
	html,body,header{min-width: 100%;}
	body{
		font-size: 1.4rem;
		min-width: 100%;
	}
	.lead{font-size: 1.2rem;}
	.inner{
		width: 100%;
		padding-left: 5vw;
		padding-right: 5vw;
	}
}

.sp{display: none;}
@media screen and (max-width:768px){
	.pc{ display: none;}
	.sp{ display: block;}
	.pc+a.sp{ display: inline;}
}


/*--------------- parts ---------------*/
.title-h2{
	font-size: 42px;
	line-height: 1.4;
}
.title-h3{
	font-size: 36px;
	font-weight: 300;
	line-height: 1.4;
}
@media screen and (max-width:1300px){
	.title-h2{
		font-size: 32px;
		line-height: 1.4;
	}
	.title-h3{
		font-size: 28px;
		font-weight: 300;
		line-height: 1.4;
	}
}
@media screen and (max-width:768px){
	.title-h2{
		font-size: 32px;
	}
	.title-h3{
		font-size: 23px;
	}
}



.com-coverbox{
    position: relative;
    width: 100%;
}
.com-coverbox:before{
    content:"";
    display: block;
    padding-top: 95%;
}
.com-coverbox>*{
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}
.com-coverbox>.coverimg{
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}


.box2,
.box3,
.box4{
	display: flex;
	flex-wrap: wrap;
}
.box2>.box{
	width: 50%;
}
.box3>.box{
	width: calc(100% / 3.001);
}
.box4>.box{
	width: 25%;
}
.com-table{
	width: 100%;
}
.com-table tr>*{
	border-top: 1px solid #4D4D4D;
	padding: 1.2em 1.4em;
	vertical-align: top;
}
.com-table{
	border-bottom: 1px solid #4D4D4D;
}
.com-table th{
	text-align: left;
	white-space: nowrap;
}
@media screen and (max-width:768px){
	.com-table th{
		padding-right: 0;
	}
}



/*--------------- hover ---------------*/
/*- - - - - - - - hover - - - - - - - -*/





/* *{outline: 1px solid rgba(255, 255, 255, 0.158);} */


/*--------------- common ---------------*/

header{
	position: absolute;
	z-index: 3;
	width: 100%;
}
header .inner{
	padding: 0;
	max-width: 100%;
	height: 100px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
header #nav-drawer{
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	flex: 1;
	margin: 0 12px;
	padding-right: 24px;
	padding-left: 30px;
}
header .part-logo{
	width: auto;
	height: 100%;
	background-color: #FFF;
	padding: 29px 24px;
	display: flex;
	justify-content: center;
}
@media only screen and (min-width: 769px){
	header #nav-drawer,
	header .nav-drawer-in,
	header .head-nav-elem{
		height: 100%;
	}
	.head-nav-elem{
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
	.head-nav-elem li+li{
		margin-left: 30px;
	}
}
.head-nav-elem a{
	color: #FFF;
	font-size: 14px;
	padding: 5px;
	display: inline-block;
	letter-spacing: 0;
}
.head-nav-elem .type-border a{
	border: 1px solid #FFF;
	padding: 1.2em 4em;
	font-weight: 700;

	-webkit-transition: background-color 0.6s;
	transition: background-color 0.6s;
}

@media screen and (min-width:769px){
	.head-nav-elem a:hover{
		opacity: 0.7;
	}
	.head-nav-elem .type-border a:hover{
		background-color: rgba(255, 255, 255, 0.6);
		-webkit-transition: background-color 0s;
				transition: background-color 0s;
	}

}

@media screen and (max-width:1300px){
	header .inner{
		height: 60px;
	}
	header #nav-drawer{
		margin: 0 8px;
		padding-right:12px;
	}
	header .part-logo{
		padding: 17px 20px;
	}
	.head-nav-elem li+li{
		margin-left: 15px;
	}
	.head-nav-elem a{
		font-size: 12px;
	}
	.head-nav-elem .type-border a{
		padding: 0.6em 3em;
	}
}
@media screen and (max-width:768px){
	header{
		overflow: hidden;
	}
	header .inner{
		height: 60px;
		padding-right: 60px;
	}
	header .part-logo{
		width: auto;
		flex: 1;
		padding: 17px 0 17px 20px;
		justify-content: flex-start;
	}
	.head-nav-elem li+li{
		margin-left: 0;
	}
	header .part-logo img{
		width: auto;
		height: 100%;
	}
	.head-nav-elem{
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.head-nav-elem li+li{
		margin-top: 2em;
	}
	.head-nav-elem a{
		font-size: 16px;
	}
	header #nav-drawer{
		margin: 0;
		padding: 0;
		border: none;
	}
}


@media only screen and (max-width: 768px){
	#nav-drawer{
		width: 100%;
		overflow-x: hidden;
		position: absolute;
	}
	.nav-drawer-in{
		position: fixed;
		z-index: 0;
		top: 0;
		bottom: 0;
		left: 100%;
		width: 100%;
		height: 100%;
		padding-top: 70px;
		background-color: rgba(50, 50, 50, 0.9);
		display: flex;
		flex-direction: column;
		justify-content: center;
		-webkit-transition: left 0.4s;
				transition: left 0.4s;
	}
	.open .nav-drawer-in{
		left: 0;
	}
	.open #nav-drawer{
		display: block;
	}
	#nav-toggle *:focus {
		outline: none;
		opacity: 0.8;
		color: transparent;
	}
	#nav-toggle{
		position: fixed;
		z-index: 2;
		top: auto;
		top: 0;
		right: 0;
		display: block;
		width: 60px;
		height: 60px;
		padding: 20px 17px 0;
		cursor: pointer;
	}
	#nav-toggle:after{
		content: "";
		position: absolute;
		display: block;
		bottom: 0;
		left: 3px;
		right: 0;
		width: 100%;
		height: 1px;
		background-color: rgba(255, 255, 255, 0.5);
	}
	#nav-toggle div {
		position: relative;
	}
	#nav-toggle span{
		display: block;
		background-color: #FFF;
		position:absolute;
		height: 1px;
		left: 0;
		right: 0;
		-webkit-transition: 0.3s ease-in-out;
		-moz-transition: 0.3s ease-in-out;
		transition: 0.3s ease-in-out;
	}
	#nav-toggle span:nth-child(1){top:0px;}
	#nav-toggle span:nth-child(2){top:8px;}
	#nav-toggle span:nth-child(3){top:16px;}
	#nav-toggle span:nth-child(1),
	#nav-toggle span:nth-child(3){
		left: 5px;
		right: 5px;
	}
	.open #nav-toggle span:nth-child(1){
		top: 10px;
		left: -2px;
		-webkit-transform: rotate(135deg);
		transform: rotate(135deg);
		width: 114%;
	}
	.open #nav-toggle span:nth-child(3){
		top: 10px;
		left: -2px;
		-webkit-transform: rotate(-135deg);
		transform: rotate(-135deg);
		width: 114%;
	}
	.open #nav-toggle span:nth-child(2){opacity: 0;}
}










.top-hero-elem{
	overflow: hidden;
	position: relative;
	z-index: 0;
	background: url(../img/top-mv_pc.jpg) no-repeat 50%;
	background-size: cover;
}
.top-hero-elem .inner{
	position: relative;
	z-index: 1;
	height: 100vh;
	padding-top: 100px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.top-hero-elem .part-logo{
	width: 676px;
	height: 284px;
}
@media screen and (max-width:768px){
	.top-hero-elem .inner{
		height: 100vh;
		padding: 70px 20px 0;
	}
	.top-hero-elem .part-logo{
		width: 100%;
		height: auto;
	}
}






.cont-pt{
	padding-top: 170px;
}
.cont-type1 .lead+.lead{
	margin-top: 3em;
}
.cont-type1 .title-h3+.lead{
	margin-top: 36px;
}
.cont-type1 .inner{
	display: flex;
}
.cont-type1 .elem-title{
	width: 370px;
}
.cont-type1 .elem-cont{
	flex: 1;
}
.cont-type1 .part-img{
	width: 450px;
	margin-top: 50px;
	min-height: 0%;
}
.cont-type1 .com-table+*{
	margin-top: 70px;
}
@media screen and (max-width:1300px){
	.cont-type1 .elem-title{
		width: 270px;
	}
}
@media screen and (max-width:768px){
	.cont-pt{
		padding-top: 90px;
	}
	.cont-type1 .title-h2{
		margin-bottom: 40px;
	}
	.cont-type1 .title-h3+.lead{
		margin-top: 20px;
	}
	.cont-type1 .inner{
		/* flex-direction: column; */
		display: block;
	}
	.cont-type1 .elem-title{
		width: 100%;
	}
	.cont-type1 .elem-cont{
		width: 100%;
	}
	.cont-type1 .part-img{
		width: 70%;
		margin-top: 30px;
	}
	.cont-type1 .com-table+*{
		margin-top: 30px;
	}
}



.cont-type2 .elem-title{
	padding-bottom: 95px;
}








.cont-t-philo{
	padding-bottom: 120px;
}
.cont-t-philo .lead{
	font-size: 16px;
	line-height: 3;
	text-align: justify;
}
@media screen and (max-width:768px){
	.cont-t-philo{
		padding-bottom: 110px;
	}
	.cont-t-philo .lead{
		font-size: 14px;
	}
}
.cont-t-cprof{
	padding-bottom: 180px;
}
.cont-t-cprof .elem-prof{
	background-color: #1A1A1A;
	padding: 11%;
}
.cont-t-cprof .elem-prof .box2 .elem-txt{
	flex: 1 auto;
	padding-right: 15px;
}
.cont-t-cprof .elem-prof .box2 .elem-img{
	width: 240px;
}
.cont-t-cprof .elem-prof .part-t1{
	font-size: 24px;
	line-height: 1.4;
	word-break: break-all;
}
.cont-t-cprof .elem-prof .part-t2{
	font-size: 12px;
	margin-top: 0.6em;
}
.cont-t-cprof .elem-prof .part-t3{
	font-size: 16px;
	margin-top: 2.6em;
}
.cont-t-cprof .elem-prof .part-t3+.lead{
	margin-top: 0.8em;
}
.cont-t-cprof .elem-prof .part-lead{
	margin-top: 40px;
}
.cont-t-cprof .elem-prof .lead{
	text-align: justify;
}

@media screen and (max-width:1080px){
	.cont-t-cprof .elem-prof .box2 .elem-img{
		width: 40%;
	}
	.cont-t-cprof .elem-prof .part-t1{
		font-size: 18px;
	}

}
@media screen and (max-width:768px){
	.cont-t-cprof{
		padding-bottom: 100px;
	}
	.cont-t-cprof .elem-prof{
		padding: 15px;
	}
	.cont-t-cprof .elem-prof .box2 .elem-txt{
		flex: 1 auto;
		padding-left: 0;
	}
	.cont-t-cprof .elem-prof .box2 .elem-img{
		width: 36%;
	}
	.cont-t-cprof .elem-prof .part-t1{
		font-size: 14px;
	}
	.cont-t-cprof .elem-prof .part-t2{
		font-size: 10px;
	}
	.cont-t-cprof .elem-prof .part-t3{
		font-size: 12px;
	}
	.cont-t-cprof .elem-prof .lead{
		font-size: 10px;
	}
	.cont-t-cprof .elem-prof .part-lead{
		margin-top: 30px;
	}
}




.cont-t-service .title-h3{
	position: relative;
	font-size: 29px;
}
@media screen and (max-width:1300px){
	.cont-t-service .title-h3{
		position: relative;
		font-size: 24px;
	}
}
.cont-t-service .coverimg{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 28% 16%;
}
.cont-t-service .title-h3 .part-img img{
	height: 100%;
	width: auto;
}
.cont-t-service .title-h3 .part-img{
	display: block;
	width: auto;
	height: 3em;
	position: absolute;
	z-index: 0;
	top: -0.9em;
	right: -2.5em;
}
.cont-t-service .lead{
	font-size: 12px;
	margin-top: 1.7em;
	line-height: 1.7;
	width: 100%;
}
.cont-t-service .box:nth-child(2) .title-h3 .part-img{
	right: -4em;
}
.cont-t-service .box:nth-child(3) .title-h3 .part-img{
	top: -1.9em;
	right: -3.6em;
}
@media screen and (max-width:768px){
	.cont-t-service .box3>.box{
		width: 100%;
	}
}


.cont-t-works .elem-cont{
	display: flex;
	justify-content: center;
	align-items: center;
	height: 432px;
	background-color: #1A1A1A;
}
.cont-t-works .elem-cont .part{
	font-size: 24px;
}
@media screen and (max-width:768px){
	.cont-t-works .elem-cont{
		height: 64vw;
	}
}


.cont-t-partners{
	background-color: #1a1a1a;
	padding-bottom: 90px;
}
.cont-t-partners .title-h2{
	text-align: center;
}
.cont-t-partners .elem-txt{
	padding: 44px 20px 80px;
}
.cont-t-partners .elem-txt .lead+.lead{
	margin-top: 2em;
}
.cont-t-partners .part-name+.lead{
	margin-top: 0.6em;
}
.cont-t-partners .part-name{
	font-size: 20px;
	line-height: 1.4;
}
.cont-t-partners .elem-txt .lead{
	font-size: 14px;
}
/* @media screen and (max-width:1100px){
	.cont-t-partners .box4>.box{
		width: calc(100% / 3.001);
	}
} */

@media screen and (max-width:768px){
	.cont-t-partners{
		padding-bottom: 50px;
	}
	.cont-t-partners .part-name+.lead{
		margin-top: 0.6em;
	}
	.cont-t-partners .box4>.box{
		width: 50%;
	}
	.cont-t-partners .part-name{
		font-size: 20px;
		line-height: 1.4;
	}
	.cont-t-partners .elem-txt .lead{
		font-size: 14px;
	}
	.cont-t-partners .elem-txt{
		padding: 22px 17px 55px;
	}
	.cont-t-partners .part-name{
		font-size: 14px;
	}
	.cont-t-partners .elem-txt .lead{
		font-size: 12px;
	}
}



.cont-t-contact{
	background: url(../img/top-contact-bg.jpg) no-repeat 50%;
	background-size: cover;
}
.cont-t-contact .inner{
	height: 480px;
	padding-top: 95px;
}

.cont-t-contact .title-h2{
	text-align: center;
}
.cont-t-contact .part-btn{
	display: block;
	text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
	width: 104px;
	height: 77px;
	background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iNzciIHZpZXdCb3g9IjAgMCAxMDQgNzciPgogIDxnIGlkPSJnMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNSAxMDMpIj4KICAgIDxwYXRoIGlkPSJwMSIgZD0iTTUsNUg5OVY3Mkg1Wk0wLDc3SDEwNFYwSDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzUgLTEwMykiIGZpbGw9IiNmZmYiLz4KICAgIDxwYXRoIGlkPSJwMiIgZD0iTTEwMSwxMyw1Miw0OSwzLDEzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzUgLTEwMykiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiLz4KICA8L2c+Cjwvc3ZnPg==");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: 50%;
	margin: 60px auto 0;

/* <svg xmlns="http://www.w3.org/2000/svg" width="104" height="77" viewBox="0 0 104 77">
<g id="g1" transform="translate(-235 103)">
<path id="p1" d="M5,5H99V72H5ZM0,77H104V0H0Z" transform="translate(235 -103)" fill="#fff"/>
<path id="p2" d="M101,13,52,49,3,13" transform="translate(235 -103)" fill="none" stroke="#fff" stroke-miterlimit="10" stroke-width="5"/>
</g>
</svg> */

}

@media screen and (min-width:769px){
	.cont-t-contact .part-btn{
		-webkit-transition: transform 1.0s cubic-bezier(0,1,0,1);
				transition: transform 1.0s cubic-bezier(0,1,0,1);
	}
	.cont-t-contact .part-btn:hover{
		transform: scale(1.2);
	}
}

@media screen and (max-width:768px){
	.cont-t-contact .inner{
		height: 58vw;
		padding-top: 11.5vw;
	}
	.cont-t-contact .part-btn{
		width: 48px;
		height: 35px;
		margin-top: 8vw;
	}
}










footer .inner{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding: 60px 85px 25px;
}
footer .part-logo{
	width: 160px;
}
footer .cright{
	font-size: 14px;
}
@media screen and (max-width:768px){
	footer .inner{
		flex-direction: column;
		align-items: center;
		padding: 60px 20px 25px;
	}
	footer .part-logo{
		width: 84px;
	}
	footer .cright{
		font-size: 10px;
		margin-top: 23px;
	}
}



/*- - - - - - - - common - - - - - - - -*/







/*--------------- 000000 ---------------*/
/*- - - - - - - - 000000 - - - - - - - -*/



/*--------------- property ---------------*/
.top-hero-elem{
	position: relative;
}
.top-hero-elem:after{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
}

.loaded .top-hero-elem:after{
	opacity: 0;
	-webkit-transition: opacity 4s;
			transition: opacity 4s;
}
.top-hero-elem .part-logo{
	opacity: 0;
	transform: scale(1.4);
}
.loaded .top-hero-elem .part-logo{
	opacity: 1;
	transform: scale(1);
	-webkit-transition: opacity 1.6s,transform 1.6s cubic-bezier(0,1,0,1);
			transition: opacity 1.6s,transform 1.6s cubic-bezier(0,1,0,1);
}
.target-ani.ani-alpha{
	opacity: 0;
}
.target-ani.ani-alpha.is-ani{
	opacity: 1;
	-webkit-transition: opacity 1.6s;
			transition: opacity 1.6s;
}


.target-ani.ani-fill{
	position: relative;
}
.target-ani.ani-fill:before,
.target-ani.ani-fill:after{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
}
.target-ani.ani-fill:before{
	z-index: 1;
	background-color: #FFF;
	opacity: 0.4;
}
.target-ani.ani-fill:after{
	z-index: 1;
	background-color: #000;
}

.target-ani.ani-fill.is-ani:before{
	opacity: 0;
	-webkit-transition: opacity 0.5s;
	transition: opacity 0.5s;
}
.target-ani.ani-fill.is-ani:after{
	width: 0;
	left: 100%;
	-webkit-transition: left 0.3s cubic-bezier(0,1,0,1),width 0.3s cubic-bezier(0,1,0,1);
	transition: left 0.3s cubic-bezier(0,1,0,1),width 0.3s cubic-bezier(0,1,0,1);
}

/*- - - - - - - - property - - - - - - - -*/





















/*--------------- elem ---------------*/








/*- - - - - - - - elem - - - - - - - -*/



