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

*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}
body{
	font-size:16px;
	font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
a:hover{opacity:.7;}
ul,li{
	list-style:none;
}
img{
	vertical-align:bottom;
}
.noto-sans-en {
  font-family: "Noto Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
.sp{display:none;}
.fadein{display:none;}
.flex2clm{
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-align-items: center;
	align-items: center;
}
.flex2clm > div{
	-webkit-flex-grow: 1;
	flex-grow: 1;
}
.flex2clm > div:first-child{
	width: 30%;
}
.flex2clm > div:last-child{
	width: 60%;
	padding-left:10%;
}

.fadeinLoad{
	opacity: 0;
  transition: all 2s;
	margin-bottom:300px;
}
.fadeInActive {
  opacity: 1;
	margin-bottom:0px;
}
.fade_hide {
	opacity: 0;
	transition: opacity 1.5s,transform 1.5s;
	transform: translateY(-20px);
}
.fade_show {
	opacity: 1;
  transform: translate(0)
}


#header{
	width:100%;
	background:#fff;
	position:relative;
}
#header div.wrap{
	padding:32px;
	position:relative;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-align-items: center;
	align-items: center;
}
#logo{
	width:240px;
}

#heroImage{
	text-align:center;
	margin-bottom:160px;
}
#heroImage > div{
	max-height:600px;
	overflow:hidden;
}
#heroImage .catch-en{
	font-size: max(5vw,32px);
	padding:100px 0 32px;
  font-weight: 400;
}
#heroImage .catch-jp{
	font-size: max(2vw,32px);
	line-height:2;
}

#mainNavigation{
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-align-items: center;
	align-items: center;
}
#mainNavigation li{
}
#mainNavigation li a{
	text-decoration:none;
	color:#333;
	display:block;
	padding: .3em 2vw;
	font-size:14px;
}

#btnContact{
	width: 240px;
	text-align:right;
}
#btnContact a {
	width: 180px;
	background: #141414;
	color:#fff;
	text-decoration:none;
	display:inline-block;
	text-align:center;
	padding: 1em 0;
	font-size:14px;
}


#pageWrapper {
}


main div.inner{
	width:100%;
	max-width:1280px;
	margin:0px auto;
	padding:160px 80px;
}
main h2{
	font-size: max(3vw,32px);
}


#concept{
	background:#fafafa;
}
#concept .fadeinLoad{
	margin-top:1em;
}

#service{
	background:#222;
	color:#fff;
}
#service p{
	text-align: justify;
}
.service_img{
	margin:16px 0 0;
	width:100%;
	height:160px;
	overflow:hidden;
}
.service_info > div{
	float:left;
	width:50%;
	margin-bottom:48px;
	padding: 16px;
}

#company iframe {
	height:400px;
}

#info{
	background:#fafafa;
}
#info li span{
	display: block;
	margin-bottom:8px;
	font-size:12px;
}

#contact_link a{
	display:block;
	color:#fff;
	padding:1.6em;
	text-align:center;
	background:#222;
	text-decoration:none;
}

#copyright{font-size:12px; text-align:center; padding:1em;}


@media (max-width:900px){
	.pc{display:none;}
	.sp{display:block;}
	#logo{width:200px;}
	#header div.wrap{padding:10px 16px;}
	#mainNavigation,#btnContact{display:none;}
	#heroImage{margin-bottom:40px;}
	#heroImage .catch-jp{
		font-size: max(2vw,16px);
		padding:32px 0 16px;
	}
	#heroImage .catch-en{
		padding:32px 0 16px;
	}
	
	#mainNavigation{
		position: fixed;
		left:0;
		top:0;
		z-index:5;
		width:100%;
		height:100vh;
		background:#fff;
		padding-top:60px;
		text-align:center;
	}
	#mainNavigation li{
		margin-top:32px;
	}
	#mainNavigation li a{
		font-weight:bold;
		font-size:16px;
		padding:1em 0;
	}
	.sp #mainNavigation li a{
		border:1px solid #333;
		display:block;
		max-width:200px;
		margin:0px auto;
	}
	.sp #mainNavigation li:last-child a{
		background:#222;
		color:#fff;
		display:block;
		max-width:200px;
		margin:0px auto;
	}
	
	.btnSpMenu{
		position: absolute;
		top:10px;
		right:6px;
		width: 50px;
		height:50px;
		background:#fff;
		z-index:10;
	}
	.btnSpMenu span{
		display: inline-block;
		transition: all .3s;
		position: absolute;
		left: 13px;
		height: 1px;
		background-color: #222;
		width: 50%;
	}
	.btnSpMenu span:nth-of-type(1) {
		top:24px; 
	}
	.btnSpMenu span:nth-of-type(2) {
		top:34px;
	}
	.btnSpMenu.active span:nth-of-type(1) {
		top: 20px;
		left: 16px;
		transform: translateY(6px) rotate(-45deg);
		width: 35%;
	}
	
	.btnSpMenu.active span:nth-of-type(2) {
		top: 32px;
		left: 16px;
		transform: translateY(-6px) rotate(45deg);
		width: 35%;
	}
	
	
	main div.inner{padding:52px 32px;}
	main h2{
		font-size: max(3vw,28px);
		text-align:center;
	}
	main h3{
		text-align:center;
	}
	
	.flex2clm {
		display:block;
	}
	.flex2clm > div:first-child,
	.flex2clm > div:last-child {
		width:100%;
	}
	.flex2clm > div:last-child{
		padding:0;
	}
	
	#concept p{
		text-align:center;
	}
	.service_info{margin-top:32px;margin-bottom:0;}
	.service_info > div {
    float: none;
    width: 100%;
    margin-bottom:32px;
    padding: 0;border:1px solid #ccc;
		padding:2em;
	}
	.service_info > div:last-child {
		margin-bottom:0;
	}
	.service_img {
    height: 100px;
		margin-bottom:12px;
	}
	
	#company iframe {
		height:260px;
	}
	#company img{margin-bottom:16px;}
	#info h2 {margin-bottom:32px;}
	#contact h2 {margin-bottom:16px;}
	#contact p {text-align:center;}

	#contact_link a{
		margin-top:32px;
	}
}


