@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
/* mainVisual */
.mainVisual {
	position: relative;
	aspect-ratio: 140/83;
	line-height: 0;
}
.mainVisual .photo {
	width: 100%;
	height: 100%;
}
.mainVisual .photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.mainVisual video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.mainVisual .content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-62%);
	z-index: 1;
	width: 100%;
	max-width: 120rem;
}
.mainVisual .textBox {
	margin-top: 2rem;
}
.mainVisual .title {
	margin-bottom: 4.5rem;
	font-size: 6.5rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.41;
	letter-spacing: 0.24em;
}
.mainVisual .text {
	text-align: center;
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1.69;
	letter-spacing: 0.22em;
}
@media all and (max-width: 896px) {
	.mainVisual {
		aspect-ratio: 750/1266;
	}
	.mainVisual .content {
		max-width: 100%;
	}
	.mainVisual .textBox {
		margin: 0;
	}
	.mainVisual .title {
		width: 9.2rem;
		height: 37.5rem;
		margin-bottom: 0;
		position: absolute;
		top: calc(50% - 27rem);
		right: 5.5rem;
		font-size: 3rem;
		text-align: right;
		line-height: 1.53;
		letter-spacing: 0.13em;
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
	}
	.mainVisual .title span {
		margin-bottom: -4.5rem;
		display: inline-block;
	}
	.mainVisual .text {
		width: 4.4rem;
		height: 37rem;
		position: absolute;
		top: calc(50% - 12rem);
		right: 16rem;
		text-align: left;
		font-size: 1.3rem;
		line-height: 1.69;
		letter-spacing: 0.2em;
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
	}
}
/* news */
#main .recruite {
	padding-top: 1rem;
	background-color: #222;
	position: relative;
}
#main .recruite::after {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: 16rem;
	content: "";
	z-index: 1;
	background: url(../img/index/news_bg.png) no-repeat left bottom / 100% 100%;
}
#main .recruite .recruitBox {
	position: relative;
	z-index: 3;
	margin-top: -13rem;
	width: 26.6rem;
}
#main .recruite .recruitBox a {
	display: block;
}
#main .recruite .recruitBox a:hover {
	opacity: 0.7;
}
@media all and (max-width: 896px) {
	#main .recruite {
		margin-bottom: 2rem;
	}
	#main .recruite::after {
		background-size: 100% 6.3rem;
	}
	#main .recruite .recruitBox {
		margin: -8.5rem 0 0 1rem;
		width: 13.6rem;
	}
}
/* about */
#main .about {
	margin: -13rem 0 5.2rem;
	padding-bottom: 10.5rem;
	position: relative;
}
#main .about::after {
	position: absolute;
	bottom: 0;
	left: -4rem;
	content: "";
	z-index: 1;
	width: 40.3rem;
	height: 7rem;
	background: url(../img/index/about_img02.png) no-repeat left bottom / 100%;
}
#main .about .headLine01 {
	margin-bottom: 3.8rem;
}
#main .about .headLine01 .en img {
	height: 5.7rem;
}
#main .about .imgBox {
	padding-left: 2rem;
	margin-left: auto;
	width: calc(50% + 62rem);
	flex-direction: row-reverse;
	align-items: center;
}
#main .about .imgBox .photoBox {
	position: relative;
	width: calc(50% - 5rem);
	z-index: 2;
}
#main .about .imgBox .textBox {
	margin-top: 15.3rem;
	width: calc(50% - 3rem);
}
#main .about .imgBox .textBox .title {
	margin-bottom: 3.7rem;
	text-align: center;
	font-size: 3.3rem;
	font-weight: 600;
	line-height: 1.69;
	letter-spacing: 0.19em;
}
#main .about .imgBox .textBox .text {
	text-align: justify;
	line-height: 2.5;
}
@media all and (min-width: 897px) {
	#main .about .imgBox .photoBox::after {
		position: absolute;
		top: 8rem;
		left: -16rem;
		content: "";
		background: url(../img/index/about_img01.png) no-repeat left top / cover;
		z-index: -1;
		width: 34.3rem;
		height: 6.7rem;
	}
}
@media all and (max-width: 896px) {
	#main .about {
		margin: 0 0 3.2rem;
		padding-bottom: 6.7rem;
	}
	#main .about::before {
		position: absolute;
		top: -5.7rem;
		right: -7.5rem;
		content: "";
		z-index: 1;
		width: 17.2rem;
		height: 4.3rem;
		background: url(../img/index/about_img01_sp.png) no-repeat left bottom / 100%;
	}
	#main .about::after {
		left: -9rem;
		width: 20.3rem;
		height: 3.6rem;
		background-image: url(../img/index/about_img02_sp.png);
	}
	#main .about .headLine01 {
		margin-bottom: 1.7rem;
	}
	#main .about .headLine01 .en {
		font-size: 3.8rem;
	}
	#main .about .headLine01 .jp {
		font-size: 0.9rem;
	}
	#main .about .imgBox {
		padding: 0 2rem;
		width: auto;
		display: block;
	}
	#main .about .imgBox .photoBox {
		margin-bottom: 3.4rem;
		width: auto;
	}
	#main .about .imgBox .photoBox img {
		width: 100%;
	}
	#main .about .imgBox .textBox {
		margin-top: 0;
		width: auto;
	}
	#main .about .imgBox .textBox .title {
		margin-bottom: 1.8rem;
		font-size: 1.65rem;
		letter-spacing: 0.18em;
	}
	#main .about .imgBox .textBox .text {
		margin: 0 1.5rem;
		line-height: 1.875;
	}
}
/* service */
#main .service {
	margin-bottom: 28.5rem;
}
#main .service .headLine02 {
	margin-bottom: 4.5rem;
}
#main .service .headLine02 .en {
	letter-spacing: 0.04em;
}
#main .service .info {
	margin-bottom: 7.2rem;
	text-align: center;
	line-height: 2.5;
}
#main .service .imgBox {
	margin-bottom: 4.3rem;
}
#main .service .imgBox:last-of-type {
	margin-bottom: 0;
}
#main .service .imgBox:nth-child(2n-1) {
	flex-direction: row-reverse;
}
#main .service .imgBox .photoBox {
	width: 70.8%;
}
#main .service .imgBox .photoBox img {
	width: 100%;
}
#main .service .imgBox .textBox {
	position: relative;
	z-index: 2;
	margin: 2.3rem -6rem 0 0;
	width: 41rem;
	display: flex;
	align-items: center;
}
#main .service .imgBox .textBox .sub {
	margin-left: auto;
	width: 33.5rem;
}
#main .service .imgBox .textBox .text {
	line-height: 2.5;
	text-align: justify;
	font-feature-settings: "palt";
}
#main .service .imgBox:nth-child(2n) .textBox {
	margin: 2.3rem 0 0 -6rem;
}
#main .service .imgBox:nth-child(2n) .textBox .sub {
	margin-left: 0;
}
@media all and (max-width: 896px) {
	#main .service {
		margin-bottom: 12rem;
	}
	#main .service .content {
		padding: 0 3.5rem;
	}
	#main .service .headLine02 {
		margin-bottom: 2.3rem;
	}
	#main .service .info {
		margin-bottom: 3.2rem;
		line-height: 1.875;
	}
	#main .service .imgBox {
		margin-bottom: 4.3rem;
		display: block;
	}
	#main .service .imgBox:last-of-type {
		margin-bottom: 0;
	}
	#main .service .imgBox .photoBox {
		margin-bottom: 2rem;
		width: auto;
	}
	#main .service .imgBox .textBox {
		margin: 0 !important;
		width: auto;
		display: block;
	}
	#main .service .imgBox .textBox .sub {
		width: auto;
	}
	#main .service .imgBox .textBox .text {
		line-height: 1.875;
		font-feature-settings: normal;
	}
}
/* company */
#main .company .photoBox {
	margin-bottom: 6rem;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40rem;
	background: url(../img/index/company_photo01.jpg) no-repeat center top / cover;
}
#main .company .text {
	line-height: 2.5;
	text-align: center;
}
#main .company .comBtn {
	margin-top: 5rem;
}
@media all and (max-width: 896px) {
	#main .company .content {
		padding: 0 3.7rem;
	}
	#main .company .photoBox {
		margin-bottom: 1.7rem;
		min-height: 17.4rem;
		background-image: url(../img/index/company_photo01_sp.jpg);
		background-position: center center;
	}
	#main .company .text {
		line-height: 1.875;
	}
	#main .company .comBtn {
		margin-top: 3rem;
	}
}