@charset "UTF-8";

/* KV */
#kv {
	width: 100%;
	height: 100vh;
	min-height: 550px;
	max-height: 902px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	background: url(../images/contents/kv_bg.jpg) center bottom / cover no-repeat;
}
	#kv h2 {
		width: 100%;
		max-width: 1140px;
		margin: 0 auto;
		padding: 0;
	}
		#kv h2 span {
			display: block;
			margin: 0;
			padding: 0 0 0 10px;
			font-size: 58px;
			line-height: 160%;
			font-weight: var(--weight-extrabold1);
			color: #16334f;
			text-align: left;
			text-shadow:0 0 10px #fff,
				0 0 15px #fff;
			transition: 0.2s linear;
		}
	#kv h3 {
		width: 100%;
		max-width: 1140px;
		margin: 0 auto;
		padding: 0 0 50px;
	}
		#kv h3 span {
			display: block;
			margin: 10px 0 0;
			padding: 0 0 0 calc(15px + 1.2em);
			text-indent: -1.2em;
			font-size: 21px;
			line-height: 160%;
			font-weight: var(--weight-bold2);
			color: #009e95;
			font-family: "Roboto", sans-serif;
			text-align: left;
			text-shadow:0 0 10px #fff,
				0 0 15px #fff;
			transition: 0.2s linear;
		}

/* 共通 */
div.cont_ttl {
	padding: 0;
	position: relative;
	z-index: 1;
}
	div.cont_ttl h3.ttl_en {
		position: absolute;
		margin: 0;
		padding: 0;
		font-size: 133px;
		line-height: 100%;
		font-weight: var(--weight-extrabold2);
		color: rgba(0,158,149,0.07);
		font-family: "Roboto", sans-serif;
		font-style: italic;
		white-space: nowrap;
		top: -80px;
	}
	div.cont_ttl h2.ttl_jp {
		margin: 95px 0 0;
		padding: 0;
		font-size: 35px;
		line-height: 120%;
		font-weight: var(--weight-extrabold1);
		color: #16334f;
		text-shadow:0 0 10px #fff,
			0 0 15px #fff,
			0 0 15px #fff,
			0 0 15px #fff;
		position: relative;
		z-index: 1;
	}
div.contents_in {
	max-width: 1220px;
	margin: 0 auto;
	padding: 0 20px;
}
div.txt_cont {
	width: 640px;
	margin: 70px 0 0;
	padding: 0 45px;
	text-align: left;
}
	div.txt_cont p {
		margin: 25px auto 0;
	}
dl {
	width: 100%;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}
	dl dt,
	dl dd {
		margin: 0;
		padding: 12px 16px;
		text-align: left;
	}
	dl dt {
		width: 150px;
	}
	dl dd {
		width: calc(100% - 150px);
	}

/* ミッション */
#mission {
	margin: 0 auto;
	min-height: 213px;
	padding: 0;
	background: #16334f;
	position: relative;
}
	#mission:after {
		position: absolute;
		content: '';
		display: block;
		width: 100%;
		height: 227px;
		margin: 0;
		padding: 0;
		background: url(../images/contents/message_btm.png) center bottom / cover no-repeat;
		left: 0;
		bottom: 0;
	}
	#mission div {
		max-width: 1300px;
		margin: 0 auto;
		padding: 0 20px 65px;
		text-align: left;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		z-index: 1;
	}
		#mission div h2 {
			position: absolute;
			margin: 0;
			padding: 0 40px;
			font-size: 70px;
			line-height: 100%;
			color: rgba(255,255,255,0.3);
			font-family: "Roboto", sans-serif;
			font-weight: var(--weight-bold2);
			top: -90px;
			right: 0;
		}
		#mission div h3 {
			width: 750px;
			margin: 0;
			padding: 0;
			font-size: 24px;
			line-height: 160%;
			color: rgba(255,255,255,0.3);
			font-weight: var(--weight-bold2);
			text-align: right;
		}
		#mission div h4 {
			max-width: 765px;
			margin: 10px 0 0;
			padding: 0;
			color: #fff;
			font-weight: var(--weight-nomal);
		}
			#mission div h4 p {
				margin: 0;
				padding: 0;
				line-height: 180%;
			}


/* 事業概要 */
#business {
	margin: 0 auto;
	padding: 20px 0 115px;
}
	#business div.cont_ttl {
		margin: 0 auto;
	}
		#business div.cont_ttl h3.ttl_en {
			margin: 0 auto;
			left: 50%;
			transform: translateX(-50%);
			-webkit- transform: translateX(-50%);
		}
		#business div.cont_ttl h4 {
			margin: 15px auto 0;
			padding: 0;
			font-size: 18px;
			line-height: 160%;
			font-weight: var(--weight-bold1);
			color: #16334f;
		}
	#business ul {
		max-width: 1160px;
		margin: 0 auto;
		padding: 10px 0 0;
		list-style: none;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
		#business ul li {
			width: 100%;
			max-width: 45%;
			margin: 45px 2.5% 0;
			padding: 0;
			display: flex;
			flex-direction: column;
		}
			#business ul li div.txt {
				width: 100%;
				margin: 0;
				padding: 15px 0 10px;
				background: #fff;
				display: flex;
				flex-direction: column;
				flex-grow: 1;
			}
				#business ul li div.txt h4 {
					margin: 0 auto;
					padding: 0 5%;
					font-size: 24px;
					line-height: 160%;
					font-weight: var(--weight-bold2);
					color: #16334f;
				}
					#business ul li div.txt h4 small {
						display: block;
						margin: -2px auto 0;
						padding: 0;
						font-size: 11px;
						line-height: 160%;
						font-weight: var(--weight-nomal);
						color: #009e95;
						letter-spacing: 0.1em;
						font-family: "Roboto", sans-serif;
					}
				#business ul li div.txt p {
					margin: 8px 0 0;
					padding: 0 5%;
					text-align: left;
					flex-grow: 1;
				}
			#business ul li div.img {
				width: 100%;
				margin: 0;
				padding: 0;
			}
				#business ul li div.img img {
					width: 100%;
					height: 224px;
					object-fit: cover;
				}

/* 会社概要 */
#company {
	margin: 0 auto;
	padding: 30px 0 30px;
	background: url(../images/contents/company_bg.jpg) center bottom / cover no-repeat;
}
	#company div.cont_ttl {
		margin: 0 auto;
		text-align: right;
	}
		#company div.cont_ttl h3.ttl_en {
			margin: 0;
			right: 60px;
		}
		#company div.cont_ttl h2.ttl_jp {
			padding-right: 180px;
		}
	#company div.contents_cont {
		max-width: 1220px;
		margin: 40px auto 0;
		padding: 30px 55px 45px;
		background: rgba(255,255,255,0.67);
	}
		#company div.contents_cont dl {
			width: 720px;
			border-bottom: 1px solid #16334f;
			}
				#company div.contents_cont dl dt, #company div.contents_cont dl dd {
					border-top: 1px solid #16334f;
				}
					#company div.contents_cont dl dt:first-of-type, #company div.contents_cont dl dd:first-of-type {
						border-top: none;
					}
					#company div.contents_cont dl dd p {
						margin: 15px 0 0;
						padding: 0;
					}
						#company div.contents_cont dl dt:first-of-type, #company div.contents_cont dl dd p:first-of-type {
							margin-top: 0;
						}
						#company div.contents_cont dl dd p span {
							display: block;
							margin: 5px 0 0;
							font-weight: var(--weight-bold1);
							font-style: italic;
						}
						#company div.contents_cont dl dd p small {
							display: block;
							margin: 3px 0 0;
							font-size: 14px;
							line-height: 160%;
						}
		#company div.contents_cont h5 {
			margin: 25px auto 0;
			padding: 0;
			font-size: 16px;
			line-height: 160%;
			font-weight: var(--weight-bold2);
		}
		#company div.contents_cont div.gmap {
			width: 100%;
			height: 450px;
			margin: 10px auto 45px;
			padding: 0;
			position: relative;
		}
			#company div.contents_cont div.gmap:last-of-type {
				margin-bottom: 0;
			}
			#company div.contents_cont div.gmap iframe {
				position: absolute;
				width: 100%;
				height: 100%;
				margin: 0;
				padding: 0;
				top: 0;
				left: 0;
			}

/* お問い合わせ */
#contact {
	margin: 0 auto;
	padding: 80px 0 15px;
}
	#contact div.cont_ttl {
		margin: 0 auto;
		text-align: left;
	}
		#contact div.cont_ttl h3.ttl_en {
			margin: 0;
			left: 30px;
		}
		#contact div.cont_ttl h2.ttl_jp {
			padding-left: 160px;
		}

	#contact div.contact_cont {
		max-width: 1020px;
		margin: 30px auto 0;
		padding: 45px 94px 35px;
		background: #fff;
		transition: 0.2s linear;
	}
@media screen and (max-width:1010px) { 
	#contact div.contact_cont {
		padding: 45px 80px 35px;
	}
}
@media screen and (max-width:900px) { 
	#contact div.contact_cont {
		padding: 45px 50px 35px;
	}
}
		#contact div.contact_cont h4 {
			margin: 0 auto;
			padding: 0;
			font-size: 16px;
			line-height: 160%;
			font-weight: var(--weight-bold1);
		}
		#contact div.contact_cont div.contact_box {
			margin: 35px auto 0;
			padding: 0;
			display: flex;
			justify-content: space-between;
			align-items: flex-start;
		}
			#contact div.contact_cont div.contact_box div {
				display: inline-block;
				margin: 0;
				padding: 0;
			}
				#contact div.contact_cont div.contact_box div h5 {
					margin: 0 auto;
					padding: 0;
					font-size: 18px;
					line-height: 160%;
					font-weight: var(--weight-bold1);
				}
				#contact div.contact_cont div.contact_box div h6 {
					margin: 0 auto;
					padding: 0 30px 0 0;
					font-size: 36px;
					line-height: 160%;
					font-weight: var(--weight-bold2);
					transition: 0.2s linear;
				}
@media screen and (max-width:1010px) { 
				#contact div.contact_cont div.contact_box div h6 {
					padding: 0 15px 0 0;
					font-size: 32px;
					line-height: 160%;
				}
}
@media screen and (max-width:900px) { 
				#contact div.contact_cont div.contact_box div h6 {
					font-size: 28px;
					line-height: 160%;
				}
}
					#contact div.contact_cont div.contact_box div h6 a {
						margin: 0 auto;
						padding: 0;
						color: #16334f;
						text-decoration: none;
						font-family: "Roboto", sans-serif;
						display: flex;
						justify-content: center;
						align-items: center;
					}
						#contact div.contact_cont div.contact_box div h6 a img {
							display: inline-block;
							margin: 3px 8px 0 0;
						}
						#contact div.contact_cont div.contact_box div h6 a.tel {
							pointer-events: none;
						}
				#contact div.contact_cont div.contact_box div p {
					margin: 0 auto;
					padding: 0 30px 0 0;
					font-size: 12px;
					line-height: 160%;
				}
	#contact #copy {
		width: 100%;
		margin: 70px auto 0;
		padding: 15px;
		font-size: 16px;
		line-height: 180%;
		font-family: "Roboto", sans-serif;
		color: #fff;
		background: #16334f;
	}

