/*
	* Bootstrap 単独ページに掛かる関するカスタムCSS

	@media screen and (max-width: 1319px) {}
	@media screen and (max-width: 991px) {}
	@media print {}
	@media screen and (max-width: 767px) {}
 
	xl-1320(max-1319) 左右余白15pxを含む
	lg-992(max-991)
	md-768(max-767)
	sm-576(max-575)
 
	-------------------

*/

	.cus-home-mv{
		overflow: hidden;
		position: relative;
		padding-bottom: 200px;
	}

	.cus-home-mv .mv-text{
		position: absolute;
		bottom: 280px;
		right: 2%;
		color: white;
		text-align: right;
		white-space: nowrap;
		text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
		z-index: 3;
	}
	.cus-home-mv .mv-text .txt01{
		margin-bottom: 30px;
		font-size: 72px;
		font-weight: 700;
	}
	.cus-home-mv .mv-text .txt02{
		margin-bottom: 40px;
		font-size: 72px;
		font-weight: 700;
	}
	.cus-home-mv .mv-text .txt03{
		margin-bottom: 0px;
		font-family: "Poppins", sans-serif;
		font-size: 24px;
		font-weight: 700;
		font-style: normal;
	}

	.cus-home-mv .mv-shirushi{
		position: absolute;
		bottom: 10px;
		right: 50%;
		margin-right: -1100px;
		display: block;
		background-image: url(../img/site/shirushi.png);
		background-size: cover;
		width: 900px;
		height: 900px;
		z-index: 2;
		animation: rotate-step 6s cubic-bezier(0.42, 0, 0.58, 1) infinite;
		transform-origin: center center;/* 回転の中心 */
	}
	@keyframes rotate-step{
		0% {transform: rotate(0deg);}
		50% {transform: rotate(90deg);}
		75% {transform: rotate(90deg);}
		100% {transform: rotate(90deg);}
	}
	@media screen and (max-width: 1319px) {
		.cus-home-mv{
			padding-bottom: 150px;
		}
	
		.cus-home-mv .mv-text{
			bottom: 170px;
			right: 2%;
		}
		.cus-home-mv .mv-text .txt01{
			margin-bottom: 20px;
			font-size: calc(72px * 0.7);
		}
		.cus-home-mv .mv-text .txt02{
			margin-bottom: 30px;
			font-size: calc(72px * 0.7);
		}
		.cus-home-mv .mv-text .txt03{
			font-size: calc(24px * 0.9);
		}
	
		.cus-home-mv .mv-shirushi{
			margin-right: -60vw;
			width: 52vw;
			height: 52vw;
		}
	}
	@media screen and (max-width: 991px) {
	.cus-home-mv{
			padding-bottom: 120px;
		}
	
		.cus-home-mv .mv-text{
			bottom: 140px;
			right: 2%;
		}
		.cus-home-mv .mv-text .txt01{
			margin-bottom: 14px;
			font-size: calc(72px * 0.6);
		}
		.cus-home-mv .mv-text .txt02{
			margin-bottom: 20px;
			font-size: calc(72px * 0.6);
		}
		.cus-home-mv .mv-text .txt03{
			font-size: calc(24px * 0.8);
		}
	
		.cus-home-mv .mv-shirushi{
			margin-right: -60vw;
			width: 52vw;
			height: 52vw;
		}
	}
	@media print {
		.cus-home-mv{
			padding-bottom: 100px;
		}
	
		.cus-home-mv .mv-text{
			bottom: 120px;
			right: 2%;
		}
		.cus-home-mv .mv-text .txt01{
			margin-bottom: 14px;
			font-size: calc(72px * 0.45);
		}
		.cus-home-mv .mv-text .txt02{
			margin-bottom: 20px;
			font-size: calc(72px * 0.45);
		}
		.cus-home-mv .mv-text .txt03{
			font-size: calc(24px * 0.7);
		}
	
		.cus-home-mv .mv-shirushi{
			margin-right: -60vw;
			width: 52vw;
			height: 52vw;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-home-mv{
			padding-bottom: 50px;
		}
	
		.cus-home-mv .mv-text{
			bottom: 8%;
			width: 96%;
			text-align: left;
		}
		.cus-home-mv .mv-text .txt01{
			margin-bottom: 10px;
			font-size: calc(72px * 0.4);
		}
		.cus-home-mv .mv-text .txt02{
			margin-bottom: 14px;
			font-size: calc(72px * 0.4);
			line-height: 1.8;
		}
		.cus-home-mv .mv-text .txt03{
			font-size: calc(24px * 0.6);
			line-height: 1.8;
		}
	
		.cus-home-mv .mv-shirushi{
			bottom: 10px;
			margin-right: 16vw;
			width: 66vw;
			height: 66vw;
		}
	}

/* area01 */
	.cus-home-area01{
		position: relative;
	}

	.cus-home-area01 .area01-text{
		position: absolute;
		top: 0px;
		left: 50%;
		margin-left: -645px;
		width: 700px;
	}

	.cus-home-area01 .area01-text01{
		position: relative;
		display: inline-block;
		padding: 4px 20px;
		font-size: 32px;
		font-weight: 700;
		color: white;
		letter-spacing: 0.14em;
	}
	.cus-home-area01 .area01-text01::before{
		content: '';
		position: absolute;
		top: 0px;
		left: 0px;
		width: 100%;
		height: 100%;
		background: linear-gradient(to right, #004085, #0b50cf);
		z-index: -1;
	}

	.cus-home-area01 .area01-img{
		position: relative;
		margin-left: 56%;
		width: 44%;
		height: 660px;
	}
	.cus-home-area01 .area01-img .img{
		position: absolute;
		bottom: -80px;
		right: 0px;
		width: 100%;
		height: 600px;
		z-index: 3;
	}
	.cus-home-area01 .area01-img .img img{
		width: 100%;
		height: 600px;
		object-fit: cover;
		font-family: 'object-fit: cover;';
	}
	@media screen and (max-width: 1319px) {
		.cus-home-area01 .area01-text{
			left: 2%;
			margin-left: 0px;
			width: 52%;
		}
	
		.cus-home-area01 .area01-text01{
			padding: 4px 20px;
			font-size: 26px;
		}
	
		.cus-home-area01 .area01-img{
			height: 560px;
		}
		.cus-home-area01 .area01-img .img{
			bottom: -60px;
			height: 500px;
		}
		.cus-home-area01 .area01-img .img img{
			height: 500px;
		}
	}
	@media screen and (max-width: 991px) {
		.cus-home-area01 .area01-text{
			left: 2%;
			margin-left: 0px;
			width: 52%;
		}
	
		.cus-home-area01 .area01-text01{
			padding: 4px 16px;
			font-size: 22px;
		}
	
		.cus-home-area01 .area01-img{
			height: 460px;
		}
		.cus-home-area01 .area01-img .img{
			bottom: -40px;
			height: 400px;
		}
		.cus-home-area01 .area01-img .img img{
			height: 400px;
		}
	}
	@media print {
		.cus-home-area01 .area01-text{
			left: 2%;
			margin-left: 0px;
			width: 52%;
		}
	
		.cus-home-area01 .area01-text01{
			padding: 4px 14px;
			font-size: 19px;
		}
	
		.cus-home-area01 .area01-img{
			height: 410px;
		}
		.cus-home-area01 .area01-img .img{
			bottom: -30px;
			height: 350px;
		}
		.cus-home-area01 .area01-img .img img{
			height: 350px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-home-area01 .area01-text{
			position: static;
			margin: 0 3% 20px 3%;
			width: 94%;
		}
	
		.cus-home-area01 .area01-text01{
			padding: 4px 12px;
			font-size: 22px;
		}
	
		.cus-home-area01 .area01-img{
			margin-left: 0%;
			width: 100%;
			height: 66vw;
		}
		.cus-home-area01 .area01-img .img{
			position: static;
			height: 66vw;
		}
		.cus-home-area01 .area01-img .img img{
			height: 66vw;
		}
	}

/* area02 */
	.cus-home-area02{
		position: relative;
	}

	.cus-home-area02 .area02-text{
		position: absolute;
		top: 0px;
		left: 50%;
		width: 645px;
	}

	.cus-home-area02-menu{
		padding: 0;
		margin: 0;
		list-style: none;
	}
	.cus-home-area02-menu li{
		border-bottom: white solid 1px;
	}
	.cus-home-area02-menu li:last-child{
		border-bottom: white solid 0px;
	}

	.cus-home-area02-menu li .menu-link{
		position: relative;
		display: block;
		padding: 30px 70px 30px 15px;
		color: white;
		text-decoration: none;
	}
	.cus-home-area02-menu li .menu-link .txt01{
		margin: 0;
		font-family: "Poppins", sans-serif;
		font-size: 16px;
		font-weight: 700;
		font-style: normal;
		line-height: 1.4;
	}
	.cus-home-area02-menu li .menu-link .txt02{
		margin: 0;
		font-size: 32px;
		font-weight: 700;
		line-height: 1.4;
	}
	.cus-home-area02-menu li .menu-link::before{
		content: '\f105';
		position: absolute;
		top: 50%;
		right: 10px;
		display: block;
		background-color: white;
		border-radius: 50%;
		margin-top: -26px;
		width: 52px;
		height: 52px;
		font-family: "Font Awesome 6 Free";
		font-size: 28px;
		font-weight: 900;
		color: #004085;
		text-align: center;
		line-height: 52px;
	}
	
	.cus-home-area02-menu li .menu-link.active{
		background-color: white;
		color: #004085;
	}
	.cus-home-area02-menu li .menu-link.active::before{
		background-color: #004085;
		color: white;
	}

	.cus-home-area02 .area02-img{
		margin-right: 56%;
		width: 44%;
		height: 600px;
	}
	.cus-home-area02 .area02-img .img{
		margin: 0;
	}
	.cus-home-area02 .area02-img .img img{
		width: 100%;
		height: 600px;
		object-fit: cover;
		font-family: 'object-fit: cover;';
	}

	.cus-home-area02 .area02-img .img-sm{
		display: none;
		margin: 0;
	}

	#area02-main-image{
		transition: opacity 0.4s ease;
		opacity: 1;
	}
	#area02-main-image.fade-out{
		opacity: 0;
	}
	@media screen and (max-width: 1319px) {
		.cus-home-area02 .area02-text{
			width: 48%;
		}
	
		.cus-home-area02-menu li .menu-link{
			padding: 26px 60px 26px 15px;
		}
		.cus-home-area02-menu li .menu-link .txt01{
			font-size: 16px;
		}
		.cus-home-area02-menu li .menu-link .txt02{
			font-size: 28px;
		}
		.cus-home-area02-menu li .menu-link::before{
			margin-top: -23px;
			width: 46px;
			height: 46px;
			font-size: 24px;
			line-height: 46px;
		}

		.cus-home-area02 .area02-img{
			margin-right: 54%;
			width: 46%;
			height: 520px;
		}
		.cus-home-area02 .area02-img .img img{
			height: 520px;
		}
	}
	@media screen and (max-width: 991px) {
		.cus-home-area02 .area02-text{
			width: 48%;
		}
	
		.cus-home-area02-menu li .menu-link{
			padding: 22px 50px 22px 15px;
		}
		.cus-home-area02-menu li .menu-link .txt01{
			font-size: 15px;
		}
		.cus-home-area02-menu li .menu-link .txt02{
			font-size: 22px;
		}
		.cus-home-area02-menu li .menu-link::before{
			margin-top: -20px;
			width: 40px;
			height: 40px;
			font-size: 22px;
			line-height: 40px;
		}

		.cus-home-area02 .area02-img{
			margin-right: 54%;
			width: 46%;
			height: 460px;
		}
		.cus-home-area02 .area02-img .img img{
			height: 460px;
		}
	}
	@media print {
		.cus-home-area02 .area02-text{
			width: 48%;
		}
	
		.cus-home-area02-menu li .menu-link{
			padding: 18px 40px 18px 12px;
		}
		.cus-home-area02-menu li .menu-link .txt01{
			font-size: 13px;
		}
		.cus-home-area02-menu li .menu-link .txt02{
			font-size: 19px;
		}
		.cus-home-area02-menu li .menu-link::before{
			margin-top: -16px;
			width: 32px;
			height: 32px;
			font-size: 19px;
			line-height: 32px;
		}

		.cus-home-area02 .area02-img{
			margin-right: 54%;
			width: 46%;
			height: 400px;
		}
		.cus-home-area02 .area02-img .img img{
			height: 400px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-bg-gradation{
			padding-bottom: 0 !important;
		}

		.cus-home-area02 .area02-text{
			position: static;
			margin: 0 auto 20px auto;
			width: 94%;
		}
	
		.cus-home-area02-menu li .menu-link{
			padding: 12px 40px 12px 10px;
		}
		.cus-home-area02-menu li .menu-link .txt01{
			font-size: 14px;
		}
		.cus-home-area02-menu li .menu-link .txt02{
			font-size: 20px;
		}
		.cus-home-area02-menu li .menu-link::before{
			margin-top: -16px;
			width: 32px;
			height: 32px;
			font-size: 18px;
			line-height: 32px;
		}
	
		.cus-home-area02 .area02-img{
			margin-right: 0%;
			width: auto;
			height: auto;
		}
		.cus-home-area02 .area02-img .img{
			display: none;
		}
		.cus-home-area02 .area02-img .img-sm{
			display: block;
		}
	}

	/* area03 */
	.cus-home-area03{
		position: relative;
		padding: 200px 0;
	}
	.cus-home-area03-con{
		position: relative;
	}
	.cus-home-area03-con .con-title{
		position: absolute;
		top: 0px;
		left: 0px;
		width: 28%;
	}
	.cus-home-area03-con .con-text{
		position: absolute;
		bottom: 0px;
		right: 0px;
		width: 25%;
	}
	.cus-home-area03-con .con-img{
		padding: 0 25% 0 28%;
	}

	.cus-home-area03-text01{
		position: relative;
		display: inline-block;
		padding: 4px 20px;
		font-size: 32px;
		font-weight: 700;
		color: white;
		letter-spacing: 0.14em;
	}
	.cus-home-area03-text01::before{
		content: '';
		position: absolute;
		top: 0px;
		left: 0px;
		width: 100%;
		height: 100%;
		background: linear-gradient(to right, #004085, #0b50cf);
		z-index: -1;
	}

	.cus-home-area03-con .con-img .img{
		padding: 0 50px 0 20px;
		margin: 0;
	}
	.cus-home-area03-con .con-img .img img{
		width: 100%;
		height: 500px;
		object-fit: cover;
		font-family: 'object-fit: cover;';
	}

	.cus-home-area03 .area03-bg-text{
		overflow: hidden;
		position: absolute;
		top: 50%;
		left: 0px;
		width: 100%;
		z-index: -1;
	}
	.cus-home-area03 .area03-bg-text .loop-wrap{
		position: relative;
		width: 100%;
		height: 140px; /* fontサイズ120pxに合わせた高さ */
	}
	.cus-home-area03-loop{
		position: absolute;
		top: 0;
		left: 0;
		display: flex;
		white-space: nowrap;
		list-style: none;
		padding: 0;
		margin: 0;
		line-height: 1; /* 高さ調整で重要 */
	}
	.cus-home-area03-loop li{
		padding-right: 40px;
		font-family: "Poppins", sans-serif;
		font-size: 120px;
		font-weight: 700;
		color: #f7f8fa;
		line-height: 1; /* 文字高さを正しく合わせる */
	}
	@media screen and (max-width: 1319px) {
		.cus-home-area03{
			position: relative;
			padding: 170px 0;
		}
		.cus-home-area03-con .con-title{
			width: 32%;
		}
		.cus-home-area03-con .con-text{
			width: 25%;
		}
		.cus-home-area03-con .con-img{
			padding: 0 25% 0 32%;
		}
	
		.cus-home-area03-text01{
			padding: 4px 16px;
			font-size: 26px;
		}
	
		.cus-home-area03-con .con-img .img{
			padding: 0 40px 0 15px;
		}
		.cus-home-area03-con .con-img .img img{
			height: 460px;
		}

		.cus-home-area03 .area03-bg-text .loop-wrap{
			height: 120px; /* fontサイズ120pxに合わせた高さ */
		}
		.cus-home-area03-loop li{
			padding-right: 30px;
			font-size: 100px;
		}
	}
	@media screen and (max-width: 991px) {
		.cus-home-area03{
			position: relative;
			padding: 140px 0;
		}
		.cus-home-area03-con .con-title{
			width: 55%;
		}
		.cus-home-area03-con .con-text{
			left: 0%;
			bottom: 100px;
			width: 55%;
		}
		.cus-home-area03-con .con-text .text-bt{
			width: 260px;
		}
		.cus-home-area03-con .con-img{
			padding: 0 0 0 55%;
			width: auto
		}
	
		.cus-home-area03-text01{
			padding: 4px 16px;
			font-size: 22px;
		}
	
		.cus-home-area03-con .con-img .img{
			padding: 0 0 0 20px;
		}
		.cus-home-area03-con .con-img .img img{
			height: 460px;
		}

		.cus-home-area03 .area03-bg-text .loop-wrap{
			height: 100px; /* fontサイズ120pxに合わせた高さ */
		}
		.cus-home-area03-loop li{
			padding-right: 20px;
			font-size: 80px;
		}
	}
	@media print {
		.cus-home-area03{
			position: relative;
			padding: 140px 0;
		}
		.cus-home-area03-con .con-title{
			width: 55%;
		}
		.cus-home-area03-con .con-text{
			left: 0%;
			bottom: 0px;
			width: 55%;
		}
		.cus-home-area03-con .con-text .text-bt{
			width: 220px;
		}
		.cus-home-area03-con .con-img{
			padding: 0 0 0 55%;
			width: auto
		}
	
		.cus-home-area03-text01{
			padding: 4px 12px;
			font-size: 19px;
		}
	
		.cus-home-area03-con .con-img .img{
			padding: 0 0 0 20px;
		}
		.cus-home-area03-con .con-img .img img{
			height: 320px;
		}

		.cus-home-area03 .area03-bg-text{
			display: none;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-home-area03{
			padding: 80px 0;
		}
		.cus-home-area03-con .con-title{
			position: static;
			margin-bottom: 20px;
			width: auto;
		}
		.cus-home-area03-con .con-text{
			position: static;
			margin-bottom: 20px;
			width: auto;
		}
		.cus-home-area03-con .con-img{
			padding: 0;
		}
	
		.cus-home-area03-text01{
			padding: 4px 12px;
			font-size: 20px;
		}
	
		.cus-home-area03-con .con-img .img{
			padding: 0px;
		}
		.cus-home-area03-con .con-img .img img{
			height: 60vw;
		}
	
		.cus-home-area03 .area03-bg-text{
			display: none;
		}
	}

/* 事業内容 */
	.cus-services-area02-map{
		display: inline-block;
		border: #939393 solid 2px;
	}

	.cus-services-area02-text01{
		border-bottom: white solid 1px;
		padding-bottom: 80px;
		color: white;
		text-align: center;
	}
	.cus-services-area02-text01 .text01-midashi{
		font-size: 28px;
		font-weight: 700;
	}
	@media screen and (max-width: 1319px) {
		.cus-services-area02-text01{
			padding-bottom: 60px;
		}
		.cus-services-area02-text01 .text01-midashi{
			font-size: 22px;
		}
	}
	@media screen and (max-width: 991px) {
		.cus-services-area02-text01{
			padding-bottom: 50px;
		}
		.cus-services-area02-text01 .text01-midashi{
			font-size: 20px;
		}
	}
	@media print {
		.cus-services-area02-text01{
			padding-bottom: 40px;
		}
		.cus-services-area02-text01 .text01-midashi{
			font-size: 18px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-services-area02-text01{
			padding-bottom: 30px;
			margin-bottom: 40px;
			text-align: left;
		}
		.cus-services-area02-text01 .text01-midashi{
			font-size: 18px;
		}
	}


/* 会社案内 */
	.company-area01-nav{
		display: -webkit-flex;
		display: flex;
		padding: 0;
		margin-left: 0;
		margin-right: 0;
		list-style: none;
	}
	.company-area01-nav li{
		box-sizing: content-box;
		padding-right: 1.3%;
		width: 18.96%;
	}
	.company-area01-nav li:last-child{
		padding-right: 0%;
	}

	.company-area01-bt{
		position: relative;
		display: block;
		color: black;
		text-decoration: none;
	}
	.company-area01-bt:hover{
		color: black;
		text-decoration: none;
	}
	.company-area01-bt::before{
		content: '';
		position: absolute;
		bottom: 15px;
		right: 2px;
		display: block;
		background-image: url(../img/company/nav-arrow.svg);
		background-size: cover;
		width: 36px;
		height: 10px;
	}
	.company-area01-bt .inner{
		position: relative;
		display: block;
		padding: 10px 0;
	}
	.company-area01-bt .inner::before{
		content: '';
		position: absolute;
		bottom: 0px;
		left: 0px;
		display: block;
		background-color: #cfcfcf;
		width: 100%;
		height: 2px;
		z-index: 1;
	}
	.company-area01-bt .inner::after{
		content: '';
		position: absolute;
		bottom: 0px;
		left: 0px;
		display: block;
		background-color: #0b50cf;
		width: 30%;
		height: 2px;
		z-index: 1;
		transition: width 0.3s ease;
	}
	.company-area01-bt:hover .inner::after{
		width: 100%;
	}
	@media screen and (max-width: 1319px) {
		.company-area01-bt::before{
			bottom: 13px;
			width: calc(36px * 0.8);
			height: calc(10px * 0.8);
		}
		.company-area01-bt .inner::after{
			width: 40%;
		}
	}
	@media screen and (max-width: 991px) {
		.company-area01-bt::before{
			bottom: 13px;
			width: calc(36px * 0.66);
			height: calc(10px * 0.66);
		}
		.company-area01-bt .inner::after{
			width: 50%;
		}
	}
	@media print {
		.company-area01-bt::before{
			bottom: 13px;
			width: calc(36px * 0.66);
			height: calc(10px * 0.66);
		}
		.company-area01-bt .inner::after{
			width: 50%;
		}
	}
	@media screen and (max-width: 767px) {
		.company-area01-nav{
			flex-wrap: wrap;
		}
		.company-area01-nav li{
			padding-right: 2%;
			width: 49%;
		}
		.company-area01-nav li:nth-child(2n){
			padding-right: 0%;
		}

		.company-area01-bt::before{
			bottom: 13px;
			width: calc(36px * 0.66);
			height: calc(10px * 0.66);
		}
		.company-area01-bt .inner::after{
			width: 45%;
		}
	}

/* area04 */
	.company-area01-title{
		position: relative;
		display: inline-block;
		padding-right: 220px;
		font-size: 20px;
		font-weight: 700;
	}
	.company-area01-title::before{
		content: '';
		position: absolute;
		top: 50%;
		right: 0px;
		display: block;
		background-color: black;
		width: 200px;
		height: 1px;
	}






























