html {
	font-size: 1vw;
	box-sizing: border-box;
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: bold;
	font-size: min(3vw, 30px);
	font-style: normal;
	color: #4b4b72;
	width: min(100%, 1000px);
	margin: 0 auto;
	line-height: 1.6;
	letter-spacing: 0.05em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a {
	color: #4b4b72;
	text-decoration: none;
}

img {
	width: 100%;
	height: auto;
	display: block;
}

p {
	margin: 0;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
	background: none;
	border: none;
	outline: none;
}

button {
  	cursor: pointer;
}

ul {
	padding: 0;

	li {
		list-style: none;
	}
}
/*********** common ***********/
.u_layer {
	background: url(../images/bg.jpg) no-repeat center top/min(100%, 1000px) auto;
}

header {
	width: 100%;
	margin: auto;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 4;

	.wrap {
		background: #fff;
		width: min(94.8vw, 948px);
		height: min(16vw, 160px);
		margin: 0 auto;
		border-radius: 0 0 min(2vw, 20px) min(2vw, 20px);
		display: flex;
		align-items: center;
		justify-content: center;
		box-shadow: min(1vw, 10px) min(1vw, 10px) 0 0 rgba(0, 0, 0, 0.3);
		transition: height 0.3s ease;

		#header_logo {
			width: min(27.2vw, 272px);
		}

		#shop_data {
			margin-left: min(2vw, 20px);
			
			p {
				display: flex;
				align-items: center;
				gap: 0 min(0.5vw, 5px);

				span {
					font-size: min(2.6vw, 26px);
					color: #fff;
					background: #4b4b72;
					width: min(13.8vw, 138px);
					border-radius: min(2vw, 20px);
					line-height: 1.577;
					text-align: center;
					display: inline-block;
				}

				strong {
					font-size: min(3.2vw, 32px);
				}
			}
		}

		.award {
			width: min(18vw, 180px);
			margin-left: min(1vw, 10px);
			line-height: 0.4;
		}

		#btn_menu {
			width: min(9.6vw, 96px);
			margin-left: min(1vw, 10px);
		}
	}

	.wrap.is_scroll {
		height: min(13.5vw, 135px);
	}

	#nav_wrap {
		background: rgba(255, 255, 255, .95);
		width: 100%;
		height: 100vh;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 3;
		display: none;
		overflow: auto;

		.box {
			width: min(95vw, 950px);
			margin: 0 auto;
			padding: min(6vw, 60px) 0;
			position: relative;

			#btn_close {
				width: min(9.6vw, 96px);
				position: absolute;
				right: min(1vw, 10px);
				top: min(3vw, 30px);
			}

			h2 {
				width: min(57.3vw, 573px);
				margin: 0 auto;
			}

			nav {
				margin-top: min(1vw, 10px);

				ul {
					font-size: min(4.8vw, 48px);
					display: flex;
					flex-wrap: wrap;

					li {
						width: 50%;
						padding-left: min(1vw, 10px);
						border-right: #f97a96 1px solid;
						border-top: #f97a96 1px solid;

						a {
							color: #f97a96;
							line-height: 3.063;
							display: flex;
							align-items: center;
							gap: 0 min(0.5vw, 5px);

							strong {
								img {
									width: min(6vw, 60px);
									margin: 0 auto;
								}
							}
						}

						&:nth-child(12),
						&:nth-child(13) {
							letter-spacing: -0.125em;
						}

						&:nth-child(2n+1) {
							border-left: #f97a96 1px solid;
						}

						&:nth-last-child(-n+2) {
							border-bottom: #f97a96 1px solid;
						}
					}
				}
			}

			#link_recruit {
				margin: min(5vw, 50px) auto 0;
			}
		}
	}
}

.fade {
	opacity: 0;
    visibility: hidden;
    transform: translateY(5vw);
}

.fade_in {
	animation: fade-in-up .5s ease forwards;
}

.delay_01 {
	animation-delay: .2s;
}

.delay_02 {
	animation-delay: .4s;
}

.delay_03 {
	animation-delay: .6s;
}

.delay_04 {
	animation-delay: .8s;
}

.delay_05 {
	animation-delay: 1s;
}

.delay_06 {
	animation-delay: 1.2s;
}

@keyframes fade-in-up {
	to {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}

.affiliated_stores {
	padding-top: min(8vw, 80px);

	h3 {
		width: min(72vw, 720px);
		margin: 0 auto;
	}

	ul {
		margin-top: min(3vw, 30px);
		display: flex;
		gap: min(3vw, 30px) min(1vw, 10px);
		flex-wrap: wrap;

		li {
			width: calc(50% - min(0.5vw, 5px));

			p {
				font-size: min(3vw, 30px);
				text-align: center;
				letter-spacing: -0.1em;
			}
		}
	}
}

main {
	margin-top: min(17vw, 170px);

	#breadcrumb {
		background: linear-gradient(to left, #fffec6, #fff);
		width: 100%;

		ul {
			font-size: min(3vw, 30px);
			width: min(90vw, 900px);
			margin: 0 auto;
			line-height: 2;
			display: flex;
			align-items: center;
			gap: 0 min(0.5vw, 5px);
			overflow-x: auto;
			white-space: nowrap;

			li:not(:last-child)::after {
				content: '>';
				padding-left: min(0.5vw, 5px);
			}

			li:last-child {
				text-decoration: underline;
				text-decoration-color: #d3d2dc;
				text-underline-offset: 3px;
			}
		}
	}

	h2 {
		font-family: "Titan One", sans-serif;
		font-size: min(10vw, 100px);
		font-weight: normal;
		margin: 0;
		text-align: center;
		position: relative;
	}

	h2:not(#enter_modal h2, #first_view h2, #top_lavistagram h2) {
		background: url(../images/bg_title.png) no-repeat center top/min(40vw, 400px) min(15.4vw, 154px);
		line-height: 1.78;
	}

	h2 em {
		font-style: normal;
		letter-spacing: 0em;

		span {
			position: relative;
			z-index: 2;
			-webkit-text-stroke: min(0.3vw, 3px) #4b4b72;
			text-stroke: min(0.3vw, 3px) #4b4b72;
		}
	}

	h2 strong {
		margin: auto;
		letter-spacing: -0.0175em;
		position: absolute;
		left: 0;
		right: 0;
		z-index: 1;
	}

	h2 strong::before {
		content: attr(data-text);
		margin: auto;
		letter-spacing: -0.0175em;
		position: absolute;
		left: 0;
		right: 0;
		-webkit-text-stroke: min(0.8vw, 8px) #fff;
		text-stroke: min(0.8vw, 8px) #fff;
		z-index: -1;
	}

	h2 strong::after {
		content: attr(data-text);
		margin: auto;
		letter-spacing: -0.0175em;
		position: absolute;
		left: 0;
		right: 0;
		-webkit-text-stroke: min(1.4vw, 14px) #4b4b72;
		text-stroke: min(1.4vw, 14px) #4b4b72;
		z-index: -2;
	}

	input[type="text"],
	input[type="email"],
	input[type="tel"] {
		font-size: min(3.6vw, 36px);
		background: #fff;
		width: 100%;
		height: min(10vw, 80px);
		padding: 0 min(2vw, 20px);
		border: #4b4b72 min(0.2vw, 2px) solid;
		border-radius: min(1vw, 10px);
	}

	input[type="date"] {
		font-size: min(3.6vw, 36px);
		background: #fff;
		width: min(40vw, 400px);
		height: min(10vw, 80px);
		padding: 0 min(2vw, 20px);
		border: #4b4b72 min(0.2vw, 2px) solid;
		border-radius: min(1vw, 10px);
	}

	select {
		font-size: min(3.6vw, 36px);
		background: url(../images/select_arrow.png) no-repeat #fff right min(2vw, 20px) top 50%/min(4.5vw, 45px) min(4.1vw, 41px);
		width: min(40vw, 400px);
		height: min(10vw, 80px);
		padding: 0 min(2vw, 20px);
		border: #4b4b72 min(0.2vw, 2px) solid;
		border-radius: min(1vw, 10px);
		appearance: none;
		-webkit-appearance: none;
		-moz-appearance: none;
	}

	textarea {
		font-size: min(3.6vw, 36px);
		background: #fff;
		width: 100%;
		height: min(50vw, 500px);
		padding: 0.5vw 1vw;
		border: #4b4b72 min(0.2vw, 2px) solid;
		border-radius: min(1vw, 10px);
	}

	input[type="submit"] {
		font-size: min(3vw, 30px);
		background: linear-gradient(to right, #c6e2ff, #e1c6ff);
		width: min(80vw, 800px);
		border: #4b4b72 min(0.3vw, 3px) solid;
		border-radius: min(4.5vw, 45px);
		text-align: center;
		line-height: 3;
		box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
	}

	input[type="button"] {
		font-size: min(3vw, 30px);
		background: #fff;
		width: min(80vw, 800px);
		border: #4b4b72 min(0.3vw, 3px) solid;
		border-radius: min(4.5vw, 45px);
		text-align: center;
		line-height: 3;
		box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
	}

	.girls_list {
		width: min(95vw, 950px);
		margin: 0 auto;
		display: flex;
		gap: min(4vw, 40px) 0;
		flex-wrap: wrap;

		li {
			background: #fff;
			width: 50%;
			padding: min(1vw, 10px);

			.comment {
				font-size: min(3vw, 30px);
				color: #f87c94;
				border: #f87c94 min(0.3vw, 3px) solid;
				border-radius: min(0.5vw, 5px);
				text-align: center;
				line-height: 1.3;
				overflow: hidden;

				span {
					display: inline-block;
					padding-left: 100%;
					white-space: nowrap;
					animation: marquee 10s linear infinite;
				}
			}

			.thumb_box {
				margin-top: min(1vw, 10px);
				border: #f87c94 min(0.3vw, 3px) solid;
				border-radius: min(2vw, 20px);
				overflow: hidden;

				a {
					display: block;
					position: relative;

					.icon {
						display: flex;
						gap: 0 min(0.5vw, 5px);
						position: absolute;
						bottom: min(1vw, 10px);
						left: min(1vw, 10px);

						.icon_new {
							width: min(9.4vw, 94px);
						}

						.icon_today {
							width: min(9.2vw, 92px);
						}
					}

					.other {
						position: absolute;
						right: min(1vw, 10px);
						bottom: min(1vw, 10px);

						.enrollment {
							width: min(23.8vw, 238px);
						}

						.designated_fee {
							font-size: min(1.9vw, 19px);
							width: min(23.8vw, 238px);
							margin-top: min(0.5vw, 5px);
							gap: 0;
							line-height: 1.313;

							span {
								font-size: min(3.1vw, 31px);
							}
						}
					}
				}
			}

			.data {
				background: #f87c94;
				margin-top: min(1.5vw, 15px);
				padding-bottom: min(1vw, 10px);
				border-radius: min(0.5vw, 5px);

				.name {
					font-size: min(3.6vw, 36px);
					color: #fff;
					text-align: center;
					line-height: 1.333;
				}

				.age_size {
					font-size: min(3vw, 30px);
					color: #fff;
					background: #ffa3bc;
					line-height: 1.2;
					display: flex;
					justify-content: center;
					gap: 0 min(2.5vw, 25px);
				}
			}

			.type {
				margin-top: min(1vw, 10px);
				display: flex;
				gap: min(0.5vw, 5px);
				flex-wrap: wrap;

				p {
					font-size: min(3vw, 30px);
					color: #f87c94;
					width: calc(50% - min(0.5vw, 5px) / 2);
					border: #f87c94 min(0.2vw, 2px) solid;
					border-radius: min(0.5vw, 5px);
					text-align: center;
					line-height: 1.3;
				}
			}

			.time {
				font-size: min(3vw, 30px);
				color: #f87c94;
				background: #ffe9f5;
				margin-top: min(1vw, 10px);
				text-align: center;
				line-height: 1.25;
			}

			.situation {
				font-size: min(3vw, 30px);
				color: #f87c94;
				margin-top: min(0.5vw, 5px);
				text-align: center;
			}
		}
	}

	.designated_fee {
		background: url(../images/bg_.designated_fee.png) no-repeat left top/100% 100%;
		line-height: 1.333;
		display: flex;
		align-items: baseline;
		justify-content: center;
		gap: 0 min(0.5vw, 5px);
		text-shadow: min(0.2vw, 2px) min(0.2vw, 2px) min(0.3vw, 3px) #fff, max(-0.2vw, -2px) max(-0.2vw, -2px) min(0.3vw, 3px) #fff;
	}

	.free_space {
		background: url(../images/bg.jpg) repeat-y left top/100% auto;
		padding: min(5vw, 50px) 0;
		position: relative;
		z-index: 2;

		.wrap {
			width: min(95vw, 950px);
			margin: 0 auto;
		}
	}

	.error {
		font-size: min(3vw, 30px);
		color: #f00;
	}

	#pagenation_box {
		margin-top: min(8vw, 80px);

		ul {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 min(3vw, 30px);

			li {
				font-family: "Titan One", sans-serif;
				font-size: min(4vw, 40px);
				font-weight: normal;

				a {
					font-size: min(4vw, 40px);
					width: min(8.4vw, 84px);
					height: min(8.4vw, 84px);
					background: #ffe9f5;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: 50%;
					text-align: center;
					align-content: center;
					display: block;
				}
			}

			.prev,
			.next {
				a {
					font-size: min(5vw, 50px);
					font-weight: bold;
					background: none;
					border: none;
				}
			}

			.current {
				color: #fff;
				width: min(8.4vw, 84px);
				height: min(8.4vw, 84px);
				background: #4b4b72;
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: 50%;
				text-align: center;
				align-content: center;
			}
		}
	}
}

.lightbox {
	height: 100dvh;
	align-content: center;
	position: fixed;
	top: 0 !important;
}

.u_layer main {
	background: url(../images/bg_u_layer.jpg) repeat-y left top/100% auto;
	padding-bottom: min(8vw, 80px);

	h2 {
		background: url(../images/bg_title.png) no-repeat center top min(7vw, 70px)/min(40vw, 400px) min(15.4vw, 154px), url(../images/bg_title_u_layer.png) no-repeat left top max(-2vw, -20px)/cover !important;
		width: 100%;
		height: min(35.7vw, 357px);
		line-height: 3.15 !important;
	}
}

footer {
	background: #fff;
	padding: min(3vw, 30px) 0 min(14.5vw, 145px);

	#footer_logo {
		width: min(42vw, 420px);
		margin: 0 auto;
	}
	
	nav {
		background: #f97a96;
		width: min(100%, 1000px);
		margin: auto;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 3;

		ul {
			margin: 0;
			padding: 0 0 min(3vw, 30px);
			display: flex;
			align-items: flex-end;

			li {
				font-size: min(2.4vw, 24px);
				width: calc(100% / 6);
				text-align: center;
				line-height: 0;

				a{
					color: #fff;

					img {
						width: min(8.8vw, 88px);
						height: min(11.3vw, 113px);
						margin: 0 auto;
						object-fit: contain;
					}
				}
			}
		}
	}

	.copy {
		font-size: min(3.6vw, 36px);
		color: #fff;
		background: #f97a96;
		margin-top: min(4vw, 40px);
		text-align: center;
		line-height: 1.694;

		a {
			color: #fff;
		}
	}
}

@keyframes zoom-in-out {
	0% {
    	transform: scale(1);
	}
	50% {
		transform: scale(0.9);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes rotate {
	from {
		transform: translateX(-50%) rotate(0deg);
	}
	to {
		transform: translateX(-50%) rotate(360deg);
	}
}

@keyframes marquee {
	from {
		transform: translate(0);
	}
	to {
		transform: translate(-100%);
	}
}

@keyframes move-left-right {
	0% {
    	transform: translateX(0);
	}
	50% {
		transform: translateX(5%);
	}
	100% {
		transform: translateX(0);
	}
}
/*********** common ***********/

/*********** top ***********/
#top {
	background: url(../images/bg.jpg) repeat-y center top/min(100%, 1000px) auto;

	#enter_modal {
		background: rgba(255, 255, 255, .9);
		width: 100%;
		height: 100dvh;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 10;
		display: none;
		overflow: auto;

		.wrap {
			padding: min(15vw, 150px) 0 min(5vw, 50px);

			h2 {
				width: min(65.8vw, 658px);
				margin: 0 auto;
			}

			#btn_enter {
				font-size: min(4vw, 40px);
				color: #fff;
				background: #f97a96;
				width: min(48.2vw, 482px);
				height: min(21.6vw, 216px);
				margin: min(5vw, 50px) auto 0;
				border-radius: min(1vw, 10px);
				text-align: center;
				line-height: 1.1;
				align-content: center;
				cursor: pointer;

				span {
					font-size: min(9.5vw, 95px);
					font-family: "Titan One", sans-serif;
					font-weight: 400;
					font-style: normal;
					display: block;
				}
			}

			#kin18 {
				width: min(22.8vw, 228px);
				margin: min(4vw, 40px) auto 0;
			}

			.attention {
				font-size: min(4vw, 40px);
				margin-top: min(2vw, 20px);
				text-align: center;
				line-height: 1.2;

				a {
					color: #f97a96;
					text-decoration: underline;
				}
			}

			.text {
				font-size: min(3vw, 30px);
				width: min(95vw, 950px);
				margin: min(6vw, 60px) auto 0;
				padding: min(2vw, 20px) min(3vw, 30px);
				border: #4b4b72 min(0.4vw, 4px) solid;
				border-radius: min(2vw, 20px);
			}

			.link {
				width: min(95vw, 950px);
				margin: min(8vw, 80px) auto 0;

				div {
					img {
						width: fit-content;
						max-width: 100%;
					}

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

	#top_pickup {
		background: url(../images/bg_top_pickup.png) no-repeat left top/100% auto;
		padding: min(5vw, 50px) 0 min(16vw, 160px);

		h2 {
			span:nth-child(5) {
				margin-left: 0.25em;
			}			
		}

		ul {
			margin-top: min(18vw, 180px);

			.slick-slide {
				margin: 0 min(1.5vw, 15px);
			}

			.slide_arrow {
				width: min(9.3vw, 93px);
				position: absolute;
				top: 41%;
				z-index: 2;
			}

			.prev_arrow {
				left: min(4vw, 40px);
			}
			
			.next_arrow {
				right: min(4vw, 40px);
			}

			li {
				.comment {
					font-size: min(5.3vw, 53px);
					background: #fffec6;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(0.5vw, 5px);
					text-align: center;
					line-height: 1.34;
					overflow: hidden;

					span {
						display: inline-block;
						padding-left: 100%;
						white-space: nowrap;
						animation: marquee 10s linear infinite;
					}
				}

				.thumb_box a {
					margin-top: min(1vw, 10px);
					display: block;
					position: relative;

					.thumb {
						border: #4b4b72 min(0.3vw, 3px) solid;
						border-radius: min(1.2vw, 12px);
						overflow: hidden;
					}

					.icon {
						display: flex;
						gap: 0 min(1vw, 10px);
						position: absolute;
						left: min(2vw, 20px);
						bottom: min(1.5vw, 15px);
						z-index: 2;

						.icon_new {
							width: min(17.6vw, 176px);
						}

						.icon_today {
							width: min(17.2vw, 172px);
						}
					}

					.other {
						position: absolute;
						right: min(2vw, 20px);
						bottom: min(2vw, 20px);
						z-index: 2;

						.enrollment {
							width: min(39.6vw, 396px);
						}

						.designated_fee {
							font-size: min(3.2vw, 32px);
							width: min(39.6vw, 396px);
							height: min(6.2vw, 62px);
							line-height: 1;
							margin-top: min(1vw, 10px);
							gap: 0 min(0.5vw, 5px);

							span {
								font-size: min(5.4vw, 54px);
							}
						}
					}
				}

				.data {
					background: #ffc6e6;
					margin-top: min(1vw, 10px);
					padding-bottom: min(1vw, 10px);
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(0.5vw, 5px);
					text-align: center;

					.name {
						font-size: min(4.8vw, 48px);
						line-height: 1.2;
					}

					.age_size {
						font-size: min(3vw, 30px);
						background: #fff;
						line-height: 1.4;
						display: flex;
						justify-content: center;
						gap: 0 min(1vw, 10px);
					}
				}

				.type {
					margin-top: min(1vw, 10px);
					display: flex;
					gap: min(0.5vw, 5px);
					flex-wrap: wrap;

					p {
						font-size: min(3vw, 30px);
						background: #fff;
						width: calc(50% - min(0.5vw, 5px) / 2);
						border: #4b4b72 min(0.3vw, 3px) solid;
						border-radius: min(0.5vw, 5px);
						text-align: center;
						line-height: 1.667;
					}
				}
			}
		}
	}

	#top_lavistagram {
		background: url(../images/bg_top_lavistagram.jpg) no-repeat center top/min(100%, 1000px) auto;
		padding: min(3vw, 30px) 0;

		.wrap {
			background: url(../images/bg_top_lavistagram_wrap.png) no-repeat left top/cover;
			width: min(95vw, 950px);
			height: min(130.6vw, 1306px);
			margin: 0 auto;
			padding: min(5vw, 50px) min(7.5vw, 75px);
			position: relative;

			.left_box {
				padding-top: min(4vw, 40px);
				position: relative;
				z-index: 2;

				h2 {
					text-align: center;
					text-shadow: 0 min(0.8vw, 8px) 0 rgba(75, 75, 114, 1);
					
					em span {
						letter-spacing: 0;
						-webkit-text-stroke: min(0.3vw, 3px) #4b4b72 !important;
						text-stroke: min(1vw, 10px) #4b4b72 !important;
					}

					strong {
						display: none;
					}
				}

				p {
					font-size: min(6vw, 60px);
					margin-top: min(4vw, 40px);
					padding-left: min(8vw, 80px);
				}

				.btn_more a {
					font-size: min(3.6vw, 36px);
					background: linear-gradient(to left, #e1c6ff, #c6e2ff);
					width: min(68.5vw, 685px);
					margin: min(11vw, 110px) auto 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(4.8vw, 48px);
					text-align: center;
					line-height: 2.639;
					display: block;
					position: relative;

					&::before {
						content: '';
						background: url(../images/btn_more_girl.png) no-repeat left top/cover;
						width: min(12.4vw, 124px);
						height: min(21.2vw, 212px);
						position: absolute;
						left: max(-2vw, -20px);
						top: max(-5.5vw, -55px);
					}

					&::after {
						content: '';
						background: url(../images/btn_more_arrow.png) no-repeat left top/cover;
						width: min(7.8vw, 78px);
						height: min(7.8vw, 78px);
						position: absolute;
						right: min(2vw, 20px);
						top: calc(50% - min(3.9vw, 39px));
					}
				}
			}

			.left_box::before {
				content: '';
				width: min(23.2vw, 232px);
				height: min(23.2vw, 232px);
				border-left: #4b4b72 min(0.5vw, 5px) solid;
				border-top: #4b4b72 min(0.5vw, 5px) solid;
				border-radius: min(2.5vw, 25px) 0 0 0;
				position: absolute;
				left: 0;
				top: 0;
				z-index: 1;
			}

			.left_box::after {
				content: '';
				width: min(23.2vw, 232px);
				height: min(23.2vw, 232px);
				border-right: #4b4b72 min(0.5vw, 5px) solid;
				border-top: #4b4b72 min(0.5vw, 5px) solid;
				border-radius: 0 min(2.5vw, 25px) 0 0;
				position: absolute;
				right: 0;
				top: 0;
				z-index: 1;
			}

			.right_box {
				margin-top: min(8vw, 80px);
				padding-bottom: min(4.5vw, 45px);
				position: relative;

				.slider {
					width: min(90vw, 900px);
					margin-left: max(calc(-10vw / 3), calc(-100px / 3));
					overflow-x: hidden;
					-webkit-mask-image: -webkit-linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, transparent);
					mask-image: -webkit-linear-gradient(0deg, transparent, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, transparent);
					line-height: 1;

					.item {
						height: min(33.3vw, 333px);
						border: #4b4b72 min(0.3vw, 3px) solid;
						overflow: hidden;
						position: relative;

						img {
							margin: auto;
							position: absolute;
							top: -100%;
							bottom: -100%;
							left: -100%;
							right: -100%;
						}
					}
				}
			}

			.right_box::before {
				content: '';
				width: min(23.2vw, 232px);
				height: min(23.2vw, 232px);
				border-left: #4b4b72 min(0.5vw, 5px) solid;
				border-bottom: #4b4b72 min(0.5vw, 5px) solid;
				border-radius: 0 0 0 min(2.5vw, 25px);
				position: absolute;
				left: 0;
				bottom: 0;
				z-index: 1;
			}

			.right_box::after {
				content: '';
				width: min(23.2vw, 232px);
				height: min(23.2vw, 232px);
				border-right: #4b4b72 min(0.5vw, 5px) solid;
				border-bottom: #4b4b72 min(0.5vw, 5px) solid;
				border-radius: 0 0 min(2.5vw, 25px) 0;
				position: absolute;
				right: 0;
				bottom: 0;
				z-index: 1;
			}
		}
	}

	#top_news {
		background: url(../images/bg_top_news.jpg) no-repeat left top/cover;
		height: min(101.1vw, 1011px);
		padding-top: min(5vw, 50px);
		position: relative;

		h2 {
			span:nth-child(6),
			span:nth-child(7) {
				margin-left: 0.25em;
			}
		}

		.btn_more {
			position: absolute;
			right: min(2.5vw, 25px);
			top: min(22vw, 220px);
			z-index: 3;

			a {
				width: min(21.2vw, 212px);
				display: block;
			}
		}

		.slider {
			margin-top: min(4vw, 40px);
			
			.item a {
				.thumb {
					width: min(50vw, 500px);
					height: min(37vw, 370px);
					margin: 0 auto;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(2vw, 20px);
					overflow: hidden;

					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
				}

				.date {
					font-size: min(3vw, 30px);
					background: #fff;
					width: min(22.8vw, 228px);
					margin: max(-2.5vw, -25px) auto 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(2.2vw, 22px);
					text-align: center;
					line-height: 1.5;
					position: relative;
					z-index: 1;
				}
			}

			.title {
				font-size: min(3.6vw, 36px);
				width: 85%;
				margin: min(2vw, 20px) auto 0;
				text-overflow: ellipsis;
				overflow: hidden;
				-webkit-line-clamp: 1;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				word-break: break-all;
			}

			.slick-slide {
				opacity: 0.5;
				pointer-events: none;
			}

			.slick-active {
				opacity: 1;
				pointer-events: auto;
			}

			.slide_arrow {
				width: min(8vw, 80px);
				position: absolute;
				top: 30%;
				z-index: 2;
				cursor: pointer;
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}

			.prev_arrow {
				left: min(5vw, 50px);
			}

			.next_arrow {
				right: min(5vw, 50px);
			}
		}
	}

	#top_waiting {
		background: url(../images/bg_top_waiting_01.png) no-repeat center top/100% min(13vw, 130px);
		width: 100%;
		margin-top: max(-14vw, -140px);
		padding-top: min(11vw, 110px);
		position: relative;
		z-index: 1;

		.box {
			background: url(../images/bg_top_waiting_02.jpg) repeat-y left top/100% auto;
			margin-top: max(-15.8vw, -158px);
			padding: min(14.7vw, 147px) 0 min(30vw, 300px);
		}

		h2 {
			span:nth-child(8) {
				margin-left: 0.25em;
			}			
		}

		.wrap {
            width: 100%;
            height: min(25vw, 250px);
            position: absolute;
			top: max(-13vw, -130px);
            display: flex;
            align-items: flex-start;
            justify-content: center;
            overflow: hidden;

			.rotating_text {
				font-family: "Titan One", sans-serif;
				font-size: min(9.5vw, 95px);
				font-weight: normal;
				color: #fff;
				width: min(100vw, 1000px);
				height: 240vw;
				position: absolute;
				left: 50%;
				top: 0;
				transform-origin: center center;
				animation: rotate 100s linear infinite;
				text-shadow: 
				0.1vw 0.1vw 0 #4b4b72,
				-0.1vw 0.1vw 0 #4b4b72,
				0.1vw -0.1vw 0 #4b4b72,
				-0.1vw -0.1vw 0 #4b4b72,
				0.1vw 0 0 #4b4b72,
				-0.1vw 0 0 #4b4b72,
				0 0.1vw 0 #4b4b72,
				0 -0.1vw 0 #4b4b72;

				span {
					width: 1em;
					text-align: center;
					position: absolute;
					left: 50%;
					transform-origin: 0 120vw;
				}

				span:nth-child(15n+8),
				span:nth-child(15n+13),
				span:nth-child(15n) {
					width: 0.5em;
				}
			}
		}

		.girls_list {
			gap: min(3vw, 30px) 0;

			li {
				width: calc(100% / 3);

				.comment {
					font-size: min(2.3vw, 23px);
					border: #f87c94 min(0.2vw, 2px) solid;
					line-height: 1.13;
				}

				.thumb_box {
					border: #f87c94 min(0.2vw, 2px) solid;

					a {
						.icon {
							bottom: min(0.5vw, 5px);
							left: min(0.5vw, 5px);

							.icon_new {
								width: min(7.5vw, 75px);
							}

							.icon_today {
								width: min(7vw, 70px);
							}
						}

						.other {
							right: min(0.5vw, 5px);

							.enrollment {
								width: min(12.4vw, 124px);
							}

							.designated_fee {
								font-size: min(1vw, 11px);
								width: min(12.4vw, 124px);
								line-height: 1.5;

								span {
									font-size: min(1.4vw, 14px);
								}
							}
						}
					}
				}

				.data {
					margin-top: min(1vw, 10px);

					.name {
						font-size: min(2.4vw, 24px);
					}

					.age_size {
						font-size: min(2vw, 20px);
						gap: 0 min(2vw, 20px);
					}
				}

				.type {
					p {
						font-size: min(2vw, 20px);
					}
				}

				.time {
					font-size: min(2.4vw, 24px);
				}

				.situation {
					font-size: min(2.4vw, 24px);
				}
			}
		}
	}

	/*.js-scroll-overlap:not(.is-disabled) {
		--sticky-offset: -1px;
		position: sticky;
		top: var(--sticky-offset);
	}*/

	#top_newface {
		background: url(../images/bg_top_newface.png) no-repeat left top/100% auto;
		margin-top: max(-10vw, 100px);
		padding: min(17vw, 170px) 0 min(12vw, 120px);
		position: relative;
		z-index: 2;

		h2 {
			span:nth-child(4) {
				margin-left: 0.25em;
			}			
		}

		.btn_more {
			position: absolute;
			right: min(4vw, 40px);
			top: min(33vw, 330px);
			z-index: 3;

			a img {
				width: min(21.7vw, 217px);
			}
		}

		.newface_list {
			margin-top: min(3vw, 30px);

			.slick-slide {
				margin: 0 min(1vw, 10px);
			}

			.slide_arrow {
				width: min(9.3vw, 93px);
				position: absolute;
				top: 30%;
				z-index: 2;
				cursor: pointer;
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}

			.prev_arrow {
				left: min(5vw, 50px);
			}

			.next_arrow {
				right: min(5vw, 50px);
			}

			.one_box {
				width: min(80vw, 800px);

				.left_box {
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(2vw, 20px);
					overflow: hidden;
					position: relative;

					a {
						.icon {
							width: min(14.8vw, 148px);
							position: absolute;
							left: min(1vw, 10px);
							bottom: min(1vw, 10px);
						}

						.other {
							position: absolute;
							left: min(16.8vw, 168px);
							bottom: min(1.5vw, 15px);

							.enrollment {
								width: min(31vw, 310px);
							}

							.designated_fee {
								font-size: min(2.6vw, 26px);
								width: min(31vw, 310px);
								margin-top: min(1vw, 10px);
								line-height: 1.25;
								gap: 0 min(0.5vw, 5px);

								span {
									font-size: min(4.2vw, 42px);
								}
							}
						}
					}
				}

				.right_box {
					background: url(../images/bg_newface_list_right.png) no-repeat left top/100% 100%;
					height: min(55.5vw, 555px);
					margin-top: min(2vw, 20px);
					padding: min(4vw, 40px) min(3vw, 30px);

					.date,
					.age,
					.size {
						font-size: min(3vw, 30px);
					}

					.name {
						font-size: min(4.8vw, 48px);
						line-height: 1.1;
					}

					.age_size {
						display: flex;
						gap: 0 min(3vw, 30px);
					}

					.type {
						margin-top: min(0.5vw, 5px);
						display: flex;
						flex-wrap: wrap;
						gap: min(1vw, 10px);

						p {
							font-size: min(3vw, 30px);
							background: #fffec6;
							width: calc(50% - min(0.5vw, 5px));
							border: #4b4b72 min(0.3vw, 3px) solid;
							border-radius: min(0.5vw, 5px);
							text-align: center;
							line-height: 1.5;
						}
					}

					.title {
						font-size: min(3.4vw, 34px);
						margin-top: min(1vw, 10px);
						border: #4b4b72 min(0.3vw, 3px) solid;
						border-radius: min(0.5vw, 5px);
						overflow: hidden;

						span {
							display: inline-block;
							padding-left: 100%;
							white-space: nowrap;
							animation: marquee 15s linear infinite;
						}
					}

					.comment {
						font-size: min(2.6vw, 26px);
						margin-top: min(1vw, 10px);
						line-height: 1.2;
						display: -webkit-box;
						overflow: hidden;
						-webkit-box-orient: vertical;
						-webkit-line-clamp: 4;
					}
				}
			}
		}
	}

	#top_ranking {
		background: url(../images/bg_top_ranking.png) no-repeat left top/100% auto;
		height: min(279.3vw, 2793px);
		margin-top: max(-5vw, -50px);
		padding-top: min(12vw, 120px);
		position: relative;
		z-index: 3;

		.btn_more {
			width: min(95vw, 950px);
			margin: min(1vw, 10px) auto 0;
			text-align: right;

			a {
				width: min(23vw, 230px);
				display: inline-block;

				&:hover {
					animation: zoom-in-out 1s infinite;
				}
			}
		}

		.crown {
			width: min(39vw, 390px);
			margin: max(-18vw, -180px) auto 0;
		}

		ul {
			width: min(95vw, 950px);
			margin: min(5vw, 50px) auto 0;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: min(2vw, 20px) min(4vw, 40px);
			flex-wrap: wrap;

			li {
				a {
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(2vw, 20px);
					display: block;
					position: relative;
					overflow: hidden;
					box-shadow: 0 min(1vw, 10px) 0 0 rgba(245, 191, 223, 1);

					.number {
						position: absolute;
						left: min(1vw, 10px);
						bottom: min(1vw, 10px);
					}

					.icon {
						display: flex;
						align-items: center;
						gap: 0 min(0.5vw, 5px);
						position: absolute;
						right: min(1vw, 10px);
						bottom: min(1.5vw, 15px);
					}

					.other {
						width: 95%;
						margin: auto;
						display: flex;
						gap: 0 min(1vw, 10px);
						position: absolute;
						left: 0;
						right: 0;
						top: min(1vw, 10px);
					}
				}

				.data {
					background: #c6ffe1;
					margin-top: min(2vw, 20px);
					padding: min(0.5vw, 5px) 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(1vw, 10px);
					line-height: 1.2;

					.name {
						text-align: center;
					}

					.age_size {
						display: flex;
						justify-content: center;
						gap: 0 min(1.5vw, 15px);
					}
				}
			}

			li:first-child {
				width: 100%;

				a {
					.number {
						width: min(52.8vw, 528px);
						left: min(2vw, 20px);
					}

					.icon {
						right: min(2vw, 20px);

						.new {
							width: min(17.4vw, 174px);
						}

						.today {
							width: min(17.2vw, 172px);
						}
					}

					.other {
						.enrollment {
							width: min(45.2vw, 452px);
						}

						.designated_fee {
							font-size: min(4vw, 40px);
							width: min(45.2vw, 452px);
							gap: 0 min(1vw, 10px);

							span {
								font-size: min(5.8vw, 58px);
							}
						}
					}
				}

				.data {
					.name {
						font-size: min(3.6vw, 36px);
					}

					.age_size {
						font-size: min(3vw, 30px);
					}
				}
			}

			li:nth-child(2),
			li:nth-child(3) {
				width: calc(50% - min(2vw, 20px));

				a {
					.number {
						width: min(21.6vw, 216px);
					}

					.icon {
						.new {
							width: min(9.6vw, 96px);
						}

						.today {
							width: min(9.6vw, 96px);
						}
					}

					.other {
						.enrollment {
							width: min(19.6vw, 196px);
						}

						.designated_fee {
							font-size: min(1.8vw, 18px);
							width: min(19.6vw, 196px);
							gap: 0;

							span {
								font-size: min(2.4vw, 24px);
							}
						}
					}
				}

				.data {
					.name {
						font-size: min(3.6vw, 36px);
					}

					.age_size {
						font-size: min(3vw, 30px);
					}
				}
			}

			li:nth-child(4),
			li:nth-child(5) {
				width: 14vw;

				a {
					.number {
						width: 7.7vw;
					}

					.icon {
						.new {
							width: 2.3vw;
						}

						.today {
							width: 2.3vw;
						}
					}

					.other {
						.enrollment {
							width: 5.8vw;
						}

						.designated_fee {
							font-size: 0.5vw;
							width: 5.8vw;
							gap: 0 0.125vw;

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

				.data {
					.name {
						font-size: 1.1vw;
					}

					.age_size {
						font-size: 0.75vw;
					}
				}
			}
		}
	}

	#top_review {
		background:  url(../images/bg_top_review.png) no-repeat left top min(29vw, 290px)/100% auto, url(../images/bg.jpg) repeat-y left top/100% auto;
		margin-top: max(-5vw, -50px);
		padding: min(13vw, 130px) 0 min(25vw, 250px);
		position: relative;
		z-index: 2;

		.btn {
			width: min(59.3vw, 593px);
			margin: min(3vw, 30px) auto 0;
		}

		ul {
			width: min(95vw, 950px);
			margin: min(4vw, 40px) auto 0;

			li {
				background: #c6fff9;
				width: 100%;
				padding: min(2.5vw, 25px) 0 min(2.5vw, 25px) min(2.5vw, 25px);
				border: #fff 0.25vw solid;
				border-radius: 1.5vw;

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

				.upper_box {
					display: flex;

					.thumb {
						width: min(30.5vw, 305px);
						height: min(36.5vw, 365px);
						border-radius: 0.75vw;
						overflow: hidden;
						position: relative;
						z-index: 2;

						img {
							display: block;
						}
					}

					.right_box {
						width: calc(100% - min(30.5vw, 305px));

						.date {
							font-size: min(2.4vw, 24px);
							padding-right: min(2.5vw, 25px);
							text-align: right;
						}
						
						.data {
							background: #fff;
							width: min(94.5vw, 945px);
							margin: min(2vw, 20px) 0 0 max(-33vw, -330px);
							padding: min(2vw, 20px) min(2.5vw, 25px) min(1.5vw, 15px) min(35.5vw, 355px);

							.name {
								font-size: min(4.8vw, 48px);
								line-height: 1.3;
							}

							.age_size {
								font-size: min(2.4vw, 24px);
								display: flex;
								gap: 0 min(1vw, 10px);
							}
						}

						.evaluation {
							margin-top: min(2vw, 20px);
							padding-left: min(2.5vw, 25px);
							display: flex;
							align-items: center;
							gap: 0 min(3vw, 30px);

							img {
								width: min(7.5vw, 75px);
							}
						}

						.title {
							font-size: min(3vw, 30px);
							margin-top: min(2vw, 20px);
							padding: 0 min(2vw, 20px);
							overflow: hidden;
							text-overflow: ellipsis;
							white-space: nowrap;
						}
					}
				}

				.comment {
					font-size: min(2.4vw, 24px);
					margin-top: min(1.5vw, 15px);
					padding-right: min(2.5vw, 25px);
					line-height: 1.2;
					display: -webkit-box;
					overflow: hidden;
					-webkit-box-orient: vertical;
					-webkit-line-clamp: 4;
				}
			}
		}

		.btn_more {
			margin: min(4vw, 40px) auto 0;

			a {
				width: min(51.5vw, 515px);
				margin: 0 auto;
				display: block;
			}
		}
	}

	#banner_slider {
		background: url(../images/bg.jpg) repeat-y left top/100% auto;
		padding: min(3vw, 30px) 0 min(10vw, 100px);
		position: relative;
		z-index: 2;

		.wrap {
			width: min(80vw, 800px);
			margin: 0 auto;

			.slider {
				width: 100%;

				.slick-slide {
					cursor: pointer;
					transition: opacity .3s ease;

					&:hover {
						opacity: .5;
					}
				}

				.slide_arrow {
					width: min(9.3vw, 93px);
					position: absolute;
					top: calc(50% - min(9.3vw, 93px) / 2);
					z-index: 2;
					cursor: pointer;
				}

				.prev_arrow {
					left: calc(max(-9.3vw, -93px) / 2);
				}

				.next_arrow {
					right: calc(max(-9.3vw, -93px) / 2);
				}
			}

			.thumnail_slider {
				width: 100%;
				margin-top: min(2vw, 20px);

				.slick-slide {
					margin: 0 min(2vw, 20px);
					cursor: pointer;
				}
			}
		}
	}

	#affiliated_stores {
		background: url(../images/bg.jpg) repeat-y left top/100% auto;
		position: relative;
		z-index: 3;

		.affiliated_stores {
			background: url(../images/bg_affiliated_stores.jpg) repeat-y left top/100% auto;
			width: min(96vw, 960px);
			margin: 0 auto;
			padding: min(4vw, 40px) 0;
		}

		ul {
			background: #ffc6e6;
			width: min(88vw, 880px);
			margin: min(4vw, 40px) auto 0;
			padding: min(4vw, 40px);

			li {
				width: 100%;
			}
		}
	}
 }
/*********** top ***********/

/*********** contact ***********/
#contact {
	section {
		h3 {
			font-size: min(3.6vw, 36px);
			margin: min(5vw, 50px) 0 0;
			text-align: center;
		}

		.text {
			font-size: min(3vw, 30px);
			margin-top: min(2.5vw, 25px);
			text-align: center;
			line-height: 1.3;
		}

		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(8vw, 80px) auto 0;
			padding: min(8vw, 80px) 0;
			border: #4b4b72 min(0.4vw, 4px) solid;
			border-radius: min(7vw, 70px);

			dl {
				width: min(80vw, 800px);
				margin: 0 auto;

				dt {
					font-size: min(3vw, 30px);
					display: flex;
					align-items: center;
					gap: 0 min(0.5vw, 5px);

					span {
						font-size: min(2vw, 20px);
						color: #fff;
						background: #f97a96;
						width: min(7.8vw, 78px);
						border-radius: min(1.6vw, 16px);
						text-align: center;
						line-height: 1.6;
						display: block;
					}

					&:nth-of-type(n+2) {
						margin-top: min(3vw, 30px);
					}
				}

				dd {
					margin-left: 0;
				}
			}

			.btn_box {
				margin: min(8vw, 80px) auto 0;
				text-align: center;
			}
		}
	}
}

#contact.confirm {
	section {
		.box {
			.confirm_text {
				font-size: min(3.6vw, 36px);
				color: #f97a96;
				text-align: center;
			}

			dl {
				width: min(80vw, 800px);
				margin-top: min(6vw, 60px);

				dt {
					font-size: min(3vw, 30px);
					margin: 0;

					&:nth-of-type(n+2) {
						margin-top: min(3vw, 30px);
					}
				}

				dd {
					font-size: min(3.6vw, 36px);
					padding: 0 min(0.5vw, 5px) min(1vw, 10px);
					border-bottom: #4b4b72 min(0.2vw, 2px) solid;
				}
			}

			.btn_box {
				.btn_back {
					margin-top: min(2vw, 20px);
				}
			}
		}
	}
}

#contact.complete {
	section {
		.box {
			padding-bottom: min(12vw, 120px);

			.confirm_text {
				font-size: min(3.6vw, 36px);
				margin-top: min(5vw, 50px);
				text-align: center;
			}

			.complete_text {
				font-size: min(3vw, 30px);
				margin-top: min(2.5vw, 25px);
				text-align: center;
				line-height: 1.4;
			}

			.btn_box {
				margin-top: min(8vw, 80px);

				input {
					background: #ffe9f5;
				}
			}
		}
	}
}
/*********** contact ***********/

/*********** enquete ***********/
#enquete {
	section {
		.text {
			font-size: min(3vw, 30px);
			margin-top: min(5vw, 50px);
			text-align: center;
			line-height: 1.3;
		}

		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(8vw, 80px) auto 0;
			padding: min(5vw, 50px) 0;
			border: #4b4b72 min(0.4vw, 4px) solid;
			border-radius: min(7vw, 70px);

			dl {
				width: min(80vw, 800px);
				margin: 0 auto;

				dt {
					font-size: min(3vw, 30px);
					color: #fff;
					background: #4b4b72;
					padding-left: min(1vw, 10px);
					border-radius: min(0.7vw, 7px);
					line-height: 1.333;
					letter-spacing: 0;
					display: flex;
					align-items: center;
					gap: 0 min(0.5vw, 5px);

					span {
						font-size: min(2vw, 20px);
						color: #fff;
						background: #f97a96;
						width: min(5.7vw, 57px);
						border-radius: min(1.4vw, 14px);
						text-align: center;
						line-height: 1.4;
						display: block;
					}

					&:nth-of-type(n+2) {
						margin-top: min(4vw, 40px);
					}
				}

				dd {
					width: min(80vw, 800px);
					margin: min(1.5vw, 15px) auto 0;

					.radio {
						line-height: 1.8;

						input[type="radio"] {
							display: none;
						}

						label {
							font-size: min(3.6vw, 36px);
							position: relative;
							margin-right: min(1vw, 10px);
							padding-left: min(4vw, 40px);
							cursor: pointer;

							&::before,
							&::after {
								content: "";
								position: absolute;
								display: block;
								top: calc(50% - 0.5vw);
							}
							
							&::before {
								background: #4b4b72;
								width: min(1.8vw, 18px);
								height: min(1.8vw, 18px);
								border-radius: 50%;
								left: min(0.5vw, 5px);
								top: min(2.4vw, 24px);
								opacity: 0;
								transition: opacity .3s;
							}

							&::after {
								width: min(2.8vw, 28px);
								height: min(2.8vw, 28px);
								border: #4b4b72 min(0.2vw, 2px) solid;
								border-radius: 50%;
								left: 0;
								top: min(1.9vw, 19px);
							}
						}

						input[type="radio"]:checked + label::before {
							opacity: 1;
						}
					}

					textarea {
						height: min(40vw, 400px);
					}

					p {
						font-size: min(3vw, 30px);
						margin: min(3vw, 30px) 0 min(1vw, 10px);
						line-height: 1.2;
						letter-spacing: 0;
						
						span {
							font-size: min(2vw, 20px);
							color: #fff;
							background: #f97a96;
							width: min(5.7vw, 57px);
							margin-left: min(0.5vw, 5px);
							border-radius: min(1.4vw, 14px);
							text-align: center;
							line-height: 1.4;
							display: inline-block;
						}
					}

					p.error {
						margin: 0.25vw 0 0;
					}
				}
			}

			.privacy_policy {
				font-size: min(2.4vw, 24px);
				margin-top: min(8vw, 80px);
				padding: 0 min(8vw, 80px);
				line-height: 1.2;
				letter-spacing: 0;
			}

			.btn_box {
				margin: min(8vw, 80px) auto 0;
				text-align: center;
			}
		}
	}
}

#enquete.confirm {
	section {
		.box {
			.confirm_text {
				font-size: min(3.6vw, 36px);
				color: #f97a96;
				text-align: center;
			}

			dl {
				width: min(80vw, 800px);
				margin-top: min(8vw, 80px);

				dt {
					color: #4b4b72;
					background: #fff;
					margin: 0;
					padding: 0;
					border-radius: 0;

					&:nth-of-type(n+2) {
						margin-top: min(4vw, 40px);
					}
				}

				dd {
					font-size: min(3.6vw, 36px);
					padding: 0 0 min(0.5vw, 5px) 0;
					border-bottom: #4b4b72 min(0.2vw, 2px) solid;
				}
			}

			.btn_box {
				.btn_back {
					margin-top: min(2vw, 20px);
				}
			}
		}
	}
}

#enquete.complete {
	section {
		.box {
			padding-bottom: min(12vw, 120px);

			.confirm_text {
				font-size: min(3.6vw, 36px);
				margin-top: min(5vw, 50px);
				text-align: center;
			}

			.complete_text {
				font-size: min(3vw, 30px);
				margin-top: min(2.5vw, 25px);
				text-align: center;
				line-height: 1.4;
			}

			.btn_box {
				margin-top: min(8vw, 80px);

				input {
					background: #ffe9f5;
				}
			}
		}
	}
}
/*********** enquete ***********/

/*********** hotel_list ***********/
#hotel_list {
	h2 {
		span:nth-child(6) {
			margin-left: 0.25em;
		}
	}

	h3 {
		font-size: min(3.6vw, 36px);
		margin: min(3vw, 30px) 0 min(6vw, 60px);
		text-align: center;
	}
	
	.one_box {
		width: min(95vw, 950px);
		margin: min(4vw, 40px) auto 0;

		h4 {
			font-size: min(3.6vw, 36px);
			color: #fff;
			background: #4b4b72;
			margin: 0;
			text-align: center;
			line-height: 1.944;
		}

		ul {
			background: #fff;
			margin: 0;
			border-left: #4b4b72 min(0.2vw, 2px) solid;
			border-right: #4b4b72 min(0.2vw, 2px) solid;
			border-bottom: #4b4b72 min(0.2vw, 2px) solid;

			li {
				font-size: min(3.6vw, 36px);
				border-bottom: #4b4b72 min(0.2vw, 2px) solid;
				padding: 0 min(3vw, 30px);
				line-height: 2.611;

				&:last-child {
					border-bottom: none
				}

				a {
					width: 100%;
					height: 100%;
					display: block;
				}
			}
		}
	}

	.btn_box .btn_back input[type="button"] {
		background: #ffe9f5;
		width: min(80vw, 800px);
		margin: min(4vw, 40px) auto 0;
		display: block;
	}
}

#hotel_list.area {
	h3 {
		font-size: min(3.6vw, 36px);
		background: #fffec6;
		width: min(80vw, 800px);
		margin: min(3vw, 30px) auto min(4vw, 40px);
		border: #4b4b72 min(0.3vw, 3px) solid;
		border-radius: min(4.5vw, 45px);
		line-height: 2.5;
		box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
	}

	.one_box {
		.hotel_box a {
			font-size: min(3.6vw, 36px);
			background: #fff;
			line-height: 2.611;
			display: block;

			.name {
				padding: 0 2vw;
				border-left: #4b4b72 min(0.2vw, 2px) solid;
				border-right: #4b4b72 min(0.2vw, 2px) solid;
				border-bottom: #4b4b72 min(0.2vw, 2px) solid;
			}
		}
	}
}

#hotel_list.detail {
	section {
		h3 {
			font-size: min(3.6vw, 36px);
			background: #fffec6;
			width: min(80vw, 800px);
			margin: min(3vw, 30px) auto min(4vw, 40px);
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(4.5vw, 45px);
			line-height: 2.5;
			box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
		}

		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: 0 auto;
			padding: min(5vw, 50px) 0 min(6vw, 60px);
			border: #4b4b72 min(0.5vw, 5px) solid;
			border-radius: min(3vw, 30px);

			.address {
				font-size: min(3.6vw, 36px);
				text-align: center;
				line-height: 1.3;

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

			.tel {
				font-size: min(3.6vw, 36px);
				margin-top: min(2vw, 20px);
				text-align: center;
				line-height: 1.3;

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

			.map {
				margin-top: min(4vw, 40px);

				iframe {
					height: min(88vw, 880px);
				}
			}
		}

		.btn_box {
			margin-top: min(4vw, 40px);

			div:last-child input {
				margin-top: min(2.5vw, 25px);
			}
		}
	}
}
/*********** hotel_list ***********/

/*********** lavistagram ***********/
#lavistagram {
	section {
		.box {
			ul {
				width: min(95vw, 950px);
				margin: min(5vw, 50px) auto 0; 
				display: flex;
				gap: min(3vw, 30px);
				flex-wrap: wrap;

				li {
					width: calc(50% - min(1.5vw, 15px));
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(3vw, 30px);
					overflow: hidden;
				}
			}
		}
	}
}

#lavistagram.all {
	section {
		.box {
			ul {
				li {
					background: #ffc6e6;
					padding: min(0.5vw, 5px) 0 min(1vw, 10px);

					.individual {
						font-size: min(3.6vw, 36px);
						text-align: center;
					}

					.thumb {
						width: min(41vw, 410px);
						margin: min(0.5vw, 5px) auto 0;
						border: #4b4b72 min(0.3vw, 3px) solid;
						border-radius: min(1vw, 10px);
						overflow: hidden;
					}

					.btn_profile {
						a {
							font-size: min(3vw, 30px);
							background: #fffec6;
							width: min(41vw, 410px);
							margin: min(1vw, 10px) auto 0;
							border: #4b4b72 min(0.3vw, 3px) solid;
							border-radius: min(3vw, 30px);
							text-align: center;
							line-height: 2;
							display: block;
						}
					}
				}
			}
		}
	}
}

#lavistagram.individual {
	section {
		.data {
			margin-top: min(3vw, 30px);

			.name {
				font-size: min(4.8vw, 48px);
				text-align: center;
			}

			.btn_profile {
				a {
					font-size: min(3.6vw, 36px);
					background: #fffec6;
					width: min(80vw, 800px);
					margin: min(2vw, 20px) auto 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(4.5vw, 45px);
					text-align: center;
					line-height: 2.5;
					display: block;
					box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
				}
			}
		}

		.box {
			ul {
				gap: min(4vw, 40px) 0;

				li {
					width: 100%;
				}
			}
		}

		.btn_box .btn_back input[type="button"] {
			background: #ffe9f5;
			width: min(80vw, 800px);
			margin: min(5vw, 50px) auto 0;
			display: block;
		}
	}
}
/*********** lavistagram ***********/

/*********** meet_up ***********/
#meet_up {
	h2 {
		span:nth-child(5) {
			margin-left: 0.25em;
		}
	}

	.one_box {
		width: min(95vw, 950px);
		background: #fff;
		margin: min(6vw, 60px) auto 0;
		padding: min(4vw, 40px) 0;
		border: #4b4b72 min(0.5vw, 5px) solid;
		border-radius: min(3vw, 30px);

		h3 {
			font-size: min(3.6vw, 36px);
			background: #ffe9f5;
			width: min(64.3vw, 643px);
			margin: 0 auto;
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(3.5vw, 35px);
			text-align: center;
			line-height: 1.944;
		}

		.address {
			font-size: min(3vw, 30px);
			margin-top: min(1.5vw, 15px);
			text-align: center;
		}

		.map {
			margin-top: min(1.5vw, 15px);

			iframe {
				height: min(88vw, 880px);
			}
		}
	}

	.btn_box .btn_back input[type="button"] {
		background: #ffe9f5;
		width: min(80vw, 800px);
		margin: min(4vw, 40px) auto 0;
		display: block;
	}
}
/*********** meet_up ***********/

/*********** members ***********/
#members {
	.images {
		width: min(95vw, 950px);
		margin: min(6vw, 60px) auto 0;
	}

	.btn_members {
		width: min(57vw, 570px);
		margin: min(3vw, 30px) auto 0;
	}

	.btn_enquete {
		width: min(65.6vw, 656px);
		margin: 0 auto;
	}
}
/*********** members ***********/

/*********** newface ***********/
#newface {
	h2 {
		span:nth-child(4) {
			margin-left: 0.25em;
		}
	}

	.newface_list {
		width: min(95vw, 950px);
		margin: min(3vw, 30px) auto 0;

		.one_box {
			.left_box {
				width: 100%;
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: min(2vw, 20px);
				overflow: hidden;
				position: relative;

				a {
					.icon {
						width: min(19vw, 190px);
						position: absolute;
						left: min(1.5vw, 15px);
						bottom: min(1.5vw, 15px);
					}
				}
			}

			.right_box {
				background: url(../images/bg_newface_list_right_u_layer.png) no-repeat left top/100% 100%;
				height: min(87vw, 870px);
				margin-top: min(2vw, 20px);
				padding: min(2vw, 20px) min(2.5vw, 25px);
				position: relative;

				.date,
				.age,
				.size {
					font-size: min(3.6vw, 36px);
					line-height: 1.2;
				}

				.name {
					font-size: min(4.8vw, 48px);
					line-height: 1.5;
				}

				.other {
					display: flex;
					justify-content: flex-start;
					gap: 0 min(1vw, 10px);
					position: absolute;
					right: min(1.5vw, 15px);
					top: min(2vw, 20px);

					.enrollment {
						width: min(25vw, 250px);
					}

					.designated_fee {
						font-size: min(2.2vw, 22px);
						width: min(25vw, 250px);
						line-height: 1.318;
						letter-spacing: 0;
						display: flex;
						align-items: center;
						gap: 0 min(0.5vw, 5px);

						span {
							font-size: min(3.2vw, 32px);
						}
					}
				}

				.type {
					margin-top: min(1vw, 10px);
					display: flex;
					flex-wrap: wrap;
					gap: min(1vw, 10px);

					p {
						font-size: min(3.6vw, 36px);
						background: #fffec6;
						width: calc(50% - min(0.5vw, 5px));
						border: #4b4b72 min(0.3vw, 3px) solid;
						border-radius: min(0.5vw, 5px);
						text-align: center;
						line-height: 1.389;
					}
				}

				.title {
					font-size: min(3.6vw, 36px);
					margin-top: min(2vw, 20px);
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(0.5vw, 5px);
					overflow: hidden;

					span {
						display: inline-block;
						padding-left: 100%;
						white-space: nowrap;
						animation: marquee 15s linear infinite;
					}
				}

				.comment {
					font-size: min(3.6vw, 36px);
					max-height: min(38vw, 380px);
					margin-top: min(1vw, 10px);
					line-height: 1.2;
					overflow: auto;
				}
			}

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

/*********** news ***********/
#news {
	h2 {
		span:nth-child(6),
		span:nth-child(7) {
			margin-left: 0.25em;
		}
	}

	.news_list {
		width: min(95vw, 950px);
		margin: min(3vw, 30px) auto 0;
		display: flex;
		gap: min(6vw, 60px) min(2.5vw, 25px);
		flex-wrap: wrap;
		
		.item {
			width: calc(50% - min(2.5vw, 25px) / 2);

			.thumb {
				height: min(45vw, 450px);
				border: #4b4b72 min(0.2vw, 2px) solid;
				border-radius: min(3vw, 30px);
				overflow: hidden;

				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
				}
			}

			.date {
				font-size: min(3vw, 30px);
				background: #fff;
				width: min(25vw, 250px);
				margin: max(-2.8vw, -28px) auto 0;
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: min(2.6vw, 26px);
				text-align: center;
				line-height: 1.733;
				position: relative;
				z-index: 1;
			}
		}

		.title {
			font-size: min(3.6vw, 36px);
			width: 95%;
			margin: min(1vw, 10px) auto 0;
			line-height: 1.2;
			text-overflow: ellipsis;
			overflow: hidden;
			-webkit-line-clamp: 2;
			display: -webkit-box;
			-webkit-box-orient: vertical;
			word-break: break-all;
		}

		.slick-slide {
			opacity: 0.5;
			pointer-events: none;
		}

		.slick-active {
			opacity: 1;
			pointer-events: auto;
		}

		.slide_arrow {
			width: 3.75vw;
			position :absolute;
			top: 30%;
			z-index: 2;
			cursor: pointer;
			transition: opacity .3s ease;

			&:hover {
				opacity: .7;
			}
		}

		.prev_arrow {
			left: 8.125vw;
		}

		.next_arrow {
			right: 10vw;
		}
	}
}

#news.detail {
	section {
		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(3vw, 30px) auto 0;
			padding: min(6vw, 60px) min(6.3vw, 63px);
			border: #4b4b72 min(0.5vw, 5px) solid;
			border-radius: min(7vw, 70px);

			.inner {
				.date {
					font-size: min(3vw, 30px);
					text-align: center;
				}

				.title {
					font-size: min(4.8vw, 48px);
					text-align: center;
				}

				.images {
					margin-top: min(1.5vw, 15px);
				}

				.text {
					font-size: min(3vw, 30px);
					margin-top: min(1vw, 10px);
					line-height: 1.7;
				}
			}
		}

		#pagenation {
			margin: min(6vw, 60px) 0 0;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 min(5vw, 50px);

			li a {
				font-size: min(3.6vw, 36px);
				background: #c6fffa;
				width: min(26.4vw, 264px);
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: min(4vw, 40px);
				text-align: center;
				line-height: 1.722;
				display: block;
			}

			li.prev a,
			li.next a {
				font-family: "Titan One", sans-serif;
				font-weight: normal;
				background: #ffe9f5;

				span {
					font-weight: bold;
				}
			}

			li.prev a {
				padding-left: min(2vw, 20px);
				text-align: left;
			}

			li.next a {
				padding-right: min(2vw, 20px);
				text-align: right;
			}
		}
	}
}
/*********** news ***********/

/*********** profile ***********/
#profile {
	#pagenation {
		li:nth-child(n+2) {
			margin-top: min(2vw, 20px);
		}		
		
		li a {
			font-size: min(4.8vw, 48px);
			background: #c6fffa;
			width: min(80vw, 800px);
			margin: 0 auto;
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(4.5vw, 45px);
			text-align: center;
			line-height: 1.875;
			display: block;
		}

		li.prev a,
		li.next a {
			font-family: "Titan One", sans-serif;
			font-weight: normal;
			background: #ffe9f5;

			span {
				font-weight: bold;
			}
		}
	}

	#headline {
		font-size: min(4.8vw, 48px);
		background: #fff;
		border: #4b4b72 min(0.3vw, 3px) solid;
		border-radius: min(0.5vw, 5px);
		width: min(95vw, 950px);
		margin: min(5vw, 50px) auto 0;
		text-align: center;
		line-height: 1.458;
		overflow: hidden;

		span {
			display: inline-block;
			padding-left: 100%;
			white-space: nowrap;
			animation: marquee 10s linear infinite;
		}
	}

	#slider_wrap {
		margin-top: min(1.5vw, 15px);
		position: relative;

		.slider {
			position: relative;

			.item {
				width: min(85vw, 850px);
				border-radius: min(2vw, 20px);
				overflow: hidden;
			}

			.slide_arrow {
				width: min(10vw, 100px);
				position: absolute;
				top: calc(50% - min(5vw, 50px));
				z-index: 2;
			}

			.prev_arrow {
				left: min(5vw, 50px);
			}

			.next_arrow {
				right: min(5vw, 50px);
			}
		}

		.icon {
			display: flex;
			align-items: flex-end;
			gap: 0 min(1vw, 10px);
			position: absolute;
			left: min(9vw, 90px);
			bottom: min(3vw, 30px);

			.new {
				width: min(20.5vw, 205px);
			}

			.today {
				width: min(20vw, 200px);
			}
		}

		.other {
			position: absolute;
			right: min(9vw, 90px);
			bottom: min(4vw, 40px);

			.enrollment {
				width: min(39vw, 390px);
			}

			.designated_fee {
				font-size: min(3.2vw, 32px);
				width: min(39vw, 390px);
				margin-top: min(1.5vw, 15px);
				text-align: center;

				span {
					font-size: min(4.6vw, 46px);
					padding-left: min(0.5vw, 5px);
				}
			}
		}
	}

	.data {
		background: #f87c94;
		width: min(95vw, 950px);
		margin: min(1vw, 10px) auto 0;
		padding-bottom: min(1.5vw, 15px);
		border-radius: min(0.5vw, 5px);

		.name {
			font-size: min(4.8vw, 48px);
			color: #fff;
			text-align: center;
			line-height: 1.2;
		}

		.age_size {
			font-size: min(4.8vw, 48px);
			color: #fff;
			background: #ffa3bc;
			margin-top: min(0.5vw, 5px);
			line-height: 1.2;
			display: flex;
			justify-content: center;
			gap: 0 min(2vw, 20px);
		}
	}

	.type {
		 width: min(95vw, 950px);
		 margin: min(0.5vw, 5px) auto 0;
		 display: flex;
		 flex-wrap: wrap;
		 gap: min(1vw, 10px);
		 
		 p {
			font-size: min(3.6vw, 36px);
			background: #fff;
			width: calc(50% - min(0.5vw, 5px));
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(0.5vw, 5px);
			text-align: center;
			line-height: 1.389;
		 }
	}

	#sns {
		margin-top: min(0.5vw, 5px);
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 min(2vw, 20px);

		.x {
			width: min(16vw, 160px);
		}

		.lavistagram {
			width: min(60vw, 600px);
		}
	}

	.btn_reservation {
		width: min(46.7vw, 467px);
		margin: min(2vw, 20px) auto 0;
	}

	.wejet {
		margin: min(2vw, 20px) auto 0;
	}

	h3 {
		font-size: min(3vw, 30px);
		margin: 0;

		span {
			font-family: "Titan One", sans-serif;
			font-size: min(7.2vw, 72px);
			font-weight: normal;
			color: #c6ffe1;
			line-height: 1;
			display: block;
			position: relative;
			z-index: 1;
			-webkit-text-stroke: min(0.3vw, 3px) #4b4b72;
            text-stroke: min(0.3vw, 3px) #4b4b72;

			&::before {
				content: attr(data-text);
				margin: auto;
				position: absolute;
				left: 0;
				right: 0;
				-webkit-text-stroke: min(0.8vw, 8px) #fff;
				text-stroke: min(0.8vw, 8px) #fff;
				z-index: -1;
			}

			&::after {
				content: attr(data-text);
				margin: auto;
				position: absolute;
				left: 0;
				right: 0;
				top: 0;
				-webkit-text-stroke: min(1.4vw, 14px) #4b4b72;
				text-stroke: min(1.4vw, 14px) #4b4b72;
				z-index: -2;
			}
		}
	}

	#comment {
		width: min(95vw, 950px);
		margin: min(3vw, 30px) auto 0;

		#staff_comment {
			margin-top: min(3vw, 30px);
		}

		.box {
			font-size: min(3.6vw, 36px);
			background: #fff;
			margin-top: min(0.5vw, 5px);
			padding: min(1vw, 10px);
			border: #4b4b72 min(0.2vw, 2px) solid;
			border-radius: min(1vw, 10px);
		}
	}

	.option {
		width: min(95vw, 950px);
		margin: min(4vw, 40px) auto 0;

		ul {
			margin: min(1vw, 10px) 0 0 0;
			display: flex;
			gap: min(1vw, 10px);
			flex-wrap: wrap;

			li {
				font-size: min(3.6vw, 36px);
				background: #fff;
				width: calc(100% / 3 - min(2vw, 20px) / 3);
				border: #4b4b72 min(0.2vw, 2px) solid;
				border-radius: min(1vw, 10px);
				text-align: center;
				line-height: 2.444;
			}
		}
	}

	.schedule {
		width: min(95vw, 950px);
		margin: min(5vw, 50px) auto 0;

		h3 {
			text-align: center;
		}

		ul {
			margin: min(3vw, 30px) 0 0 0;
			display: flex;
			gap: min(1.5vw, 15px) min(2vw, 20px);
			justify-content: center;
			flex-wrap: wrap;

			li {
				font-family: "Titan One", sans-serif;
				font-weight: normal;
				background: #fffec6;
				width: calc(25% - min(6vw, 60px) / 4);
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: min(1vw, 10px);
				padding: min(2vw, 20px) min(1vw, 10px) min(2.5vw, 25px);
				text-align: center;

				.date {
					font-size: min(6vw, 60px);
					line-height: 1.2;

					span {
						font-size: min(2.4vw, 24px);
						color: #fffec6;
						background: #4b4b72;
						width: min(8.8vw, 88px);
						margin: 0 auto;
						border-radius: min(1.4vw, 14px);
						line-height: 1.125;
						display: block;
					}

					.sat {
						color: #c6fff9;
					}

					.sun {
						color: #ffc6c6;
					}
				}

				.time {
					font-size: min(3.6vw, 36px);
					height: min(14vw, 140px);
					margin-top: min(0.5vw, 5px);
					line-height: 1.3;
					align-content: center;
				}
			}

			.break {
				height: 0;
				padding: 0;
				border: none;
				flex-basis: 100%;
			}
		}
	}

	.enquete {
		width: min(95vw, 950px);
		margin: min(5vw, 50px) auto 0;

		h3 {
			text-align: center;
		}

		.btn {
			width: min(80.4vw, 804px);
			margin: 0 auto;
		}

		ul {
			margin-top: min(1vw, 10px);

			li {
				background: #c6ffe1;
				padding: min(3vw, 30px) 0;
				border: #fff min(0.5vw, 5px) solid;
				border-radius: min(3vw, 30px);

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

				.author {
					background: #fff;
					width: 100%;
					padding: min(0.5vw, 5px) min(10vw, 100px);
					display: flex;
					align-items: center;
					gap: 0 min(1vw, 10px);

					.icon {
						width: min(10vw, 100px);
					}

					.name {
						font-size: min(3.6vw, 36px);
						width: min(44vw, 440px);
					}

					.date {
						font-size: min(3.6vw, 36px);
					}
				}

				.evaluation {
					margin-top: min(3vw, 30px);
					display: flex;
					justify-content: center;
					gap: 0 min(2.5vw, 25px);

					img {
						width: min(8.2vw, 82px);
					}
				}

				.title {
					font-size: min(3.6vw, 36px);
					background: #fff;
					width: min(87.2vw, 872px);
					margin: min(3vw, 30px) auto 0;
					padding: 0 min(1vw, 10px);
					border: #505075 min(0.3vw, 3px) solid;
					border-radius: min(3vw, 30px);
					text-align: center;
					line-height: 1.667;
				}

				.text {
					font-size: min(3.6vw, 36px);
					margin: min(1.5vw, 15px) auto 0;
					padding: 0 min(1vw, 10px);
					line-height: 1.2;
				}
			}
		}

		.btn_more a {
			font-size: min(3.6vw, 36px);
			background: linear-gradient(to left, #c6e2ff, #e1c6ff);
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(4.5vw, 45px);
			width: min(80vw, 800px);
			margin: min(3vw, 30px) auto 0;
			line-height: 2.5;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 min(1.5vw, 15px);

			img {
				width: min(6vw, 60px);
				height: min(6vw, 60px);
			}
		}
	}
}
/*********** profile ***********/

/*********** questionnaire ***********/
#questionnaire {
	section {
		.btn {
			width: min(65.6vw, 656px);
			margin: min(2vw, 20px) auto 0;
		}

		.box {
			width: min(95vw, 950px);
			margin: min(4vw, 40px) auto 0;

			.one_box {
				background: #c6ffe1;
				border: #fff min(0.5vw, 5px) solid;
				border-radius: min(3vw, 30px);
				padding: min(5vw, 50px) 0 min(3vw, 30px);

				.author {
					background: #fff;
					width: 100%;
					padding: min(0.5vw, 5px) min(7.5vw, 75px);
					display: flex;
					align-items: center;
					gap: 0 min(1.5vw, 15px);

					.icon {
						width: min(12.8vw, 128px);
					}

					.name {
						font-size: min(3.6vw, 36px);
						width: min(44vw, 440px);
						overflow: hidden;
						text-overflow: ellipsis;
						white-space: nowrap;
					}

					.date {
						font-size: min(3.6vw, 36px);
					}
				}

				a {
					width: min(63.4vw, 634px);
					margin: min(4vw, 40px) auto 0;
					border: #505075 min(0.3vw, 3px) solid;
					border-radius: min(2vw, 20px);
					overflow: hidden;
					display: block;
					position: relative;

					.icon {
						display: flex;
						gap: 0 min(0.5vw, 5px);
						position: absolute;
						left: min(1vw, 10px);
						bottom: min(1vw, 10px);
						z-index: 2;

						.new {
							width: min(14.5vw, 145px);
						}

						.today {
							width: min(14.3vw, 143px);
						}
					}

					.other {
						position: absolute;
						right: min(1vw, 10px);
						bottom: min(1.5vw, 15px);

						.enrollment {
							width: min(28vw, 280px);
						}

						.designated_fee {
							font-size: min(2.4vw, 24px);
							width: min(28vw, 280px);
							margin-top: min(1vw, 10px);
							line-height: 1.333;
							gap: 0 min(0.5vw, 5px);

							span {
								font-size: min(3.4vw, 34px);
							}
						}
					}
				}

				> .name {
					font-size: min(4.8vw, 48px);
					margin-top: min(1vw, 10px);
					text-align: center;
					line-height: 1.2;
				}

				.age_size {
					font-size: min(3.6vw, 36px);
					display: flex;
					justify-content: center;
					gap: 0 min(2vw, 20px);
				}

				.evaluation {
					margin-top: min(1vw, 10px);
					display: flex;
					justify-content: center;
					gap: 0 min(3vw, 30px);

					img {
						width: min(7vw, 70px);
					}
				}

				h3 {
					font-size: min(3.8vw, 38px);
					background: #fff;
					width: min(80vw, 800px);
					margin: min(2vw, 20px) auto 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(3.6vw, 36px);
					text-align: center;
					line-height: 1.921;
				}

				.text {
					font-size: min(3.6vw, 36px);
					margin-top: min(2vw, 20px);
					padding: 0 min(3vw, 30px);
					line-height: 1.2;
				}

				.shop_comment {
					margin-top: min(2vw, 20px);

					h4 {
						font-size: min(3.8vw, 38px);
						background: #fff;
						margin: 0;
						padding-left: min(3vw, 30px);	
						line-height: 1.921;
					}

					p {
						font-size: min(3.6vw, 36px);
						margin-top: min(2vw, 20px);
						padding: 0 min(3vw, 30px);
						line-height: 1.2;
					}
				}

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

		#pagenation {
			margin: min(6vw, 60px) 0 0;

			li:last-child {
				margin-top: min(2vw, 20px);
			}

			li a {
				font-size: min(6vw, 60px);
				background: #c6fffa;
				width: min(80vw, 800px);
				margin: 0 auto;
				border: #4b4b72 min(0.3vw, 3px) solid;
				border-radius: min(4.5vw, 45px);
				text-align: center;
				line-height: 1.5;
				display: block;
			}

			li.prev a,
			li.next a {
				font-family: "Titan One", sans-serif;
				font-weight: normal;
				background: #ffe9f5;

				span {
					font-weight: bold;
				}
			}
		}
	}
}
/*********** questionnaire ***********/

/*********** ranking ***********/
#ranking {
	section {
		.box {
			width: min(95vw, 950px);
			margin: min(3vw, 30px) auto 0;

			.one_box {
				background: url(../images/bg_ranking.png) no-repeat left top/contain;
				height: min(151.7vw, 1517px);
				padding: min(3vw, 30px) min(7.5vw, 75px) 0;

				a {
					border: #ffa3bc min(0.3vw, 3px) solid;
					border-radius: min(2vw, 20px);
					display: block;
					position: relative;
					overflow: hidden;

					.icon {
						display: flex;
						gap: 0 min(0.5vw, 5px);
						position: absolute;
						left: min(1vw, 10px);
						bottom: min(1vw, 10px);
						z-index: 2;

						.new {
							width: min(14.8vw, 148px);
						}

						.today {
							width: min(14.6vw, 146px);
						}
					}

					.number {
						width: min(46vw, 460px);
						position: absolute;
						right: min(1vw, 10px);
						bottom: min(1vw, 10px);
						z-index: 2;
					}
				}

				.right_box {
					.other {
						margin-top: min(3vw, 30px);
						display: flex;
						gap: 0 min(1vw, 10px);

						.enrollment {
							width: min(31.6vw, 316px);
						}

						.designated_fee {
							font-size: min(3vw, 30px);
							width: min(31.6vw, 316px);
							line-height: 1.4;
							gap: 0 min(0.5vw, 5px);

							span {
								font-size: min(4vw, 40px);
							}
						}
					}

					.name {
						font-size: min(4.8vw, 48px);
						color: #ffa3bc;
					}

					.age_size {
						margin-top: min(0.5vw, 5px);
						display: flex;
						gap: 0 min(1vw, 10px);

						.age,
						.size {
							font-size: min(3.6vw, 36px);
							color: #fff;
							background: #ffa3bc;
							width: fit-content;
							padding: 0 min(1vw, 10px);
							line-height: 1.111;
						}
					}

					.comment {
						font-size: min(3.6vw, 36px);
						color: #fff;
						background: #ffa3bc;
						margin-top: min(2vw, 20px);
						line-height: 1.25;
						overflow: hidden;

						span {
							display: inline-block;
							padding-left: 100%;
							white-space: nowrap;
							animation: marquee 15s linear infinite;
						}
					}
				}

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

/*********** reservation ***********/
#reservation {
	section {
		h3 {
			font-size: min(3.6vw, 36px);
			margin: min(4vw, 40px) 0 0;
			text-align: center;
		}

		.text_01 {
			font-size: min(3vw, 30px);
			margin-top: min(2vw, 20px);
			text-align: center;
			line-height: 1.4;
			letter-spacing: 0;
		}

		.text_02 {
			font-size: min(3vw, 30px);
			margin-top: min(2.5vw, 25px);
			padding: 0 min(5vw, 50px);
			text-align: center;
			line-height: 1.4;
			letter-spacing: 0;
			text-shadow: #fff 2px 0 0, #fff 1.75517px 0.958851px 0, #fff 1.0806px 1.68294px 0, #fff 0.141474px 1.99499px 0, #fff -0.832294px 1.81859px 0, #fff -1.60229px 1.19694px 0, #fff -1.97998px 0.28224px 0, #fff -1.87291px -0.701566px 0, #fff -1.30729px -1.5136px 0, #fff -0.421592px -1.95506px 0, #fff 0.567324px -1.91785px 0, #fff 1.41734px -1.41108px 0, #fff 1.92034px -0.558831px 0;

			span,
			a {
				color: #f97a96;
				text-decoration: underline;
				text-underline-offset: 3px;
			}
		}

		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(8vw, 80px) auto 0;
			padding: min(6vw, 60px) 0;
			border: #4b4b72 min(0.4vw, 4px) solid;
			border-radius: min(7vw, 70px);

			dl {
				width: min(80vw, 800px);
				margin: 0 auto;

				dt {
					font-size: min(3vw, 30px);
					display: flex;
					align-items: center;
					gap: 0 min(0.5vw, 5px);

					span {
						font-size: min(2vw, 20px);
						color: #fff;
						background: #f97a96;
						width: min(7.8vw, 78px);
						border-radius: min(1.6vw, 16px);
						text-align: center;
						line-height: 1.6;
						display: block;
					}

					&:nth-of-type(n+2) {
						margin-top: min(4vw, 40px);
					}
				}

				dd {
					font-size: min(3.6vw, 36px);
					margin-left: 0;

					#cast {
						background: url(../images/select_arrow.png) no-repeat #fff right min(2vw, 20px) top 50%/min(2.9vw, 29px) min(2.6vw, 26px);
					}

					#course {
						background: url(../images/select_arrow.png) no-repeat #fff right min(2vw, 20px) top 50%/min(2.9vw, 29px) min(2.6vw, 26px);
						width: min(23.5vw, 235px);
					}

					#year,
					#month,
					#day,
					#hour,
					#minutes {
						background: url(../images/select_arrow.png) no-repeat #fff right min(1vw, 10px) top 50%/min(2vw, 20px) min(1.8vw, 18px);
						width: min(10vw, 100px);
						padding: 0 min(1vw, 10px);
					}

					#year {
						width: min(14.8vw, 148px);
					}

					textarea {
						height: min(22vw, 220px);
					}
				}
			}

			.btn_box {
				margin: min(8vw, 80px) auto 0;
				text-align: center;
			}
		}
	}
}

#reservation.confirm {
	section {
		.box {
			.confirm_text {
				font-size: min(3.6vw, 36px);
				color: #f97a96;
				text-align: center;
			}

			dl {
				width: min(80vw, 800px);
				margin-top: min(6vw, 60px);

				dt {
					font-size: min(3vw, 30px);
					margin: 0;

					&:nth-of-type(n+2) {
						margin-top: min(3vw, 30px);
					}
				}

				dd {
					font-size: min(3.6vw, 36px);
					padding: 0 min(0.5vw, 5px) min(1vw, 10px);
					border-bottom: #4b4b72 min(0.2vw, 2px) solid;
				}
			}

			.btn_box {
				.btn_back {
					margin-top: min(2vw, 20px);
				}
			}
		}
	}
}

#reservation.complete {
	section {
		.box {
			padding-bottom: min(12vw, 120px);

			.confirm_text {
				font-size: min(3.6vw, 36px);
				margin-top: min(5vw, 50px);
				text-align: center;
			}

			.complete_text {
				font-size: min(3vw, 30px);
				margin-top: min(2.5vw, 25px);
				text-align: center;
				line-height: 1.4;
			}

			.btn_box {
				margin-top: min(8vw, 80px);

				input {
					background: #ffe9f5;
				}
			}
		}
	}
}
/*********** reservation ***********/

/*********** schedule ***********/
#schedule {
	.date {
		width: min(95vw, 950px);
		margin: min(3vw, 30px) auto 0;
		display: flex;
		justify-content: center;
		gap: min(1.5vw, 15px) min(2vw, 20px);
		flex-wrap: wrap;

		li {
			font-family: "Titan One", sans-serif;
			font-size: min(6vw, 60px);
			font-weight: normal;
			background: #fff;
			width: calc(25% - min(1.5vw, 15px));
			height: min(13.8vw, 138px);
			border: #4b4b72 min(0.3vw, 3px) solid;
			border-radius: min(1vw, 10px);
			text-align: center;
			line-height: 1.1;
			align-content: center;
			overflow: hidden;

			a {
				background: #fffec6;
				width: 100%;
				height: 100%;
				line-height: 1.1;
				align-content: center;
				display: block;
			}

			span {
				font-size: min(3vw, 30px);
				color: #fffec6;
				background: #4b4b72;
				width: min(10vw, 100px);
				margin: 0 auto;
				border-radius: min(2vw, 20px);
				text-align: center;
				line-height: 1.125;
				display: block;
			}

			.sat {
				color: #c6fff9;
			}

			.sun {
				color: #ffc6c6;
			}
		}

		.break {
			height: 0;
			padding: 0;
			border: none;
			flex-basis: 100%;
		}
	}

	.girls_list {
		margin-top: min(8vw, 80px);
	}
}
/*********** schedule ***********/

/*********** system ***********/
#system {
	section {
		#btn_other_page {
			margin-top: min(2vw, 20px);

			li {
				a {
					font-size: min(3.5vw, 35px);
					background: #c6e2ff;
					width: min(80vw, 800px);
					margin: 0 auto;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(5vw, 50px);
					text-align: center;
					line-height: 2.771;
					display: block;
					box-shadow: min(0.6vw, 6px) min(0.6vw, 6px) 0 0 rgba(75, 75, 114, .44);
				}

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

		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(5vw, 50px) auto 0;
			padding: min(8vw, 80px) 0 min(3vw, 30px);
			border: #4b4b72 min(0.5vw, 5px) solid;
			border-radius: min(3vw, 30px);

			.one_box {
				padding-bottom: min(5vw, 50px);

				h3 {
					font-size: min(4.8vw, 48px);
					color: #fff;
					background: #4b4b72;
					margin: 0;
					text-align: center;
					line-height: 1.5;
				}

				.fee_box {
					width: min(83vw, 830px);
					margin: min(4vw, 40px) auto 0;
					display: flex;
					justify-content: center;
					flex-wrap: wrap;
					gap: min(1.5vw, 15px) 0;

					dl {
						width: 50%;
						margin: 0;
						display: flex;
						align-items: flex-end;
						justify-content: flex-end;
						gap: 0 min(2vw, 20px);

						dt {
							font-size: min(4.8vw, 48px);
						}

						dd {
							font-size: min(6vw, 60px);
							color: #f97a96;
							margin: 0;
							line-height: 1.4;
						}

						&:nth-child(2n+1) {
							padding-right: min(2vw, 20px);
						}
					}
				}

				.membership_fee {
					font-size: min(4.8vw, 48px);
					background: #fffec6;
					width: min(50vw, 500px);
					margin: min(3vw, 30px) auto 0;
					border: #4b4b72 min(0.3vw, 3px) solid;
					border-radius: min(5vw, 50px);
					text-align: center;
					line-height: 1.667;

					span {
						font-size: min(6vw, 60px);
						color: #f97a96;
						letter-spacing: 0.2em;
					}
				}

				.other_fee_box {
					margin-top: min(2vw, 20px);

					dl {
						margin: min(5vw, 50px) 0 0;
						text-align: center;

						dt {
							font-size: min(4.8vw, 48px);
							line-height: 0.4;
						}

						dd {
							font-size: min(6vw, 60px);
							color: #f97a96;
							margin: 0;
							
						}

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

				.attention {
					font-size: min(2.4vw, 24px);
					color: #f00;
					margin-top: min(2vw, 20px);
					text-align: center;
					line-height: 1.2;
				}
			}

			.cancel {
				dl {
					width: min(86vw, 860px);
					margin: min(2vw, 20px) auto 0;
					display: flex;
					align-items: center;
					gap: min(1vw, 10px) min(2vw, 20px);
					flex-wrap: wrap;

					dt {
						font-size: min(4.8vw, 48px);
						width: min(51vw, 510px);
						text-align: right;
					}

					dd {
						font-size: min(4.8vw, 48px);
						width: min(32vw, 320px);
						margin: 0;

						span {
							color: #f97a96;
						}
					}
				}
			}

			.service {
				position: relative;

				.time {
					font-size: min(3.6vw, 36px);
					background: #ffdec6;
					width: min(50vw, 500px);
					margin: min(4vw, 40px) auto 0;
					border: #4b4b72 min(0.2vw, 2px) solid;
					border-radius: min(1vw, 10px);
					text-align: center;
					line-height: 1.556;
					letter-spacing: 0.1em;
				}

				dl {
					width: min(40vw, 400px);
					margin: min(2vw, 20px) auto 0;
					display: flex;
					align-items: flex-end;
					justify-content: flex-end;
					gap: 0 min(2vw, 20px);
					flex-wrap: wrap;

					&:nth-of-type(n+2) {
						margin-top: min(1vw, 10px);
					}

					dt {
						font-size: min(4.8vw, 48px);
					}

					dd {
						font-size: min(6vw, 60px);
						color: #f97a96;
						margin: 0;
						line-height: 1.4;
					}
				}

				.meet_up {
					font-size: min(3vw, 30px);
					margin-top: min(2vw, 20px);
					text-align: center;

					span {
						font-size: 2.4vw;font-size: min(4.8vw, 48px);color: #f97a96;
						margin-left: min(1.5vw, 15px);
					}
				}

				.additional_note {
					font-size: min(3vw, 30px);
					margin-top: min(2vw, 20px);
					text-align: center;
					line-height: 1.7;
					letter-spacing: 0;
				}

				h4 {
					font-size: min(4.8vw, 48px);
					margin: min(6vw, 60px) 0 0 0;
					text-align: center;
				}

				.event {
					font-size: min(3vw, 30px);
					background: #fffec6;
					width: min(54vw, 540px);
					margin: 0 auto;
					border: #4b4b72 min(0.2vw, 2px) solid;
					border-radius: min(1vw, 10px);
					padding: min(0.5vw, 5px) 0;
					text-align: center;
					line-height: 1.2;

					span {
						color: #fff;
						display: block;
						text-shadow: rgb(249, 122, 150) 1px 0 0, rgb(249, 122, 150) 0.540302px 0.841471px 0, rgb(249, 122, 150) -0.416147px 0.909297px 0, rgb(249, 122, 150) -0.989992px 0.14112px 0, rgb(249, 122, 150) -0.653644px -0.756802px 0, rgb(249, 122, 150) 0.283662px -0.958924px 0, rgb(249, 122, 150) 0.96017px -0.279415px 0;
					}

					em {
						font-style: normal;
						color: #f97a96;
					}
				}

				.limited {
					font-size: min(3vw, 30px);
					color: #f97a96;
					margin-top: min(0.5vw, 5px);
					text-align: center;
				}

				.home_visit {
					width: min(17.6vw, 176px);
					position: absolute;
					left: min(2vw, 20px);
					bottom: min(12vw, 120px);
				}
			}

			.date {
				.other_fee_box {
					margin-top: min(4vw, 40px);
					display: flex;
					justify-content: center;
					gap: 0 min(3vw, 30px);

					dl {
						margin: 0;
						text-align: left;

						&:nth-of-type(n+2) {
							margin: 0;
						}

						dt {
							font-size: min(3.6vw, 36px);
						}
					}
				}

				.about {
					font-size: min(3vw, 30px);
					width: min(80vw, 800px);
					margin: min(4vw, 40px) auto 0;
					border: #4b4b72 min(0.2vw, 2px) solid;
					border-radius: min(1vw, 10px);
					padding: min(3vw, 30px) min(6vw, 60px);
					line-height: 1.2;
					letter-spacing: 0;

					span {
						font-size: min(3.6vw, 36px);
						color: #f97a96;
						margin-bottom: min(3vw, 30px);
						text-align: center;
						display: block;
					}
				}
			}

			.option {
				dl {
					&:nth-of-type(n+2) {
						margin-top: min(3vw, 30px);
					}

					dt {
						font-size: min(4.8vw, 48px);
						color: #f97a96;
						text-align: center;
						line-height: 1;
					}

					dd {
						font-size: min(3.6vw, 36px);
						margin: 0;
						text-align: center;
					}
				}
			}

			.credit {
				div {
					width: min(68.6vw, 686px);
					margin: min(4vw, 40px) auto 0;
				}

				p {
					font-size: min(3vw, 30px);
					margin-top: min(2vw, 20px);
					text-align: center;
				}
			}

			.unavailable {
				p {
					font-size: min(3vw, 30px);
					width: min(80vw, 800px);
					margin: min(3vw, 30px) auto 0;
					line-height: 1.2;
					letter-spacing: 0;
				}
			}

			.other {
				p {
					font-size: min(3vw, 30px);
					width: min(80vw, 800px);
					margin: min(3vw, 30px) auto 0;
					line-height: 1.2;
					letter-spacing: 0;
				}
			}

			.prohibited {
				p {
					font-size: min(3vw, 30px);
					width: min(80vw, 800px);
					margin: min(3vw, 30px) auto 0;
					line-height: 1.2;
					letter-spacing: 0;
				}
			}
		}
	}
}
/*********** system ***********/

/*********** transportation ***********/
#transportation {
	section {
		.box {
			background: #fff;
			width: min(95vw, 950px);
			margin: min(3vw, 30px) auto 0;
			padding: min(6vw, 60px) 0;
			border: #4b4b72 min(0.5vw, 5px) solid;
			border-radius: min(3vw, 30px);

			dl {
				width: min(80vw, 800px);
				margin: 0 auto;
				display: flex;
				justify-content: center;

				dt {
					font-size: min(3.6vw, 36px);
					width: 25%;
					border-right: #4b4b72 min(0.3vw, 3px) solid;

					p:nth-child(n+2) {
						margin-top: min(6vw, 60px);
					}
				}

				dd {
					font-size: min(3vw, 30px);
					width: 75%;
					margin: 0;
					padding-left: min(4vw, 40px);

					p:first-child {
						margin-top: min(0.5vw, 5px);
					}

					p:nth-child(n+2) {
						margin-top: min(6.9vw, 69px);
					}
				}
			}
		}

		.btn_box .btn_back input[type="button"] {
			background: #ffe9f5;
			width: min(80vw, 800px);
			margin: min(4vw, 40px) auto 0;
			display: block;
		}
	}
}
/*********** transportation ***********/

/*********** waiting ***********/
#waiting {
	h2 {
		span:nth-child(7) {
			margin-left: 0.25em;
		}
	}

	.girls_list {
		margin-top: 2vw;
	}
}
/*********** waiting ***********/