@charset "utf-8";
header {
	display: none;
}

#section__pagination {
	mix-blend-mode: multiply;
	position: fixed;
	top: 50%;
	right: 144px;
	transform: translateY(-50%);
	z-index: 10;
	transition: .3s;
}
#section__pagination._inactive {
	opacity: 0;
}
	.section__pagination__list {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}
		.section__pagination__list__item {
			width: auto;
			height: auto;
			position: relative;
			cursor: pointer;
		}
			.section__pagination__list__item__icon {
				width: 15px;
				height: 15px;
				background-color: var(--color--light_gray);
				transition: .3s;
			}
			.section__pagination__list__item__txt_ja {
				font-size: 14px;
				font-weight: 600;
				line-height: calc(16 / 14);
				letter-spacing: 0.08em;
				color: var(--color--navy-3);
				white-space: nowrap;
				position: absolute;
				top: -1px;
				left: -8px;
				transform: translate(-100%, 0%);
				transition: .3s;
				opacity: 0;
			}
			.section__pagination__list__item__txt_en {
				font-size: 16px;
				font-weight: 600;
				line-height: calc(18 / 16);
				letter-spacing: 0.05em;
				color: var(--color--navy-3);
				white-space: nowrap;
				position: absolute;
				top: -3px;
				right: -10px;
				transform: translate(100%, 0%);
				transition: .3s;
				opacity: 0;
			}
			.section__pagination__list__item._current .section__pagination__list__item__icon {
				background-color: var(--color--navy-3);
				mix-blend-mode: none;
			}
			.section__pagination__list__item._current .section__pagination__list__item__txt_ja,
			.section__pagination__list__item._current .section__pagination__list__item__txt_en {
				color: var(--color--navy-3);
				opacity: 1;
			}

#hero {
	width: 100%;
	/* height: calc(100vh - 120px); */
	height: calc(100vh - 90px);
	position: relative;
	z-index: 11;
}
	.hero__bg {
		width: 100%;
		height: 100%;
		position: relative;
		overflow: hidden;
	}
		.hero__bg::after {
			content: '';
			display: block;
			width: 100%;
			height: 400%;
			background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 25%, rgba(255, 255, 255, 0) 75%, rgba(255, 255, 255, 0) 100%);
			position: absolute;
			top: 0;
			left: 0;
			z-index: 1;
			transition: 1.2s;
			opacity: 1;
		}
		._loaded .hero__bg::after {
			opacity: 0;
			top: -100%;
		}
		.hero__bg img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			object-position: center bottom;
		}
	.hero__inner {
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
		.hero__contents {
			width: calc((1420 / 1920) * 100%);
			height: auto;
			padding: calc((195 / 840) * 100vh) 0 0;
			margin: 0 auto;
		}
			.hero__copy_wrap {
				width: 100%;
				height: auto;
			}
				.hero__copy {
					display: block;
					width: auto;
					height: auto;
				}
					.hero__copy__txt {
						font-size: 43px;
						font-weight: 600;
						line-height: calc(68 / 43);
						letter-spacing: 0.2em;
						color: var(--color--white);
						filter: blur(10px);
						opacity: 0;
						transition: 1s;
					}
					._01 .hero__copy__txt {
						transition-delay: 1.2s;
					}
					._02 .hero__copy__txt {
						transition-delay: 1.8s;
					}
					._loaded .hero__copy__txt {
						filter: blur(0);
						opacity: 1;
					}
		.hero__btn_list {
			display: flex;
			flex-direction: column;
			gap: 24px;
			width: 390px;
			height: auto;
			position: absolute;
			bottom: 30px;
			right: calc((135 / 1920) * 100%);
			z-index: 2;
		}
			.hero__btn_list__item {
				width: 100%;
				height: 65px;
			}
				.hero__btn {
					display: flex;
					justify-content: center;
					align-items: center;
					width: 100%;
					height: 100%;
					background-color: rgba(58, 58, 72, 0.8);
					font-size: 20px;
					font-weight: 600;
					line-height: 1;
					letter-spacing: 0.1em;
					color: var(--color--white);
				}
			@media (any-hover: hover) {
				.hero__btn {
					transition: .3s;
				}
				.hero__btn:hover {
					background-color: rgba(58, 58, 72, 1);
				}
			}

.section__heading {
	width: 100%;
	height: auto;
}
	.section__heading__en {
		width: 100%;
		height: auto;
		margin: 0 auto 5px;
		font-size: 38px;
		font-weight: 700;
		line-height: calc(41 / 38);
		letter-spacing: 0.12em;
		color: var(--color--navy-3);
	}
	.section__heading__ja {
		width: 100%;
		height: auto;
		font-size: 17px;
		font-weight: 600;
		line-height: calc(20 / 17);
		letter-spacing: 0.12em;
		color: var(--color--navy-3);
	}

#about {
	width: 100%;
	height: auto;
	padding: 100px 0 95px;
	overflow: hidden;
}
	.about__inner {
		width: 90%;
		max-width: 1000px;
		height: auto;
		margin: 0 auto;
	}
		#about .section__heading {
			margin-bottom: 24px;
		}
		.about__contents {
			width: 100%;
			max-width: 700px;
			height: auto;
		}
			.about__contents__txt {
				width: 100%;
				height: auto;
				margin-bottom: 75px;
				font-size: 25px;
				font-weight: 600;
				line-height: calc(48 / 25);
				letter-spacing: 0.05em;
				color: var(--color--navy-3);
				white-space: nowrap;
			}
			.about__btn_wrap {
				margin: 0 auto 0 462px;
			}
		.about__image {
			width: 100vw;
			height: auto;
			margin: 115px auto 0;
			position: relative;
			left: 50%;
			transform: translateX(-50%);
			z-index: 1;
		}
			.about__image__list_wrap {
				display: flex;
				justify-content: flex-start;
				align-items: center;
				width: auto;
				height: auto;
				overflow: hidden;
			}
				.about__image__list {
					flex-shrink: 0;
					display: flex;
					justify-content: flex-start;
					align-items: center;
					gap: calc(10 / 1920 * 100vw);
					margin-right: calc(10 / 1920 * 100vw);
					animation: infinity-scroll-left 80s infinite linear 0.5s both;
				}
					.about__image__list img {
						width: 25vw;
					}
				@keyframes infinity-scroll-left {
					from {
						transform: translateX(0);
					}
					to {
						transform: translateX(-100%);
					}
				}

#service {
	width: 100%;
	height: auto;
	padding: 100px 0 185px;
	background-color: var(--color--beige);
}
	.service__inner {
		width: 90%;
		max-width: 1000px;
		height: auto;
		margin: 0 auto;
	}
		#service .section__heading {
			margin-bottom: 24px;
		}
		.service__txt {
			width: 100%;
			height: auto;
			margin: 0 auto 65px;
			font-size: 25px;
			font-weight: 600;
			line-height: calc(48 / 25);
			letter-spacing: 0.05em;
			color: var(--color--navy-3);
		}
		.service__list {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 60px 32px;
			width: 100%;
			height: auto;
		}
			.service__list__item {
				width: 100%;
				height: auto;
			}
				.service__list__item__link {
					width: 100%;
					height: auto;
				}
					.service__list__item__image {
						width: 100%;
						height: auto;
						overflow: hidden;
					}
					.service__list__item__contents {
						display: flex;
						justify-content: space-between;
						align-items: center;
						width: 100%;
						height: auto;
						padding: 8px 0 8px 10px;
					}
						.service__list__item__name {
							width: auto;
							height: auto;
							font-size: 25px;
							font-weight: 600;
							line-height: calc(28 / 25);
							letter-spacing: 0.08em;
							color: var(--color--navy-3);
						}
				@media (any-hover: hover) {
						.service__list__item__image img {
							transition: .3s;
							transform: scale(1);
							opacity: 1;
						}
						.service__list__item__link:hover .service__list__item__image img {
							transform: scale(1.03);
							opacity: .8;
						}
								.service__list__item__link:hover .service__list__item__btn::after {
									background-color: var(--color--navy-3);
								}
				}
							.service__list__item__btn {
								pointer-events: none;
							}
						@media (any-hover: hover) {
							.service__list__item__link:hover .service__list__item__btn .cmn_btn__txt_01 {
								transform: translateY(-100%);
							}
							.service__list__item__link:hover .service__list__item__btn .cmn_btn__txt_02 {
								transform: translateY(0%);
							}
						}

#features {
	width: 100%;
	height: auto;
	position: relative;
}
	.features__main {
		width: 50%;
		height: auto;
		margin: 0 auto 0 0;
		background-color: var(--color--navy-3);
	}
		.features__main__item {
			width: 100%;
			height: calc(175vh - 120px);
		}
			.features__main__item__top {
				width: 100%;
				height: calc(100vh - 120px);
				padding: 230px 0 0;
			}
				.features__main__item__top__inner {
					width: 560px;
					height: auto;
					margin: 0 0 0 auto;
				}
					#features .section__heading {
						margin-bottom: 38px;
						color: var(--color--white);
					}
						#features .section__heading__ja,
						#features .section__heading__en {
							color: var(--color--white);
						}
					.features__main__item__txt {
						font-size: 30px;
						font-weight: 600;
						line-height: calc(50 / 30);
						letter-spacing: 0.05em;
						color: var(--color--white);
					}
	.features__heading {
		width: 0;
		height: 100%;
		position: absolute;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
		z-index: 10;
	}
		.features__heading__inner {
			width: 0;
			height: calc(100vh - 90px);
			position: sticky;
			top: 90px;
			left: 50%;
			transform: translateX(-50%);
			z-index: 2;
		}
			.features__heading__wrap {
				position: absolute;
				top: calc((60 / 800) * 100vh);
				left: 50%;
				transform: translateX(-50%);
			}
				.features__heading__en {
					width: calc((387 / 1920) * 100vw);
					height: auto;
					margin: 0 auto;
				}
				.features__heading__num {
					font-size: calc((114 / 1920) * 100vw);
					font-weight: 700;
					line-height: calc(132 / 114);
					letter-spacing: 0.12em;
					text-align: center;
					color: var(--color--white);
				}
					.features__heading__num span {
						display: inline-block;
						width: 48px;
					}
	.features__sub {
		width: 50%;
		height: 100%;
		position: absolute;
		top: 0;
		right: 0;
	}
		.features__sub__inner {
			width: 100%;
			height: calc(100vh - 90px);
			position: relative;
			right: 0;
		}
			.features__sub__item,
			.features__sub__image {
				width: 100%;
				height: 0;
				position: absolute;
				top: 0;
				left: 0;
				overflow: hidden;
			}
			.features__sub__item._01 {
				height: 100%;
				background-color: var(--color--navy-8);
				z-index: 1;
			}
			.features__sub__image._01 {
				z-index: 2;
			}
			.features__sub__item._02 {
				background-color: var(--color--navy-4);
				z-index: 3;
			}
			.features__sub__image._02 {
				z-index: 4;
			}
			.features__sub__item._03 {
				background-color: var(--color--navy-3);
				z-index: 5;
			}
				.features__sub__item__inner {
					display: flex;
					justify-content: flex-start;
					align-items: center;
					width: 100%;
					height: auto;
					padding: 0 30px 0 140px;
					position: absolute;
					top: calc((100vh - 120px) * 0.5);
					transform: translateY(-50%);
				}
					.features__sub__item__txt {
						font-size: 19px;
						font-weight: 600;
						line-height: calc(54 / 19);
						letter-spacing: 0.05em;
						color: var(--color--white);
					}
				.features__sub__image img {
					width: 100%;
					height: 100vh;
					object-fit: cover;
					object-position: center;
				}

#movie {
	width: 100%;
	height: auto;
	padding: 115px 0 230px;
}
	.movie__inner {
		width: 90%;
		max-width: 1000px;
		height: auto;
		margin: 0 auto;
	}
		#movie .section__heading {
			margin-bottom: 42px;
		}
		.movie__contents {
			width: 100%;
			height: auto;
		}
			.movie__list {
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				gap: calc((25 / 1000) * 100%);
				width: 100%;
				height: auto;
			}
				.movie__list__item {
					width: 100%;
					height: auto;
					aspect-ratio: 16 / 9;
				}
					.movie__list__item iframe {
						width: 100%;
						height: 100%;
					}

#contents{
	width: 100%;
	height: auto;
	padding: 120px 0;
	position: relative;
}
	.contents__inner {
		width: 100%;
		height: auto;
		padding: 0 25px;
		margin: 0 auto;
		overflow: hidden;
	}
		.contents__swiper {
			width: 100%;
			height: auto;
			overflow: initial;
			position: relative;
		}
			.swiper-wrapper {
				overflow: initial;
			}
				.swiper-slide {
					padding: 0 25px;
				}
					.contents__item {
						display: block;
						width: 100%;
						height: auto;
						transition: .3s;
					}
						.contents__item__image {
							width: 100%;
							height: auto;
							overflow: hidden;
						}
						.contents__item__details {
							width: 100%;
							height: auto;
							padding: 8px 0;
						}
							.contents__item__ttl {
								width: 100%;
								height: auto;
								margin: 0 auto 10px;
								font-size: 18px;
								font-weight: 600;
								line-height: calc(30 / 18);
								letter-spacing: 0.1em;
								color: var(--color--navy-3);
								white-space: nowrap;
							}
					@media (any-hover: hover) {
							.contents__item__image img {
								transition: .3s;
								transform: scale(1);
								opacity: 1;
							}
							.contents__item:hover .contents__item__image img {
								transform: scale(1.045);
								opacity: .8;
							}
					}
								.contents__item_btn {
									pointer-events: none;
								}
							@media (any-hover: hover) {
								.contents__item:hover .contents__item_btn .cmn_btn__txt_01 {
									transform: translateY(-100%);
								}
								.contents__item:hover .contents__item_btn .cmn_btn__txt_02 {
									transform: translateY(0%);
								}
							}
			.contents__swiper-button-prev{
				width: 15px;
				height: auto;
				color: var(--color--navy-3);
				font-size: 12px;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.05em;
				position: absolute;
				bottom: 60px;
				right: 27.5vw;
				transform: translateX(-4vw);
				z-index: 1;
				cursor: pointer;
			}
			.contents__swiper-button-next{
				width: 15px;
				height: auto;
				color: var(--color--navy-3);
				font-size: 12px;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.05em;
				position: absolute;
				bottom: 60px;
				right: 27.5vw;
				transform: translateX(0px);
				z-index: 1;
				cursor: pointer;
			}
				.contents__swiper-button-prev img,
				.contents__swiper-button-next img {
					width: 100%;
					height: auto
				}

#sponsor {
	width: 100%;
	height: auto;
	padding: 80px 0;
}
	.sponsor__inner {
		width: 100%;
		height: auto;
		margin: 0 auto;
	}
		.sponsor__list {
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 40px;
			width: 100%;
			height: auto;
		}
			.sponsor__list__item {
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 16px;
				width: auto;
				height: auto;
			}
				.sponsor__list__item__logo {
					width: auto;
					height: 156px;
				}
					.sponsor__list__item__logo img {
						width: auto;
						height: 100%;
					}
				.sponsor__list__item__txt {
					width: auto;
					height: auto;
					font-size: 12px;
					font-weight: 500;
					line-height: 1.8;
					letter-spacing: 0;
					text-align: center;
				}

/* PC ================================================== */
@media all and (max-width: 1599px){
/* features */
			.features__sub__item__inner {
				padding: 0 30px 0 calc((100 / 1600) * 100vw);
			}

}
@media all and (max-width: 1499px){
/* contents */
							.contents__item__ttl {
								margin: 0 auto 8px;
								font-size: 15px;
							}
}
@media all and (max-width: 1279px) and (min-width: 769px){
/* features */
				.features__main__item__top__inner {
					width: calc((560 / 640) * 100%);
				}
					.features__main__item__txt {
						font-size: 20px;
					}
				.features__sub__item__txt {
					font-size: 16px;
				}

/* contents */
					.swiper-slide:not(.swiper-slide-next) .contents__item {
						opacity: .3;
						pointer-events: none;
					}
}
@media all and (max-width: 999px){
/* contents */
	.contents__inner {
		padding: 0 15px;
	}
				.swiper-slide {
					padding: 0 15px;
				}
							.contents__item__ttl {
								white-space: wrap;
							}
}

@media all and (min-width: 1920px){
/* features */
				.features__heading__en {
					width: 387px;
				}
				.features__heading__num {
					font-size: 114px;
				}
}
@media all and (min-width: 1280px){
/* contents */
					.swiper-slide-prev .contents__item,
					.swiper-slide-active .contents__item,
					.swiper-slide-duplicate-prev .contents__item,
					.swiper-slide-duplicate-active .contents__item {
						opacity: .3;
						pointer-events: none;
					}
}
@media all and (max-width: 960px){
#sponsor {
	padding: 40px 0;
}
	.sponsor__inner {
		padding-right: 15px;
	}
		.sponsor__list {
			flex-direction: column;
			justify-content: flex-start;
			gap: 24px;
		}
			.sponsor__list__item {
				gap: 12px;
			}
				.sponsor__list__item__logo {
					height: 140px;
				}
				.sponsor__list__item__txt {
					padding: 16px 8px;
					border-top: solid 2px;
					border-bottom: solid 2px;
				}
				.sponsor__list__item:nth-child(1) .sponsor__list__item__txt {
					border-color: #f0bf1b;
				}
				.sponsor__list__item:nth-child(2) .sponsor__list__item__txt {
					border-color: #001b5c;
				}
				.sponsor__list__item:nth-child(3) .sponsor__list__item__txt {
					border-color: #0b3190;
				}
}
@media all and (min-width: 769px){
/* hero */
		.hero__btn_list {
			opacity: 0;
			transition: .8s;
			transition-delay: 3s;
		}
		._loaded .hero__btn_list {
			opacity: 1;
		}

/* features */
			.features__main__item__bottom {
				display: none;
			}
}

/* Tablet ================================================== */
@media all and (max-width: 768px){
#section__pagination {
	display: none;
}

#hero {
	height: auto;
	aspect-ratio: 390 / 380;
}
	.hero__inner {
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
		.hero__contents {
			width: calc((310 / 390) * 100%);
			padding: calc((78 / 390) * 100vw) 0 0;
		}
					.hero__copy__txt {
						font-size: 24px;
						line-height: calc(36 / 24);
					}
		.hero__btn_list {
			flex-direction: row;
			gap: 2px;
			width: 100%;
			background-color: var(--color--white);
			position: fixed;
			bottom: 0;
			right: 0;
		}
			.hero__btn_list__item {
				width: calc(50% - 1px);
				height: 60px;
			}
				.hero__btn {
					background-color: var(--color--navy-5);
					font-size: 14px;
				}

/* section__heading */
	.section__heading__en {
		margin: 0 auto 2px;
		font-size: 28px;
		font-weight: 500;
		line-height: calc(32 / 28);
		letter-spacing: 0.05em;
	}
	.section__heading__ja {
		font-size: 12px;
		line-height: calc(14 / 12);
		letter-spacing: 0.05em;
	}

#about {
	padding: 46px 0 0;
	transition: .8s;
	opacity: 0;
}
#about._loaded {
	opacity: 1;
}
	.about__inner {
		width: 100%;
	}
		#about .section__heading {
			width: calc((310 / 390) * 100%);
			margin: 0 auto 10px auto;
		}
		.about__contents {
			width: calc((310 / 390) * 100%);
			margin: 0 auto;
			max-width: initial;
		}
			.about__contents__txt {
				margin-bottom: 26px;
				font-size: 14px;
				line-height: calc(34 / 14);
				letter-spacing: 0.05em;
			}
			.about__btn_wrap {
				margin: 0 auto;
			}
		.about__image {
			margin: 28px auto 0;
		}
				.about__image__list {
					gap: 0;
					margin-right: 0;
				}
					.about__image__list img {
						width: 50vw;
					}

#service {
	padding: 46px 0 90px;
}
	.service__inner {
		width: 100%;
	}
		#service .section__heading {
			width: calc((310 / 390) * 100%);
			margin: 0 auto 62px auto;
		}
		.service__txt {
			display: flex;
			justify-content: center;
			margin: 0 auto 82px;
			font-size: 16px;
			line-height: calc(34 / 16);
			letter-spacing: 0.05em;
		}
		.service__list {
			grid-template-columns: repeat(1, 1fr);
			gap: 20px;
			width: 100%;
		}
					.service__list__item__contents {
						flex-direction: column;
						justify-content: flex-start;
						align-items: center;
						padding: 8px 0;
					}
						.service__list__item__name {
							width: 100%;
							margin: 0 auto 12px;
							font-size: 18px;
							line-height: calc(21 / 18);
							letter-spacing: 0.16em;
							text-align: center;
						}

/* features */
#features {
	padding: calc((188 / 390) * 100vw) 0 0;
}
	.features__main {
		width: 100%;
		margin: 0;
	}
		.features__main__item {
			height: auto;
		}
			.features__main__item__top {
				height: auto;
				padding: 50px 0 0;
			}
				.features__main__item__top__inner {
					width: calc((310 / 390) * 100%);
					margin: 0 auto;
				}
					#features .section__heading {
						margin-bottom: 56px;
					}
						.section__heading__cmn {
							width: 158px;
							height: auto;
							margin-left: 2px;
						}
						#features .section__heading__ja,
						#features .section__heading__en {
							color: var(--color--white);
						}
						.section__heading__num {
							margin: 1px auto 0 -2px;
							font-size: 28px;
							font-weight: 500;
							line-height: calc(32 / 28);
							letter-spacing: 0.12em;
							color: var(--color--white);
						}
					.features__main__item__txt {
						font-size: 16px;
						line-height: calc(34 / 16);
					}
			.features__main__item__bottom {
				width: 100%;
				height: auto;
				padding: 80px 0 0;
			}
			.features__main__item._03 .features__main__item__bottom {
				padding: 80px 0;
			}
				.features__main__item__bottom__inner {
					width: calc((245 / 390) * 100%);
					height: auto;
					margin: 0 auto;
				}
					.features__main__item__bottom__txt {
						width: 100%;
						height: auto;
						font-size: 13px;
						font-weight: 600;
						line-height: calc(32 / 13);
						letter-spacing: 0.05em;
						color: var(--color--white);
					}
					.features__main__item__bottom__image {
						width: 100%;
						height: auto;
						margin: 85px auto 0;
					}
	.features__heading {
		display: none;
	}
	.features__sub {
		display: none;
		width: 100%;
		height: auto;
	}
		.features__sub__inner {
			height: calc((188 / 390) * 100vw);
		}
			.features__sub__item,
			.features__sub__image {
				display: none;
			}

#movie {
	padding: 50px 0 86px;
}
	.movie__inner {
		width: calc((310 / 390) * 100%);
	}
		#movie .section__heading {
			margin-bottom: 52px;
		}
		.movie__contents {
			width: calc((282 / 310) * 100%);
			margin: 0 auto;
		}
			.movie__list {
				grid-template-columns: repeat(1, 1fr);
				gap: calc((8 / 390) * 100vw);
			}

#contents{
	border-top: 1px solid var(--color--light_gray);
	border-bottom: 1px solid var(--color--light_gray);
	padding: 50px 0;
}
	.contents__inner {
		padding: 0;
	}
				.swiper-slide {
					padding: 0 24px;
				}
						.contents__item__details {
							padding: 5px 0;
						}
							.contents__item__ttl {
								margin: 0 auto 14px;
								font-size: 10px;
								line-height: calc(14 / 10);
							}
								.contents__item_btn {
									width: 58px;
									font-size: 11px;
								}

#sponsor {
	padding: 52px 0 50px;
}
}

/* SP ================================================== */
@media all and (max-width: 575px){

}