@charset "UTF-8";

/* KV */
#kv {
	width: 100%;
	height: 100vh;
	min-height: 550px;
	max-height: 902px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	background: url(../images/contents/kv_bg.jpg) center bottom / cover no-repeat;
}
	#kv h2 {
		width: 100%;
		max-width: 1140px;
		margin: 0 auto;
		padding: 0 0 80px;
	}
		#kv h2 span {
			display: block;
			margin: 0;
			padding: 0 0 0 40px;
			font-size: 58px;
			line-height: 180%;
			font-weight: var(--weight-extrabold1);
			color: #b21c4a;
			text-align: left;
			text-shadow:0 0 10px #fff,
				0 0 15px #fff;
			transition: 0.2s linear;
		}
@media screen and (max-width:900px) { 
		#kv h2 span {
			font-size: 50px;
		}
}

/* 共通 */
h3.ttl_en {
	margin: 0;
	padding: 0 30px;
	font-size: 133px;
	line-height: 100%;
	font-weight: var(--weight-extrabold1);
	color: rgba(178,28,74,0.07);
}
h2.ttl_jp {
	margin: -35px 0 0;
	padding: 0;
	font-size: 35px;
	line-height: 120%;
	font-weight: var(--weight-extrabold1);
	color: #b21c4a;
}
h4 {
	margin: 0 0 10px;
	padding: 0;
	font-size: 30px;
	line-height: 160%;
	font-weight: var(--weight-extrabold1);
}
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);
	}

/* コンセプト */
#concept {
	margin: 0 auto;
	padding: 0 0 75px;
	background: #b21c4a;
	position: relative;
}
	#concept:after {
		position: absolute;
		content: '';
		display: block;
		width: 100%;
		height: 227px;
		margin: 0;
		padding: 0;
		background: url(../images/contents/concept_btm.png) center / cover no-repeat;
		left: 0;
		bottom: 0;
	}
	#concept div {
		max-width: 1040px;
		margin: 0 auto;
		padding: 0 20px;
		text-align: left;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		z-index: 1;
	}
		#concept div h2 {
			width: 460px;
			margin: 0;
			padding: 0;
			font-size: 58px;
			line-height: 160%;
			color: #fff;
			letter-spacing: 0.05em;
			transition: 0.2s linear;
		}
@media screen and (max-width:1000px) { 
		#concept div h2 {
			width: 350px;
			font-size: 50px;
			line-height: 160%;
		}
}
		#concept div h3 {
			width: calc(100% - 460px);
			margin: 0;
			padding: 0;
			color: #fff;
			font-weight: var(--weight-nomal);
			transition: 0.2s linear;
		}
@media screen and (max-width:1000px) { 
		#concept div h3 {
			width: calc(100% - 350px);
		}
}
			#concept div h3 p {
				margin: 25px 0 0;
				padding: 0;
			}
				#concept div h3 p:first-of-type {
					margin-top: 0;
				}
@media screen and (max-width:850px) { 
				#concept div h3 p br {
					display: none;
				}
}

/* 事業概要 */
#business {
	margin: 0 auto;
	padding: 20px 0 115px;
	background: #f0f0f0;
}
	#business div.cont_ttl {
		margin: 0 auto;
		padding: 0;
	}
		#business div.cont_ttl h3.ttl_en {
			
		}
	#business ul {
		max-width: 990px;
		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: 43.5%;
			margin: 45px 3.25% 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;
				justify-content: center;
				align-items: center;
				position: relative;
				flex-grow: 1;
			}
				#business ul li div.txt span {
					position: absolute;
					display: block;
					margin: 0;
					padding: 0;
					font-size: 133px;
					line-height: 100%;
					font-weight: var(--weight-extrabold1);
					color: rgba(178,28,74,0.07);
					letter-spacing: -0.05em;
					top: -0.1em;
					left: 1%;
				}
				#business ul li div.txt h4 {
					margin: 0;
					padding: 0;
					font-size: 26px;
					line-height: 160%;
					font-weight: var(--weight-bold1);
					color: #b21c4a;
					position: relative;
					z-index: 1;
				}
				#business ul li div.txt p {
					margin: 5px 0 0;
					padding: 0 9.5%;
					text-align: left;
					position: relative;
					z-index: 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: 0 0 40px;
	background: url(../images/contents/company_bg.jpg) center / cover no-repeat;
}
	#company div.cont_ttl {
		margin: 0 auto;
		padding: 0;
		text-align: right;
	}
		#company div.cont_ttl div {
			display: inline-block;
			margin: 0;
			padding: 0;
			text-align: center;
		}
	#company div.contents_cont {
		max-width: 826px;
		margin: 20px auto 0;
		padding: 30px 4.5% 24px;
		background: rgba(255,255,255,0.67);
	}
		#company div.contents_cont dl {
			border-bottom: 1px solid #b21c4a;
			}
				#company div.contents_cont dl dt, #company div.contents_cont dl dd {
					border-top: 1px solid #b21c4a;
				}
					#company div.contents_cont dl dt:first-of-type, #company div.contents_cont dl dd:first-of-type {
						border-top: none;
					}
	#company div.gmap {
		width: 100%;
		height: 450px;
		margin: 34px auto 0;
		padding: 0;
		position: relative;
	}
		#company 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;
		padding: 0;
		text-align: left;
	}
		#contact div.cont_ttl div {
			display: inline-block;
			margin: 0;
			padding: 0;
			text-align: center;
		}

	#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: 20px;
			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: #b21c4a;
						text-decoration: none;
						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%;
		color: #fff;
		background: #b21c4a;
	}

