@charset "UTF-8";

/*-----------------------------------

	mainvisual

-----------------------------------*/
#mainvisual{
	position: relative;
	padding: 150px 0 225px;
	overflow: hidden;
}
#mainvisual::before{
	content: "";
	position: absolute;
	/*top: 135px;*/
	/*bottom: 0;*/
	right: 0;
	margin: auto;
	width: 253px;
	height: 1200px;
	z-index: -2;
	background: #00B796;
	transform: rotate(45deg) translateX(-90%);
}

/*bg_txt*/
#mainvisual .bg_txt_wrap{
	overflow: hidden;
	display: flex;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}
#mainvisual .bg_txt_wrap .bg_txt{
	position: absolute;
	bottom: 0;
	top: 0;
	margin: auto;
	color: #F5F5F5;
	font-size: 190px;
	line-height: 1;
	font-weight: 700;
	z-index: -1;
	word-break: keep-all;
	white-space: nowrap;
	height: 190px;
	mix-blend-mode: multiply;
	
	flex-shrink: 0;
}
#mainvisual .bg_txt_wrap .bg_txt:nth-child(odd){
	animation: Move1 50s infinite linear;
}
#mainvisual .bg_txt_wrap .bg_txt:nth-child(even){
	animation: Move1 50s -25s infinite linear;
}

#mainvisual .img_box{
	max-width: 860px;
	width: 76%;
	margin: auto;
}
#mainvisual .img_box img{
	margin: auto;
}
#mainvisual .h2_ttl{
	position: absolute;
	bottom: 120px;
	left: 90px;
	width: 932px;
	height: 184px;
	object-fit: contain;
	z-index: 2;
}

/*scroll*/
.scroll{
	position: absolute;
	bottom: 145px;
	right: 70px;
	padding-left: 70px;
	font-weight: 700;
	width: 140px;
	margin-left: auto;
	transform: rotate(90deg);
}
.scroll::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	height: 1px;
	width: 60px;
	background: #1D1D1D;
	animation: line 1.8s ease-in-out infinite;
}


@media screen and (max-width: 1200px) {
	#mainvisual .h2_ttl{
		width: 700px;
		left: 40px;
	}
	.scroll{
		right: 0;
	}
}
@media screen and (max-width: 840px){
	#mainvisual{
		padding: 140px 0 160px;
	}
	#mainvisual .h2_ttl{
		width:500px;
		bottom: 20px;
	}
	.scroll{
		bottom: 80px;
	}
}
@media screen and (max-width: 640px) {
	#mainvisual{
		padding: 80px 0 90px;
	}
	#mainvisual .bg_txt_wrap .bg_txt{
		font-size: 100px;
		height: 100px;
	}
	#mainvisual .h2_ttl{
		left: 15px;
		width: 100%;
		height: auto;
	}
	#mainvisual .h2_ttl p{
		font-size: 34px;
		font-weight: 700;
		line-height: 1.4;
	}
	.scroll{
		display: none;
	}
}

/*-----------------------------------

	cta_block

-----------------------------------*/
#cta_block .h5_ttl{
	font-size: 38px;
	font-weight: 700;
	text-align: center;
	line-height: 1.5;
}
#cta_block .h5_ttl span{
	color: #00777F;
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	position: relative;
	padding: 0 25px;
}
#cta_block .h5_ttl span::before,
#cta_block .h5_ttl span::after{
	content: "";
	position: absolute;
	bottom: 5px;
	height: 24px;
	width: 2px;
	background: #00777F;
	border-radius: 2px;
}
#cta_block .h5_ttl span::before{
	left: 0;
	transform: rotate(-30deg);
}
#cta_block .h5_ttl span::after{
	right: 0;
	transform: rotate(30deg);
}

@media screen and (max-width: 840px) {
	#cta_block .h5_ttl{
		font-size: 25px;
	}
	#cta_block .h5_ttl span{
		font-size: 22px;
	}
	#cta_block .h5_ttl span::before,
	#cta_block .h5_ttl span::after{
		bottom: 3px;
		height: 20px;
	}
}
@media screen and (max-width: 640px) {
	#cta_block .h5_ttl{
		font-size: 20px;
	}
	#cta_block .h5_ttl span{
		font-size: 16px;
	}
}

/*-----------------------------------

	banner_box

-----------------------------------*/
.banner_box{
	padding: 80px 0 0;
}
.banner_box img{
	width: 600px;
	max-width: 100%;
	margin: auto;
}

@media screen and (max-width: 840px) {
	.banner_box{
		padding: 50px 0 0;
	}
}
@media screen and (max-width: 640px) {
	
}
/*-----------------------------------

	about_block

-----------------------------------*/
#about_block{
	padding: 80px 0 99px;
	border-bottom: 1px solid #1D1D1D;
}
#about_block .about_wrap{
	justify-content: center;
	gap: 100px;
	flex-wrap: nowrap;
}
#about_block .about_wrap .txt_box{
	width: 428px;
	padding: 158px 0 97px;
}
#about_block .about_wrap .txt_box .h3_ttl{
	margin-bottom: 51px;
}
#about_block .about_wrap .img_box{
	max-width: 557px;
	width: 47%;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 37px;
}
#about_block .about_wrap .img_box img{
	max-width: 260px;
	clip-path: polygon(100% 0, 100% 85%, 65% 100%, 0% 100%, 0 15%, 35% 0);
}
#about_block .about_wrap .img_box img.about_img01{
	margin-bottom: auto;
}
#about_block .about_wrap .img_box img.about_img02{
	margin-top: auto;
}

@media screen and (max-width: 1100px) {
	#about_block .about_wrap{
		gap: 50px;
	}
	#about_block .about_wrap .txt_box{
		padding: 70px 0;
	}
	#about_block .about_wrap .img_box{
		max-width: 430px;
		gap: 20px;
	}
	#about_block .about_wrap .img_box img{
		max-width: 200px;
	}
}
@media screen and (max-width: 840px) {
	#about_block .about_wrap .txt_box .h3_ttl{
		margin-bottom: 30px;
	}
	#about_block .about_wrap{
		flex-direction: column;
		gap: 30px;
	}
	#about_block .about_wrap .txt_box{
		padding: 0;
		max-width: 100%;
		width: 100%;
	}
	#about_block .about_wrap .img_box{
		width: 100%;
		margin: auto;
		justify-content: center;
		gap: 0;
		height: 250px;
	}
	#about_block .about_wrap .img_box img{
		height: 100%;
		object-fit: cover;
		object-position: top;
		max-width: 100%;
		width: calc(100% / 2);
	}
	#about_block .about_wrap .img_box img.about_img01{
		clip-path: polygon(100% 0, 100% 100%, 100% 100%, 0% 100%, 0 15%, 35% 0);
	}
	#about_block .about_wrap .img_box img.about_img02{
		clip-path: polygon(100% 0, 100% 85%, 65% 100%, 0% 100%, 0 0, 0 0);
		object-position: center;
	}
}
@media screen and (max-width: 640px) {
	#about_block{
		padding: 50px 0;
	}
	#about_block .about_wrap .txt_box .h3_ttl{
		margin-bottom: 15px;
	}
}

/*-----------------------------------

	service_block

-----------------------------------*/
#service_block{
	padding: 100px 0;
}
#service_block .flex_wrap{
	display: flex;
	flex-direction: column;
	gap: 100px;
}
#service_block .flex_wrap .flex_box{
	justify-content: space-between;
}
#service_block .flex_wrap .flex_box:nth-child(even){
	flex-direction: row-reverse;
}
#service_block .flex_wrap .flex_box .img_box{
	width: calc(100% - 540px);
}
#service_block .flex_wrap .flex_box .txt_box{
	width: 460px;
}
#service_block .flex_wrap .flex_box .txt_box .h3_ttl .en_txt{
	margin-bottom: 14px;
}
#service_block .flex_wrap .flex_box .txt_box .fc_gr{
	font-size: 20px;
	font-weight: 700;
	margin: 35px 0 20px;
	line-height: 1.8;
}
#service_block .flex_wrap .flex_box .txt_box .btn_box{
	margin-top: 40px;
}

@media screen and (max-width: 840px) {
	#service_block .flex_wrap .flex_box{
		flex-direction: column;
		gap: 30px;
	}
	#service_block .flex_wrap .flex_box .img_box,
	#service_block .flex_wrap .flex_box .txt_box{
		width: 100%;
	}
	#service_block .flex_wrap .flex_box .img_box img{
		display: block;
		margin: auto;
	}
}
@media screen and (max-width: 640px) {
	#service_block{
		padding: 50px 0;
	}
	#service_block .flex_wrap{
		gap: 50px;
	}
	#service_block .flex_wrap .flex_box{
		flex-direction: column;
	}
	#service_block .flex_wrap .flex_box .txt_box .fc_gr{
		font-size: 18px;
		margin: 15px 0 10px;
	}
	#service_block .flex_wrap .flex_box .txt_box .btn_box{
		margin-top: 20px;
	}
}

/*-----------------------------------

	information_block

-----------------------------------*/
#information_block{
	padding: 100px 0 260px;
	background: #EFF0F1;
}
#information_block .ttl_box{
	justify-content: space-between;
	padding-bottom: 60px;
	border-bottom: 1px solid #B9B9B9;
	margin-bottom: 15px;
}
#information_block .ttl_box .h4_ttl{
	text-align: left;
}
#information_block .ttl_box .btn_box{
	width: 260px;
}
#information_block .information_list li a{
	padding: 25px 10px 25px 0;
	width: 100%;
	position: relative;
}
#information_block .information_list li a:hover{
	background: #e8e8e8;
	opacity: 1;
}
#information_block .information_list li a .row_box{
	gap: 25px;
}
#information_block .information_list li a::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	width: 6px;
	height: 9px;
	background: url("../img/common/arrow_triangle.svg")no-repeat center/contain;
}
#information_block .information_list li a tame{
	font-weight: 700;
}
#information_block .information_list li a .tag{
	font-size: 15px;
	min-width: 140px;
	padding: 0 10px;
	text-align: center;
	background: #DADADB;
	height: 100%;
}
#information_block .information_list li a .txt{
	font-weight: 400;
	width: calc(100% - 290px);
}

@media screen and (max-width: 840px) {
	#information_block .information_list li a .txt{
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#information_block{
		padding: 50px 0 150px;
	}
	#information_block .ttl_box{
		flex-direction: column;
		padding-bottom: 25px;
	}
	#information_block .ttl_box .h4_ttl{
		margin-bottom: 20px;
	}
	#information_block .information_list li a{
		padding: 10px 10px 10px 0;
	}
	#information_block .information_list li a .row_box{
		gap: 10px;
	}
	#information_block .information_list li a .tag{
		margin-right: 0;
		font-size: 13px;
		width: 120px;
	}
}



