@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Noto+Sans:400,700&display=swap');

/* Body */
body {
	font-family: 'Noto Sans', sans-serif;
	background-color: #fff;
	padding: 0;
	margin: 0 auto;
	color: #5E6362;
	letter-spacing: 0.05em;
	font-weight: 100;
}

/* Common style */
.container {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	background-color: #fff;
	text-align: center;
	clear: both;
	padding-top: 12rem;
	overflow: hidden;
	position: relative;
}
.sectionMb{
	margin-bottom: 160px;
}
.title_wrap{
	margin-bottom: 80px;
	width: 100%;
}
img.title{
	width: auto;
	height: 52px;
	}
a{
	color: #3AA7AE;
	text-decoration: none;
}
a.logo{
	width: 180px;
}
.sp_only{
	display: none !important;
}
@media screen and (max-width: 768px) {
	img.title{
		height: 40px;
		}
	.title_wrap{
		margin: 40px auto;
	}
	.sectionMt{
		margin-top: 160px;
	}
	.sp_only{
		display: block !important;
	}
	.pc_only{
		display: none !important;
	}
	header div.content{
		padding:0 3rem 0 1rem !important;
	}
}

/* Navigation */
header {
	top: 0;
	background-color: #fff;
	position: fixed;
	z-index: 99;
	width: 100%;
	opacity: 0.9;
}
header div.content{
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 3rem 0 2rem;
	margin: 0 auto;
}
header img {
	max-width: 140px;
	height: auto;
	margin-right: auto;
	width: 100%;
	margin: 10px 0 5px 0;
}
div.link {
	font-size: 15px;
	margin-right: 40px;
	text-align: left;
	font-weight: bold;
}
div.links{
	display: inline-flex;
	justify-content:space-between;
	justify-content: flex-end;
}
div.last{
	margin-right: 0;
}
.link a {
	text-decoration: none;
	color: #5E6362;
}
.link:hover a {
	transition: all 0.15s linear;
	color: #3AA7AE;
}

/* for SMP */
#g-nav{
	position:fixed;
	z-index: -1;
	opacity: 0;
	top:0;
	width:100%;
	background:#3AA7AE;
	transition: all 0.3s;
}
#g-nav.panelactive{
  opacity: 1;
  z-index:99;
  height: 100vh;
}
#g-nav ul {
    display: none;
    position: absolute;
    z-index: 99;
    top:53%;
    left:47%;
    transform: translate(-50%,-50%);
}
#g-nav.panelactive ul {
    display: block;
}
#g-nav li{
  list-style: none;
  text-align: center; 
}
#g-nav li a{
  color: #ffffff;
  text-decoration: none;
  padding:10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
  font-size: 15px;
  padding-bottom: 32px;
}
.openbtn1{
  position:fixed;
  z-index: 100;
  top:5px;
  right: 5px;
  cursor: pointer;
  width: 50px;
  height:50px;
} 
.openbtn1 span{
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 14px;
	height: 3px;
	border-radius: 2px;
	background-color: #3AA7AE;
	width: 45%;
}
.active span{
	background-color: #fff;
}
.openbtn1 span:nth-of-type(1) {
  top:15px; 
}
.openbtn1 span:nth-of-type(2) {
  top:23px;
}
.openbtn1 span:nth-of-type(3) {
  top:31px;
}
.openbtn1.active span:nth-of-type(1) {
    top: 18px;
    left: 13px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
}
.openbtn1.active span:nth-of-type(2) {
  opacity: 0;
}
.openbtn1.active span:nth-of-type(3){
    top: 30px;
    left: 13px;
    transform: translateY(-6px) rotate(45deg);
    width: 50%;
}
.openbtn1, #g-nav{
	display: none;
}
@media screen and (max-width: 768px) {
	div.link {
		display: none;
	}
	.openbtn1,#g-nav{
		display: block;
	}
}

/* Hero Section */
div.hero{
	z-index: 3;
	position: absolute;
	display: inline-block;
	margin: 7rem 0 0 2rem;
}
h1{
	font-size:9vw;
	color: #3AA7AE;
	font-weight: bold;
	line-height: 1.2;
	letter-spacing: .08em;
	margin: 0;
	padding: 0;
}
p.hero{
	color: #fff;
	font-size: 2vw;
	font-weight: bold;
	text-align: left;
	line-height: 2;
	letter-spacing: .5em;
	z-index: 4;
	position: relative;
	padding-top: 2rem;
}
img.main{
	position: relative;
	z-index: 2;
	max-width: 1440px;
	height: auto;
	float: right;
	width: 75vw;
	margin-top: 7rem;
	animation: Leftmain 0.6s ease-in-out forwards;
}
img.bg{
	z-index: 1;
	position: absolute;
	max-width: 1440px;
	height: auto;
	top: 18rem;
	width: 75vw;
	animation: Rightmain 0.6s ease-in-out forwards;
}
  @keyframes Leftmain{
	from {
	  opacity: 0;
	transform: translateX(400px);
	}
	to {
	  opacity: 1;
	transform: translateX(0);
	}
  }
  @keyframes Rightmain{
	from {
	  opacity: 0;
	transform: translateX(-500px);
	}
	to {
	  opacity: 1;
	transform: translateX(0);
	}
  }
@media screen and (min-width: 1280px) {
	h1{
		font-size:7.5vw;
	}
	img.main{
		width: 65vw;
	}
	p.hero{
		font-size: 1.5vw;
		padding-left:8px;
	}
	.scrolldown1 span{
		font-size: 18px;
		}
	.scrolldown1{
	left: 5rem;
	bottom: -1rem;
  }
}

/*Scroll txt*/
  .scrolldown1{
	position:absolute;
	left: 1rem;
	bottom: -1rem;
  }
  .scrolldown1 span{
	position: absolute;
	left:-15px;
	top: -15px;
	color: #ffffff;
	font-size: 14px;
	letter-spacing: 0.05em;
  }
  .scrolldown1::after{
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 30px;
	background: #ffffff;
	animation: pathmove 3s ease-in-out infinite;
	opacity:0;
  }
  @keyframes pathmove{
	0%{
	  height:0;
	  top:0;
	  opacity: 0;
	}
	30%{
	  height:30px;
	  opacity: 1;
	}
	100%{
	  height:0;
	  top:50px;
	  opacity: 0;
	}
  }
  @media screen and (max-width: 768px) {
	img.main{
		max-width: 750px;
		height: auto;
		width: 85vw;
		margin-top: 7rem;
	}
	div.hero{
		margin: 19rem 0 0 1rem;
	}
	img.bg{
		max-width: 768px;
		height: auto;
		top: 30rem;
		width: 100vw;
		animation: Rightmain 0.6s ease-in-out forwards;
	}
	p.hero{
		font-size: 4vw;
		padding-left:8px;
		padding:0;
		line-height: 1.8;
	}
	h1{
		font-size:15vw;
		line-height: 1.2;
		letter-spacing: .1em;
	}
}
@media screen and (max-width: 420px) {
	img.main{
		margin-top: 4rem;
	}
	img.bg{
		top:23rem;
		width:80vw;
	}
	div.hero{
		margin:18rem 0 0 1rem;
	}
	.sectionMb{
		margin-bottom: 100px;
	}
	.message_wrap{
		margin: 0 auto !important;
	}
}

/* News Section*/
.news_wrap{
	max-width: 800px;
	margin: 0 auto;
}
.text_column{
	text-align: left;
	line-height: 2;
	margin: 0 20px 20px;
	border-bottom: 1px solid #CCD3D2;
}
.category{
	color: #3AA7AE;
	font-weight: bold;
	padding-right: 10px;
}
.date{
	padding-right: 10px;
}
.new{
	color: #3AA7AE;
	font-weight: bold;
	display: inline-block;
	border: #3AA7AE solid 1px;
	padding: 4px 6px;
	line-height: 1;
	font-size: 14px;
}

/* Messages Section*/
.message_txt{
	text-align: left;
}
.message_wrap{
	display: flex;
  	justify-content: space-between;
	z-index: 50;
	width: 100%;
}
.message_img{
	position: relative;
	z-index: 50;
	width: 75%;
	max-width: 460px;
	margin-top: 10px;
}
.message_bg{
	position: relative;
	right: 0;
	z-index: 40;
	width: 90%;
	left: 6rem;
	margin-top: -70px;
}
.message_txt{
	width: 68%;
	margin: 0 2rem 0 0;
	line-height: 2.5;
	letter-spacing: 0.1em;
}
.message_txt span{
	font-size: 17px;
	font-weight: bold;
	color: #3AA7AE;
}
@media screen and (max-width: 768px) {
	.message_wrap{
		display: block;
		margin: 0 20px;
	}
	.message_txt{
		line-height: 2;
		margin: 0 auto;
		width:90%;
	}
	.message_txt br{
		display: none;
	}
	.message_img{
		margin: 0 auto;
		width: 100%;
		padding-bottom: 30px;
	}
	.message_img img{
		width: 90%;
		max-width: 320px;
		margin: 0 auto;
		margin-right: 0;
	}
	.message_bg{
		display: none;
	}
	.message_txt span{
		font-size: 17px;
	}
}

/* Works Section*/
.works_wrap{
	display: flex;
	justify-content: space-between;
	width: 90%;
	margin: 0 auto;
}
.works {
	width:30%;
}
.works p{
	text-align: left;
	line-height: 1.8;
}
.works h3{
	text-align: center;
	color: #5E6362;
}
.cards {
	width: 100%;
	height: auto;
	max-width: 100px;
	max-height: 100px;
}
@media screen and (max-width: 768px) {
	.works_wrap{
		display: block;
		margin: 0 20px;
	}
	.works {
		width:100%;
		margin-top: 50px;
	}
	.works h3{
		margin-top: 10px;
	}
}

/* Company Section*/
.company_wrap{
	display: flex;
  	justify-content: space-between;
	z-index: 50;
	width: 90%;
	margin: 0 auto;
}
.company_txt{
	width: 50%;
	margin-right: 2rem; 
	line-height: 2;
	text-align: left;
}
td.title{
	color: #5E6362;
	opacity: 0.38;
	white-space: nowrap;
	width: 120px;
	vertical-align: top;
}
.company_txt td{
	padding-bottom: 16px;
}
.company_img{
	width: 100%;
	height: auto;
}
@media screen and (max-width: 768px) {
	.company_wrap{
		display: block;
	}
	.company_wrap table td{
		display: block;
		margin: 0;
		padding: 0;
	}
	.company_wrap table td.title{
		padding-top: 20px;;
	}
	.company_txt{
		width: 100%;
		margin: 0 auto;
	}
	.company_img{
		margin-top: 40px;
	}
}

/* form style */
.contact{
	background-color: #F3F6F6;
	text-align: center;
	padding: 120px 0;
}
.contact p.txt{
	font-weight: bold;
	line-height: 1.8;
}
p.txt span{
	color: #3AA7AE;
}
.form {
	margin-top: 80px;
	margin-left: auto;
	margin-right: auto;
	max-width: 680px;
	text-align: left;
  }
.form-item {
	width: 100%;
	display: flex;
	align-items: center;
	margin-bottom: 40px;
  }
.form-item-Label.isMsg {
	margin-top: 8px;
	margin-bottom: auto;
  }
.form-item-label {
	border-radius: 2px;
	margin-left: 8px;
	padding: 4px 6px;
	display: inline-block;
	text-align: center;
	background: #3AA7AE;
	color: #fff;
	font-size: 12px;
  }
.form-item-input {
	border: 1px solid #CCD3D2;
	border-radius: 6px;
	padding: 0 1rem;
	height: 42px;
	filter: drop-shadow(0 #ffffff);
	width: 100%;
	background: #fff;
	font-size: 18px;
  }
.form-item-input:not([readonly]):focus,
.form-item-textarea:not([readonly]):focus{
	border: 2px solid #3AA7AE;
	outline: none;
}
.form-item-textarea {
	border: 1px solid #CCD3D2;
	border-radius: 6px;
	padding: 1rem;
	height: 120px;
	width: 100%;
	background: #fff;
	font-size: 16px;
	letter-spacing: 0.05em;
	font-weight: normal;
	color: #5E6362;
  }
.form_first{
	margin-right: 20px;
}
input[type=submit]{
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
}
.form-btn {
	border-radius: 50px;
	padding: 20px 40px;
	width: 240px;
	display: block;
	letter-spacing: 0.05em;
	background: #3AA7AE;
	color: #fff;
	font-weight: bold;
	font-size: 15px;
	border: none;
	margin: 0 auto;
	z-index: 999;
	text-align: center;
  }
.back_btn{
	margin-bottom: 20px;
	background: #fff;
	color: #3AA7AE;
	border: 1px solid #3AA7AE;
	z-index: 999;
}
.form-btn:hover{
	  opacity: 50%;
	  transition: all 0.15s linear;
  }
.done{
	height: 60vh;
}
.done img{
	width: 120px;
	height: auto;
	padding: 50px;
	margin-right: 10px;
	margin-top: 20px;
}
::placeholder{
	  color: #CCD3D2;
	  font-size: 15px;
  }
  @media screen and (max-width: 420px) {
	section.contact{
		padding: 40px 0;
		z-index: 999;
	}	
	.form_wrap{
		width: 90%;
	}
	.form {
	  margin-top: 40px;
	  width: 90%;
	}
	.form-item {
		flex-wrap: wrap;
	}
	.form-item-Label {
		width: 100%;
		max-width: 248px;
		font-size: 15px;
	}
	.form-item-Label {
		max-width: inherit;
		display: flex;
		align-items: center;
		font-size: 14px;
		color: #5E6362;
	}
	.form-item-Label.isMsg {
		margin-top: 0;
	}
	.form-item-label {
		border-radius: 4px;
		padding: 4px 0;
		width: 32px;
		font-size: 10px;
	}
	.form-item-input {
		margin: 10px 0 0;
		height: 40px;
		flex: inherit;
		font-size: 16px;
	}
	.form-item-textarea {
		margin-left: 0;
		height: 160px;
		flex: inherit;
		font-size: 16px;
	}
	.form_first{
		margin-right: 0px;
	}
  }
/* 入力エラーのスタイル */
input[type=text]:required,
input[type=email]:required,
input[type=email]:invalid,
textarea:required {
	color: #c20c33;
	border-color: #c20c33;
	background-color: #ffd9e1;
}

/* 入力値が正常な時のスタイル */
input[type=text]:valid,
input[type=email]:valid,
textarea:valid {
	color: #5E6362;
	border-color: #CCD3D2;
	background: #fff;
}

div.alert{
	color: #c20c33;
	font-size: 12px;
	margin: 0 10px;
	vertical-align: top;
	max-width: 150px;
	width: 70%;
}

@media screen and (max-width: 420px) {
	div.alert{
		margin: 10px 0;
		font-size: 14px;
		max-width: 375px;
		width: 100%;
	}
	}

/* copyrights info */
.copyright {
	text-align: center;
	font-size: 12px;
	padding-top: 20px;
	padding-bottom: 20px;
	background: linear-gradient(0.25turn, #3AA7AE, #7EEDA7);
	color: #fff;
	font-weight: bold;
	border-top-width: 2px;
}

/* animation */
.fade-in {
	opacity: 0;
	transition-duration: 500ms;
	transition-property: opacity, transform;
  }
.fade-in-up {
	transform: translate(0, 50px);
  }
.fade-in-down {
	transform: translate(0, -50px);
  }
.fade-in-left {
	transform: translate(-50px, 0);
  }
.fade-in-right {
	transform: translate(50px, 0);
  }
.fadetime01, .fadetime02, .fadetime03, .fadetime04{
	display:none;
}
.scroll-in {
	opacity: 1;
	transform: translate(0, 0);
  }

