html, body {
	scroll-behavior: auto !important;
}

#contents {
	font-feature-settings: "palt";
	overflow: clip;
}

#js-loader {
	position:fixed;
	z-index: 999;
	inset: 0;
	margin: auto;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	transition: opacity 0.2s ease;
}
#js-loader .p-ring {
	display: block;
	width: 51px;
	height: 51px;
	border: 5px solid #888;
	border-radius: 50%;
	position: relative;
}
#js-loader .p-ring::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	border: 5px solid transparent;
	border-top-color: #ccc;
	border-radius: 50%;
	position: absolute;
	top: -5px;
	left: -5px;
	animation: ring-rotate 1s linear infinite;
}
@keyframes ring-rotate { to { transform: rotate(360deg); }}

.main img {
	max-width: none !important;
}

.c-progress {
	display: block;
	width: 100%;
	height: 3px;
	position: fixed;
	z-index: 9;
	top: 44px;
	left: 0;
	right: 0;
	margin-inline: auto;
	background-color: #f6f6f6;
}
.c-progress .p-progress {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	display: block;
	width: 100%;
	height: 100%;
	background-color: transparent;
	pointer-events: none;
}
.c-progress .p-progress::-webkit-progress-bar { background-color: transparent; }
.c-progress .p-progress::-moz-progress-bar { background: #ec3c4a; }
.c-progress .p-progress::-webkit-progress-value { background: #ec3c4a; }
.c-progress .p-progress { color: #ec3c4a; }
@media screen and (width >= 768px) {
	.c-progress {
		height: 6px;
		top: 80px;
	}
}

.c-nav {
	display: block;
	width: 100%;
	margin-top: calc(10 / 375 * 100vw);
	margin-left: auto;
	margin-right: 0;
}
.c-nav .p-nav_list {
	display: flex;
	flex-wrap: wrap;
	gap: calc(15 / 375 * 100vw) calc(11 / 375 * 100vw);
}
.c-nav .p-nav_item {
	display: block;
}
.c-nav .p-nav_link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(162 / 375 * 100vw);
	min-height: calc(60 / 375 * 100vw);
	background-color: #eaeaea;
	position: relative;
	z-index: 0;
	font-size: calc(14 / 375 * 100vw);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: calc(16 / 14);
	text-align: center;
	transition: background-color 0.2s ease-out;

	&::before,
	&::after {
		content: "";
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		margin-inline: auto;
		transition: background-color 0.2s ease-out;
	}

	&::before {
		width: calc(25 / 375 * 100vw);
		height: calc(17 / 375 * 100vw);
		clip-path: polygon(50% 100%, 0 0, 100% 0);
		background-color: #eaeaea;
		bottom: calc(12 / 375 * -100vw);
		z-index: -1;
	}

	&::after {
		width: calc(7 / 375 * 100vw);
		height: calc(5 / 375 * 100vw);
		clip-path: polygon(50% 100%, 0 0, 100% 0);
		background-color: #000;
		bottom: calc(5 / 375 * -100vw);
		z-index: 0;
	}
}
@media screen and (width >= 768px) {
	.c-nav {
		width: calc(624 / 1500 * 100vw);
	}
	.c-nav .p-nav_list {
		display: flex;
		flex-wrap: wrap;
		gap: calc(50 / 1500 * 100vw) calc(12 / 1500 * 100vw);
	}
	.c-nav .p-nav_link {
		width: calc(200 / 1500 * 100vw);
		min-height: calc(52 / 1500 * 100vw);
		font-size: calc(16 / 1500 * 100vw);
		font-weight: 800;
		letter-spacing: 0;

			&::before {
				width: calc(34 / 1500 * 100vw);
				height: calc(30 / 1500 * 100vw);
				bottom: calc(23 / 1500 * -100vw);
			}

			&::after {
				width: calc(13 / 1500 * 100vw);
				height: calc(12 / 1500 * 100vw);
				bottom: calc(12 / 1500 * -100vw);
			}
	}
}
@media screen and (any-hover: hover) {
	.c-nav .p-nav_link:hover {
		background-color: #ec3c4a;
		color: #fff;

		&::before {
			background-color: #ec3c4a;
		}

		&::after {
			background-color: #fff;
		}
	}
}

.c-section {
	display: block;
	width: 100%;
	position: relative;
	z-index: 0;

	&.--kv {
		padding-top: 6px;
		z-index: 5;
	}

	&:not(:last-child) {
		padding-bottom: 0;
	}

	&.--ride2,
	&.--ride3,
	&.--ride4 {
		min-height: 100vh;
	}

	& > .p-section_inner {
		width: calc(670 / 750 * 100vw);
		margin-inline: auto;
		position: relative;
		z-index: 20;

		@media screen and (width >= 768px) {
			width: calc(1280 / 1440 * 100vw);

			.--kv &,
			.--ride1 &,
			.--ride5 & {
				width: calc(1260 / 1500 * 100vw);
			}
		}
	}

	&.--ride4 {
		.c-title {
			width: fit-content;
			position: absolute;
			z-index: 5;
			top: 0;
			right: 0;
		}
	}

	&.--ride5 {
		padding-bottom: calc(212 / 750 * 100vw);

		@media screen and (width >= 768px) {
			padding-bottom: calc(225 / 1500 * 100vw);
		}
	}
}

.c-image {
	&.--td {
		display: block;
		width: calc(566 / 750 * 100vw);
		height: calc(182 / 750 * 100vw);
		object-fit: contain;
		margin-inline: auto;
		margin-block-start: calc(12 / 750 * 100vw);
		margin-block-end: calc(79 / 750 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(576 / 1500 * 100vw);
			height: calc(182 / 1500 * 100vw);
			margin-block: 0;
			position: absolute;
			z-index: 10;
			top: calc(474 / 1500 * 100vw);
			left: calc(443 / 1500 * 100vw);
		}
	}
}

/*-----------------------------------------------
	coaster
-----------------------------------------------*/
.c-coaster {
	display: block;
	width: 100%;
	height: auto;
	overflow: hidden;
	position: relative;
	z-index: 3;

	&.--kv {
		margin-top: calc(76 / 750 * -100vw);
		margin-bottom: calc(192 / 750 * -100vw);

		@media screen and (width >= 768px) {
			margin-top: calc(342 / 1500 * -100vw);
			margin-bottom: calc(578 / 1500 * -100vw);
		}

		& .p-section_bg {
			display: block;
			width: calc(400 / 750 * 100vw);
			height: auto;
			object-fit: contain;
			position: absolute;
			z-index: 0;
			top: calc(0 / 750 * 100vw);
			left: calc(200 / 750 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(400 / 1500 * 100vw);
				top: calc(0 / 1500 * 100vw);
				left: calc(172 / 1500 * -100vw);
			}
		}
	}

	&.--ride1 {
		padding-top: calc(40 / 750 * 100vw);
		margin-top: calc(137 / 750 * 100vw);
		margin-bottom: calc(168 / 750 * 100vw);

		@media screen and (width >= 768px) {
			padding-top: calc(70 / 1500 * 100vw);
			margin-top: calc(221 / 1500 * 100vw);
			margin-bottom: calc(164 / 1500 * 100vw);
		}
	}

	&.--ride2 {
		margin-top: calc(44 / 750 * -100vw);
		margin-bottom: calc(164 / 750 * 100vw);

		@media screen and (width >= 768px) {
			margin-top: calc(451 / 1500 * -100vw);
			margin-bottom: calc(370 / 1500 * -100vw);
		}
	}

	&.--ride3 {
		padding-top: calc(40 / 750 * 100vw);
		margin-top: calc(152 / 750 * 100vw);
		margin-bottom: calc(118 / 750 * 100vw);

		@media screen and (width >= 768px) {
			padding-top: calc(70 / 1500 * 100vw);
			margin-top: calc(262 / 1500 * 100vw);
			margin-bottom: calc(130 / 1500 * 100vw);
		}
	}

	&.--ride4 {
		margin-top: calc(150 / 750 * -100vw);
		margin-bottom: calc(194 / 750 * -100vw);

		@media screen and (width >= 768px) {
			margin-top: calc(352 / 1500 * -100vw);
			margin-bottom: calc(307 / 1500 * -100vw);
		}
	}

	& .p-coaster_sp {
		display: block;
		position: relative;

		@media screen and (width >= 768px) {
			display: none;
		}
	}

	& .p-coaster_pc {
		display: none;
		position: relative;

		@media screen and (width >= 768px) {
			display: block;
		}
	}

	& .p-coaster_path {
		display: block;
		position: absolute;
		z-index: 5;
		opacity: 0;

		.--kv & {
			width: calc(571 / 375 * 100vw);
			height: calc(320 / 375 * 100vw);
			top: 0;
			left: calc(60 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(1700 / 1500 * 100vw);
				height: calc(1378 / 1500 * 100vw);
				left: calc(180 / 1500 * -100vw);
			}
		}

		.--ride2 &,
		.--ride4 & {
			width: calc(571 / 375 * 100vw);
			height: calc(320 / 375 * 100vw);
			top: calc(50 / 375 * 100vw);
			left: calc(60 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(1905 / 1500 * 100vw);
				height: calc(1068 / 1500 * 100vw);
				top: 0;
				left: calc(272 / 1500 * -100vw);
			}
		}
	}

	& .p-coaster_rail {
		.--kv & {
			display: block;
			width: calc(571 / 375 * 100vw);
			height: calc(320 / 375 * 100vw);
			margin-top: calc(50 / 375 * 100vw);
			margin-left: calc(70 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(1700 / 1500 * 100vw);
				height: calc(1378 / 1500 * 100vw);
				margin-top: 0;
				margin-left: calc(180 / 1500 * -100vw);
			}
		}

		.--ride1 &,
		.--ride3 &,
		.--ride5 & {
			display: block;
			width: calc(648 / 375 * 100vw);
			height: calc(11 / 375 * 100vw);
			margin-left: calc(136 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(2158 / 1500 * 100vw);
				height: calc(36 / 1500 * 100vw);
				margin-left: calc(329 / 1500 * -100vw);
			}
		}

		.--ride2 &,
		.--ride4 & {
			display: block;
			width: calc(571 / 375 * 100vw);
			height: calc(320 / 375 * 100vw);
			margin-top: calc(50 / 375 * 100vw);
			margin-left: calc(70 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(1905 / 1500 * 100vw);
				height: calc(1068 / 1500 * 100vw);
				margin-top: 0;
				margin-left: calc(304 / 1500 * -100vw);
			}
		}

		.--ride5 & {
			position: absolute;
			bottom: calc(15 / 375 * 100vw);

			@media screen and (width >= 768px) {
				bottom: calc(50 / 1500 * 100vw);
			}
		}
	}

	& .p-coaster_body {
		display: block;
		object-fit: contain;

		.--kv & {
			width: calc(243 / 750 * 100vw);
			height: calc(158 / 750 * 100vw);
			position: absolute;
			z-index: 10;
			top: calc(13 / 375 * -100vw);
			left: calc(60 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(367 / 1500 * 100vw);
				height: calc(321 / 1500 * 100vw);
				top: 0;
				left: calc(104 / 1500 * -100vw);
			}
		}

		.--ride1 &,
		.--ride3 &,
		.--ride5 & {
			width: calc(276 / 750 * 100vw);
			height: calc(46 / 750 * 100vw);
			position: absolute;
			z-index: 10;
			top: 0;
			left: 100vw;

			@media screen and (width >= 768px) {
				width: calc(459 / 1500 * 100vw);
				height: calc(76 / 1500 * 100vw);
			}
		}

		.--ride2 &,
		.--ride4 & {
			width: calc(243 / 750 * 100vw);
			height: calc(158 / 750 * 100vw);
			position: absolute;
			z-index: 10;
			top: calc(11 / 375 * 100vw);
			left: calc(108 / 375 * -100vw);

			@media screen and (width >= 768px) {
				width: calc(405 / 1500 * 100vw);
				height: calc(263 / 1500 * 100vw);
				top: calc(70 / 1500 * -100vw);
				left: calc(320 / 1500 * -100vw);
			}
		}

		.--ride4 & {
			top: calc(16 / 375 * 100vw);

			@media screen and (width >= 768px) {
				top: calc(66 / 1440 * -100vw);
			}
		}

		.--ride5 & {
			top: calc(15 / 375 * 100vw);

			@media screen and (width >= 768px) {
				top: calc(48 / 1500 * 100vw);
			}
		}
	}

	& .p-coaster_entry {
		display: block;
		width: calc(128 / 375 * 100vw);
		height: auto;
		margin-right: auto;
		position: relative;
		z-index: 20;

		@media screen and (width >= 768px) {
			width: calc(425 / 1500 * 100vw);
		}
	}
}

/*-----------------------------------------------
	kv
-----------------------------------------------*/
.c-kv {
	position: relative;
	z-index: 20;

	& > .p-kv_category {
		font-family: var(--noto);
		font-weight: 600;
		font-size: calc(20 / 750 * 100vw);
		margin-block-end: calc(20 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(18 / 1500 * 100vw);
			margin-block-end: calc(66 / 1500 * 100%);
		}
	}

	& > .p-kv_title {
		width: calc(666 / 750 * 100vw);
		margin-inline-start: auto;
		margin-inline-end: 0;
		margin-block-end: calc(48 / 750 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(1170 / 1500 * 100%);
			margin-block-end: calc(82 / 1500 * 100%);
		}
	}

	& > .p-kv_read {
		font-weight: 700;
		font-size: calc(28 / 750 * 100vw);
		line-height: calc(40 / 28);
		letter-spacing: 0.06em;
		text-align: right;

		@media screen and (width >= 768px) {
			font-size: calc(28 / 1500 * 100vw);
		}
	}

	& .p-kv_scroll {
		display: block;
		width: calc(50 / 750 * 100vw);
		height: calc(110 / 750 * 100vw);
		position: absolute;
		z-index: 10;
		right: 0;
		top: calc(615 / 750 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(46 / 1500 * 100vw);
			height: calc(99 / 1500 * 100vw);
			right: calc(78 / 1500 * -100vw);
			top: calc(525 / 1500 * 100vw);
		}
	}
}

/*-----------------------------------------------
	title
-----------------------------------------------*/
.c-title {
	.--ride3 & {
		display: block;
		width: fit-content;
		position: absolute;
		z-index: 10;
		top: calc(20 / 375 * -100vw);

		@media screen and (width >= 768px) {
			top: calc(340 / 1440 * 100vw);
		}
	}

	& > .p-title_no {
		display: block;
		width: fit-content;
		font-family: var(--noto);
		font-size: calc(24 / 750 * 100vw);
		font-weight: 800;
		line-height: calc(28 / 24);
		color: #e60012;
		border: calc(6 / 750 * 100vw) solid #000;
		border-bottom-width: 0;
		padding-block: calc(2 / 750 * 100vw);
		padding-inline: calc(20 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(24 / 1500 * 100vw);
			border-width: calc(6 / 1500 * 100vw);
			border-bottom-width: 0;
			padding-block: calc(2 / 1500 * 100vw);
			padding-inline: calc(26 / 1500 * 100vw);
		}

		.--ride3 &,
		.--ride4 & {
			@media screen and (width >= 768px) {
				font-size: calc(18 / 1440 * 100vw);
				border-width: calc(4 / 1440 * 100vw);
				border-bottom-width: 0;
				padding-block: calc(2 / 1440 * 100vw);
				padding-inline: calc(18 / 1440 * 100vw);
			}
		}

		& > sup {
			font-size: calc(16 / 750 * 100vw);

			@media screen and (width >= 768px) {
				font-size: calc(16 / 1500 * 100vw);
			}
		}

		.--ride3 & {
			margin-inline: auto;
			border-color: #eb7a37;
		}
	}

	& > .p-title_en {
		display: flex;
		align-items: center;
		justify-content: center;
		width: fit-content;
		font-family: var(--noto);
		font-size: calc(32 / 750 * 100vw);
		font-weight: 800;
		line-height: calc(48 / 32);
		border: calc(6 / 750 * 100vw) solid #000;
		padding-inline: calc(20 / 750 * 100vw);
		margin-block-end: calc(23 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(32 / 1500 * 100vw);
			line-height: calc(46 / 32);
			border-width: calc(6 / 1500 * 100vw);
			padding-inline: calc(20 / 1500 * 100vw);
			margin-block-end: calc(30 / 1500 * 100vw);
		}

		.--ride3 & {
			margin-inline: auto;
			border-color: #eb7a37;
			margin-block-end: calc(22 / 750 * 100vw);
		}

		.--ride3 &,
		.--ride4 & {
			@media screen and (width >= 768px) {
				font-size: calc(20 / 1440 * 100vw);
				border-width: calc(4 / 1440 * 100vw);
				padding-inline: calc(20 / 1440 * 100vw);
				margin-block-end: calc(10 / 1440 * 100vw);
			}
		}
	}

	& > .p-title_jp {
		font-family: var(--noto);
		font-size: calc(44 / 750 * 100vw);
		font-weight: 700;
		line-height: calc(60 / 44);
		letter-spacing: 0.02em;
		margin-block-end: calc(42 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(44 / 1500 * 100vw);
			margin-block-end: calc(30 / 1500 * 100vw);
		}

		.--ride3 & {
			text-align: center;
		}

		.--ride3 &,
		.--ride4 & {
			@media screen and (width >= 768px) {
				font-size: calc(32 / 1440 * 100vw);
			}
		}
	}
}

/*-----------------------------------------------
	box
-----------------------------------------------*/
.c-box {
	position: relative;
	z-index: 20;

	.--ride1 & {
		@media screen and (width >= 768px) {
			display: block;
			width: calc(630 / 1500 * 100vw);
		}
	}

	.--ride2 & {
		margin-top: calc(40 / 750 * 100vw);

		@media screen and (width >= 768px) {
			margin-top: calc(30 / 900 * 100vh);
		}
	}

	.--ride3 & {
		margin-top: calc(290 / 750 * -100vw);

		@media screen and (width >= 768px) {
			width: calc(654 / 1440 * 100vw);
			position: absolute;
			z-index: 10;
			top: calc(230 / 900 * 100vh);
			left: auto;
			right: 0;
			margin-top: 0;
			margin-left: 0;
		}
		@media screen and (width >= 768px) and (height < 900px) {
			top: calc(180 / 900 * 100vh);
		}
	}

	.--ride4 & {
		margin-top: calc(40 / 750 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(860 / 1440 * 100vw);
			margin-inline: auto;
			margin-top: calc(30 / 900 * 100vh);
		}
	}

	& > p {
		font-size: calc(28 / 750 * 100vw);
		font-weight: 500;
		line-height: calc(40 / 28);
		letter-spacing: 0.02em;
		text-align: justify;

		@media screen and (width >= 768px) {
			font-size: calc(18 / 1500 * 100vw);
			font-weight: 700;
			line-height: calc(32 / 18);
		}
	}
}

/*-----------------------------------------------
	slide
-----------------------------------------------*/
.c-slide {
	display: block;
	width: 100%;
	height: auto;
	position: relative;
	z-index: 0;

	@media screen and (width >= 768px) {
		width: calc(630 / 1500 * 100vw);
	}

	.--ride2 & {
		padding-top: calc(100 / 375 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(860 / 1440 * 100vw);
			margin-inline: auto;
			padding-top: calc(100 / 900 * 100vh);
		}
	}

	.--ride3 & {
		padding-top: calc(560 / 750 * 100vw);

		@media screen and (width >= 768px) {
			width: calc(654 / 1440 * 100vw);
			padding-top: calc(450 / 900 * 100vh);
		}
		@media screen and (width >= 768px) and (height < 900px) {
			padding-top: min(calc(490 / 900 * 100vh), 340px);
		}
	}

	.--ride4 & {
		padding-top: calc(120 / 375 * 100vw);

		@media screen and (width >= 768px) {
			width: 100%;
			margin-inline: auto;
			padding-top: calc(160 / 900 * 100vh);
		}
	}

	& .p-slide_item {
		position: absolute;
		z-index: 0;
		top: 0;
		left: 0;

		&:not(:first-child) {
			opacity: 0;
		}

		.--ride2 &,
		.--ride3 &,
		.--ride4 & {
			@media screen and (width >= 768px) {
				display: block;
				width: 100%;
			}

			p {
				font-size: calc(28 / 750 * 100vw);
				font-weight: 400;
				line-height: calc(40 / 28);
				letter-spacing: 0.04em;
				text-align: justify;

				@media screen and (width >= 768px) {
					font-size: calc(18 / 1500 * 100vw);
					line-height: calc(32 / 18);
					text-align: left;
				}
			}
		}
	}

	& .p-slide_title {
		font-family: var(--noto);
		margin-block-end: calc(35 / 750 * 100vw);

		@media screen and (width >= 768px) {
			margin-block-end: calc(30 / 1500 * 100vw);
		}
	}

	& .p-slide_title-en {
		display: block;
		font-size: calc(22 / 750 * 100vw);
		font-weight: 800;
		color: #e60012;

		@media screen and (width >= 768px) {
			font-size: calc(18 / 1500 * 100vw);
		}
	}

	& .p-slide_title-jp {
		display: block;
		font-size: calc(44 / 750 * 100vw);
		font-weight: 700;
		line-height: calc(60 / 44);
		letter-spacing: 0.02em;

		@media screen and (width >= 768px) {
			font-size: calc(44 / 1500 * 100vw);
		}
	}
}

/*-----------------------------------------------
	area
-----------------------------------------------*/
.c-area {
	position: relative;
	z-index: 0;

	&:not(:first-child) {
		margin-top: calc(36 / 750 * 100vw);

		@media screen and (width >= 768px) {
			margin-top: calc(42 / 1500 * 100vw);
		}
	}

	&.--first {
		@media screen and (width >= 768px) {
			margin-top: calc(72 / 1500 * 100vw);
		}
	}

	& > .p-area_title {
		font-family: var(--noto);
		font-size: calc(40 / 750 * 100vw);
		font-weight: 700;
		line-height: calc(60 / 40);
		letter-spacing: 0.2em;
		padding-block-end: calc(13 / 750 * 100vw);
		margin-block-end: calc(14 / 750 * 100vw);
		position: relative;
		z-index: 0;

		@media screen and (width >= 768px) {
			font-size: calc(28 / 1500 * 100vw);
			line-height: calc(60 / 28);
			padding-block-end: calc(8 / 1500 * 100vw);
			margin-block-end: calc(15 / 1500 * 100vw);
		}

		&::before {
			content: "";
			display: block;
			width: 100%;
			height: calc(10 / 750 * 100vw);
			background-image: radial-gradient(#e60012 30%, transparent 30%);
			background-size: calc(10 / 750 * 100vw);
			position: absolute;
			bottom: 0;
			left: 0;
			right: 0;
			margin: 0 auto;

			@media screen and (width >= 768px) {
				height: calc(10 / 1500 * 100vw);
				background-size: calc(10 / 1500 * 100vw);
			}
		}
	}

	& > p {
		font-size: calc(28 / 750 * 100vw);
		font-weight: 700;
		line-height: calc(44 / 28);
		letter-spacing: 0.04em;
		text-align: justify;

		@media screen and (width >= 768px) {
			font-size: calc(22 / 1500 * 100vw);
			line-height: calc(36 / 22);
			text-align: left;
		}

		&.--unique {
			@media screen and (width >= 768px) {
				width: calc(700 / 1500 * 100vw);
			}
		}
	}
}

/*-----------------------------------------------
	list
-----------------------------------------------*/
.c-list {
	display: flex;
	flex-direction: column;
	width: calc(614 / 750 * 100vw);
	margin-inline: auto;
	gap: calc(40 / 750 * 100vw);

	@media screen and (width >= 768px) {
		flex-direction: row;
		flex-wrap: wrap;
		width: calc(1260 / 1500 * 100vw);
		gap: calc(32 / 1500 * 100vw);
	}

	& > .p-list_item {
		display: block;
		width: 100%;
		padding-right: calc(10 / 750 * 100vw);
		padding-bottom: calc(10 / 750 * 100vw);
		background-image: repeating-linear-gradient(45deg, rgb(230, 0, 18, 0.45), rgb(230, 0, 18, 0.45) 10px, transparent 10px, transparent 20px);
		background-position-x: calc(10 / 750 * 100vw);
		box-sizing: border-box;

		@media screen and (width >= 768px) {
			width: calc(614 / 1500 * 100vw);
			padding-right: calc(14 / 1500 * 100vw);
			padding-bottom: calc(14 / 1500 * 100vw);
			background-position-x: calc(14 / 1500 * 100vw);
		}

		/* NOTE: 各要素の幅指定は個別値のため維持 */
		&:nth-child(1) img.p-list_col {
			width: calc(102 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(102 / 1500 * 100vw); margin-right: calc(38 / 1500 * 100vw); }
		}
		&:nth-child(2) img.p-list_col {
			width: calc(181 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(181 / 1500 * 100vw); margin-right: calc(14 / 1500 * 100vw); }
		}
		&:nth-child(3) img.p-list_col {
			width: calc(96 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(96 / 1500 * 100vw); margin-right: calc(36 / 1500 * 100vw); }
		}
		&:nth-child(4) img.p-list_col {
			width: calc(225 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(225 / 1500 * 100vw); margin-right: calc(34 / 1500 * 100vw); }
		}
		&:nth-child(5) img.p-list_col {
			width: calc(75 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(75 / 1500 * 100vw); }
		}
		&:nth-child(6) img.p-list_col {
			width: calc(200 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(200 / 1500 * 100vw); }
		}
		&:nth-child(7) img.p-list_col {
			width: calc(102 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(102 / 1500 * 100vw); margin-right: calc(48 / 1500 * 100vw); }
		}
		&:nth-child(8) img.p-list_col {
			width: calc(128 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(128 / 1500 * 100vw); margin-right: calc(36 / 1500 * 100vw); }
		}
		&:nth-child(9) img.p-list_col {
			width: calc(107 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(107 / 1500 * 100vw); margin-right: calc(24 / 1500 * 100vw); }
		}
		&:nth-child(10) img.p-list_col {
			width: calc(128 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(128 / 1500 * 100vw); margin-right: calc(10 / 1500 * 100vw); }
		}
		&:nth-child(11) img.p-list_col {
			width: calc(104 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(104 / 1500 * 100vw); margin-right: calc(66 / 1500 * 100vw); }
		}
		&:nth-child(12) img.p-list_col {
			width: calc(158 / 750 * 100vw);
			@media screen and (width >= 768px) { width: calc(158 / 1500 * 100vw); margin-right: calc(26 / 1500 * 100vw); }
		}
	}

	& .p-list_inner {
		background-color: #ffffdf;
		padding: calc(30 / 750 * 100vw);
		box-sizing: border-box;

		@media screen and (width >= 768px) {
			display: flex;
			flex-direction: column;
			align-items: center;
			width: 100%;
			height: 100%;
			padding: calc(30 / 1500 * 100vw);
		}
	}

	& .p-list_text {
		font-family: var(--noto);
		font-size: calc(28 / 750 * 100vw);
		font-weight: 700;
		line-height: calc(32 / 28);
		letter-spacing: 0.02em;
		text-align: center;
		margin-block-end: calc(19 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(28 / 1500 * 100vw);
			margin-block-end: calc(50 / 1500 * 100vw);
		}
	}

	& .p-list_read {
		font-family: var(--noto);
		font-size: calc(40 / 750 * 100vw);
		font-weight: 800;
		line-height: calc(100 / 40);
		letter-spacing: 0.02em;
		vertical-align: baseline;
		text-align: center;
		margin-block-end: calc(13 / 750 * 100vw);

		@media screen and (width >= 768px) {
			font-size: calc(40 / 1500 * 100vw);
			margin-block-end: calc(50 / 1500 * 100vw);
		}

		& > b {
			font-size: calc(100 / 750 * 100vw);
			line-height: calc(100 / 100);
			vertical-align: text-bottom;
			margin-inline: calc(10 / 750 * 100vw);

			@media screen and (width >= 768px) {
				font-size: calc(100 / 1500 * 100vw);
				margin-inline: calc(10 / 1500 * 100vw);
			}
		}
	}

	& .p-list_row {
		display: flex;
		width: 100%;
		align-items: center;
		gap: calc(30 / 750 * 100vw);

		@media screen and (width >= 768px) {
			gap: calc(10 / 1500 * 100vw);
			margin-top: auto;
		}

		& > .p-list_col:first-child {
			flex: 1 0 0;
			font-size: calc(24 / 750 * 100vw);
			font-weight: 700;
			line-height: calc(40 / 24);
			letter-spacing: 0.02em;
			text-align: justify;

			@media screen and (width >= 768px) {
				font-size: calc(16 / 1500 * 100vw);
				line-height: calc(28 / 16);
				text-align: left;
			}
		}

		& > .p-list_col:last-child {
			height: auto;
			object-fit: contain;
		}
	}

	& .p-list_note {
		font-size: calc(20 / 750 * 100vw);
		font-weight: 500;
		line-height: calc(28 / 20);
		letter-spacing: 0.04em;

		@media screen and (width >= 768px) {
			font-size: calc(12 / 1500 * 100vw);
			line-height: calc(28 / 12);
		}
	}
}

/*-----------------------------------------------
	viking
-----------------------------------------------*/
.c-viking {
	display: block;
	width: 100%;

	& .p-viking_body {
		display: block;
		width: 100%;
		position: relative;
		z-index: 0;

		@media screen and (width >= 768px) {
			width: 100%;
			height: calc(100vh - 80px);
			margin-inline: auto;
		}
	}

	& .p-viking_shadow {
		display: block;
		width: calc(766 / 750 * 100vw);
		height: calc(575 / 750 * 100vw);
		position: absolute;
		z-index: 0;
		top: calc(20 / 375 * -100vw);
		left: calc(24 / 375 * -100vw);
		transform-origin: top center;

		@media screen and (width >= 768px) {
			width: auto;
			height: calc((597 / 900 * 100vh) - 80px);
			object-fit: contain;
			top: 0;
			left: 0;
			right: 0;
			margin: 0 auto;
		}
	}

	& .p-viking_title {
		display: block;
		width: calc(335 / 375 * 100vw);
		height: calc(243 / 375 * 100vw);
		position: relative;
		z-index: 10;
		margin: 0 auto;

		@media screen and (width >= 768px) {
			width: auto;
			height: calc((587 / 900 * 100vh) - 80px);
			left: 50%;
			transform: translateX(-50%);
		}
	}

	& .p-viking_titleImg1,
	& .p-viking_titleImg2,
	& .p-viking_titleImg3 {
		display: block;
		width: auto;
		height: 100%;
		object-fit: contain;
		position: absolute;
		z-index: 0;
		inset: 0;
		margin: auto;
		opacity: 0;
	}

	& .p-viking_titleImg1 {
		opacity: 1;
	}
}

/*-----------------------------------------------
	wheel
-----------------------------------------------*/
.c-wheel {
	position: relative;
	z-index: 0;

	@media screen and (width >= 768px) {
		height: calc(100vh - 80px);
	}

	& .p-wheel {
		display: block;
		width: 100vw;
		height: 100vw;
		position: relative;
		z-index: 0;
		top: calc(190 / 375 * -100vw);
		left: calc(276 / 750 * -100vw);

		@media screen and (width >= 768px) {
			width: calc(780 / 1440 * 100vw);
			height: calc(780 / 1440 * 100vw);
			top: 0;
			left: calc(310 / 1440 * -100vw);
		}
	}

	& .p-wheel_container {
		display: block;
		position: relative;
		z-index: 0;
		transform-origin: center center;
		will-change: transform;
	}

	& .p-wheel_body {
		display: block;
		width: 100vw;
		height: 100vw;
		object-fit: contain;
		position: relative;
		z-index: 0;

		@media screen and (width >= 768px) {
			width: calc(780 / 1440 * 100vw);
			height: calc(780 / 1440 * 100vw);
		}
	}

	& .p-wheel_gondola {
		display: block;
		width: calc(66 / 750 * 100vw);
		height: calc(66 / 750 * 100vw);
		object-fit: contain;
		transform-origin: top center;
		position: absolute;
		z-index: 10;
		will-change: transform;

		@media screen and (width >= 768px) {
			width: calc(64 / 780 * 100%);
			height: calc(64 / 780 * 100%);
		}

		&.--1 { top: calc(2 / 750 * 100vw); left: calc(344 / 750 * 100vw); @media screen and (width >= 768px) { top: 0; left: calc(355 / 780 * 100%); } }
		&.--2 { top: calc(30 / 750 * 100vw); left: calc(484 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(32 / 780 * 100%); left: calc(504 / 780 * 100%); } }
		&.--3 { top: calc(108 / 750 * 100vw); left: calc(606 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(115 / 780 * 100%); left: calc(632 / 780 * 100%); } }
		&.--4 { top: calc(230 / 750 * 100vw); left: calc(686 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(243 / 780 * 100%); left: calc(716 / 780 * 100%); } }
		&.--5 { top: calc(368 / 750 * 100vw); left: calc(716 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(383 / 780 * 100%); left: calc(749 / 780 * 100%); } }
		&.--6 { top: calc(514 / 750 * 100vw); left: calc(690 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(536 / 780 * 100%); left: calc(720 / 780 * 100%); } }
		&.--7 { top: calc(634 / 750 * 100vw); left: calc(604 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(664 / 780 * 100%); left: calc(636 / 780 * 100%); } }
		&.--8 { top: calc(718 / 750 * 100vw); left: calc(484 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(748 / 780 * 100%); left: calc(508 / 780 * 100%); } }
		&.--9 { top: calc(748 / 750 * 100vw); left: calc(344 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(778 / 780 * 100%); left: calc(360 / 780 * 100%); } }
		&.--10 { top: calc(718 / 750 * 100vw); left: calc(204 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(747 / 780 * 100%); left: calc(210 / 780 * 100%); } }
		&.--11 { top: calc(636 / 750 * 100vw); left: calc(80 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(669 / 780 * 100%); left: calc(85 / 780 * 100%); } }
		&.--12 { top: calc(516 / 750 * 100vw); left: 0; @media screen and (width >= 768px) { top: calc(540 / 780 * 100%); left: 0; } }
		&.--13 { top: calc(378 / 750 * 100vw); left: calc(30 / 750 * -100vw); @media screen and (width >= 768px) { top: calc(396 / 780 * 100%); left: calc(33 / 780 * -100%); } }
		&.--14 { top: calc(232 / 750 * 100vw); left: calc(2 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(243 / 780 * 100%); left: 0; } }
		&.--15 { top: calc(112 / 750 * 100vw); left: calc(80 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(115 / 780 * 100%); left: calc(82 / 780 * 100%); } }
		&.--16 { top: calc(34 / 750 * 100vw); left: calc(200 / 750 * 100vw); @media screen and (width >= 768px) { top: calc(32 / 780 * 100%); left: calc(207 / 780 * 100%); } }
	}
}

/*-----------------------------------------------
	pixie
-----------------------------------------------*/
.c-pixie {
	display: block;
	width: 100%;
	position: relative;
	z-index: 0;
	padding-top: calc(280 / 750 * 100vw);
	margin-bottom: calc(45 / 750 * 100vw);

	@media screen and (width >= 768px) {
		width: calc(980 / 1440 * 100vw);
		height: calc(100vh - 80px);
		padding-top: 0;
		margin-inline: auto;
		margin-bottom: 0;
	}

	& .p-pixie_body {
		display: block;
		width: 100%;
		position: relative;
		z-index: 0;

		@media screen and (width >= 768px) {
			height: calc(100vh - 80px);
			margin-inline: auto;
		}
	}

	& .p-pixie_item {
		display: block;
		width: calc(600 / 750 * 100vw);
		height: auto;
		margin-inline: auto;
		object-fit: contain;

		@media screen and (width >= 768px) {
			width: calc(832 / 1440 * 100vw);
			height: calc((620 / 900 * 100vh) - 80px);
		}
	}

	& .p-pixie_title {
		display: block;
		width: calc(300 / 750 * 100vw);
		height: calc(118 / 750 * 100vw);
		object-fit: contain;
		position: absolute;
		z-index: 5;
		left: 0;
		right: 0;
		margin: 0 auto;

		/* 共通スタイルの適用 */
		.--ride4Slide_item1 &,
		.--ride4Slide_item2 &,
		.--ride4Slide_item3 &,
		.--ride4Slide_item4 & {
			top: calc(186 / 750 * -100vw);

			@media screen and (width >= 768px) {
				height: calc(119 / 900 * 100vh);
				top: calc((140 / 900 * -100vh) - 40px);
			}
		}

		.--ride4Slide_item1 & {
			@media screen and (width >= 768px) {
				width: calc(242 / 860 * 100%);
			}
		}

		.--ride4Slide_item2 & {
			width: calc(284 / 750 * 100vw);
			@media screen and (width >= 768px) {
				width: calc(268 / 860 * 100%);
			}
		}

		.--ride4Slide_item3 & {
			width: calc(436 / 750 * 100vw);
			@media screen and (width >= 768px) {
				width: calc(418 / 860 * 100%);
			}
		}

		.--ride4Slide_item4 & {
			width: calc(452 / 750 * 100vw);
			@media screen and (width >= 768px) {
				width: calc(418 / 860 * 100%);
			}
		}
	}
}