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-style: normal;
	color: #4b4b72;
	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 top left/100% auto;
}

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

	.wrap {
		background: #fff;
		width: 90vw;
		height: 8.25vw;
		margin: 0 auto;
		border-radius: 0 0 1.5vw 1.5vw;
		display: flex;
		align-items: center;
		justify-content: center;
		box-shadow: 0.25vw 0.25vw 0 0 rgba(0, 0, 0, 0.3);
		transition: height 0.3s ease;

		#header_logo {
			width: 12.75vw;
		}

		#shop_data {
			margin-left: 1.5vw;
			
			p {
				line-height: 1.4;
				display: flex;
				align-items: center;
				gap: 0 0.25vw;

				span {
					color: #fff;
					background: #4b4b72;
					width: 5vw;
					border-radius: 0.75vw;
					line-height: 1.5;
					text-align: center;
					display: inline-block;
				}

				strong {
					font-size: 1.5vw;
				}
			}
		}

		#nav_small {
			width: 26vw;
			margin-left: 5vw;
			display: flex;
			flex-wrap: wrap;
			gap: 0.5vw 0;

			li {
				a {
					color: #f97a96;
					display: flex;
					align-items: center;
					gap: 0 0.25vw;
					transition: color 0.3s ease;

					&:hover {
						color: #e9dc50;

						img {
							filter: brightness(0) saturate(100%) invert(100%) sepia(23%) saturate(5940%) hue-rotate(333deg) brightness(97%) contrast(87%);
						}
					}

					img {
						filter: brightness(0) saturate(100%) invert(65%) sepia(39%) saturate(1658%) hue-rotate(303deg) brightness(102%) contrast(95%);
						transition: filter 0.3s ease;
					}
				}
			}

			li:first-child {
				width: 27%;

				a img {
					width: 1.45vw;
				}
			}

			li:nth-child(2) {
				width: 25%;

				a img {
					width: 1.45vw;
				}
			}

			li:nth-child(3) {
				width: 32%;

				a img {
					width: 1.4vw;
				}
			}

			li:nth-child(4) {
				width: 16%;

				a img {
					width: 1.15vw;
				}
			}
			
			li:nth-child(5) {
				width: 27%;

				a img {
					width: 1.35vw;
				}
			}

			li:nth-child(6) {
				width: 25%;

				a img {
					width: 1.35vw;
				}
			}

			li:nth-child(7) {
				width: 32%;

				a img {
					width: 1.35vw;
				}
			}
		}

		#btn_recruit {
			width: 12.5vw;
			margin-left: 4vw;
			transition: scale .3s ease;

			&:hover {
				scale: 1.1;
			}
		}

		#btn_menu {
			width: 4vw;
			margin-left: 1.5vw;
			cursor: pointer;
			transition: opacity .3s ease;

			&:hover {
				opacity: .6;
			}
		}
	}

	.wrap.is_scroll {
		height: 6.5vw;
	}

	#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: 80vw;
			margin: 0 auto;
			padding: 1.5vw 0 3vw;

			#btn_close {
				width: 5vw;
				margin-left: auto;
				cursor: pointer;
				transition: opacity .5s ease;

				&:hover {
					opacity: .7;
				}
			}

			h2 {
				width: 16.15vw;
				margin: 3vw auto 0;
			}

			nav {
				margin-top: 2vw;

				ul {
					font-size: 1.75vw;
					display: flex;
					align-items: center;
					gap: 1.5vw 0;
					flex-wrap: wrap;

					li {
						width: 25%;
						letter-spacing: 0;

						a {
							color: #f97a96;
							letter-spacing: -0.03em;
							display: flex;
							align-items: center;
							gap: 0 0.5vw;
							transition: color 0.3s ease;

							strong {
								img {
									width: 3vw;
									margin: 0 auto;
									filter: brightness(0) saturate(100%) invert(65%) sepia(39%) saturate(1658%) hue-rotate(303deg) brightness(102%) contrast(95%);
									transition: filter 0.3s ease;
								}
							}

							&:hover {
								color: #e9dc50;

								strong {
									img {
										filter: brightness(0) saturate(100%) invert(100%) sepia(23%) saturate(5940%) hue-rotate(333deg) brightness(97%) contrast(87%);
									}
								}
							}
						}
					}
				}
			}

			#link_recruit {
				width: 65vw;
				margin: 2.5vw auto 0;

				a img {
					transition: scale .3s ease;

					&:hover {
						scale: 1.05;
					}
				}
			}
		}
	}
}

.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: 3vw;

	h3 {
		width: 19.5vw;
		margin: 0 auto;
	}

	ul {
		margin-top: 1.5vw;
		display: flex;
		gap: 1vw;

		li {
			width: calc(25% - 3vw / 4);

			p {
				font-size: 1.2vw;
				text-align: center;
				letter-spacing: -0.03em;
			}

			a {
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}
		}
	}
}

main {
	margin-top: 9vw;

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

		ul {
			font-size: 1.5vw;
			width: 80vw;
			margin: 0 auto;
			line-height: 2;
			display: flex;
			align-items: center;
			gap: 0 0.5vw;

			li:not(:last-child)::after {
				content: '>';
				padding-left: 0.25vw;
			}

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

			li a {
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}
		}
	}

	h2 {
		font-family: "Titan One", sans-serif;
		font-size: 4vw;
		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/20vw 6.5vw;
		line-height: 1.78;
	}

	h2 em {
		font-style: normal;

		span {
			position: relative;
			z-index: 2;
			-webkit-text-stroke: 0.05vw #4b4b72;
			text-stroke: 0.05vw #4b4b72;
		}
	}

	@-moz-document url-prefix() {
		h2 em {
			letter-spacing: 0.0365em;

			span {
				-webkit-text-stroke: 0.1vw #4b4b72;
				text-stroke: 0.1vw #4b4b72;
			}
		}
	}

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

	h2 strong::before {
		content: attr(data-text);
		margin: auto;
		position: absolute;
		left: 0;
		right: 0;
		-webkit-text-stroke: 0.5vw #fff;
		text-stroke: 0.5vw #fff;
		z-index: -1;
	}

	h2 strong::after {
		content: attr(data-text);
		margin: auto;
		position: absolute;
		left: 0;
		right: 0;
		-webkit-text-stroke: 0.75vw #4b4b72;
		text-stroke: 0.75vw #4b4b72;
		z-index: -2;
	}

	input[type="text"],
	input[type="email"],
	input[type="tel"] {
		font-size: min(1.2vw, 16px);
		background: #fff;
		width: 100%;
		height: 50px;
		padding: 0 1vw;
		border: #4b4b72 0.1vw solid;
		border-radius: 0.5vw;
	}

	input[type="date"] {
		font-size: min(1.2vw, 16px);
		background: #fff;
		width: 13vw;
		height: 50px;
		padding: 0 1vw;
		border: #4b4b72 0.1vw solid;
		border-radius: 0.5vw;
	}

	select {
		font-size: min(1.2vw, 16px);
		background: url(../images/select_arrow.png) no-repeat #fff right 0.5vw top 50%/1vw 0.9vw;
		width: 13vw;
		height: 50px;
		padding: 0 1vw;
		border: #4b4b72 0.1vw solid;
		border-radius: 0.5vw;
		cursor: pointer;
		appearance: none;
		-webkit-appearance: none;
		-moz-appearance: none;
	}

	textarea {
		font-size: min(1.2vw, 16px);
		background: #fff;
		width: 100%;
		height: 300px;
		padding: 0.5vw 1vw;
		border: #4b4b72 0.1vw solid;
		border-radius: 1vw;
	}

	input[type="submit"] {
		font-size: 1.5vw;
		background: linear-gradient(to right, #c6e2ff, #e1c6ff);
		width: 16.2vw;
		border: #4b4b72 0.15vw solid;
		border-radius: 2vw;
		text-align: center;
		line-height: 2.467;
		box-shadow: 0.15vw 0.2vw 0 0 rgba(75, 75, 114, .44);
		cursor: pointer;
		transition: scale .3s ease;

		&:hover {
			scale: 1.1;
		}
	}

	input[type="button"] {
		font-size: 1.5vw;
		background: #fff;
		width: 16.2vw;
		border: #4b4b72 0.15vw solid;
		border-radius: 2vw;
		text-align: center;
		line-height: 2.467;
		box-shadow: 0.15vw 0.2vw 0 0 rgba(75, 75, 114, .44);
		cursor: pointer;
		transition: scale .3s ease;

		&:hover {
			scale: 1.1;
		}
	}

	.girls_list {
		width: 96vw;
		margin: 0 auto;
		display: flex;
		gap: 1.5vw 0;
		flex-wrap: wrap;

		li {
			background: #fff;
			width: 20%;
			padding: 0.25vw;


			.comment {
				font-size: 1.2vw;
				color: #f87c94;
				border: #f87c94 0.15vw solid;
				border-radius: 0.25vw;
				text-align: center;
				line-height: 1.333;
				overflow: hidden;

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

			.thumb_box {
				margin-top: 0.25vw;
				border: #f87c94 0.15vw solid;
				border-radius: 1vw;
				overflow: hidden;

				a {
					display: block;
					position: relative;

					.thumb {
						transition: opacity .3s ease;

						img {
							transition: scale .3s ease;
						}
					}

					&:hover {
						.thumb {
							opacity: .5;

							img {
								scale: 1.1;
							}
						}
					}

					.icon {
						display: flex;
						gap: 0 0.25vw;
						position: absolute;
						bottom: 0.25vw;
						left: 0.25vw;

						.icon_new {
							width: 4.45vw;
						}

						.icon_today {
							width: 4.35vw;
						}
					}

					.other {
						position: absolute;
						right: 0.25vw;
						bottom: 0.5vw;

						.enrollment {
							width: 8.5vw;
						}

						.designated_fee {
							font-size: 0.8vw;
							width: 8.5vw;
							margin-top: 0.25vw;
							gap: 0;
							line-height: 1.5;

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

			.data {
				background: #f87c94;
				margin-top: 0.25vw;
				padding-bottom: 0.5vw;
				border-radius: 0.25vw;

				.name {
					font-size: 1.5vw;
					color: #fff;
					text-align: center;
					line-height: 1.333;
				}

				.age_size {
					font-size: 1.2vw;
					color: #fff;
					background: #ffa3bc;
					margin-top: 0.25vw;
					line-height: 1.2;
					display: flex;
					justify-content: center;
					gap: 0 1.5vw;
				}
			}

			.type {
				margin-top: 0.25vw;
				display: flex;
				gap: 0.25vw;
				flex-wrap: wrap;

				p {
					font-size: 1.2vw;
					color: #f87c94;
					width: calc(50% - 0.125vw);
					border: #f87c94 0.1vw solid;
					border-radius: 0.25vw;
					text-align: center;
					line-height: 1.333;
				}
			}

			.time {
				font-size: 1.2vw;
				color: #f87c94;
				background: #ffe9f5;
				margin-top: 0.25vw;
				text-align: center;
				line-height: 1.2;
			}

			.situation {
				font-size: 1.2vw;
				color: #f87c94;
				margin-top: 0.25vw;
				text-align: center;
			}
		}
	}

	@-moz-document url-prefix() {
		.girls_list {
			li {
				.thumb_box {
					a {
						.other {
							.designated_fee {
								font-size: 0.8vw;

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

	.designated_fee {
		background: url(../images/bg_.designated_fee.png) no-repeat left top/100% 100%;
		line-height: 1.333;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 0.5vw;
		text-shadow: 0.1vw 0.1vw 0.15vw #fff, -0.1vw -0.1vw 0.15vw #fff;
	}

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

		.wrap {
			width: 80vw;
			margin: 0 auto;
		}
	}

	.error {
		font-size: 1.2vw;
		color: #f00;
	}

	#pagenation_box {
		margin-top: 4vw;

		ul {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 0.75vw;

			li {
				font-family: "Titan One", sans-serif;
				font-size: 1.5vw;
				font-weight: normal;

				a {
					font-size: 1.2vw;
					width: 2.5vw;
					height: 2.5vw;
					background: #ffe9f5;
					border: #4b4b72 0.15vw solid;
					border-radius: 50%;
					text-align: center;
					align-content: center;
					display: block;
					transition: color .3s ease, background .3s ease;

					&:hover {
						color: #fff;
						background: #4b4b72;
					}
				}
			}

			.prev,
			.next {
				a {
					font-weight: bold;
					background: none;
					border: none;
					transition: opacity .3s ease;

					&:hover {
						color: #4b4b72;
						background: none;
						opacity: .5;
					}
				}
			}

			.current {
				color: #fff;
				width: 2.5vw;
				height: 2.5vw;
				background: #4b4b72;
				border: #4b4b72 0.15vw solid;
				border-radius: 50%;
				text-align: center;
				align-content: center;
			}
		}
	}
}

.lightbox {
	height: 100vh;
	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: 5vw;

	h2 {
		background: url(../images/bg_title.png) no-repeat center top 3vw/20vw 6.5vw, url(../images/bg_title_u_layer.png) no-repeat left top -2vw/cover !important;
		width: 100%;
		height: 16.5vw;
		line-height: 3.3 !important;
	}
}

footer {
	background: #fff;
	padding-top: 1.5vw;

	#btn_gotop {
		width: 5.3vw;
		position: fixed;
		right: 1vw;
		bottom: 4vw;
		z-index: 3;
	}

	#footer_logo {
		width: 12.5vw;
		margin: 0 auto;
	}
	
	nav {
		width: 75.5vw;
		margin: 2vw auto 0;

		ul {
			display: flex;
			gap: 1.25vw 0;
			flex-wrap: wrap;

			li {
				font-size: 1.15vw;
				padding: 0 1.15vw;
				border-right: 1px solid #4b4b72;
				line-height: 1;
			}

			li:first-child,
			li:nth-child(10) {
				border-left: 1px solid #4b4b72;
			}
		}
	}

	@-moz-document url-prefix() {
		nav {
			width: 78vw;
		}
	}

	.copy {
		font-size: 1.1vw;
		color: #fff;
		background: #f97a96;
		margin-top: 2.5vw;
		text-align: center;
		line-height: 2.273;

		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 left top/100% auto;

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

		.wrap {
			padding: 8vw 0;

			h2 {
				width: 25vw;
				margin: 0 auto;
			}

			#btn_enter {
				font-size: 0.9vw;
				color: #fff;
				background: #f97a96;
				width: 16.5vw;
				height: 6.5vw;
				margin: 2vw auto 0;
				border-radius: 0.5vw;
				text-align: center;
				line-height: 1.2;
				align-content: center;
				cursor: pointer;

				span {
					font-size: 3vw;
					font-family: "Titan One", sans-serif;
					font-weight: 400;
					font-style: normal;
					display: block;
				}
			}

			#kin18 {
				width: 6.9vw;
				margin: 2.5vw auto 0;
			}

			.attention {
				font-size: 1.35vw;
				margin-top: 2vw;
				text-align: center;
				line-height: 2.2;

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

					&:hover {
						text-decoration: none;
					}
				}
			}

			.text {
				font-size: 0.9vw;
				width: 58vw;
				margin: 2vw auto 0;
				padding: 1vw 2vw;
				border: #4b4b72 0.1vw solid;
				border-radius: 1vw;
				text-align: center;
				letter-spacing: -0.075em;
				line-height: 1.4;
			}

			.link {
				margin-top: 3vw;

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

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

	#top_pickup {
		background: url(../images/bg_top_pickup.png) no-repeat left top/cover;
		height: 54.6vw;
		padding-top: 3vw;
		position: relative;
		z-index: 2;

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

		ul {
			margin-top: 2vw;
			display: flex;
			justify-content: center;
			gap: 0 1vw;

			li {
				width: 21.4vw;

				.comment {
					font-size: 1.2vw;
					background: #fffec6;
					border: #4b4b72 0.15vw solid;
					border-radius: 0.25vw;
					text-align: center;
					line-height: 1.333;
					overflow: hidden;

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

				.thumb_box a {
					margin-top: 0.5vw;
					display: block;
					position: relative;

					.thumb {
						border: #4b4b72 0.15vw solid;
						border-radius: 0.6vw;
						overflow: hidden;

						img {
							transition: scale 0.3s ease;
						}
					}

					&:hover {
						.thumb img {
							scale: 1.1;
						}
					}

					.icon {
						display: flex;
						gap: 0 0.5vw;
						position: absolute;
						left: 0.5vw;
						bottom: 0.5vw;
						z-index: 2;

						.icon_new {
							width: 5vw;
						}

						.icon_today {
							width: 4.9vw;
						}
					}

					.other {
						position: absolute;
						right: 0.5vw;
						bottom: 0.5vw;
						z-index: 2;

						.enrollment {
							width: 9.5vw;
						}

						.designated_fee {
							font-size: 0.9vw;
							width: 9.5vw;
							margin-top: 0.25vw;
							gap: 0;

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

				.data {
					background: #ffc6e6;
					margin-top: 0.5vw;
					padding-bottom: 0.25vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 0.25vw;
					text-align: center;

					.name {
						font-size: 1.5vw;
						line-height: 1.2;
					}

					.age_size {
						font-size: 1.2vw;
						background: #fff;
						line-height: 1.2;
						display: flex;
						justify-content: center;
						gap: 0 1.5vw;
					}
				}

				.type {
					margin-top: 0.25vw;
					display: flex;
					gap: 0.25vw 0.5vw;
					flex-wrap: wrap;

					p {
						font-size: 1.2vw;
						background: #fff;
						width: calc(50% - 0.25vw);
						border: #4b4b72 0.15vw solid;
						border-radius: 0.25vw;
						text-align: center;
						line-height: 1.333;
					}
				}
			}
		}
	}

	#top_lavistagram {
		background: url(../images/bg_top_lavistagram.jpg) no-repeat left top/cover;
		height: 59vw;
		margin-top: -2vw;
		padding-top: 5vw;

		.wrap {
			background: url(../images/bg_top_lavistagram_wrap.png) no-repeat left top/cover;
			width: 94.15vw;
			height: 50.9vw;
			margin: 0 auto;
			padding: 0 7.075vw;
			border-radius: 4vw;
			display: flex;
			align-items: center;
			gap: 0 4vw;
			position: relative;

			.left_box {
				width: 50%;
				height: 35.55vw;
				align-content: center;
				position: relative;
				z-index: 2;

				h2 {
					font-family: "Titan One", sans-serif;
					font-size: 3.6vw;
					text-align: center;
					text-shadow: 0.3vw 0.3vw 0 rgba(75, 75, 114, 1);
					
					em {
						letter-spacing: -0.05em;
						-webkit-text-stroke: 0.15vw #4b4b72;
						text-stroke: 0.15vw #4b4b72;
					}

					strong {
						display: none;
					}
				}

				p {
					font-size: 1.5vw;
					text-align: center;
				}

				.btn_more a {
					font-size: 1.2vw;
					background: linear-gradient(to left, #e1c6ff, #c6e2ff);
					width: 22.3vw;
					margin: 2vw auto 0;
					border: #4b4b72 0.15vw solid;
					border-radius: 1.5vw;
					text-align: center;
					line-height: 2.583;
					display: block;
					position: relative;
					transition: transform .5s ease;

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

					&::before {
						content: '';
						background: url(../images/btn_more_girl.png) no-repeat left top/cover;
						width: 6.4vw;
						height: 10vw;
						position: absolute;
						left: -2vw;
						top: -4.5vw;
					}

					&::after {
						content: '';
						background: url(../images/btn_more_arrow.png) no-repeat left top/cover;
						width: 2.55vw;
						height: 2.6vw;
						position: absolute;
						right: 0.5vw;
						top: calc(50% - 1.3vw);
					}
				}
			}

			.left_box::before {
				content: '';
				width: 11.6vw;
				height: 11.6vw;
				border-left: #4b4b72 0.25vw solid;
				border-top: #4b4b72 0.25vw solid;
				border-radius: 1.5vw 0 0 0;
				position: absolute;
				left: 0;
				top: 0;
				z-index: 1;
			}

			.left_box::after {
				content: '';
				width: 11.6vw;
				height: 11.6vw;
				border-left: #4b4b72 0.25vw solid;
				border-bottom: #4b4b72 0.25vw solid;
				border-radius: 0 0 0 1.5vw;
				position: absolute;
				left: 0;
				bottom: 0;
				z-index: 1;
			}

			.right_box {
				width: 28.5vw;
				position: relative;

				.slider {
					height: 41.55vw;
					overflow-y: hidden;
					-webkit-mask-image: -webkit-linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, transparent);
					mask-image: -webkit-linear-gradient(90deg, transparent, rgba(0,0,0,1) 10%, rgba(0,0,0,1) 90%, transparent);
					line-height: 1;

					.item {
						width: 100%;
						height: 16vw;
						border: #4b4b72 0.1vw solid;
						overflow: hidden;
					}

					.slick-slide {
						height: 16vw;
					}
				}
			}

			.right_box::before {
				content: '';
				width: 11.6vw;
				height: 11.6vw;
				border-right: #4b4b72 0.25vw solid;
				border-top: #4b4b72 0.25vw solid;
				border-radius: 0 1.5vw 0 0;
				position: absolute;
				right: -7vw;
				top: 3vw;
				z-index: 1;
			}

			.right_box::after {
				content: '';
				width: 11.6vw;
				height: 11.6vw;
				border-right: #4b4b72 0.25vw solid;
				border-bottom: #4b4b72 0.25vw solid;
				border-radius: 0 0 1.5vw 0;
				position: absolute;
				right: -7vw;
				bottom: 3vw;
				z-index: 1;
			}
		}
	}

	#top_news {
		background: url(../images/bg_top_news.jpg) no-repeat left top/cover;
		height: 59.5vw;
		padding-top: 4vw;

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

		.btn_more {
			width: 80vw;
			margin: -2.5vw auto 0;
			padding-right: 2vw;
			position: relative;
			z-index: 2;

			a {
				width: 8.5vw;
				margin-left: auto;
				display: block;

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

		.slider {
			margin-top: -3vw;
			
			.item a {
				.thumb {
					width: 20.4vw;
					height: 15vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 1vw;
					overflow: hidden;

					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
						transition: scale .3s ease;
					}
				}

				&:hover {
					.thumb {
						img {
							scale: 1.1;
						}
					}
				}

				.date {
					font-size: 1.2vw;
					background: #fff;
					width: 10vw;
					margin: -0.9vw auto 0;
					border: #4b4b72 0.15vw solid;
					border-radius: 0.9vw;
					text-align: center;
					line-height: 1.542;
					position: relative;
					z-index: 1;
				}
			}

			.title {
				font-size: 1.5vw;
				width: 90%;
				margin: 0.75vw 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: 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;
			}
		}
	}

	#top_waiting {
		background: url(../images/bg_top_waiting_01.png) no-repeat left top/100% 12.6vw;
		width: 100%;
		margin-top: -11.5vw;
		padding: 4vw 0 17.5vw;
		z-index: 1;

		.box {
			background: url(../images/bg_top_waiting_02.jpg) repeat-y left top/100% auto;
			padding-top: 3vw;
		}

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

		.wrap {
            width: 100%;
            height: 30vw;
            position: absolute;
			top: -10.5vw;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            overflow: hidden;
        }

		.rotating_text {
			font-family: "Titan One", sans-serif;
			font-size: 7.5vw;
			font-weight: normal;
			color: #fff;
			width: 240vw;
			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;
			}
		}
	}

	.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/100vw 85.9vw;
		margin-top: -10vw;
		padding: 2vw 0 7.5vw;
		position: relative;
		z-index: 2;

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

		.btn_more {
			width: 80vw;
			margin: 2vw auto 0;
			padding-right: 1.5vw;
			text-align: right;

			a {
				width: 9vw;
				display: inline-block;

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

		.newface_list {
			margin-top: -5vw;

			.one_box {
				display: flex;
				align-items: flex-start;
				justify-content: center;
				gap: 0 1vw;

				.left_box {
					width: 21.6vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 1vw;
					overflow: hidden;
					position: relative;

					a {
						.thumb img {
							transition: scale .3s ease;
						}

						&:hover {
							.thumb img {
								scale: 1.1;
							}
						}

						.icon {
							width: 5.15vw;
							position: absolute;
							left: 0.25vw;
							bottom: 0.5vw;
						}

						.other {
							position: absolute;
							right: 0.5vw;
							bottom: 0.5vw;

							.enrollment {
								width: 10.75vw;
							}

							.designated_fee {
								width: 10.75vw;
								margin-top: 0.25vw;
								line-height: 1.333;
								gap: 0 0.25vw;

								strong {
									font-size: 0.9vw;
								}

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

				.right_box {
					background: url(../images/bg_newface_list_right.png) no-repeat left top/cover;
					width: 28vw;
					height: 28.8vw;
					padding: 4vw 1vw;

					.date,
					.age,
					.size {
						font-size: 1.2vw;
					}

					.name {
						font-size: 1.8vw;
						line-height: 1.5;
					}

					.type {
						margin-top: 0.75vw;
						display: flex;
						flex-wrap: wrap;
						gap: 0.25vw;

						p {
							font-size: 1.2vw;
							background: #fffec6;
							width: calc(50% - 0.125vw);
							border: #4b4b72 0.15vw solid;
							border-radius: 0.25vw;
							text-align: center;
							line-height: 1.333;
						}
					}

					.title {
						font-size: 1.2vw;
						margin-top: 0.5vw;
						border: #4b4b72 0.15vw solid;
						border-radius: 0.25vw;
						overflow: hidden;

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

					.comment {
						font-size: 0.9vw;
						margin-top: 0.5vw;
						line-height: 1.2;
						display: -webkit-box;
						overflow: hidden;
						-webkit-box-orient: vertical;
						-webkit-line-clamp: 4;
					}
				}
			}

			.one_box:nth-child(n+2) {
				margin-top: 1.5vw;
			}
		}
	}

	#top_ranking {
		background: url(../images/bg_top_ranking.png) no-repeat left top/100% auto;
		margin-top: -2.5vw;
		padding: 3.5vw 0 2.5vw;
		position: relative;
		z-index: 3;

		.btn_more {
			width: 80vw;
			margin: 0 auto;
			padding-right: 1.5vw;
			text-align: right;

			a {
				width: 9vw;
				display: inline-block;

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

		.crown {
			width: 9vw;
			margin: -8.5vw auto 0;
		}

		ul {
			margin-top: 0.75vw;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 2.5vw;

			li {
				a {
					border: #4b4b72 0.15vw solid;
					border-radius: 1vw;
					display: block;
					position: relative;
					overflow: hidden;
					box-shadow: 0.5vw 0.5vw 0 0 rgba(245, 191, 223, 1);

					.thumb {
						transition: scale .3s ease;
					}

					&:hover {
						.thumb {
							scale: 1.1;
						}
					}

					.number {
						position: absolute;
						left: 0.25vw;
						bottom: 0.5vw;
					}

					.icon {
						display: flex;
						align-items: center;
						gap: 0 0.25vw;
						position: absolute;
						right: 0.25vw;
						bottom: 0.5vw;
					}

					.other {
						width: 90%;
						margin: auto;
						display: flex;
						gap: 0 0.25vw;
						position: absolute;
						left: 0;
						right: 0;
						top: 0.5vw;
					}
				}

				.data {
					background: #c6ffe1;
					margin-top: 1.25vw;
					padding: 0.25vw 0;
					border: #4b4b72 0.15vw solid;
					border-radius: 1vw;
					line-height: 1.2;

					.name {
						text-align: center;
					}

					.age_size {
						display: flex;
						justify-content: center;
						gap: 0 0.5vw;
					}
				}
			}

			li:first-child {
				width: 22.15vw;
				order: 3;

				a {
					.number {
						width: 12vw;
					}

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

						.today {
							width: 3.9vw;
						}
					}

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

						.designated_fee {
							width: 9.75vw;
							gap: 0 0.25vw;

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

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

					.age_size {
						font-size: 1.2vw;
					}
				}
			}
			
			li:nth-child(2) {
				order: 2;
			}

			li:nth-child(3) {
				order: 4;
			}

			li:nth-child(4) {
				order: 1;
			}

			li:nth-child(5) {
				order: 5;
			}

			li:nth-child(2),
			li:nth-child(3) {
				width: 16.5vw;

				a {
					.number {
						width: 8.8vw;
					}

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

						.today {
							width: 3.9vw;
						}
					}

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

						.designated_fee {
							font-size: 0.7vw;
							width: 7.1vw;
							gap: 0 0.25vw;

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

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

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

			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 15vw/100% auto, url(../images/bg.jpg) repeat-y left top/100% auto;
		margin-top: -2vw;
		padding: 5vw 0;
		position: relative;
		z-index: 2;

		.btn {
			width: 30vw;
			margin: 2vw auto 0;

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

		ul {
			width: 80vw;
			margin: 4vw auto 0;
			display: flex;
			gap: 2vw;
			flex-wrap: wrap;

			li {
				background: #c6fff9;
				width: calc(100% / 3 - 4vw / 3);
				padding: 0.5vw 0 0.5vw 0.5vw;
				border: #fff 0.25vw solid;
				border-radius: 1.5vw;

				.upper_box {
					display: flex;

					.thumb {
						width: 8vw;
						border-radius: 0.75vw;
						overflow: hidden;

						img {
							display: block;
							transition: scale 0.3s ease;
						}

						&:hover {
							img {
								scale: 1.1;
							}
						}
					}

					.right_box {
						width: calc(100% - 8vw);

						.date {
							font-size: 1.2vw;
							padding-right: 1vw;
							text-align: right;
						}
						
						.data {
							background: #fff;
							padding: 0.125vw 0.75vw;

							.name {
								font-size: 1.8vw;
								line-height: 1.2;
							}

							.age_size {
								font-size: 1.2vw;
								display: flex;
								gap: 0 0.5vw;
							}
						}

						.evaluation {
							margin-top: 0.5vw;
							padding-left: 0.5vw;
							display: flex;
							align-items: center;
							gap: 0 1vw;

							img {
								width: 2.1vw;
							}
						}

						.title {
							font-size: 1.2vw;
							margin-top: 0.025vw;
							padding: 0 0.75vw;
							overflow: hidden;
							text-overflow: ellipsis;
							white-space: nowrap;
						}
					}
				}

				.comment {
					font-size: 0.8vw;
					margin-top: 0.5vw;
					line-height: 1.2;
					display: -webkit-box;
					overflow: hidden;
					-webkit-box-orient: vertical;
					-webkit-line-clamp: 4;
				}
			}
		}

		.btn_more {
			width: 80vw;
			margin: 2vw auto 0;

			a {
				width: 18.5vw;
				margin-left: auto;
				display: block;

				&:hover {
					animation: move-left-right 1s infinite;
				}
			}
		}
	}

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

		.wrap {
			width: 80vw;
			margin: 0 auto;
			display: flex;
			gap: 0 1vw;

			.slider {
				width: 61vw;

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

					&:hover {
						opacity: .5;
					}
				}
			}

			.thumnail_slider {
				width: calc(100% - 62vw);

				.slick-slide {
					margin-top: 0.65vw;
					cursor: pointer;
					transition: opacity .3s ease;

					&:hover {
						opacity: .5;
					}
				}

				.slide_arrow {
					width: 2.35vw;
					position: absolute;
					left: calc(50% - 1.175vw);
					z-index: 2;
					cursor: pointer;
				}

				.prev_arrow {
					top: -1.175vw;
				}

				.next_arrow {
					bottom: -1.175vw;
				}
			}
		}
	}

	#affiliated_stores {
		background: url(../images/bg_affiliated_stores.jpg) no-repeat left top/cover;
		height: 25.85vw;
		padding-top: 1.5vw;
		position: relative;
		z-index: 2;

		ul {
			width: 80vw;
			margin: 2.5vw auto 0;
		}
	}
 }
/*********** top ***********/

/*********** contact ***********/
#contact {
	section {
		h3 {
			font-size: 1.8vw;
			margin: 3vw 0 0;
			text-align: center;
		}

		.text {
			font-size: 1.2vw;
			margin-top: 1.5vw;
			text-align: center;
			line-height: 1.8;
		}

		.box {
			background: #fff;
			width: 80vw;
			margin: 2.5vw auto 0;
			padding: 2vw 0;
			border: #4b4b72 0.25vw solid;
			border-radius: 3.5vw;

			dl {
				width: 37vw;
				margin: 0 auto;

				dt {
					font-size: 1.5vw;
					display: flex;
					align-items: center;
					gap: 0 0.25vw;

					span {
						font-size: 0.95vw;
						color: #fff;
						background: #f97a96;
						width: 3.2vw;
						border-radius: 0.65vw;
						text-align: center;
						line-height: 1.368;
						display: block;
					}

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

				dd {
					margin-left: 0;
				}
			}

			.btn_box {
				margin: 4vw auto 0;
				display: flex;
				justify-content: center;
				gap: 0 0.5vw;
			}
		}
	}
}

#contact.confirm {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				color: #f97a96;
				margin-top: 4vw;
				text-align: center;
			}

			dl {
				width: 65vw;
				margin-top: 2vw;
				display: flex;
				flex-wrap: wrap;

				dt {
					width: 31%;
					margin: 0;
					padding: 2vw 0;
					border-bottom: #4b4b72 0.1vw solid;
					line-height: 1.2;
					justify-content: flex-end;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}
				}

				dd {
					font-size: 1.5vw;
					width: 69%;
					padding: 2vw 0 2vw 4vw;
					border-bottom: #4b4b72 0.1vw solid;
					line-height: 1.2;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}
				}
			}
		}
	}
}

#contact.complete {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				margin-top: 4vw;
				text-align: center;
			}

			.complete_text {
				font-size: 1.1vw;
				margin-top: 1.5vw;
				text-align: center;
				line-height: 2;
			}

			.btn_box {
				margin-top: 2.5vw;

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

/*********** enquete ***********/
#enquete {
	section {
		.text {
			font-size: 1.2vw;
			margin-top: 1vw;
			text-align: center;
		}

		.box {
			background: #fff;
			width: 80vw;
			margin: 2.5vw auto 0;
			padding: 3.5vw 0;
			border: #4b4b72 0.25vw solid;
			border-radius: 3.5vw;

			dl {
				width: 41.5vw;
				margin: 0 auto;

				dt {
					font-size: 1.5vw;
					color: #fff;
					background: #4b4b72;
					padding-left: 1vw;
					border-radius: 1vw;
					line-height: 1.433;
					letter-spacing: 0;
					display: flex;
					align-items: center;
					gap: 0 0.25vw;

					span {
						font-size: 0.95vw;
						color: #fff;
						background: #f97a96;
						width: 3.2vw;
						border-radius: 0.65vw;
						text-align: center;
						line-height: 1.368;
						display: block;
					}

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

				dd {
					width: 37.25vw;
					margin: 0.5vw auto 0;

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

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

						label {
							font-size: 1.2vw;
							position: relative;
							margin-right: 1vw;
							padding-left: 1.3vw;
							cursor: pointer;

							&::before,
							&::after {
								content: "";
								position: absolute;
								display: block;
								top: calc(50% - 0.5vw);
							}
							
							&::before {
								background: #4b4b72;
								width: 0.7vw;
								height: 0.7vw;
								border-radius: 50%;
								left: 0.24vw;
								top: 0.66vw;
								opacity: 0;
								transition: opacity .3s;
							}

							&::after {
								width: 1.15vw;
								height: 1.15vw;
								border: #4b4b72 0.1vw solid;
								border-radius: 50%;
								left: 0;
							}
						}

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

					textarea {
						height: 10vw;
					}

					p {
						font-size: 1.2vw;
						margin: 1vw 0 0.25vw;
						line-height: 1.3;
						letter-spacing: 0;

						span {
							font-size: 0.95vw;
							color: #fff;
							background: #f97a96;
							width: 3.2vw;
							margin-left: 0.5vw;
							border-radius: 0.65vw;
							text-align: center;
							line-height: 1.368;
							display: inline-block;
						}
					}

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

			.privacy_policy {
				font-size: 0.9vw;
				margin-top: 5vw;
				padding: 0 8vw;
				line-height: 2.2;
				letter-spacing: 0;
			}

			.btn_box {
				margin: 4vw auto 0;
				display: flex;
				justify-content: center;
				gap: 0 0.5vw;
			}
		}
	}
}

#enquete.confirm {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				color: #f97a96;
				margin-top: 3vw;
				text-align: center;
			}

			dl {
				width: 65vw;
				margin-top: 4vw;
				display: flex;
				flex-wrap: wrap;

				dt {
					color: #4b4b72;
					background: #fff;
					width: 42%;
					margin: 0;
					padding: 2vw 0;
					border-bottom: #4b4b72 0.1vw solid;
					border-radius: 0;
					line-height: 1.2;
					justify-content: flex-end;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}

					label {
						text-align: right;
					}
				}

				dd {
					font-size: 1.5vw;
					width: 58%;
					margin-top: 0;
					padding: 2vw 0 2vw 4vw;
					border-bottom: #4b4b72 0.1vw solid;
					line-height: 1.2;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}
				}
			}
		}
	}
}

#enquete.complete {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				margin-top: 4vw;
				text-align: center;
			}

			.complete_text {
				font-size: 1.1vw;
				margin-top: 1.5vw;
				text-align: center;
				line-height: 2;
			}

			.btn_box {
				margin-top: 2.5vw;

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

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

	h3 {
		font-size: 1.8vw;
		margin: 1vw 0 3vw;
		text-align: center;
	}
	
	.one_box {
		width: 65vw;
		margin: 2.5vw auto 0;

		h4 {
			font-size: 1.8vw;
			color: #fff;
			background: #4b4b72;
			margin: 0;
			text-align: center;
			line-height: 1.944;
		}

		ul {
			background: #fff;
			margin: 0;
			border-left: #4b4b72 0.1vw solid;
			border-right: #4b4b72 0.1vw solid;
			border-bottom: #4b4b72 0.1vw solid;
			display: flex;
			flex-wrap: wrap;

			li {
				font-size: 1.2vw;
				width: 50%;
				border-bottom: #4b4b72 0.1vw solid;
				padding: 0 2vw;
				line-height: 2.917;

				&:nth-child(2n+1) {
					border-right: #4b4b72 0.1vw solid;
				}

				&:last-child,
				&:nth-last-child(2):nth-child(odd) {
					border-bottom: none
				}

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

				a:hover {
					text-decoration: underline;
					text-underline-offset: 5px;
				}
			}
		}
	}

	.btn_box .btn_back input[type="button"] {
		background: #ffe9f5;
		width: 19vw;
		margin: 3.5vw auto 0;
		display: block;
	}
}

#hotel_list.area {
	h3 {
		font-size: 1.5vw;
		background: #fffec6;
		width: 30vw;
		margin: 1vw auto 3vw;
		border: #4b4b72 0.15vw solid;
		border-radius: 2vw;
		line-height: 2.4;
		box-shadow: 0.15vw 0.2vw 0 0 rgba(75, 75, 114, .44);
	}

	.one_box {
		.hotel_box a {
			font-size: 1.2vw;
			background: #fff;
			line-height: 2.917;
			display: flex;
			transition: color .3s ease, background .3s ease;

			.name {
				width: 35%;
				padding: 0 2vw;
				border-left: #4b4b72 0.1vw solid;
				border-right: #4b4b72 0.1vw solid;
				border-bottom: #4b4b72 0.1vw solid;
			}

			.address {
				width: 45%;
				padding: 0 2vw;
				border-right: #4b4b72 0.1vw solid;
				border-bottom: #4b4b72 0.1vw solid;
			}

			.tel {
				width: 20%;
				padding: 0 2vw;
				border-right: #4b4b72 0.1vw solid;
				border-bottom: #4b4b72 0.1vw solid;
			}

			&:hover {
				color: #fff;
				background: #4b4b72;
			}
		}
	}
}

#hotel_list.detail {
	section {
		h3 {
			font-size: 1.5vw;
			background: #fffec6;
			width: 30vw;
			margin: 1vw auto 3vw;
			border: #4b4b72 0.15vw solid;
			border-radius: 2vw;
			line-height: 2.4;
			box-shadow: 0.15vw 0.2vw 0 0 rgba(75, 75, 114, .44);
		}

		.box {
			background: #fff;
			width: 80vw;
			margin: 2vw auto 0;
			padding: 2vw 0 3vw;
			border: #4b4b72 0.1vw solid;
			border-radius: 3.5vw;

			.address {
				font-size: 1.5vw;
				text-align: center;
				line-height: 1.3;

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

			.tel {
				font-size: 1.5vw;
				margin-top: 2vw;
				text-align: center;
				line-height: 1.3;

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

			.map {
				margin-top: 2vw;

				iframe {
					height: 26vw;
				}
			}
		}

		.btn_box {
			display: flex;
			justify-content: center;
			gap: 0 0.5vw;
		}
	}
}
/*********** hotel_list ***********/

/*********** lavistagram ***********/
#lavistagram {
	section {
		.box {
			ul {
				width: 80vw;
				margin: 3vw auto 0; 
				display: flex;
				gap: 2.5vw 1vw;
				flex-wrap: wrap;

				li {
					width: calc(25% - 3vw / 4);
					border: #4b4b72 0.15vw solid;
					border-radius: 1vw;
					overflow: hidden;
				}
			}
		}
	}
}

#lavistagram.all {
	section {
		.box {
			ul {
				li {
					background: #ffc6e6;
					padding: 0.25vw 0 0.5vw;

					.individual {
						font-size: 1.5vw;
						text-align: center;

						a:hover {
							text-decoration: underline;
							text-underline-offset: 3px;
						}
					}

					.thumb {
						width: 16.3vw;
						margin: 0.25vw auto 0;
						border: #4b4b72 0.15vw solid;
						border-radius: 0.5vw;
						overflow: hidden;
					}

					.btn_profile {
						a {
							font-size: 1.2vw;
							background: #fffec6;
							width: 16.3vw;
							margin: 0.5vw auto 0;
							border: #4b4b72 0.15vw solid;
							border-radius: 1.25vw;
							text-align: center;
							line-height: 2.083;
							display: block;
							transition: opacity .3s ease;

							&:hover {
								opacity: .7;
							}
						}
					}
				}
			}
		}
	}
}

#lavistagram.individual {
	.data {
		margin-top: 1vw;
		display: flex;
		justify-content: center;
		gap: 0 1.5vw;

		.name {
			font-size: 2.4vw;
		}

		.btn_profile {
			font-size: 1.5vw;
			background: #fffec6;
			width: 19vw;
			border: #4b4b72 0.15vw solid;
			border-radius: 2vw;
			text-align: center;
			line-height: 2.4;
			box-shadow: 0.15vw 0.2vw 0 0 rgba(75, 75, 114, .44);

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

	.btn_box .btn_back input[type="button"] {
		background: #ffe9f5;
		width: 19vw;
		margin: 4vw auto 0;
		display: block;
	}
}
/*********** lavistagram ***********/

/*********** link ***********/
#link {
	section {
		h3 {
			font-size: 1.8vw;
			margin: 3vw 0 0 0;
			text-align: center;
			line-height: 1.4;
		}

		.text {
			font-size: 1.2vw;
			margin-top: 3vw;
			text-align: center;
		}

		.box {
			width: 80vw;
			background: #fff;
			margin: 3vw auto 0;
			padding: 3vw 0;
			border: #4b4b72 0.15vw solid;
			border-radius: 3.5vw;

			div {
				font-size: 1.2vw;
				text-align: center;

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

				img {
					margin: 0.25vw auto 0;
				}

				&:first-child img {
					width: 23.4vw;
				}

				&:nth-child(2) img {
					width: 12.5vw;
				}

				&:nth-child(3) img {
					width: 10vw;
				}

				&:nth-child(4) img {
					width: 4.4vw;
				}
			}
		}
	}
}
/*********** link ***********/

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

	.one_box {
		width: 80vw;
		background: #fff;
		margin: 3vw auto 0;
		padding: 2vw 0 3.5vw;
		border: #4b4b72 0.15vw solid;
		border-radius: 3.5vw;

		h3 {
			font-size: 1.5vw;
			background: #ffe9f5;
			width: 20vw;
			margin: 0 auto;
			border: #4b4b72 0.15vw solid;
			border-radius: 2vw;
			text-align: center;
			line-height: 1.933;
		}

		.address {
			font-size: 1.5vw;
			margin-top: 2vw;
			text-align: center;
		}

		.map {
			margin-top: 2vw;

			iframe {
				height: 26vw;
			}
		}
	}

	.btn_box .btn_back input[type="button"] {
		background: #ffe9f5;
		width: 19vw;
		margin: 3.5vw auto 0;
		display: block;
	}
}
/*********** meet_up ***********/

/*********** members ***********/
#members {
	.images {
		width: 60vw;
		margin: 1.5vw auto 0;
	}

	.btn_members {
		width: 28.5vw;
		margin: 3vw auto 0;

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

	.btn_enquete {
		width: 32.8vw;
		margin: 0vw auto;

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

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

	.newface_list {
		width: 96vw;
		margin: 0 auto;
		display: flex;
		gap: 3vw 1.5vw;
		flex-wrap: wrap;

		.one_box {
			width: calc(50% - 0.751vw);
			display: flex;
			align-items: flex-start;
			justify-content: center;
			gap: 0 0.75vw;

			.left_box {
				width: 20vw;
				border: #4b4b72 0.15vw solid;
				border-radius: 1vw;
				overflow: hidden;
				position: relative;

				a {
					.thumb img {
						transition: scale .3s ease;
					}

					&:hover {
						.thumb img {
							scale: 1.1;
						}
					}

					.icon {
						width: 4.35vw;
						position: absolute;
						left: 0.25vw;
						bottom: 0.5vw;
					}
				}
			}

			.right_box {
				background: url(../images/bg_newface_list_right.png) no-repeat left top/100% 100%;
				width: calc(100% - 20.375vw);
				height: 26vw;
				padding: 1vw;
				position: relative;

				.date,
				.age,
				.size {
					font-size: 1.2vw;
				}

				.name {
					font-size: 1.8vw;
					line-height: 1.5;
				}

				.other {
					display: flex;
					justify-content: flex-start;
					gap: 0 0.5vw;
					position: absolute;
					left: 10.5vw;
					top: 1.25vw;

					.enrollment {
						width: 7.6vw;
					}

					.designated_fee {
						font-size: 0.7vw;
						width: 7.6vw;
						height: 1.45vw;
						line-height: 1;
						letter-spacing: 0;
						display: flex;
						align-items: center;
						gap: 0 0.25vw;

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

				.type {
					margin-top: 0.75vw;
					display: flex;
					flex-wrap: wrap;
					gap: 0.25vw;

					p {
						font-size: 1.2vw;
						background: #fffec6;
						width: calc(50% - 0.126vw);
						border: #4b4b72 0.15vw solid;
						border-radius: 0.25vw;
						text-align: center;
						line-height: 1.333;
					}
				}

				.title {
					font-size: 1.2vw;
					margin-top: 0.5vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 0.25vw;
					overflow: hidden;

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

				.comment {
					font-size: 0.9vw;
					height: 7vw;
					margin-top: 0.5vw;
					line-height: 1.2;
					overflow: auto;
				}
			}
		}
	}

	@-moz-document url-prefix() {
		.newface_list {
			.one_box {
				.right_box {
					.other {
						.designated_fee {
							span {
								font-size: 0.9vw;
							}
						}
					}
				}
			}
		}
	}
}
/*********** newface ***********/

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

	.news_list {
		width: 80vw;
		margin: 1vw auto 0;
		display: flex;
		gap: 3vw 0.5vw;
		flex-wrap: wrap;
		
		.item {
			width: calc(100% / 3 - 1vw / 3);

			.thumb {
				height: 15vw;
				border: #4b4b72 0.15vw solid;
				border-radius: 1vw;
				overflow: hidden;

				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					transition: scale .3s ease;
				}
			}

			&:hover {
				.thumb {
					img {
						scale: 1.1;
					}
				}
			}

			.date {
				font-size: 1.2vw;
				background: #fff;
				width: 10vw;
				margin: -0.9vw auto 0;
				border: #4b4b72 0.25vw solid;
				border-radius: 0.9vw;
				text-align: center;
				line-height: 1.542;
				position: relative;
				z-index: 1;
			}
		}

		.title {
			font-size: 1.5vw;
			width: 95%;
			margin: 0.5vw 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: 80vw;
			margin: 1vw auto 0;
			padding: 3vw 0;
			border: #4b4b72 0.15vw solid;
			border-radius: 3.5vw;

			.inner {
				width: 50vw;
				margin: 0 auto;

				.date {
					font-size: 1.2vw;
				}

				.title {
					font-size: 1.8vw;
				}

				.images {
					margin-top: 1.5vw;
				}

				.text {
					font-size: 1.2vw;
					margin-top: 1vw;
					line-height: 2;
				}
			}
		}

		#pagenation {
			margin: 4vw 0 0;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 1.5vw;

			li a {
				font-size: 1.2vw;
				background: #c6fffa;
				width: 9.2vw;
				border: #4b4b72 0.15vw solid;
				border-radius: 1.5vw;
				text-align: center;
				line-height: 1.792;
				display: block;
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}

			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: 1vw;
				text-align: left;
			}

			li.next a {
				padding-right: 1vw;
				text-align: right;
			}
		}
	}
}
/*********** news ***********/

/*********** profile ***********/
#profile {
	#pagenation {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 1.5vw;

		li {
			width: 9.2vw;

			a {
				font-size: 1.2vw;
				background: #c6fffa;
				border: #4b4b72 0.15vw solid;
				border-radius: 1.5vw;
				text-align: center;
				line-height: 1.792;
				display: block;
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}
		}

		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: 1vw;
			text-align: left;
		}

		li.next a {
			padding-right: 1vw;
			text-align: right;
		}
	}

	#headline {
		font-size: 2vw;
		background: #fff;
		border: #4b4b72 0.15vw solid;
		border-radius: 0.25vw;
		width: 30.4vw;
		margin: 2.5vw auto 0;
		text-align: center;
		line-height: 1.325;
		overflow: hidden;

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

	#slider_wrap {
		width: 91.5vw;
		margin: 0.5vw auto 0;
		position: relative;

		.slider {
			position: relative;

			.slick-slide {
				opacity: .5;
			}

			.slick-current {
				opacity: 1;
			}

			.item {
				border-radius: 1vw;
				overflow: hidden;
			}

			.slide_arrow {
				width: 3.15vw;
				position: absolute;
				top: calc(50% - 1.525vw);
				z-index: 2;
				cursor: pointer;
				transition: opacity .3s ease;

				&:hover {
					opacity: .5;
				}
			}

			.prev_arrow {
				left: 28.75vw;
			}

			.next_arrow {
				right: 28.75vw;
			}
		}

		.icon {
			width: 31.125vw;
			margin: auto;
			padding-left: 0.75vw;
			display: flex;
			align-items: flex-end;
			gap: 0 0.5vw;
			position: absolute;
			left: 0;
			right: 0;
			bottom: 1.5vw;

			.new {
				width: 7.3vw;
			}

			.today {
				width: 7.15vw;
			}
		}

		.other {
			width: 31.125vw;
			margin: auto;
			padding-right: 0.5vw;
			position: absolute;
			left: 0;
			right: 0;
			bottom: 1.5vw;

			.enrollment {
				width: 14vw;
				margin-left: auto;
			}

			.designated_fee {
				font-size: 1.2vw;
				width: 14vw;
				margin: 0.5vw 0 0 auto;
				text-align: center;

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

	.data {
		background: #f87c94;
		width: 30.3vw;
		margin: .5vw auto 0;
		padding-bottom: 0.5vw;
		border-radius: 0.25vw;

		.name {
			font-size: 2.5vw;
			color: #fff;
			text-align: center;
			line-height: 1.2;
		}

		.age_size {
			font-size: 2vw;
			color: #fff;
			background: #ffa3bc;
			margin-top: 0.25vw;
			line-height: 1.2;
			display: flex;
			justify-content: center;
			gap: 0 1.5vw;
		}
	}

	.type {
		 width: 30.3vw;
		 margin: 0.5vw auto 0;
		 display: flex;
		 flex-wrap: wrap;
		 gap: 0.25vw;
		 
		 p {
			font-size: 2vw;
			background: #fff;
			width: calc(50% - 0.13vw);
			border: #4b4b72 0.1vw solid;
			border-radius: 0.25vw;
			text-align: center;
			line-height: 1.3;
		 }
	}

	#sns {
		margin-top: 1vw;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 0.25vw;

		.x {
			width: 4vw;

			a {
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}
		}

		.lavistagram {
			width: 26vw;

			a {
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}
		}
	}

	.btn_reservation {
		width: 18.5vw;
		margin: 1.5vw auto 0;

		a {
			display: block;

			&:hover {
				animation: move-left-right 1s infinite;
			}
		}
	}

	.wejet {
		width: 80vw;
		margin: 2vw auto 0;

		iframe {
			width: 100%;
			margin-top: 0.25vw;
		}
	}

	h3 {
		margin: 0;

		span {
			font-family: "Titan One", sans-serif;
			font-size: 4vw;
			font-weight: normal;
			color: #c6ffe1;
			line-height: 1;
			display: block;
			position: relative;
			z-index: 1;
			-webkit-text-stroke: 0.075vw #4b4b72;
            text-stroke: 0.001vw #4b4b72;

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

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

	#comment {
		width: 80vw;
		margin: 2vw auto 0;
		display: flex;
		gap: 0 1vw;

		#cast_comment {
			width: calc(50% - 0.5vw);
		}

		#staff_comment {
			width: calc(50% - 0.5vw);
		}

		.box {
			font-size: 0.9vw;
			background: #fff;
			margin-top: 0.25vw;
			height: 12vw;
			padding: 0.5vw;
			border: #4b4b72 0.1vw solid;
			border-radius: 0.5vw;
			overflow: auto;
		}
	}

	.option {
		width: 80vw;
		margin: 2.5vw auto 0;

		ul {
			margin: 0.5vw 0 0 0;
			display: flex;
			gap: 0.5vw;
			flex-wrap: wrap;

			li {
				font-size: 1.2vw;
				background: #fff;
				width: calc(100% / 6 - 2.51vw / 6);
				border: #4b4b72 0.1vw solid;
				border-radius: 0.5vw;
				text-align: center;
				line-height: 3.083;
			}
		}
	}

	.schedule {
		width: 80vw;
		margin: 3vw auto 0;

		h3 {
			text-align: center;
		}

		ul {
			margin: 0.5vw 0 0 0;
			display: flex;
			gap: 0 0.75vw;

			li {
				font-family: "Titan One", sans-serif;
				font-size: 1.5vw;
				font-weight: normal;
				background: #fffec6;
				width: calc(100% / 7 - 4.5vw / 7);
				border: #4b4b72 0.15vw solid;
				border-radius: 0.5vw;
				padding: 0.5vw 0.5vw 2.5vw;
				text-align: center;

				.date {
					span {
						font-size: 1.2vw;
						color: #fffec6;
						background: #4b4b72;
						width: 4vw;
						border-radius: 1vw;
						line-height: 1.125;
						display: inline-block;
					}

					.sat {
						color: #c6fff9;
					}

					.sun {
						color: #ffc6c6;
					}
				}

				.time {
					height: 6vw;
					margin-top: 1.5vw;
					line-height: 1.3;
					align-content: center;
				}
			}
		}
	}

	.enquete {
		width: 80vw;
		margin: 3vw auto 0;

		h3 {
			text-align: center;
		}

		.btn {
			width: 30vw;
			margin: -0.5vw auto 0;

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

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

			li {
				background: #c6ffe1;
				width: calc(50% - 0.501vw);
				padding: 2.5vw 0;
				border: #fff 0.25vw solid;
				border-radius: 1.5vw;

				.author {
					background: #fff;
					width: 100%;
					padding: 0.25vw 1vw 0.25vw 1.5vw;
					display: flex;
					align-items: center;
					gap: 0 1.5vw;

					.icon {
						width: 5vw;
					}

					.name {
						font-size: 1.2vw;
						width: 22vw;
					}

					.date {
						font-size: 1.2vw;
					}
				}

				.evaluation {
					margin-top: 1vw;
					padding-left: 1.5vw;
					display: flex;
					gap: 0 1vw;

					img {
						width: 2.85vw;
					}
				}

				.title {
					font-size: 1.2vw;
					background: #fff;
					width: 36vw;
					margin: 1.5vw auto 0;
					padding: 0 2vw;
					border: #505075 0.15vw solid;
					border-radius: 1.4vw;
					line-height: 2.333;
				}

				.text {
					font-size: 0.9vw;
					width: 36vw;
					height: 10.7vw;
					margin: 1.5vw auto 0;
					padding: 0 1vw 0;
					line-height: 1.2;
					overflow: auto;
				}
			}
		}

		.btn_more a {
			font-size: 1.2vw;
			background: url(../images/btn_more_arrow.png) no-repeat right 0.5vw top 50%/2.5vw 2.5vw, linear-gradient(to left, #c6e2ff, #e1c6ff);
			border: #4b4b72 0.15vw solid;
			border-radius: 1.5vw;
			width: 18.4vw;
			margin: 1.5vw auto 0;
			text-align: center;
			line-height: 2.333;
			display: block;
			transition: scale .3s ease;

			&:hover {
				scale: 1.1;
			}
		}
	}
}
/*********** profile ***********/

/*********** questionnaire ***********/
#questionnaire {
	section {
		.btn {
			width: 32.8vw;
			margin: 2vw auto 0;

			a:hover {
				display: block;
				animation: zoom-in-out 1s infinite;
			}
		}

		.box {
			width: 80vw;
			margin: 3vw auto 0;

			.one_box {
				background: #c6ffe1;
				width: calc(50% - 45px);
				border: #fff 0.2vw solid;
				border-radius: 1.5vw;
				padding: 3vw 0;

				.author {
					background: #fff;
					width: 100%;
					padding: 0.25vw 1vw 0.25vw 2vw;
					display: flex;
					align-items: center;
					gap: 0 1.5vw;

					.icon {
						width: 5vw;
					}

					.name {
						font-size: 1.2vw;
						width: 19vw;
						overflow: hidden;
						text-overflow: ellipsis;
						white-space: nowrap;
					}

					.date {
						font-size: 1.2vw;
					}
				}

				a {
					width: 24.5vw;
					margin: 2vw auto 0;
					border: #505075 0.15vw solid;
					border-radius: 1vw;
					overflow: hidden;
					display: block;
					position: relative;

					.thumb {
						transition: scale .3s ease;
					}

					&:hover .thumb {
						scale: 1.1;
					}

					.icon {
						display: flex;
						gap: 0 0.5vw;
						position: absolute;
						left: 0.5vw;
						bottom: 0.5vw;
						z-index: 2;

						.new {
							width: 5.65vw;
						}

						.today {
							width: 5.5vw;
						}
					}

					.other {
						position: absolute;
						right: 0.5vw;
						bottom: 1vw;

						.enrollment {
							width: 10.75vw;
						}

						.designated_fee {
							width: 10.75vw;
							margin-top: 0.25vw;
							line-height: 1.333;
							gap: 0 0.25vw;

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

				> .name {
					font-size: 1.8vw;
					margin-top: 0.5vw;
					text-align: center;
				}

				.age_size {
					display: flex;
					justify-content: center;
					gap: 0 1.5vw;
				}

				.evaluation {
					margin-top: 0.5vw;
					display: flex;
					justify-content: center;
					gap: 0 1vw;

					img {
						width: 2.8vw;
					}
				}

				h3 {
					font-size: 1.5vw;
					background: #fff;
					width: fit-content;
					max-width: 32.5vw;
					margin: 1.5vw auto 0;
					padding: 0 2vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 2vw;
					line-height: 1.867;
				}

				.text {
					font-size: 1.2vw;
					margin-top: 1vw;
					padding: 0 1.5vw;
					line-height: 1.2;
				}

				.shop_comment {
					margin-top: 2vw;

					h4 {
						font-size: 1.5vw;
						background: #fff;
						margin: 0;
						padding-left: 1.5vw;	
						line-height: 1.867;
					}

					p {
						font-size: 1.2vw;
						margin-top: 1vw;
						padding: 0 1.5vw;
						line-height: 1.2;
					}
				}
			}
		}

		#pagenation {
			margin: 4vw 0 0;
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0 1.5vw;

			li a {
				font-size: 1.2vw;
				background: #c6fffa;
				width: 9.2vw;
				border: #4b4b72 0.15vw solid;
				border-radius: 1.5vw;
				text-align: center;
				line-height: 1.792;
				display: block;
				transition: opacity .3s ease;

				&:hover {
					opacity: .7;
				}
			}

			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: 1vw;
				text-align: left;
			}

			li.next a {
				padding-right: 1vw;
				text-align: right;
			}
		}
	}
}
/*********** questionnaire ***********/

/*********** ranking ***********/
#ranking {
	section {
		.box {
			width: 80vw;
			margin: 2vw auto 0;

			.one_box {
				background: url(../images/bg_ranking.png) no-repeat left top/cover;
				width: 100%;
				padding: 2.425vw 0;
				display: flex;
				align-items: center;
				justify-content: center;
				gap: 0 2vw;

				a {
					width: 22vw;
					border: #ffa3bc 0.15vw solid;
					border-radius: 1vw;
					position: relative;
					overflow: hidden;

					.thumb {
						transition: opacity .3s ease, scale .3s ease;

						&:hover {
							opacity: .7;
							scale: 1.1;
						}
					}

					.icon {
						display: flex;
						gap: 0 0.25vw;
						position: absolute;
						left: 0.25vw;
						bottom: 0.5vw;
						z-index: 2;

						.new {
							width: 5.3vw;
						}

						.today {
							width: 5.15vw;
						}
					}

					.other {
						position: absolute;
						right: 0.5vw;
						bottom: 1vw;

						.enrollment {
							width: 10vw;
						}

						.designated_fee {
							width: 10vw;
							margin-top: 0.25vw;
							line-height: 1.5;
							gap: 0;

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

				.right_box {
					.number {
						width: 23vw;
					}

					.name {
						font-size: 2.4vw;
						color: #ffa3bc;
						margin-top: 1.5vw;
					}

					.age,
					.size {
						font-size: 1.8vw;
						color: #fff;
						background: #ffa3bc;
						width: fit-content;
						margin-left: 0.5vw;
						padding: 0 1vw;
						line-height: 1.111;
					}

					.size {
						margin-top: 1vw;
					}

					.comment {
						font-size: 1.8vw;
						color: #fff;
						background: #ffa3bc;
						width: 37vw;
						margin: 1vw 0 0 0.5vw;
						padding: 0 1vw;
						line-height: 1.111;
						overflow: hidden;

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

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

			ul {
				margin-top: 2vw;
				display: flex;
				gap: 2vw 8vw;
				justify-content: center;
				flex-wrap: wrap;

				li {
					background: #fff;
					width: calc(100% / 3 - 16vw / 3);
					border: #ffa3bc 0.25vw solid;
					border-radius: 1.5vw;
					padding: 0.75vw 0 1.25vw;

					a {
						width: 19vw;
						margin: 0 auto;
						border: #ffa3bc 0.15vw solid;
						border-radius: 1vw;
						display: block;
						position: relative;
						overflow: hidden;

						.thumb {
							transition: opacity .3s ease, scale .3s ease;

							&:hover {
								opacity: .7;
								scale: 1.1;
							}
						}

						.icon {
							display: flex;
							gap: 0 0.25vw;
							position: absolute;
							left: 0.25vw;
							bottom: 0.25vw;
							z-index: 2;

							.new {
								width: 4.45vw;
							}

							.today {
								width: 4.35vw;
							}
						}

						.other {
							position: absolute;
							right: 0.5vw;
							bottom: 0.75vw;

							.enrollment {
								width: 8.5vw;
							}

							.designated_fee {
								font-size: 0.8vw;
								width: 8.5vw;
								margin-top: 0.25vw;
								line-height: 1.5;
								gap: 0 0.25vw;

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

					.data_box {
						margin-top: 0.5vw;
						display: flex;
						gap: 0 0.5vw;
						justify-content: center;

						.number {
							width: 7.5vw;
						}

						.data {
							.name {
								font-size: 1.5vw;
								color: #ffa3bc;
							}

							.age_size {
								font-size: 0.9vw;
								color: #fff;
								background: #ffa3bc;
								line-height: 1.833;
								padding: 0 0.25vw;
								display: flex;
								gap: 0 0.75vw;
							}
						}
					}

					.comment {
						font-size: 0.9vw;
						color: #fff;
						background: #ffa3bc;
						margin-top: 0.75vw;
						line-height: 2.278;
						overflow: hidden;

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

					&:last-child {
						.data_box {
							padding-left: 0.15vw;
							justify-content: flex-start;
							gap: 0 0.15vw;

							.number {
								width: 8.5vw;
							}
						}
					}
				}
			}
		}
	}
}
/*********** ranking ***********/

/*********** reservation ***********/
#reservation {
	section {
		h3 {
			font-size: 1.8vw;
			margin: 3vw 0 0;
			text-align: center;
		}

		.text_01 {
			font-size: 1.2vw;
			margin-top: 1vw;
			text-align: center;
		}

		.text_02 {
			font-size: 1.2vw;
			margin-top: 1.5vw;
			text-align: center;
			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;
			}

			a:hover {
				text-decoration: none;
			}
		}

		.box {
			background: #fff;
			width: 80vw;
			margin: 2.5vw auto 0;
			padding: 3.5vw 0;
			border: #4b4b72 0.25vw solid;
			border-radius: 3.5vw;

			dl {
				width: 37vw;
				margin: 0 auto;

				dt {
					font-size: 1.5vw;
					display: flex;
					align-items: center;
					gap: 0 0.25vw;

					span {
						font-size: 0.95vw;
						color: #fff;
						background: #f97a96;
						width: 3.2vw;
						border-radius: 0.65vw;
						text-align: center;
						line-height: 1.368;
						display: block;
					}

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

				dd {
					font-size: 1.2vw;
					margin-left: 0;

					#course {
						width: 18.5vw;
					}

					#year,
					#month,
					#day,
					#hour,
					#minutes {
						width: 5.5vw;
					}

					textarea {
						height: 15vw;
					}
				}
			}

			.btn_box {
				margin: 4vw auto 0;
				display: flex;
				justify-content: center;
				gap: 0 0.5vw;
			}
		}
	}
}

#reservation.confirm {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				color: #f97a96;
				margin-top: 4vw;
				text-align: center;
			}

			dl {
				width: 65vw;
				margin-top: 2vw;
				display: flex;
				flex-wrap: wrap;

				dt {
					width: 31%;
					margin: 0;
					padding: 2vw 0;
					border-bottom: #4b4b72 0.1vw solid;
					line-height: 1.2;
					justify-content: flex-end;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}
				}

				dd {
					font-size: 1.5vw;
					width: 69%;
					padding: 2vw 0 2vw 4vw;
					border-bottom: #4b4b72 0.1vw solid;
					line-height: 1.2;

					&:first-of-type {
						border-top: #4b4b72 0.1vw solid;
					}
				}
			}
		}
	}
}

#reservation.complete {
	section {
		.box {
			padding-bottom: 5vw;

			.confirm_text {
				font-size: 1.35vw;
				margin-top: 4vw;
				text-align: center;
			}

			.complete_text {
				font-size: 1.1vw;
				margin-top: 1.5vw;
				text-align: center;
				line-height: 2;
			}

			.btn_box {
				margin-top: 2.5vw;

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

/*********** schedule ***********/
#schedule {
	.date {
		width: 80vw;
		margin: 2vw auto 0;
		display: flex;
		justify-content: space-between;

		li {
			font-family: "Titan One", sans-serif;
			font-size: 1.5vw;
			font-weight: normal;
			background: #fff;
			width: 10.5vw;
			border: #4b4b72 0.15vw solid;
			border-radius: 0.5vw;
			text-align: center;
			line-height: 2.167;
			overflow: hidden;

			a {
				background: #fffec6;
				width: 100%;
				height: 100%;
				display: block;
				transition: background .3s ease;

				&:hover {
					background: #fff;
				}
			}

			span {
				font-size: 1.2vw;
				color: #fffec6;
				background: #4b4b72;
				width: 4.4vw;
				margin-left: 0.25vw;
				border-radius: 0.7vw;
				text-align: center;
				line-height: 1.125;
				vertical-align: middle;
				display: inline-block;
			}

			.sat {
				color: #c6fff9;
			}

			.sun {
				color: #ffc6c6;
			}
		}
	}

	.girls_list {
		margin-top: 1.5vw;

		li {
			padding-bottom: 0.5vw;
		}
	}
}
/*********** schedule ***********/

/*********** system ***********/
#system {
	section {
		#btn_other_page {
			margin-top: 2vw;
			display: flex;
			justify-content: center;
			gap: 0 2vw;

			li {
				a {
					font-size: 1.5vw;
					background: #c6e2ff;
					width: 19vw;
					border: #4b4b72 0.15vw solid;
					border-radius: 2vw;
					text-align: center;
					line-height: 2.4;
					display: block;
					transition: scale .3s ease;

					&:hover {
						scale: 1.1;
					}
				}
			}
		}

		.box {
			background: #fff;
			width: 80vw;
			margin: 3vw auto 0;
			padding: 3vw 0;
			border: #4b4b72 0.15vw solid;
			border-radius: 1.25vw;

			.one_box {
				padding-bottom: 2vw;

				h3 {
					font-size: 1.5vw;
					color: #fff;
					background: #4b4b72;
					text-align: center;
					line-height: 2.4;
				}

				.fee_box {
					width: 37vw;
					margin: 1.5vw auto 0;
					display: flex;
					justify-content: center;
					flex-wrap: wrap;
					gap: 0.25vw 5vw;

					dl {
						width: 16vw;
						margin: 0;
						display: flex;
						align-items: flex-end;
						justify-content: flex-end;
						gap: 0 1vw;

						dt {
							font-size: 1.8vw;
						}

						dd {
							font-size: 2.4vw;
							color: #f97a96;
							margin: 0;
							line-height: 1.4;
						}
					}
				}

				.membership_fee {
					font-size: 1.8vw;
					background: #fffec6;
					width: 21.4vw;
					margin: 2.5vw auto 0;
					border: #4b4b72 0.15vw solid;
					border-radius: 2.15vw;
					text-align: center;
					line-height: 1.87;

					span {
						font-size: 2.3vw;
						color: #f97a96;
						letter-spacing: 0.2em;
					}
				}

				.other_fee_box {
					width: 60vw;
					margin: 2vw auto 0;
					display: flex;
					justify-content: center;
					gap: 1vw 2vw;
					flex-wrap: wrap;

					dl {
						margin: 0;
						display: flex;
						align-items: flex-end;
						justify-content: flex-end;
						gap: 0 1vw;

						dt {
							font-size: 1.8vw;
						}

						dd {
							font-size: 2.4vw;
							color: #f97a96;
							margin: 0;
							line-height: 1.4;
						}
					}
				}

				.attention {
					font-size: 0.9vw;
					color: #f00;
					margin-top: 1.5vw;
					text-align: center;
				}
			}

			.cancel {
				dl {
					width: 33.5vw;
					margin: 0 auto;
					display: flex;
					align-items: center;
					gap: 0.25vw 1.5vw;
					flex-wrap: wrap;

					dt {
						font-size: 1.5vw;
						width: 16vw;
						text-align: right;
					}

					dd {
						font-size: 2.15vw;
						width: 16vw;
						margin: 0;

						span {
							color: #f97a96;
						}
					}
				}
			}

			.service {
				position: relative;

				.time {
					font-size: 1.5vw;
					background: #ffdec6;
					width: 22vw;
					margin: 3vw auto 0;
					border: #4b4b72 0.1vw solid;
					border-radius: 0.5vw;
					text-align: center;
					line-height: 1.667;
					letter-spacing: 0.1em;
				}

				dl {
					width: 18vw;
					margin: 1vw auto 0;
					display: flex;
					align-items: flex-end;
					justify-content: flex-end;
					gap: 0 3.5vw;
					flex-wrap: wrap;

					dt {
						font-size: 1.8vw;
					}

					dd {
						font-size: 2.4vw;
						color: #f97a96;
						margin: 0;
						line-height: 1.4;
					}
				}

				.meet_up {
					font-size: 1.2vw;
					margin-top: 1vw;
					text-align: center;

					span {
						font-size: 2.4vw;
						color: #f97a96;
						margin-left: 2vw;
					}
				}

				.additional_note {
					font-size: 0.9vw;
					margin-top: 1vw;
					text-align: center;
					line-height: 1.7;
				}

				h4 {
					font-size: 1.5vw;
					margin-top: 2vw;
					text-align: center;
				}

				.event {
					font-size: 1.5vw;
					background: #fffec6;
					width: 27vw;
					margin: 2vw auto 0;
					border: #4b4b72 0.1vw solid;
					border-radius: 0.5vw;
					padding: 0.25vw 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: 1.2vw;
					color: #f97a96;
					margin-top: 0.75vw;
					text-align: center;
				}

				.home_visit {
					width: 9.9vw;
					position: absolute;
					left: 15vw;
					bottom: 4vw;
				}
			}

			.date {
				.other_fee_box {
					gap: 0 3vw;

					dl {
						display: block;
					}
				}

				.about {
					font-size: 1.2vw;
					width: 46vw;
					margin: 3vw auto 0;
					border: #4b4b72 0.1vw solid;
					border-radius: 0.5vw;
					padding: 1vw 1.75vw;

					span {
						font-size: 1.5vw;
						color: #f97a96;
						margin-bottom: 0.5vw;
						text-align: center;
						display: block;
					}
				}
			}

			.option {
				dl {
					&:nth-of-type(n+2) {
						margin-top: 1.5vw;
					}

					dt {
						font-size: 2.4vw;
						color: #f97a96;
						text-align: center;
						line-height: 1.3;
					}

					dd {
						font-size: 1.5vw;
						margin: 0;
						text-align: center;
					}
				}
			}

			.credit {
				div {
					width: 34.3vw;
					margin: 3.5vw auto 0;
				}

				p {
					font-size: 0.9vw;
					margin-top: 1.5vw;
					text-align: center;
				}
			}

			.unavailable {
				p {
					font-size: 0.8vw;
					width: 25vw;
					margin: 3vw auto 0;
				}
			}

			.other {
				p {
					font-size: 0.8vw;
					width: 38vw;
					margin: 3vw auto 0;
				}
			}

			.prohibited {
				p {
					font-size: 0.8vw;
					width: 50.5vw;
					margin: 3vw auto 0;
				}
			}
		}
	}
}
/*********** system ***********/

/*********** transportation ***********/
#transportation {
	section {
		.box {
			background: #fff;
			width: 80vw;
			margin: 0 auto;
			padding: 5vw 0;
			border: #4b4b72 0.25vw solid;
			border-radius: 3.5vw;

			dl {
				width: fit-content;
				margin: 0 auto;
				display: flex;

				dt {
					font-size: 1.8vw;
					padding-right: 1.5vw;
					border-right: #4b4b72 0.15vw solid;
					text-align: right;

					p:nth-child(n+2) {
						margin-top: 3vw;
					}
				}

				dd {
					font-size: 1.2vw;
					margin: 0;
					padding-left: 1.5vw;

					p:first-child {
						margin-top: 0.5vw;
					}

					p:nth-child(n+2) {
						margin-top: 4vw;
					}
				}
			}
		}

		.btn_box .btn_back input[type="button"] {
			background: #ffe9f5;
			width: 19vw;
			margin: 3.5vw auto 0;
			display: block;
		}
	}
}
/*********** transportation ***********/

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

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

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

		.box {
			padding-bottom: 5vw;

			.text {
				font-size: 1.1vw;
				margin-top: 1.5vw;
				text-align: center;
				line-height: 2;
			}

			.btn_box {
				width: fit-content;
				margin: 2.5vw auto 0;

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