@charset "utf-8";

main {
	margin-bottom: 80px;
	@media (width <= 800px) {
		overflow-x: clip;
		margin-bottom: 64px;
	}
}

/*
logo-blue
*/
.logo-blue {
	position: absolute;
	left: 50%;
	top: -2552px;
	translate: -49.5% 0;
	width: 6776px;
	z-index: 2;
	mix-blend-mode: multiply;
	pointer-events: none;
	@media (width <= 800px) {
		top: -1430px;
		width: 4100px;
	}
	img {
		width: 100%;
	}
}

/*
topimage
*/
#topimage {
	width: 100%;
    height: 100svh;
	&::before {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		content: "";
		background-color: rgba(132,132,132,0.7);
		mix-blend-mode: multiply;
		pointer-events: none;
		z-index: 1;
	}
	.splide-topimage {
		position: fixed;
		top: 0;
		z-index: 0;
		.splide__track {
			.splide__slide {
				width: 100%;
				height: 100%;
				img {
					width: 100%;
					height: 100svh;
					object-fit: cover;
					scale: 1.1;
					transition: scale 8s linear;
					@media (width <= 800px) {
						height: calc(100svh - 72px);
						margin-top: 72px;
					}
				}
				&.is-active  {
					img {
						scale: 1;
					}
				}
			}
		}
	}
	.read-fv {
		position: absolute;
		left: 72px;
		bottom: 98px;
		z-index: 2;
		padding: 0 15px;
		@media (width <= 800px) {
			left: 0;
			bottom: 60px;
		}
		.read-topimage {
			margin-bottom: 24px;
			@media (width <= 800px) {
				width: 85.3%;
				margin-bottom: 10px;
			}
			img {
				width: 100%;
			}
		}
		p {
			color: var(--white);
			font-size: 26px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.1em;
			margin: 0;
			@media (width <= 800px) {
				font-size: 20px;
				line-height: 1.75;
				letter-spacing: 0.05em;
			}
		}
	}
}


article {
	position: relative;
	padding-top: 205px;
	z-index: 3;
	@media (width <= 800px) {
		padding-top: 0px;
	}
	&::before {
		position: absolute;
		top: -95px;
		left: 50%;
		translate: -50% 0;
		width: 100%;
		height: 100%;
		content: "";
		background: linear-gradient(rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.65) 95px, #fff 300px, #fff 100%);
		pointer-events: none;
		@media (width <= 800px) {
			display: none;
		}
	}
	h2 {
		margin-bottom: 25px;
		@media (width <= 800px) {
			margin-bottom: 20px;
		}
		.jp {
			position: relative;
			display: block;
			color: var(--blue);
			font-size: 16px;
			font-weight: 700;
			margin-bottom: 5px;
			@media (width <= 800px) {
				padding-left: 8px;
			}
			&::before {
				position: absolute;
				left: -8px;
				top: 50%;
				translate: 0 -50%;
				width: 4px;
				height: 4px;
				background-color: var(--blue);
				border-radius: 50%;
				content: "";
				@media (width <= 800px) {
					left: 0;
				}
			}
		}
		.en {
			display: block;
			font-size: 56px;
			line-height: 1.2;
			font-weight: 600;
			@media (width <= 800px) {
				font-size: 48px;
			}
		}
		&.white {
			.jp {
				color: var(--white);
				&::before {
					background-color: var(--white);
				}
			}
			.en {
				color: var(--white);
			}
		}
	}
	section {
		z-index: 4;
	}
}
.read-home {
	margin-bottom: 40px;
	@media (width <= 800px) {
		margin-bottom: 35px;
	}
}


/*
business
*/
.business {
	margin-bottom: 45px;
	@media (width <= 800px) {
		background-color: var(--white);
		margin-bottom: 0;
		padding: 80px 0 10px;
	}
	.btn-blur {
		display: none;
		@media (width <= 800px) {
			position: absolute;
			left: 50%;
			bottom: 56px;
			translate: -50% 0;
			display: flex;
			z-index: 2;
		}
		.blur,
		.bg-blur {
			@media (width <= 800px) {
				border-radius: 9999px;

			}
		}
	}
}
.homedetail {
	position: relative;
	padding-left: 32px;
	z-index: 1;
	@media (width <= 800px) {
		padding-left: 0;
	}
	.read-home {
		@media (width <= 800px) {
			margin-bottom: 10px;
		}
	}
	.btn {
		@media (width <= 800px) {
			display: none;
		}
	}
} 
.business-map {
	position: relative;
	width: 1055px;
	margin: -150px -20px 0 auto;
	z-index: 0;
	pointer-events: none;
	@media (width <= 800px) {
		width: 154.4vw;
		margin: 0 0 10px -40vw;
		@media (width <= 800px) {
			width: 579px;
			margin: 0;
		}
	}
	&.is-show {
		.point {
			&::before {
				animation: point1 2s ease infinite 0.3s;
			}
			&.japan {
				&::before {
					animation: point2 2s ease infinite 0.3s;
					@media (width <= 800px) {
						animation: point2sp 2s ease infinite 0.3s;
					}
				}
			}
		}
	}
	.point {
		position: absolute;
		left: 50%;
		top: 50%;
		width: 6px;
		height: 6px;
		border-radius: 50%;
		z-index: 1;
		@media (width <= 800px) {
			width: 4px;
			height: 4px;
			border: 2px solid #0A2F83;
		}
		&::before {
			position: absolute;
			left: 50%;
			top: 50%;
			translate: -50% -50%;
			width: 0;
			height: 0;
			content: "";
			border-radius: 50%;
			opacity: 0;
			pointer-events: none;
			background-image: url(../img/map_circle.svg);
			background-repeat: no-repeat;
			background-position: center center;
			background-size: cover;
		}
		&.japan {
			translate: -1150% -740%;
			@media (width <= 800px) {
				translate: -940% -620%;
			}
			&::before {
				background: none;
				background-color: #91A2C7;
			}
		}
		&.p01 {
			translate: -1730% -835%;
			@media (width <= 800px) {
				translate: -1435% -710%;
			}
		}
		&.p02 {
			translate: -2015% -455%;
			@media (width <= 800px) {
				translate: -1675% -380%;
			}
		}
		&.p03 {
			translate: -1980% -30%;
			@media (width <= 800px) {
				translate: -1640% -25%;
			}
		}
		&.p04 {
			translate: -4065% -125%;
			@media (width <= 800px) {
				translate: -3355% -110%;
			}
		}
		&.p05 {
			translate: -3120% 360%;
			@media (width <= 800px) {
				translate: -2580% 290%;
			}
		}
		&.p06 {
			translate: -3020% 495%;
			@media (width <= 800px) {
				translate: -2500% 400%;
			}
		}
		&.p07 {
			translate: -2675% 710%;
			@media (width <= 800px) {
				translate: -2220% 565%;
			}
		}
		&.p08 {
			translate: -2905% 1125%;
			@media (width <= 800px) {
				translate: -2405% 910%;
			}
		}
		&.p09 {
			translate: -2630% 1685%;
			@media (width <= 800px) {
				translate: -2180% 1385%;
			}
		}
		&.p10 {
			translate: 5300% -630%;
			@media (width <= 800px) {
				translate: 4350% -535%;
			}
		}
	}
	.business-map-img {
		position: relative;
		width: 100%;
		z-index: 0;
		img {
			width: 100%;
		}
	}
}
.fade-in {
	opacity: 0;
	translate: 0 20px;
	transition: translate 0.3s ease-out,opacity 0.3s ease-out;
	@media (width <= 800px) {
		left: 50%;
		translate: -56% 20px
	}
	&.is-show {
		opacity: 1;
		translate: 0 0;
		@media (width <= 800px) {
			translate: -56% 0;
		}
	}	
}

@keyframes point1 {
	0% {
		width: 0;
		height: 0;
		opacity: 1;
	}
	40% {
		width: 50px;
		height: 50px;
		opacity: 0;
	}
	50% {
		width: 0;
		height: 0;
		opacity: 0;
	}
	100% {
		width: 0;
		height: 0;
		opacity: 0;
	}
}
@keyframes point2 {
	0% {
		width: 0;
		height: 0;
		opacity: 1;
	}
	40% {
		width: 230px;
		height: 230px;
		opacity: 0;
	}
	50% {
		width: 0;
		height: 0;
		opacity: 0;
	}
	100% {
		width: 0;
		height: 0;
		opacity: 0;
	}
}
@keyframes point2sp {
	0% {
		width: 0;
		height: 0;
		opacity: 1;
	}
	40% {
		width: 150px;
		height: 150px;
		opacity: 0;
	}
	50% {
		width: 0;
		height: 0;
		opacity: 0;
	}
	100% {
		width: 0;
		height: 0;
		opacity: 0;
	}
}



/*
news
*/
.news {
	padding: 86px 0 76px;
	margin-bottom: 42px;
	@media (width <= 800px) {
		padding: 78px 0 32px;
		margin-bottom: 0;
	}
	&::before {
		position: absolute;
		left: 0;
		top: 0;
		width: calc(100% - 60px);
		height: 100%;
		content: "";
		background: linear-gradient(135deg,rgba(41,74,154,1) 0%,rgba(9,35,95,1) 100%);
		pointer-events: none;
		z-index: 0;
		@media (width <= 800px) {
			width: 100%;
		}
	}
}
.news-content {
	position: relative;
	display: flex;
	gap: 0 135px;
	z-index: 1;
	@media (width <= 800px) {
		flex-direction: column;
		gap: 0;
	}
	.l-news {
		width: 210px;
		padding-left: 32px;
		@media (width <= 800px) {
			width: 100%;
			padding-left: 0;
		}
	}
	.r-news {
		width: calc(100% - 435px);
		@media (width <= 800px) {
			width: 100%;
		}
		.newslist {
			@media (width <= 800px) {
				margin-bottom: 32px;
			}
			li {
				a {
					color: var(--white);
					&::after {
						background-color: var(--white);
					}
					.entry-head {
						.entry-date {
							color: var(--white);
						}
					}
				}
			}
		}
		.btn-center {
			display: none;
			@media (width <= 800px) {
				display: flex;
			}
		}
	}
}


/*
products
*/
.products {
	background-image: url(../img/bg_homeproducts.webp);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	padding: 125px 0 0;
	@media (width <= 800px) {
		padding: 85px 0 0;
	}
	.read-home {
		margin-bottom: 64px;
		@media (width <= 800px) {
			margin-bottom: 32px;
		}
	}
}
.horizontal_scroll {
	width: 91.5vw;
	--sticky-container-height: calc(100vh - 96px);
	height: var(--sticky-container-height);
	min-height: calc(100vh - 96px);
	margin: 0 0 0 auto;
	@media (width <= 800px) {
		width: 100%;
		--sticky-container-height: calc(100svh - 72px)!important;
		min-height: calc(100svh - 72px);
		margin: 0;
		padding: 0;
	}
	.sticky {
		position: sticky;
		top: 96px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: calc(100vh - 96px);
		@media (width <= 800px) {
			position: relative;
			top: auto;
			min-height: calc(100svh - 72px);
		}
	}
	.scroller {
		display: flex;
		overflow: auto;
		@media (width <= 800px) {
			width: 100vw;
		}
		&.nobar {
			overflow: hidden;
			@media (width <= 800px) {
				overflow-x: auto;
			}
		}
		.space {
			@media (width <= 800px) {
				display: none;
			}
		}
		> * {
			flex-basis: 100%;
			flex-shrink: 0;
			height: calc(100vh - 96px);
			display: flex;
			align-items: flex-start;
			justify-content: flex-start;	
			@media (width <= 800px) {
				flex-basis: 300vw;
				flex-shrink: inherit;
				height: calc(100svh - 72px);
			}
		}
	}
	.space {
		@media (width <= 800px) {
			display: none;
		}	
	}
}
.bn-list {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;	
	width: 100vw;
	height: calc(100vh - 96px);
	list-style: none;
	overflow: hidden;
	--scroll-progress: 0;
	@media (width <= 800px) {
		display: block;
		width: 100%;
		height: auto;
        overflow: visible;
	}
	&.is-scrolling li {
        &:not(:where(.bn-list:hover) &) {
			transition: none!important;
		}
    }	
	li {
		position: relative;
		flex-shrink: 0;
		width: 46vw;
		transition: margin-left .3s, transform .3s, opacity .3s, background-color .3s;
		@media (width >= 800px) {
			:where(.bn-list:hover) & {
                transition: margin-left 0.3s, transform 0.3s, opacity 0.3s;
            }
			:where(.bn-list.is-activated-3rd) & {
                &:nth-child(1):hover + li:nth-child(2) {
                    margin-left: 0;
                }
                &:nth-child(1):hover ~ li:nth-child(3),
                &:nth-child(2):hover + li:nth-child(3) {
                    margin-left: 0; 
                }
            }			
		}	
		@media (width <= 800px) {
			position: relative;
			top: auto;
			width: 100%;
			height: auto;
			transition: all 0.3s;
		}
		&:nth-child(1) {
			margin-left: 0;
			z-index: 0;
		}
		&:nth-child(2) {
			margin-left: calc(-23vw * clamp(0, var(--scroll-progress) * 2, 1));
			z-index: 1;
			@media (width <= 800px) {
				margin-left: 0;
			}
		}
		&:nth-child(3) {
			margin-left: calc(-23vw * clamp(0, (var(--scroll-progress) - 0.5) * 2, 1));
			z-index: 2;
			@media (width <= 800px) {
				margin-left: 0;
			}
		}
		&:has(.products-link:hover) .products-link::before,
		&:has(.pickup:hover) .products-link::before {
			@media (width >= 800px) {
				opacity: 0.4;
			}
		}
		&:has(.products-link:hover) .btn-arrow::before,
		&:has(.pickup:hover) .btn-arrow::before {
			rotate: 45deg;
		}		
		a {
			display: block;
			text-decoration: none;
			&.products-link {
				position: relative;
				width: 100%;
				border: 1px solid #646464;
				&::before {
					position: absolute;
					top: 0;
					left: 0;
					width: calc(100% + 1px);
					height: 100%;
					content: "";
					background-color: #646464;
					mix-blend-mode: multiply;
					transition: all .3s;
				}
				&:hover {
					@media (width >= 800px) {
						&::before {
							opacity: 0.4;
						}
					}
				}
				.products-head {
					position: absolute;
					top: 50px;
					left: 34px;
					@media (width <= 800px) {
						top: 60px;
						left: 15px;
					}
					h3 {
						color: var(--white);
						margin: 0 0 24px;
						z-index: 2;
						@media (width <= 800px) {
							margin-bottom: 10px;
						}
						.en {
							display: block;
							font-size: 20px;
							margin-bottom: 10px;
						}
						.jp {
							display: block;
							font-size: 48px;
							font-weight: 100;
						}
					}
					.pickup-text {
						display: block;
						color: var(--white);
						font-size: 16px;
						line-height: 1.75;
						margin: 0;
					}

				}
				.products-img {
					display: block;
					width: 100%;
					height: calc(100vh - 96px);
					@media (width <= 800px) {
						width: 100%;
						height: calc(100svh - 72px);
					}
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
				}
			}
			&.pickup {
				position: absolute;
				left: 34px;
				bottom: 34px;
				z-index: 2;
				@media (width <= 800px) {
					left: 15px;
				}
				h4 {
					color: var(--white);
					font-family: "Figtree", sans-serif;
					font-size: 16px;
					line-height: 1.18;
					margin-bottom: 12px;
				}
				.products-img-s {
					max-width: 184px;
					border: 1px solid var(--white);
					margin-bottom: 13px;
					@media (width <= 800px) {
						margin-bottom: 8px;
					}
					img {
						width: 100%;
						height: 102px;
						object-fit: cover;
					}
				}
				.pickup-title {
					display: block;
					color: var(--white);
					font-size: 16px;
					line-height: 1.3;
					font-weight: 500;
				}
			}
		}
		.btn-arrow {
			bottom: 30px;
			right: 45px;
			width: 32px;
			height: 32px;
			pointer-events: none;
			@media (width <= 800px) {
				right: 26px;
			}
			&::before {
				mask-size: 32px 32px;
			}
		}
	}
}
.bn-list:hover & {
	transition: margin-left 0.3s, transform 0.3s, opacity 0.3s;
}


.products-bottom {
	width: 91.5vw;
	border-top: 1px solid var(--white);
	background-color: var(--darkblue);
	margin: 0 0 0 auto;
	@media (width <= 800px) {
		width: 100%;
		margin: 0;
		padding: 20px 14px 12px;
	}
	.pb-content {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 188px;
		max-width: 912px;
		margin: 0 auto;
		@media (width <= 800px) {
			flex-direction: column;
			gap: 8px 0;
			height: auto
		}
		.l-pb {
			width: 330px;
			@media (width <= 800px) {
				width: 100%;
			}
			h3 {
				color: var(--white);
				margin-bottom: 0;
				@media (width <= 800px) {
					display: flex;
					align-items: center;
					justify-content: center;
					gap: 0 16px;
				}
				.en {
					position: relative;
                    display: block;
                    font-size: 16px;
                    font-weight: 700;
					background-image: url(../img/icon_search.svg);
                    background-repeat: no-repeat;
                    background-position: left 40%;
                    margin-bottom: 12px;
                    padding-left: 18px;
					@media (width <= 800px) {
						display: inline-block;
						margin: 2px 0 0;
					}
				}
				.jp {
                    display: block;
                    font-size: 28px;
                    font-weight: 500;
                    line-height: 1;
					@media (width <= 800px) {
						display: inline-block;
						font-size: 16px;
					}
				}
			}
		}
		.r-pb {
			width: 51.8%;
			@media (width <= 800px) {
				width: 100%;
			}
			h4 {
				color: var(--white);
				font-size: 12px;
				font-weight: 400;
				margin: 0 0 8px;
				@media (width <= 800px) {
					text-align: center;
					font-size: 14px;
				}
			}
		}
	}
}


/*
company
*/
.company {
	background-color: var(--white);
	padding: 120px 0 88px;
	@media (width <= 800px) {
		padding: 70px 0 160px;
	}
}
.company-content {
	display: flex;
	@media (width <= 800px) {
		display: block;
	}
	.company-img {
		width: 17.2%;
		order: 3;
		@media (width <= 800px) {
			width: calc(100% + 30px);
			margin: 0 0 70px -15px;
		}
		img {
			width: 100%;
		}
	}
	.l-company {
		width: 39.2%;
		order: 1;
		@media (width <= 800px) {
			width: 100%;
			margin-bottom: 45px;
		}
		h2 {
			@media (width <= 800px) {
				margin-bottom: 20px;
			}
		}
		p {
			line-height: 1.73;
			margin-bottom: 0;
		}
	}
	.r-company {
		width: 31.6%;
		margin-right: 6.3%;
		order: 2;
		@media (width <= 800px) {
			width: 100%;
			margin-right: 0;
		}
		ul {
			counter-reset: my-counter;
			margin: 0;
			padding: 0;
			li {
				width: 100%;
				margin: 0 0 45px;
				padding: 0;
				&:last-child {
					margin-bottom: 0;
				}
				a {
					position: relative;
					display: block;
					text-decoration: none;
					border-bottom: 1px solid var(--gray);
					padding-bottom: 5px;
					@media (width >= 800px) {
						&:hover {
							&::after {
								width: 100%;
							}
						}
					}
					&::before,
					&::after {
						position: absolute;
					}
					&::before {
						top: 6px;
						right: 2px;
						color: var(--blue);
						font-family: "Rubik", sans-serif;
						font-size: 12px;
						font-weight: 500;
						counter-increment: my-counter;
						content: counter(my-counter, decimal-leading-zero);						
					}
					&::after {
						left: 0;
						bottom: -1px;
						width: 0;
						height: 2px;
						background-color: var(--blue);
						content: "";
						transition: width 0.3s ease-out;
					}
					.jp {
						display: block;
						font-size: 14px;
						font-weight: 500;
						.s-jp {
							display: inline-block;
							font-size: 12px;
							font-weight: 300;
							margin-left: 12px;
						}
					}
					.en {
						display: block;
						color: var(--blue);
						font-size: 32px;
						line-height: 1.18;
						@media (width <= 800px) {
							font-size: 28px;
						}
					}
					.btn-arrow {
						right: 0;
						bottom: 10px;
					}
				}
			}
		}
	}
}


/*
recruit
*/
.recruit {
	height: 698px;
	background-image: url(../img/homerecruit_img.jpg);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	@media (width <= 800px) {
		height: 18.7vw;
		min-height: 703px;
		background-image: url(../img/homerecruit_img_sp.jpg);
	}
	&::after {
		position: absolute;
		left: 50%;
		top: 100%;
		translate: -50% 0;
		display: block;
		width: 100%;
		height: 80px;
		background-color: var(--white);
		pointer-events: none;
		content: "";
		@media (width <= 800px) {
			height: 64px;
		}
	}
	.cbox {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		width: 100%;
		height: 100%;
		@media (width <= 800px) {
			display: block;
		}
	}
}
.recruit-content {
	position: relative;
	width: 100%;
	max-width: 730px;
	background-color: var(--white);
	border-radius: 16px;
	padding: 94px 20px 94px 84px;
	@media (width <= 800px) {
		max-width: inherit;
		background: none;
		border-radius: 0;
		padding: 78px 15px 0;
	}
	&::before {
		@media (width <= 800px) {
			position: absolute;
			left: 0;
			top: -45px;
			width: 100%;
			height: 127px;
			background: linear-gradient(var(--white) 40%, rgba(var(--white-rgba), 0) 100%);
			content: "";
			pointer-events: none;
			z-index: 0;
		}
	}
	.join {
		position: absolute;
		left: -84px;
		top: 2px;
		rotate: -8deg;
		mix-blend-mode: multiply;
		z-index: 1;
		@media (width <= 800px) {
			left: 9px;
			top: -17px;
			width: 100%;
			max-width: 343px;
		}
	}
	h2 {
		@media (width <= 800px) {
			.jp {
				color: var(--white);
				&::before {
					background-color: var(--white);
				}
			}
			.en {
				color: var(--white);
			}
		}
	}
	.read-recruit {
		font-size: 15px;
		line-height: 1.86;
		margin-bottom: 40px;
		@media (width <= 800px) {
			color: var(--white);
		}
	}
	.btn {
		@media (width <= 800px) {
			background-color: var(--white);
		}	
	}
}

