@charset "utf-8";

/***************** common *****************/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	font-family: "Zen Old Mincho", serif;
	font-weight: 400;
	font-style: normal;
	color: #646464;
	overflow-anchor: none;
}

body {
	width: 100%;
	overflow-x: hidden;
}

header {
	position: relative;

	#menu_box {
		display: none;

		@media (width <= 1000px) {
			display: block;
			position: fixed;
			left: 4vw;
			top: 6vw;
			z-index: 3;

			#btn_open {
				span {
					width: 7.8vw;
					height: 1px;
					display: block;
					margin: 0 auto;

					&:first-of-type {
						background: #000;
					}

					&:nth-of-type(n+2) {
						background-image: repeating-linear-gradient(90deg, #000, #000 2px, transparent 2px, transparent 5px);
						background-position: left bottom;
						background-repeat: repeat-x;
						background-size: 100% 1px;
						margin-top: 2vw;
					}
				}

				p {
					font-size: 3vw;
					font-weight: bold;
					margin-top: 1.5vw;
				}
			}

			nav {
				background: rgba(255, 255, 255, .9);
				width: 100%;
				height: 100vh;
				display: none;
				position: fixed;
				left: 0;
				top: 0;
				z-index: 4;

				.logo {
					padding-top: 4vw;
					text-align: center;

					img {
						width: 25vw;
					}
				}

				#btn_close {
					position: absolute;
					left: 4vw;
					top: 8.5vw;

					span {
						background: #000;
						width: 7.8vw;
						height: 1px;
						display: block;

						&:first-of-type {
							transform: rotate(45deg);
						}

						&:last-of-type {
							transform: rotate(-45deg) translate(calc(1px / 2), calc(-1px / 2));
						}
					}
				}

				ul {
					width: 100%;
					margin-top: 70vw;
					display: flex;
					gap: 0 7.5vw;
					justify-content: center;

					li {
						font-size: 4vw;
						font-weight: bold;
						writing-mode: vertical-rl;
						letter-spacing: 0.1em;

						&:first-child {
							order: 7;
						}

						&:nth-child(2) {
							order: 6;
						}

						&:nth-child(3) {
							order: 5;
						}

						&:nth-child(4) {
							order: 4;
						}

						&:nth-child(5) {
							order: 3;
						}

						&:nth-child(6) {
							order: 2;
						}

						&:nth-child(7) {
							order: 1;
						}
					}
				}
			}
		}
	}
}

.u_layer {
	header {
		height: min(90vw, 1080px);

		.wrap {
			width: min(75vw, 900px);		
			padding-top: 2.5vw;
			margin: 0 auto;
			display: flex;
			justify-content: space-between;

			h1 {
				display: block;
				order: 2;

				img {
					width: min(9.167vw, 110px);
				}
			}

			#menu_box {
				display: block;

				#btn_open {
					display: none;
				}

				nav {
					.logo {
						display: none;
					}

					ul {
						width: min(58.333vw, 700px);
						display: flex;
						justify-content: space-between;

						li {
							a {
								font-size: min(2.167vw, 26px);
								color: #000;
								background: linear-gradient(#ba0000, #ba0000) no-repeat bottom right / 1px 0;
								width: min(3.333vw, 40px);
								align-content: center;
								letter-spacing: 0.2em;
								transition: background-size .5s ease;
								writing-mode: vertical-rl;

								&:hover {
									background-position: top right;
									background-size: 1px 100%;
								}
							}

							&:first-child {
								order: 7;
							}

							&:nth-child(2) {
								order: 6;
							}

							&:nth-child(3) {
								order: 5;
							}

							&:nth-child(4) {
								order: 4;
							}

							&:nth-child(5) {
								order: 3;
							}

							&:nth-child(6) {
								order: 2;
							}

							&:nth-child(7) {
								order: 1;
							}
						}
					}
				}
			}
		}

		.title {
			text-align: center;

			h2 {
				font-size: min(4.5vw, 54px);
				font-weight: bold;
				color: #000;
				background: url(../images/circle.png) no-repeat center top / min(3.417vw, 41px) min(3.583vw, 43px);
				margin: min(8.333vw, 100px) auto 0;
				padding-top: min(5vw, 60px);
				text-align: center;
				letter-spacing: 0.15em;
				writing-mode: vertical-rl;
				display: inline-block;
			}
		}

		@media (width <= 1000px) {
			height: 160vw;
			padding-top: 30vw;

			.wrap {
				h1 {
					display: none;
				}

				#menu_box {
					#btn_open {
						display: block;
					}

					nav {
						.logo {
							display: block;
						}

						ul {
							width: 100%;
							justify-content: center;

							li {
								a {
									font-size: 4vw;
									width: fit-content;
									letter-spacing: 0.1em;
								}
							}
						}
					}
				}
			}

			.title {
				h2 {
					font-size: 6.4vw;
					background: url(../images/circle.png) no-repeat center top / 8.2vw 8.4vw;
					margin: 0 auto;
					padding-top: 10vw;
				}
			}
		}
	}

	main {
		#breadcrumb {
			width: min(100%, 1400px);
			margin: 0 auto;
			display: flex;
			gap: 0 min(2.5vw, 30px);

			li {
				font-size: min(1.667vw, 20px);
				color: #000;

				a {
					color: #ba0000;
					border-bottom: #ba0000 1px solid;
					position: relative;

					&::after {
						content: ">";
						position: absolute;
						right: max(-2.083vw, -25px);
					}
				}
			}

			@media (width <= 1000px) {
				width: 100%;
				margin-top: 1vw;
				padding: 0 2vw;
				gap: 5vw;

				li {
					font-size: 3vw;

					a {
						&::after {
							right: -4vw;
						}
					}
				}
			}
		}

		input[type="text"],
		input[type="email"],
		input[type="tel"],
		input[type="date"] {
			font-size: clamp(16px, 1.571vw, 22px);
			width: 100%;
			height: 60px;
			padding: 0 min(1.429vw, 20px);
			border: #707070 1px solid;
			border-radius: min(0.714vw, 10px);
		}

		input[type="date"] {
			width: min(20vw, 280px);
		}

		select {
			font-size: clamp(16px, 1.571vw, 22px);
			background: url(../images/select_arrow.png) no-repeat right min(1.429vw, 20px) center / min(1.624vw, 23px) min(1.071vw, 15px);
			width: min(8.571vw, 120px);
			height: 60px;
			padding: 0 min(1.429vw, 20px);
			border: #707070 1px solid;
			border-radius: min(0.714vw, 10px);

			&[name="woman"],
			&[name="course"] {
				width: 100%;
			}
		}

		input[type="radio"],
		input[type="checkbox"] {
			width: 0;
		}

		input[type="radio"] + label,
		input[type="checkbox"] + label {
			min-width: min(10vw, 140px);
			padding: min(1vw, 14px) 0 0 min(5vw, 70px);
			display: inline-block;
			position: relative;

			&::before {
				content: '';
				width: min(4.286vw, 60px);
				height: min(4.286vw, 60px);
				border: #707070 1px solid;
				border-radius: 50%;
				cursor: pointer;
				position: absolute;
				left: 0;
				top: 0
			}
		}

		input[type="checkbox"] + label::before {
			border-radius: min(0.714vw, 10px);
		}

		input[type="radio"]:checked + label::after {
			content: '';
			background: #717171;
			width: min(1.858vw, 26px);
			height: min(1.858vw, 26px);
			border-radius: 50%;
			position: absolute;
			left: min(1.214vw, 17px);
			top: min(1.214vw, 17px);
		}

		input[type="checkbox"]:checked + label::after {
			content: '✔';
			font-size: min(2.857vw, 40px);
			font-weight: bold;
			color: #717171;
			position: absolute;
			left: min(1vw, 14px);
			top: 0;
		}

		textarea {
			font-size: clamp(16px, 1.571vw, 22px);
			width: 100%;
			height: min(28.571vw, 400px);
			padding: min(1.429vw, 20px);
			border: #707070 1px solid;
			border-radius: min(0.714vw, 10px);
		}

		

		.error {
			color: #f00;
			margin-top: min(0.714vw, 10px);
		}

		.btn_box {
			width: fit-content;
			margin: min(2.857vw, 40px) auto 0;
			display: flex;
			justify-content: center;
			gap: 0 min(2.857vw, 40px);

			input[type="submit"] {
				font-size: min(1.143vw, 16px);
				background: url(../images/btn_arrow_right.png) no-repeat right min(2.143vw, 30px) center;
				width: min(15.714vw, 220px);
				margin: 0 auto;
				padding-left: min(2.143vw, 30px);
				border: #000 min(0.143vw, 2px) solid;
				border-radius: min(2.143vw, 30px);
				line-height: 3.125;
				cursor: pointer;
				transition: opacity .3s ease;

				&:hover {
					opacity: 0.5;
				}
			}

			input[type="button"] {
				font-size: min(1.143vw, 16px);
				background: url(../images/btn_arrow_left.png) no-repeat left min(2.143vw, 30px) center;
				width: min(15.714vw, 220px);
				margin: 0 auto;
				padding-right: min(2.143vw, 30px);
				border: #000 min(0.143vw, 2px) solid;
				border-radius: min(2.143vw, 30px);
				text-align: right;
				line-height: 3.125;
				cursor: pointer;
				transition: opacity .3s ease;

				&:hover {
					opacity: 0.5;
				}
			}
		}

		@media (width <= 1000px) {
			input[type="text"],
			input[type="email"],
			input[type="tel"],
			input[type="date"] {
				font-size: max(4.2vw, 16px);
				height: 7vw;
				padding: 0 2vw;
				border-radius: 1vw;
			}

			input[type="date"] {
				width: 60vw;
				height: 12vw;
				margin: 0 auto;
				display: block;
				line-height: 2.857;
			}

			select {
				font-size: min(4.2vw, 16px);
				background: url(../images/select_arrow.png) no-repeat right 5vw center / 4.6vw 3vw;
				width: 24vw;
				height: 7vw;
				padding: 0 3vw;
				border-radius: 1vw;
			}

			input[type="radio"] + label {
				min-width: auto;
				padding: 0.5vw 0 0 7.5vw;

				&::before {
					content: '';
					width: 6vw;
					height: 6vw;
				}
			}

			input[type="radio"]:checked + label::after {
				width: 2.6vw;
				height: 2.6vw;
				left: 1.7vw;
				top: 1.7vw;
			}

			input[type="checkbox"] + label::before {
				margin-top: 2vw;
			}

			input[type="checkbox"]:checked + label::after {
				font-size: 2.4vw;
				top: 2vw;
				left: 0.5vw;
			}

			textarea {
				font-size: min(4.2vw, 16px);
				height: 40vw;
				padding: 2vw;
				border-radius: 1vw;
			}

			.error {
				font-size: 3.3vw;
				margin-top: 1vw;
			}

			.btn_box {
				margin: 8vw auto 0;
				gap: 4vw 0;
				flex-wrap: wrap;

				input[type="submit"] {
					font-size: 3.2vw;
					background: url(../images/btn_arrow_right.png) no-repeat right 5vw center / 2vw;
					width: 44vw;
					margin: 0 auto;
					padding-left: 0;
					border: #000 0.2vw solid;
					border-radius: 3vw;
					text-align: center;
				}

				input[type="button"] {
					font-size: 3.2vw;
					background: url(../images/btn_arrow_left.png) no-repeat left 5vw center / 2vw;
					width: 44vw;
					padding-right: 0;
					border: #000 0.2vw solid;
					border-radius: 3vw;
					text-align: center;
				}
			}
		}
	}

	section .g_box {
		width: min(100%, 1600px);
		margin: min(5vw, 80px) auto 0;
		padding-bottom: min(9.375vw, 150px);

		.one_box {
			&:nth-child(n+2) {
				margin-top: min(5vw, 80px);
			}

			.upper {
				display: flex;
				align-items: center;

				.name {
					font-size: min(2.625vw, 42px);
					width: min(20vw, 320px);
					line-height: 1;

					span {
						font-size: min(2vw, 32px);
						display: block;
					}
				}

				.status {
					font-size: min(1.125vw, 18px);
					width: min(11.875vw, 190px);
					height: min(3.5vw, 56px);
					margin-left: min(2.5vw, 40px);
					border: #ba0000 min(0.188vw, 3px) solid;
					border-radius: min(1.75vw, 28px);
					text-align: center;
					align-content: center;

					span {
						display: block;
					}

					&.done {
						background: #b5b5b5;

						.situation {
							color: #ba0000;
						}
					}
				}

				.prof {
					font-size: min(1.75vw, 28px);
					width: min(52.5vw, 840px);
					margin-left: min(2.5vw, 40px);
					line-height: 1.5;

					.rank {
						width: min(11.875vw, 190px);
						margin-right: min(3.125vw, 50px);
						vertical-align: middle;
					}
				}

				.btn {
					font-size: min(1.25vw, 20px);
					width: min(12.5vw, 125px);
					margin-left: min(2.813vw, 45px);
					border: #646464 min(0.125vw, 2px) solid;
					text-align: center;
					line-height: 2;
					cursor: pointer;
				}
			}

			.bottom {
				margin-top: min(1.875vw, 30px);
				line-height: 1.5;
				letter-spacing: 0.15em;
				display: none;

				.title {
					font-size: min(2vw, 32px);
				}

				.text {
					font-size: min(1.375vw, 22px);
				}

				.schedule_box {
					margin-top: min(1.875vw, 30px);

					p {
						font-size: min(2vw, 32px);
						text-align: center;
					}

					ul {
						margin-top: min(1.25vw, 20px);
						display: flex;
						gap: 0 min(0.625vw, 10px);

						li {
							width: calc(100% / 7 - min(3.75vw, 60px) / 7);

							.days {
								font-size: min(1.375vw, 22px);
								color: #fff;
								background: #646464;
								text-align: center;
								line-height: 1.91;
								display: block;
							}

							.time {
								font-size: min(1.375vw, 22px);
								text-align: center;
								line-height: 1.2;
								display: block;
							}
						}
					}
				}
			}
		}
	}

	@media (width <= 1000px) {
		section .g_box {
			width: 90vw;
			margin: 8vw auto 0;
			padding-bottom: 10vw;

			.one_box {
				width: 100%;

				&:nth-child(n+2) {
					margin-top: 8vw;
				}

				.upper {
					justify-content: center;
					flex-wrap: wrap;

					.name {
						font-size: 4.2vw;
						width: 24vw;
						line-height: 1.2;
						order: 1;

						span {
							font-size: 3.2vw;
							display: block;
						}
					}
					
					.status {
						font-size: 3.6vw;
						width: 38vw;
						height: 10vw;
						margin: 4vw 0 3vw;
						border: #ba0000 0.3vw solid;
						border-radius: 4.7vw;
						order: 3;
					}

					.prof {
						font-size: 3.8vw;
						width: calc(100% - 25vw);
						margin-left: 1vw;
						order: 2;

						.rank {
							width: 19vw;
							margin-right: 4vw;
						}
					}

					.break {
						flex-basis: 100%;
						order: 4;
					}

					.btn {
						font-size: 3.2vw;
						width: 19vw;
						margin: 2vw 0 0 0;
						border: #646464 0.2vw solid;
						line-height: 2.188;
						order: 5;
					}
				}

				.bottom {
					margin-top: 3vw;

					.title {
						font-size: 4.2vw;
					}

					.text {
						font-size: 3.2vw;
					}

					.schedule_box {
						margin-top: 3vw;

						p {
							font-size: 3.8vw;
						}

						ul {
							margin-top: 2vw;
							gap: 2vw 1vw;
							flex-wrap: wrap;

							li {
								width: calc(100% / 4 - 1.25vw);

								.days {
									font-size: 3.2vw;
									line-height: 1.5;
								}

								.time {
									font-size: 3.2vw;
								}
							}
						}
					}
				}
			}
		}
	}
}

footer {
	margin-bottom: min(2.5vw, 40px);
	padding-top: min(2.5vw, 40px);
	border-bottom: #000 5px solid;
	text-align: center;

	.logo img {
		width: min(12vw, 144px);
	}

	.box {
		background: url(../images/line_footer.png) no-repeat center top / 95% 5px;
		margin: min(4.167vw, 50px) auto 0;
		position: relative;

		.site_map {
			margin-left: min(12.5vw, 200px);
			padding-top: min(3.125vw, 50px);

			p {
				font-size: min(1.5vw, 24px);
				color: #ba0000;
				background: url(../images/circle.png) no-repeat left top / min(2.563vw, 41px) min(2.688vw, 43px);
				height: min(2.688vw, 43px);
				padding-left: min(3.75vw, 60px);
				text-align: left;
				align-content: center;
			}

			nav {
				color: #000;
				width: min(26.875vw, 430px);
				margin-top: min(1.25vw, 20px);
				text-align: left;
				display: flex;
				gap: min(1.25vw, 20px) min(3.75vw, 60px);
				flex-wrap: wrap;

				div {
					width: calc(50% - min(1.875vw, 30px));

					a {
						transition: opacity .3s ease;

						&:hover {
							opacity: 0.5;
						}
					}
				}
			}
		}

		ul {
			padding-top: min(2.5vw, 50px);
			display: flex;
			justify-content: flex-end;
			gap: 0 min(1.667vw, 20px);
			position: absolute;
			right: min(12.5vw, 200px);
			top: min(0.625vw, 10px);

			li img {
				width: min(4.625vw, 74px);
				transition: opacity .3s ease;

				&:hover {
					opacity: 0.5;
				}
			}
		}

		.floating {
			display: none;
		}

		.copy {
			font-size: min(1vw, 12px);
			color: #000;
			margin-top: min(1.667vw, 20px);
			padding-bottom: min(1.667vw, 20px);
			text-align: center;
		}
	}

	@media (width <= 1000px) {
		margin-bottom: 2vw;
		padding-top: 10vw;
		border-bottom: #000 1vw solid;

		.logo img {
			width: 28.8vw;
		}

		.box {
			background: url(../images/line_footer_sp.png) no-repeat center top / 100vw 1vw;
			margin: 5vw auto 0;

			.site_map {
				margin: 0 auto;
				padding-top: 5vw;

				p {
					font-size: 3.2vw;
					font-weight: bold;
					background: url(../images/circle_sp.png) no-repeat left top / 8.2vw 8.4vw;
					width: fit-content;
					height: 8.4vw;
					margin: 0 auto;
					padding-left: 11vw;
				}

				nav {
					width: 80vw;
					margin: 6vw auto 0;
					gap: 5vw 0;
					flex-wrap: wrap;

					div {
						font-size: 3.2vw;
						width: 50%;
						padding-left: 7.5vw;
					}
				}
			}

			ul {
				width: auto;
				margin: 15vw auto 0;
				justify-content: center;
				gap: 0 2vw;
				position: relative;
				right: 0;
				top: 0;

				li img {
					width: 14.8vw;
				}
			}

			.floating {
				background: rgba(255, 255, 255, .7);
				width: 100%;
				height: 17vw;
				padding: 0 5vw;
				display: flex;
				align-content: center;
				justify-content: space-between;
				align-items: center;
				position: fixed;
				left: 0;
				bottom: 0;
				z-index: 2;

				.reservation img {
					width: 8.9vw;
				}

				.tel img {
					width: 8.4vw;
				}
			}

			.copy {
				font-size: 2.4vw;
				margin-top: 6vw;
				padding-bottom: 1vw;
			}
		}
	}
}
/***************** common *****************/

/***************** enter *****************/
#enter {
	main {
		background: url(../images/bg_enter.png) no-repeat center bottom / 100% 100%;
		padding: min(13.333vw, 160px) 0 min(30vw, 360px);

		h1 {
			text-align: center;

			img {
				width: min(28vw, 336px);
			}
		}

		.btn_enter {
			width: min(100%, 1200px);
			margin: max(-18.333vw, -220px) auto 0;
			padding-left: min(2.5vw, 30px);

			img {
				width: min(20.833vw, 250px);
				transition: opacity .3s ease;

				&:hover {
					opacity: 0.5;
				}
			}
		}

		.attention {
			font-size: min(1.5vw, 18px);
			color: #000;
			margin-top: min(10vw, 120px);
			padding: 0 5vw;
			text-align: center;
			line-height: 2;
		}
	}

	footer {
		.box {
			.copy {
				margin-top: max(-0.833vw, -10px);
				padding: min(6.667vw, 80px) 0;
			}
		}
	}

	@media (width <= 1000px) {
		main {
			padding: 20vw 0 30vw;

			h1 {
				img {
					width: 33.6vw;
				}
			}

			.btn_enter {
				margin: 10vw auto 0;
				padding-left: 0;
				text-align: center;

				img {
					width: 25vw;
				}
			}

			.attention {
				font-size: 3.2vw;
				margin-top: 10vw;
				line-height: 1.5;
			}
		}

		footer {
			.box {
				.copy {
					margin-top: 0;
					padding-bottom: 1vw;
				}
			}
		}
	}
}
/***************** enter *****************/

/***************** top *****************/
#top {
	header {
		background: url(../images/bg_enter.png) no-repeat center bottom / 100% 100%;
		padding: min(10vw, 120px) 0 min(30vw, 360px);
		display: flex;
		justify-content: center;
		gap: 0 min(20vw, 240px);

		h1 {
			order: 2;

			img {
				width: min(28.333vw, 340px);
			}
		}

		.catch {
			font-size: min(2.667vw, 32px);
			color: #000;
			padding-top: min(20.833vw, 250px);
			letter-spacing: 0.1em;
			line-height: 3;
			order: 1;
			writing-mode: vertical-rl;
			text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_enter_sp.png) no-repeat center bottom / 100% 100%;
			height: 200vw;
			padding-top: 35vw;
			display: flex;
			justify-content: center;
			gap: 0 10vw;

			h1 {
				img {
					width: 33.6vw;
				}
			}

			.catch {
				font-size: 4.2vw;
				font-weight: bold;
				padding-top: 12vw;
				line-height: 3;
				text-shadow: 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff, 0 0 1vw #fff;
			}
		}
	}

	main {
		padding-top: min(6.667vw, 80px);

		#shop_data {
			ul {
				display: flex;
				align-items: flex-start;
				justify-content: center;
				gap: 0 min(4.167vw, 50px);

				li {
					font-size: min(2.167vw, 26px);
					color: #ba0000;
					width: min(45.833vw, 550px);
					letter-spacing: 0.2em;

					&:first-child {
						padding-top: min(0.417vw, 5px);
						text-align: right;
					}

					a {
						font-size: min(3vw, 36px);
						color: #ba0000;
						pointer-events: none;
					}

					span {
						font-size: min(1.833vw, 22px);
						color: #646464;
						display: block;
					}
				}
			}

			.grand_open {
				margin-top: min(5.833vw, 70px);
				text-align: center;

				img {
					width: min(65.417vw, 785px);
				}
			}
		}

		nav {
			ul {
				width: min(66.667vw, 800px);
				margin: min(6.667vw, 80px) auto 0;
				padding-top: min(11.667vw, 140px);
				display: flex;
				align-items: flex-start;
				justify-content: space-evenly;
				position: relative;

				&::before {
					content: '';
					background: #000;
					width: 1px;
					height: min(35.833vw, 430px);
					position: absolute;
					left: 0;
					top: 0;
				}

				&::after {
					content: '';
					background: #000;
					width: min(52.5vw, 630px);
					height: 1px;
					position: absolute;
					left: max(-2.5vw, -30px);
					top: min(5.833vw, 70px);
				}

				li a {
					font-size: min(2.167vw, 26px);
					color: #000;
					background: linear-gradient(#ba0000, #ba0000) no-repeat bottom right / 1px 0;
					width: min(3.333vw, 40px);
					align-content: center;
					letter-spacing: 0.2em;
					transition: background-size .5s ease;
					writing-mode: vertical-rl;

					&:hover {
						background-position: top right;
						background-size: 1px 100%;
					}
				}
			}
		}

		section .wrap {
			width: min(100%, 1400px);
			margin: 0 auto;
			display: flex;
			align-items: center;

			h2 {
				font-size: min(4.5vw, 54px);
				color: #000;
				width: 50%;
				align-content: center;
				letter-spacing: 0.1em;
				writing-mode: vertical-rl;

				a {
					background: url(../images/circle.png) no-repeat center top / min(3.417vw, 41px) min(3.583vw, 43px);
					padding-top: min(5vw, 60px);
				}
			}

			h3 {
				font-size: min(2.286vw, 32px);
			}

			.text_01 {
				font-size: min(1.571vw, 22px);
				margin-top: min(2vw, 28px);
				line-height: 1.5;
			}
		}

		#top_today {
			background: url(../images/bg_top_today.png) no-repeat center top / cover;
			width: 100%;
			margin-top: min(28.571vw, 400px);
			height: min(60.357vw, 845px);
			padding-top: min(6.667vw, 80px);

			.wrap {
				width: min(85.714vw, 1200px);
				margin: 0 auto;

				h2 {
					width: 100%;
				}
			}
		}

		#top_concept {
			background: url(../images/bg_top_concept.png) no-repeat right top / min(67.643vw, 947px), min(83.333vw, 1000px);
			width: min(114.286vw, 1600px);
			margin: min(14.285vw, 200px) auto 0;

			.wrap {
				width: min(85.714vw, 1200px);
				height: min(71.429vw, 1000px);

				h2 {
					order: 2;
				}

				div {
					width: 50%;
					order: 1;
				}
			}
		}

		#top_system {
			background: url(../images/bg_top_system.png) no-repeat left top / 100% min(13.071vw, 183px);
			margin-top: min(21.428vw, 300px);
			padding-top: min(28.571vw, 400px);

			.b_wrap {
				background: url(../images/bg_top_system_text.png) no-repeat right top max(-5.714vw, -80px) / min(27.643vw, 387px) min(26.428vw, 370px);
				width: min(100%, 1400px);
				margin: 0 auto;

				.wrap {
					width: min(85.714vw, 1200px);
					margin: 0 auto;
					padding-top: min(2vw, 28px);

					h3 {
						white-space: nowrap;
					}
				}
			}
		}

		#top_cast {
			background: url(../images/bg_top_cast.png) no-repeat left top / 100% min(85.714vw, 1200px);
			width: 100%;
			height: min(85.714vw, 1200px);
			margin-top: min(28.571vw, 400px);
			align-content: center;

			.b_wrap {
				background: url(../images/bg_top_cast_text.png) no-repeat right top / min(32.5vw, 455px) min(63.071vw, 883px);
				width: min(142.857vw, 2000px);
				height: min(63.071vw, 883px);
				margin-left: max(-71.429vw, -1000px);
				align-content: center;
				position: relative;
				left: 50%;

				.wrap {
					width: min(85.714vw, 1200px);

					h2 {
						order: 2;
					}

					div {
						width: 50%;
						padding-left: min(7.143vw, 100px);
						order: 1;
					}
				}
			}
		}

		#top_schedule {
			margin-top: min(8.571vw, 120px);

			.b_wrap {
				background: url(../images/bg_top_concept.png) no-repeat left top / min(67.643vw, 947px) min(83.333vw, 1000px);
				width: min(185.714vw, 2600px);
				margin-left: max(-92.857vw, -1300px);
				position: relative;
				left: 50%;

				.wrap {
					width: min(85.714vw, 1200px);
					height: min(71.429vw, 1000px);

					div {
						width: 50%;
					}
				}
			}
		}

		#top_reservation {
			background: url(../images/bg_top_reservation.png) no-repeat left top / 100% min(13.071vw, 183px);
			padding-top: min(7.143vw, 100px);

			.b_wrap {
				background: url(../images/bg_top_concept.png) no-repeat right top / min(67.643vw, 947px) min(83.333vw, 1000px);
				width: min(235.714vw, 3300px);
				margin-left: max(-117.857vw, -1650px);
				position: relative;
				left: 50%;

				.wrap {
					width: min(85.714vw, 1200px);
					height: min(71.429vw, 1000px);

					h2 {
						order: 2;
					}

					div {
						width: 50%;
						order: 1;
					}
				}
			}
		}

		#top_news {
			background: url(../images/bg_top_news.png) no-repeat left top / 100% min(65.571vw, 918px);
			width: 100%;
			height: min(65.571vw, 918px);
			align-content: center;
		}

		#top_recruit {
			margin: min(5.714vw, 80px) 0;

			.b_wrap {
				background: url(../images/bg_top_recruit.png) no-repeat left top / min(77.5vw, 1085px), min(102.214vw, 1431px);
				width: min(160.714vw, 2250px);
				margin-left: max(-80.357vw, -1125px);
				position: relative;
				left: 50%;

				.wrap {
					width: min(85.714vw, 1200px);
					height: min(102.214vw, 1431px);

					h2 {
						order: 2;
					}

					div {
						width: 50%;
						order: 1;
					}
				}
			}
		}

		@media (width <= 1000px) {
			margin-top: -48vw;
			padding-top: 0;
			position: relative;

			#shop_data {
				ul {
					width: 80vw;
					margin: 0 auto;
					justify-content: flex-start;
					gap: 1vw 0;
					flex-wrap: wrap;

					li {
						font-size: 3.6vw;
						width: 100%;

						&:first-child {
							padding-top: 0;
							text-align: left;
						}

						a {
							font-size: 4.6vw;
							pointer-events: auto;
						}

						span {
							font-size: 3vw;
							line-height: 1.5;
						}
					}
				}

				.grand_open {
					margin-top: 8vw;
					padding-left: 10vw;
					text-align: left;

					img {
						width: 74vw;
					}
				}
			}

			nav {
				ul {
					width: 85vw;
					margin: 25vw auto 0;
					padding-top: 20vw;

					&::before {
						height: 43vw;
					}

					&::after {
						width: 63vw;
						left: -3vw;
						top: 7vw;
					}

					li a {
						font-size: 3.6vw;
						font-weight: bold;
						width: fit-content;
						letter-spacing: 0.3em;
					}
				}
			}

			section .wrap {
				width: 100vw;
				flex-wrap: wrap;

				h2 {
					font-size: 6.4vw;
					font-weight: bold;
					width: 100%;
					align-content: flex-start;
					letter-spacing: 0.25em;

					a {
						background: url(../images/circle_sp.png) no-repeat center top /8.2vw 8.4vw;
						padding-top: 12vw;
					}
				}

				h3 {
					font-size: 4.2vw;
					font-weight: bold;
					letter-spacing: 0.1em;
				}

				.text_01 {
					font-size: 3.2vw;
					font-weight: bold;
					margin-top: 3vw;
					letter-spacing: 0.05em;
				}
			}

			#top_today {
				background: url(../images/bg_top_today_sp.png) no-repeat center / 100% 67.4vw;
				margin-top: 30vw;
				height: 80vw;
				padding-top: 0;

				.wrap {
					width: 100%;

					h2 {
						align-content: center;
					}
				}
			}

			#top_concept {
				background: url(../images/bg_top_concept_sp.png) no-repeat right top / 100vw 141.4vw;
				width: 100%;
				margin: 20vw auto 0;

				.wrap {
					width: 100vw;
					height: 141.4vw;
					display: block;

					h2 {
						order: 1;
						padding: 25vw 28vw 0 0;
					}

					div {
						width: 100%;
						margin-top: 6vw;
						padding-left: 10vw;
						order: 2;
					}
				}
			}

			#top_system {
				background: url(../images/bg_top_system_sp.png) no-repeat left top / 100vw 11.4vw;
				margin-top: 10vw;
				padding-top: 30vw;

				.b_wrap {
					background: url(../images/bg_top_system_text.png) no-repeat right top 30vw / 38.7vw 37vw;
					width: 100vw;

					.wrap {
						width: 100%;
						margin: 0 auto;
						padding: 0 0 0 10vw;

						h2 {
							padding-left: 20vw;
							writing-mode: vertical-lr;
						}

						div {
							margin-top: 12vw;
						}
					}
				}
			}

			#top_cast {
				background: url(../images/bg_top_cast_sp.png) no-repeat left top / 100vw 144.1vw;
				height: 144.1vw;
				margin-top: 20vw;
				align-content: flex-start;
				padding-top: 10vw;

				.b_wrap {
					background: url(../images/bg_top_cast_text_sp.png) no-repeat left 2vw top / 47.7vw 88.7vw;
					width: 100%;
					height: fit-content;
					margin-left: 0;
					left: 0;

					.wrap {
						width: 100%;

						h2 {
							padding: 15vw 28vw 0 0;
							order: 1;
						}

						div {
							width: 100%;
							margin-top: 10vw;
							padding-left: 10vw;
							order: 2;
						}
					}
				}
			}

			#top_schedule {
				margin-top: 30vw;

				.b_wrap {
					background: url(../images/bg_top_schedule_sp.png) no-repeat left top 20vw / 50vw 99.5vw;
					width: 100%;
					margin-left: 0;
					position: relative;
					left: 0;

					.wrap {
						width: 100%;
						height: 119.5vw;
						align-content: flex-start;
						align-items: flex-start;

						h2 {
							padding-left: 28vw;
							writing-mode: vertical-lr;
						}

						div {
							width: 100%;
							margin-top: 10vw;
							padding-left: 10vw;
						}
					}
				}
			}

			#top_reservation {
				background: url(../images/bg_top_reservation_sp.png) no-repeat left top / 100vw 10.9vw;
				margin-top: 5vw;
				padding: 45vw 0 30vw;

				.b_wrap {
					background: url(../images/bg_top_reservation_text_sp.png) no-repeat right top 5vw / 25.3vw 79.1vw;
					width: 100%;
					margin-left: 0;
					left: 0;

					.wrap {
						width: 100%;
						height: fit-content;

						h2 {
							padding-right: 28vw;
							order: 1;
						}

						div {
							width: 100%;
							margin-top: 10vw;
							padding-left: 10vw;
							order: 2;
						}
					}
				}
			}

			#top_news {
				background: url(../images/bg_top_news_sp.png) no-repeat left top / 100vw 152.9vw;
				height: 152.9vw;
				align-content: flex-start;

				.wrap {
					h2 {
						padding: 25vw 0 0 28vw;
						writing-mode: vertical-lr;
					}

					div {
						margin-top: 15vw;
						padding-left: 10vw;
					}
				}
			}

			#top_recruit {
				margin: 25vw 0 0;

				.b_wrap {
					background: url(../images/bg_top_recruit_sp.png) no-repeat left top / 70.8vw, 143.1vw;
					width: 100%;
					margin-left: 0;
					left: 0;

					.wrap {
						width: 100vw;
						height: 143.1vw;
						align-content: flex-start;

						h2 {
							padding: 15vw 28vw 0 0;
							order: 1;
						}

						div {
							width: 100%;
							margin-top: 12vw;
							padding-left: 10vw;
							order: 2;
						}
					}
				}
			}
		}
	}
}
/***************** top *****************/

/***************** cast *****************/
#cast {
	header {
		width: 100%;
		background: url(../images/bg_cast.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_cast.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_cast_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.text {
			font-size: min(1.833vw, 22px);
			margin-top: min(5vw, 80px);
			text-align: center;
			line-height: 1.8;

			.sp {
				display: none;
			}

			@media (width <= 1000px) {
				font-size: 3vw;
				margin-top: 10vw;

				.sp {
					display: inline-block;
				}
			}
		}
	}
}
/***************** cast *****************/

/***************** concept *****************/
#concept {
	header {
		width: 100%;
		background: url(../images/bg_concept.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_concept.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_concept_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.wrap {
			background: url(../images/bg_top_concept.png) no-repeat center / min(78.917vw, 947px) min(83.333vw, 1000px);
			width: min(100%, 1200px);
			height: min(96.667vw, 1160px);
			margin: min(5vw, 80px) auto;
			padding-top: min(6.667vw, 80px);
			letter-spacing: 0.15em;
			align-content: center;
			writing-mode: vertical-rl;

			h2 {
				font-size: min(3.5vw, 42px);
				font-weight: bold;
				line-height: 1.4;
				letter-spacing: 0.2em;

				strong {
					font-size: min(2.667vw, 32px);
					color: #ba0000;
				}

				span {
					color: #ba0000;
				}
			}

			.text {
				font-size: min(2.667vw, 32px);
				margin-right: min(8.333vw, 100px);
				line-height: 2.8;
				letter-spacing: 0.15em;

				span {
					color: #ba0000;
				}
			}

			@media (width <= 1000px) {
				background: url(../images/bg_top_concept.png) no-repeat center / 94.7vw 100vw;
				width: 100%;
				height: 100vw;
				margin: 20vw auto;
				padding-top: 10vw;

				h2 {
					font-size: 4.2vw;
				}

				.text {
					font-size: 3.2vw;
					margin-right: 10vw;
					line-height: 2;
				}
			}
		}
	}
}
/***************** concept *****************/

/***************** news *****************/
#news {
	header {
		width: 100%;
		background: url(../images/bg_news.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_news.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_news_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.wrap {
			width: min(100%, 1600px);
			margin: min(5vw, 80px) auto 0;

			.one_box {
				.title_box {
					font-size: min(2.625vw, 42px);
					padding: 0 min(1.25vw, 20px);
					letter-spacing: 0.1em;
					display: flex;
					gap: 0 min(2.5vw, 40px);
				}

				.text {
					font-size: min(1.5vw, 24px);
					margin-top: min(1.25vw, 20px);
					padding: 0 min(3.125vw, 50px);
					line-height: 1.4;
					letter-spacing: 0.15em;
				}

				&:nth-child(n+2) {
					margin-top: min(5vw, 80px);
				}
			}
		}

		#pagenation {
			margin-top: min(5vw, 80px);
			padding-bottom: min(10.784vw, 150px);
			display: flex;
			justify-content: center;
			gap: 0 min(1.25vw, 20px);

			li {
				font-size: min(1.5vw, 24px);
				width: min(2.5vw, 40px);
				text-align: center;
				line-height: 1.667;

				&.active {
					color: #fff;
					background: #ba0000;
				}

				a {
					color: #000;
					background: #e1e1e1;
					width: 100%;
					height: 100%;
					display: block;
					transition: opacity .3s ease;

					&:hover {
						opacity: 0.5;
					}
				}

				&.prev a,
				&.next a {
					background: none;
				}
			}
		}

		@media (width <= 1000px) {
			.wrap {
				width: 80vw;
				margin: 8vw auto 0;

				.one_box {
					.title_box {
						font-size: 4.2vw;
						padding: 0;
						gap: 0 4vw;
					}

					.text {
						font-size: 3.2vw;
						margin-top: 3vw;
						padding: 0;
						letter-spacing: 0;
					}

					&:nth-child(n+2) {
						margin-top: 8vw;
					}
				}
			}

			#pagenation {
				margin-top: 8vw;
				padding-bottom: 10vw;
				gap: 0 4vw;

				li {
					font-size: 4.8vw;
					width: 8vw;
				}
			}
		}
	}
}
/***************** news *****************/

/***************** recruit *****************/
#recruit {
	header {
		width: 100%;
		background: url(../images/bg_recruit.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_recruit.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_recruit_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.wrap {
			width: min(100%, 1400px);
			margin: min(5vw, 70px) auto 0;
			padding-bottom: min(10.784vw, 150px);

			h3 {
				font-size: min(1.571vw, 22px);
				color: #fff;
				background: #646464;
				width: min(85.714vw, 1200px);
				margin: min(3.571vw, 50px) auto;
				padding-left: min(1.429vw, 20px);
				line-height: 2.727;
			}

			dl {
				width: min(85.714vw, 1200px);
				margin: 0 auto;
				display: flex;
				align-items: flex-start;
				gap: min(4.286vw, 60px) 0;
				flex-wrap: wrap;

				dt {
					font-size: min(1.571vw, 22px);
					font-weight: normal;
					width: 30%;
					padding: min(1vw, 14px) 0 0 min(1.429vw, 20px);
					line-height: 1.5;

					&:nth-of-type(9),
					&:nth-of-type(10) {
						padding-top: min(1.143vw, 16px);
					}

					span {
						display: block;
					}
				}

				dd {
					font-size: min(1.571vw, 22px);
					font-weight: normal;
					width: 70%;
					padding: 0 min(1.429vw, 20px);
					line-height: 1.5;

					select {
						width: min(12.142vw, 170px);
					}
				}
			}

			.box {
				width: min(85.714vw, 1200px);
				margin: 0 auto;

				.text_01 {
					font-size: min(1.571vw, 22px);
				}

				.photo {
					margin-top: min(1.428vw, 20px);

					input[type="file"] {
						width: min(31.429vw, 440px);
						display: block;
						
						&::file-selector-button {
							font-size: min(1.571vw, 22px);
							color: #fff;
							background: #ba0000;
							width: min(14.286vw, 200px);
							border: none;
							border-radius: min(0.714vw, 10px);
							line-height: 2.727;
						}
					}
				}

				.thumbnail {
					margin-top: min(1.428vw, 20px);

					img {
						max-width: 100%;
					}
				}

				.appeal {
					margin-top: min(1.428vw, 20px);
				}

				h4 {
					font-size: min(1.571vw, 22px);
					margin-top: min(3.571vw, 50px);
					text-align: center;
				}

				.text_02 {
					font-size: min(1.571vw, 22px);
					margin-top: min(0.714vw, 10px);
					text-align: center;
					line-height: 1.5;
					letter-spacing: 0.05em;
				}
			}
		}
	}

	.confirm {
		.wrap {
			dl {
				dt {
					padding-top: 0;
				}

				dt:nth-of-type(9),
				dt:nth-of-type(10) {
					padding-top: 0;
				}
			}
		}
	}

	.complete {
		.text {
			font-size: min(1.571vw, 22px);
            margin-top: min(2vw, 28px);
			text-align: center;
            line-height: 1.8;
		}
	}

	@media (width <= 1000px) {
		main section {
			.wrap {
				width: 80vw;
				margin: 10vw auto 0;
				padding-bottom: 10vw;

				h3 {
					font-size: 4.2vw;
					width: 80vw;
					margin: 8vw 0 4vw;
					padding-left: 2vw;
					line-height: 1.452;
				}

				dl {
					width: 100%;
					gap: 0;

					dt {
						font-size: 4.2vw;
						width: 100%;
						padding: 0;
						justify-content: flex-start;
						gap: 0 2vw;

						&:nth-of-type(9),
						&:nth-of-type(10) {
							padding-top: 0;
						}

						&:nth-of-type(n+2) {
							margin-top: 5vw;
						}

						span {
							font-size: 3.2vw;
							margin-left: 1vw;
							display: inline;
						}
					}

					dd {
						font-size: 4.2vw;
						width: 100%;
						margin-top: 1.5vw;
						padding: 0;

						&:nth-of-type(7) {
							display: flex;
							align-items: center;
							gap: 2vw 0;
							flex-wrap: wrap;
						}

						select {
							width: 30vw;

							&[name="hour"],
							&[name="minutes"] {
								width: 24vw;
							}
						}

						
					}
				}

				.box {
					width: 100%;

					.text_01 {
						font-size: 4.2vw;

						span {
							font-size: 3.2vw;
							display: block;
						}
					}

					.photo {
						margin-top: 4vw;
						text-align: center;

						input[type="file"] {
							font-size: 3.2vw;
							width: 47vw;
							display: inline;
							
							&::file-selector-button {
								font-size: 4.2vw;
								width: 47vw;
								margin: 0 auto;
								border-radius: 1vw;
								line-height: 2.857;
							}
						}
					}

					.thumbnail {
						margin-top: 4vw;
					}

					.appeal {
						margin-top: 4vw;
					}

					h4 {
						font-size: 4.2vw;
						margin-top: 4vw;
					}

					.text_02 {
						font-size: 4.2vw;
						margin-top: 0;
						line-height: 1.2;
					}

					&:nth-of-type(3) dd:first-of-type {
						white-space: nowrap;
					}

					&:nth-of-type(3) dd br:nth-of-type(2) {
						display: none;
					}
				}
			}
		}

		.confirm {
			section {
				.wrap {
					dl {
						dt,
						dd {
							text-align: center;
						}

						dd {
							margin-top: 0;
						}
					}
				}

				.box {
					.text_01 {
						text-align: center;
						line-height: 1.4;
					}
				}

				.box:nth-child(5) {
					.text_01 {
						text-align: left;
					}
				}
			}
		}

		.complete {
			.text {
				font-size: 4.2vw;
				margin-top: 4vw;
			}
		}
	}
}
/***************** recruit *****************/

/***************** reservation *****************/
#reservation {
	header {
		width: 100%;
		background: url(../images/bg_reservation.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_reservation.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_reservation_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.wrap {
			width: min(100%, 1400px);
			margin: min(5vw, 70px) auto 0;
			padding-bottom: min(10.784vw, 150px);

			.text {
				font-size: min(1.571vw, 22px);
				text-align: center;
				line-height: 1.8;

				.sp {
					display: none;
				}
			}

			dl {
				width: min(85.714vw, 1200px);
				margin: min(5vw, 70px) auto 0;
				display: flex;
				align-items: flex-start;
				gap: min(4.286vw, 60px) 0;
				flex-wrap: wrap;

				dt {
					font-size: min(1.571vw, 22px);
					font-weight: normal;
					width: 30%;
					padding: min(1vw, 14px) 0 0 min(1.429vw, 20px);
					display: flex;
					align-items: center;
					justify-content: space-between;

					&:nth-of-type(9),
					&:nth-of-type(10) {
						padding-top: min(1.143vw, 16px);
					}

					span {
						font-size: min(1.286vw, 18px);
						color: #fff;
						background: #ff3939;
						width: min(5.714vw, 80px);
						border-radius: min(1.071vw, 15px);
						text-align: center;
						line-height: 1.667;
					}
				}

				dd {
					font-size: min(1.571vw, 22px);
					font-weight: normal;
					width: 70%;
					padding: 0 min(1.429vw, 20px);
				}
			}
		}
	}

	.confirm {
		.wrap {
			.text_01 {
				font-size: min(1.571vw, 22px);
				width: min(85.714vw, 1200px);
				margin: 0 auto min(3.571vw, 50px);
				text-align: center;
			}

			dl {
				dt {
					padding-top: 0;
				}

				dt:nth-of-type(9),
				dt:nth-of-type(10) {
					padding-top: 0;
				}
			}
		}
	}

	.complete {
		.text {
			font-size: min(1.571vw, 22px);
            margin-top: min(2vw, 28px);
			text-align: center;
            line-height: 1.8;
		}
	}

	@media (width <= 1000px) {
		main section {
			.wrap {
				width: 80vw;
				margin: 10vw auto 0;
				padding-bottom: 10vw;

				.text {
					font-size: 3vw;

					.sp {
						display: inline-block;
					}
				}

				dl {
					width: 100%;
					margin-top: 10vw;
					gap: 0;

					dt {
						font-size: 4.2vw;
						width: 100%;
						padding: 0;
						justify-content: flex-start;
						gap: 0 2vw;

						&:nth-of-type(9),
						&:nth-of-type(10) {
							padding-top: 0;
						}

						&:nth-of-type(n+2) {
							margin-top: 5vw;
						}

						span {
							font-size: 3.6vw;
							width: 16vw;
							border-radius: 3vw;
						}
					}

					dd {
						font-size: 4.2vw;
						width: 100%;
						margin-top: 1.5vw;
						padding: 0;

						&:nth-of-type(7) {
							display: flex;
							align-items: center;
							gap: 2vw 0;
							flex-wrap: wrap;
						}
					}
				}
			}
		}

		.confirm {
			section {
				.wrap {
					dl {
						dt,
						dd {
							justify-content: center;
							text-align: center;
						}

						dd:nth-of-type(12) {
							text-align: left;
						}
					}

					.text_01 {
						font-size: 4.2vw;
						margin-bottom: 4vw;
						line-height: 1.4;
					}
				}
			}
		}

		.complete {
			.text {
				font-size: 4.2vw;
				margin-top: 4vw;
			}
		}
	}
}
/***************** reservation *****************/

/***************** schedule *****************/
#schedule {
	header {
		width: 100%;
		background: url(../images/bg_schedule.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_schedule.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_schedule_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.date_box {
			width: min(100%, 1600px);
			margin: min(5vw, 80px) auto 0;

			ul {
				display: flex;
				justify-content: center;
				gap: 0 min(1.25vw, 20px);

				li {
					font-size: min(1.25vw, 20px);
					width: calc(100% / 7 - min(7.5vw, 120px) / 7);
					border-radius: min(1.875vw, 30px);
					text-align: center;
					line-height: 3;
					box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, .2);

					&.active {
						color: #ba0000;
						background: linear-gradient(to top, rgba(186, 0, 0, .1), rgba(186, 0, 0, 0));
						border: #ba0000 1px solid;
					}

					br {
						display: none;
					}

					a {
						color: #000;
						background: linear-gradient(to top, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
						width: 100%;
						height: 100%;
						border: #000 1px solid;
						border-radius: min(1.875vw, 30px);
						display: block;
						transition: opacity .3s ease;

						&:hover {
							opacity: 0.5;
						}
					}
				}
			}
		}

		@media (width <= 1000px) {
			.date_box {
				width: 80vw;
				margin: 8vw auto 0;

				ul {
					gap: 2vw 1.5vw;
					flex-wrap: wrap;

					li {
						font-size: 4vw;
						width: calc(100% / 4 - 4.5vw / 4);
						height: 13vw;
						border-radius: 6.5vw;
						line-height: 1.2;
						align-content: center;
						box-shadow: 0.2vw 0.2vw 0.5vw 0 rgba(0, 0, 0, .2);

						br {
							display: inline-block;
						}

						a {
							height: 100%;
							border-radius: 6.5vw;
							align-content: center;
						}
					}
				}
			}
		}
	}
}
/***************** schedule *****************/

/***************** system *****************/
#system {
	header {
		width: 100%;
		background: url(../images/bg_system.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_system.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_system_sp.png) no-repeat center top / cover;
		}
	}

	main section {
		.wrap {
			background: url(../images/bg_system_main.png) no-repeat center center / min(84.667vw, 1016px) min(88.417vw, 1061px);
			width: min(100%, 1200px);
			margin: min(6.667vw, 80px) auto 0;
			padding-bottom: min(12.5vw, 150px);

			.text {
				font-size: min(1.571vw, 22px);
				text-align: center;
				line-height: 1.8;

				.sp {
					display: none;
				}
			}

			.other_fee {
				font-size: min(2.667vw, 32px);
				font-weight: bold;
				color: #000;
				margin-top: min(6.667vw, 80px);
				text-align: center;
			}

			.dispatch_fee {
				margin-top: min(3.333vw, 40px);
			}

			h3 {
				font-size: min(3.667vw, 44px);
				font-weight: bold;
				color: #000;
				background: url(../images/bg_system_subtitle.png) no-repeat center bottom / min(23.333vw, 280px) min(3.083vw, 37px);
				width: min(23.333vw, 280px);
				margin: 0 auto;
				padding-bottom: min(2.5vw, 30px);
				text-align: center;
			}

			ul {
				color: #000;
				width: min(37.5vw, 450px);
				margin: min(1.667vw, 20px) auto 0;
				display: flex;
				flex-wrap: wrap;

				li:nth-child(2n+1) {
					font-size: min(2.667vw, 32px);
					width: 35%;
					line-height: 2;
				}

				li:nth-child(2n) {
					font-size: min(3.5vw, 42px);
					color: #ba0000;
					width: 65%;
					text-align: right;
					line-height: 1.4;

					span {
						font-size: min(1.833vw, 22px);
						display: block;
					}
				}
			}

			.box {
				margin-top: min(10vw, 120px);
				display: flex;
				flex-wrap: wrap;
				gap: min(8.333vw, 100px) 0;

				.one_box {
					width: 50%;

					ul {
						width: min(27.5vw, 330px);
					}
				}
			}

			.ask {
				margin-top: min(10vw, 120px);

				p {
					font-size: min(2.667vw, 32px);
					color: #000;
					margin-top: min(0.833vw, 10px);
					text-align: center;
					line-height: 1.6;

					span {
						font-size: min(1.833vw, 22px);
						color: #ba0000;
						display: block;
					}
				}
			}

			.text {
				font-size: min(1.833vw, 22px);
				color: #000;
				margin-top: min(6.667vw, 80px);
				text-align: center;
			}

			.extention {
				margin-top: min(10vw, 120px);
				text-align: center;

				h4 {
					font-size: min(2.667vw, 32px);
					color: #000;
				}

				p {
					font-size: min(3.5vw, 42px);
					color: #ba0000;
					width: fit-content;
					margin: min(2.5vw, 30px) auto 0;
					text-align: right;

					span {
						font-size: min(1.833vw, 22px);
						display: block;
					}
				}
			}

			.terms_of_use {
				margin-top: min(16.667vw, 200px);

				p {
					font-size: min(1.833vw, 22px);
					color: #000;
					margin-top: min(2.5vw, 30px);
					line-height: 1.4;
				}

				h4 {
					font-size: min(2.667vw, 32px);
					color: #000;
					margin-top: min(8.333vw, 100px);
					text-align: center;
				}
			}
		}

		@media (width <= 1000px) {
			.wrap {
				background: url(../images/bg_system_main.png) no-repeat center center / 102vw 110vw;
				width: 100%;
				margin: 10vw auto 0;
				padding-bottom: 10vw;

				.text {
					font-size: 3vw;

					.sp {
						display: inline-block;
					}
				}

				.other_fee {
					font-size: 4.2vw;
					margin-top: 10vw;
				}

				.dispatch_fee {
					margin-top: 6vw;
				}

				h3 {
					font-size: 6.4vw;
					background: url(../images/bg_system_subtitle.png) no-repeat center bottom / 56vw 7.4vw;
					width: 56vw;
					margin: 0 auto;
					padding-bottom: 7vw;
				}

				ul {
					width: 50vw;
					margin: 0 auto;

					li:nth-child(2n+1) {
						font-size: 4.2vw;
					}

					li:nth-child(2n) {
						font-size: 5.2vw;

						span {
							font-size: 3.2vw;
						}
					}
				}

				.box {
					margin-top: 10vw;
					gap: 10vw 0;
					flex-wrap: wrap;

					.one_box {
						width: 100%;

						ul {
							width: 50vw;
						}
					}
				}

				.ask {
					margin-top: 10vw;

					p {
						font-size: 4.2vw;
						margin-top: 2vw;

						span {
							font-size: 3.2vw;
						}
					}
				}

				.text {
					font-size: 3.2vw;
					margin-top: 10vw;
				}

				.extention {
					margin-top: 10vw;

					h4 {
						font-size: 4.2vw;
					}

					p {
						font-size: 5.2vw;
						margin: 3vw auto 0;

						span {
							font-size: 3.2vw;
						}
					}
				}

				.terms_of_use {
					width: 90vw;
					margin: 10vw auto 0;

					p {
						font-size: 3.2vw;
						margin-top: 2vw;
					}

					h4 {
						font-size: 4.2vw;
						margin-top: 5vw;
					}
				}
			}
		}
	}
}
/***************** system *****************/

/***************** today *****************/
#today {
	header {
		width: 100%;
		background: url(../images/bg_today.png) no-repeat center top / 2000px 1080px;

		@media (width <= 1200px) {
			background: url(../images/bg_today.png) no-repeat center top / 166.667vw 90vw;
		}

		@media (width <= 1000px) {
			background: url(../images/bg_today_sp.png) no-repeat center top / cover;
		}
	}
}
/***************** today *****************/