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

html{
	font-size: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}
body{
	color: #646161;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight: 400;
}
li{
	list-style: none;
}
a{
	text-decoration: none;
	color: #646161;
}
img{
	width: 100%;
	vertical-align: bottom;
}
main{
	padding-top: 80px;
}
.sp{
	display: none;
}
.wrapper{
	max-width: 1520px;
	padding: 0 20px;
	margin: 0 auto;
}
.section-title .en{
	font-family: "Roboto", sans-serif;
	font-weight: 100;
	font-style: normal;
	font-size: 200px;
	display: block;
	color: #000;
	margin-left: 120px;
	line-height: 0.8;
}
.section-title .ja{
	font-size: 16px;
	font-weight: 300;
	display: block;
	color: #fff;
	margin: 0 120px;
	position: relative;
	z-index: 30;
}

.content-area{
	color: #fff;
	padding: 90px 120px;
	margin-top: -34px;
	position: relative;
}

.highright{
	background: linear-gradient(transparent 70%, rgba(255,255,255,0.3) 70%);	
}

/*ボタン*/
.btn-area{
	width: 200px;
	height: auto;
	background-color: #fff;
	border-top-right-radius: 190px;
	border-top-left-radius: 190px;
	position: absolute;
	bottom: -50px;
	right: -30px;
	box-shadow: 0 0 30px 0 rgba(231,231,231,0.9);
	z-index: 50;
}
.btn-area .btn{
	display: block;
	width: 100%;
}
.btn-area .btn:hover{
	opacity: 0.7;
	color: #646161;
}
.btn-area .btn p{
	padding: 40px 0 20px;
	text-align: center;
	font-size: 12px;
	line-height: 1.8;
	display: block;
}
.btn-area .btn img{
	display: block;
	width: 50px;
	margin: 0 auto 20px;
}
.circle{
	width: 200px;
	height: 200px;
	position: absolute;
	bottom: -100px;
	right: -80px;
	z-index: 10;
}

/*Inview*/
.fadein{
	opacity: 0;
	transform: translateY(80px);
	transition: all 1s;
}
.fadein.inview{
	opacity: 1;
	transform: translateY(0);
}

/* トップへ戻るボタン */
#page-top{
	width: 50px;
	height: 50px;
	position: fixed;
	right: 10px;
	bottom: 10px;
	background-image: linear-gradient(to left,rgb(238,61,28) 0%, rgb(167,123,130) 80%, rgb(95,185,232) 100%);
	opacity: 0.6;
	border-radius: 50%;
	z-index: 60;
}
#page-top:hover{
	opacity: 1;
}
#page-top::before {
	content: "";
	width: 15px;
	height: 15px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	transform: rotate(-45deg);
	color: #ffffff;
	position: absolute;
	top: 20px;
	left: 17px;
}

/*-------------------------------------------
Header
-------------------------------------------*/
#header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 80px;
	padding-left: 40px;
	position: fixed;
	top: 0;
	left: 0;
	background-color: #fff;
	box-shadow: 0px 10px 10px 0px rgba(231,231,231,0.3);
	z-index: 100;
}
#header .logo{
	width: 100%;
	max-width: 264px;
	line-height: 0;
}
#header .logo a{
	display: block;
}
#header .logo a:hover{
	opacity: 0.7;
}
#header .hamburger{
	display: none;
}
#header .navi .menu{
	display: flex;
	align-items: center;
}
#header .navi .menu li{
	font-size: 20px;
	margin-right: 50px;
	letter-spacing: 0.05em;
}
#header .navi .menu .menu-contact{
	margin-right: 0;
	position: relative;
}
#header .navi .menu .menu-contact .img{
	display: block;	
}
#header .navi .menu .menu-contact .hover-img{
	display: none;
}
#header .navi .menu .menu-contact .img.active{
	display: none;
}
#header .navi .menu .menu-contact .hover-img.active{
	display: block;
}
#header .navi .menu .menu-contact::before{
	content: "";
	width: 1px;
	height: 80px;
	position: absolute;
	top: 0;
	left: 0;
	background-color: #ddd;
}
#header .navi .menu .menu-contact a{
	display: block;
}
#header .navi .menu a:hover{
	color: #ee3d1c;
}
#header .navi .menu .sp{
	display: none;
}
#header .mask{
	display: none;
}

/*-------------------------------------------
Contact
-------------------------------------------*/
.contact{
	background-color: #f5f5f5;
	text-align: center;
	padding: 60px;
}
.contact h2{
	font-family: "Roboto", sans-serif;
	font-weight: 100;
	font-style: normal;
	font-size: 100px;
	display: block;
	margin-bottom: 30px;
}
.contact .btn .img{
	max-width: 280px;
	margin: 0 auto;
	display: inline-block;
}
.contact .btn .hover-img{
	display: none;
}
.contact .btn .img.active{
	display: none;
}
.contact .btn .hover-img.active{
	max-width: 280px;
	margin: 0 auto;
	display: inline-block;
}

/*-------------------------------------------
Footer
-------------------------------------------*/
#footer{
	background-color: #fff;
	border-top: solid 1px #646161;
}
#footer .copyright{
	text-align: center;
	font-size: 10px;
	margin: 30px;
}


/*-------------------------------------------
タブレット
-------------------------------------------*/
@media screen and ( max-width: 1024px ){
	
	html{
		scroll-padding-top: 60px;
	}
	main{
		padding-top: 60px;
	}
	
	/*---------------------------------------
	Header
	---------------------------------------*/
	#header{
		height: 60px;
		padding: 0 20px;
	}
	#header .logo{
		max-width: 180px;
	}
	#header .hamburger{
		display: inline-block;
		width: 50px;
		height: 50px;
		position: fixed;
		top: 5px;
		right: 10px;
		cursor: pointer;
		z-index: 110;
	}
	#header .hamburger span{
		width: 30px;
		height: 1px;
		background-color: #1f1f1f;
		display: inline-block;
		position: absolute;
		left: 10px;
		transition: all 0.4s;
		z-index: 110;
	}
	#header .hamburger.active span{
		background-color: #fff;
	}
	#header .hamburger span:nth-of-type(1){
		top: 16px;
	}
	#header .hamburger span:nth-of-type(2){
		top: 25px;
	}
	#header .hamburger span:nth-of-type(3){
		top: 34px;
	}
	#header .hamburger.active span:nth-of-type(1){
		transform: rotate(-45deg);
		top: 24px;
	}
	#header .hamburger.active span:nth-of-type(2){
		opacity: 0;
	}
	#header .hamburger.active span:nth-of-type(3){
		transform: rotate(45deg);
		top: 24px;
	}
	#header .navi{
		width: 80%;
		height: 100vh;
		position: fixed;
		top: 0;
		left:  -100%;
		padding-top: 100px;
		background-color: #fff;
		z-index: 30;
		transition: all 0.4s;
	}
	#header .navi.active{
		left: 0;
	}
	#header .navi .menu{
		flex-direction: column;
		align-items: flex-start;
	}
	#header .navi .menu li{
		display: block;
		width: 100%;
		font-size: 26px;
		margin-right: 0;
		border-bottom: solid 1px #646161;
	}
	#header .navi .menu li:first-child{
		border-top: solid 1px #646161;
	}
	#header .navi .menu li a{
		display: block;
		width: 100%;
		padding: 20px 30px;
	}
	#header .navi .menu li a:hover{
		color: #fff;
		background-image: linear-gradient(to left,rgb(238,61,28) 0%, rgb(167,123,130) 80%, rgb(95,185,232) 100%);
	}
	#header .navi .menu .sp{
		display: block;
	}
	#header .navi .menu .pc{
		display: none;
	}
	#header .mask{
		display: block;
	}
	#header .mask.active{
		display: block;
		width: 100%;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #000;
		opacity: 0.7;
		transition: all 0.4s;
		z-index: 20;
	}
}

/*-------------------------------------------
スマートフォン
-------------------------------------------*/
@media screen and (max-width: 767px) {
	.pc{
		display: none;
	}
	.sp{
		display: inline-block;
	}

	.section-title .en{
		font-size: 70px;
		margin-left: 30px;
		line-height: 0.95;
	}
	.section-title .ja{
		font-size: 16px;
		margin: 0 30px;
		position: relative;
		z-index: 30;
	}

	.content-area{
		padding: 50px 30px;
	}
	
	/*ボタン*/
	.btn-area{
		width: 160px;
		height: auto;
		position: absolute;
		bottom: -80px;
		right: -15px;
	}
	.btn-area .btn p{
		padding: 40px 0 10px;
		font-size: 10px;
	}
	.btn-area .btn img{
		width: 40px;
	}
	.circle{
		width: 160px;
		height: 160px;
		bottom: -120px;
		right: -40px;
	}
	
	/* トップへ戻るボタン */
	#page-top{
		width: 30px;
		height: 30px;
	}
	#page-top::before{
		width: 10px;
		height: 10px;
		top: 12px;
		left: 10px;
	}

	/*---------------------------------------
	Contact
	---------------------------------------*/
	.contact h2{
		font-size: 70px;
		margin-bottom: 10px;
	}
	.contact .btn .img{
		max-width: 200px;
	}
	.contact .btn .hover-img.active{
		max-width: 200px;
	}
	
	/*---------------------------------------
	Footer
	---------------------------------------*/
	#footer .copyright{
		margin: 20px;
	}
}