@charset 'UTF-8';

/* ========================================
 TOPページ
========================================= */

/*----- fv -----*/

.top-fv {
	padding-top: 290px;
}

.top-fv-title {
	padding-right: 10px;
	font-family: var(--font-pphatton);
	font-size: 120px;
	font-weight: 200;
	line-height: 1;
	text-align: right;
	letter-spacing: -0.04em;
}

.top-fv-splide {
	margin-top: 5px;
}

.top-fv-splide {
  overflow: hidden;
}

.top-fv-splide .splide__track {
  overflow: visible;
}

.top-fv-splide .splide__list {
  transition: none !important;
}

.top-fv-splide .splide__slide {
  width: auto !important;
}

.top-fv-splide .splide__slide img {
  width: auto;
  height: 560px;
  object-fit: cover;
  display: block;
}

/* 初期化前は非表示にする（ちらつき防止） */
.top-fv-splide:not(.is-initialized) {
  opacity: 0;
}

.top-fv-splide.is-initialized {
  opacity: 1;
  transition: opacity 0.3s;
}

@media (max-width: 768px) {
	.top-fv {
		padding-top: 269px;
	}

	.top-fv-title {
		padding-right: 10px;
		font-size: 47px;
		line-height: 0.9;
		letter-spacing: -0.07em;
	}

	.top-fv-splide {
		margin-top: 4px;
	}

	.top-fv-splide .splide__slide img {
    height: 208px;  /* SP */
  }
}

/*----- concept -----*/

.top-concept {
	min-height: 300vh;
	position: relative;
}

.top-concept .container {
	position: sticky;
	top: 0;
	height: 100vh;
}

.top-concept-inner {
	position: relative;
	height: 100%;
	padding-top: 235px;
}

.top-concept-title {
	margin-bottom: 60px;
	font-family: var(--font-bevietnam);
	font-size: 1.6rem;
	letter-spacing: 1.6px;
}

.top-concept-lead {
	display: grid;
	width: fit-content;
	row-gap: 58px;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.top-concept-lead {
		row-gap: 45px;
	}
}

.top-concept-lead-jp {
	font-size: 2.4rem; /* 24px */
	line-height: 1.83;
	letter-spacing: 1.2px;
	text-box: trim-both cap alphabetic;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.top-concept-lead-jp {
		font-size: 2rem;
	}
}

.top-concept-lead-en {
	font-size: 1.4rem; /* 14px */
	line-height: 1.71;
	letter-spacing: 0.35px;
	color: #b4bebf;
	text-box: trim-both cap alphabetic;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.top-concept-lead-en {
		font-size: 1.2rem;
	}
}

.top-concept-ph {
	position: absolute;
	bottom: 100px;
	right: 0;
	width: 219px;
	height: 343px;
	overflow: hidden;
}

.top-concept-ph__img {
	position: absolute;
	bottom: 0;
	width: 219px;
	height: 343px;
	overflow: hidden;
	transition: .1s;

	& img {
		width: 219px;
		height: 343px;
	}

	&.u-img1 {
		z-index: 1;
	}
	&.u-img2 {
		height: 0;
		z-index: 2;
	}
	&.u-img3 {
		height: 0;
		z-index: 3;
	}
}

/* アニメーション用スタイル */
.char {
	display: inline-block;
	color: #f2f5f5;
	transition: color 0.3s ease;
	white-space: pre;
}

.char.active {
	color: #395052;
}

.top-concept-lead-en .char {
		color: #b4bebf;
}

.top-concept-lead-en .char.active {
		color: #b4bebf;
}

.top-concept-splide {
	margin-top: 100px;
}

.top-concept-splide .splide__slide {
  opacity: 0;
  transition: opacity 2s ease-out;
}

.top-concept-splide .slide-inner {
  transform: scale(1.02);
  filter: blur(10px);
  transition: transform 2s ease-out, filter 2s ease-out;

	figure {
		width: 100%;
		height: auto;
		aspect-ratio: 1400/760;
		overflow: hidden;

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

.top-concept-splide .splide__slide.is-active {
  opacity: 1;
}

.top-concept-splide .splide__slide.is-active .slide-inner {
  transform: scale(1);
  filter: blur(0);
}

@media (max-width: 768px) {
	.top-concept {
		min-height: initial;
		margin-top: 150px;
		margin-bottom: 150px;
	}

	.top-concept .container {
		position: relative;
		top: 0;
		height: auto;
	}

	.top-concept-inner {
		width: calc(315/350*100%);
		margin-inline: auto;
		padding-top: 0;
	}

	.top-concept-title {
		margin-bottom: 58px;
		font-size: 1.2rem;
		letter-spacing: 0.1em;
	}

	.top-concept-lead {
		width: 100%;
		row-gap: 40px;
	}

	.top-concept-lead-jp {
		font-size: 1.6rem; /* 24px */
		line-height: calc(71/32);
		letter-spacing: 0.05em;

		span {
			color: #395052;
		}
	}

	.top-concept-lead-en {
		font-size: 1.2rem;
		line-height: calc(46/24);
		letter-spacing: 0.025em;
	}

	.top-concept-ph {
		position: relative;
		bottom: 0;
		width: 108px;
		height: 164.5px;
		margin: 40px 0 0 auto;
	}

	.top-concept-ph__img {
		width: 108px;
		height: 164.5px;

		& img {
			width: 108px;
			height: 164.5px;
		}
	}

	/* アニメーション用スタイル */
	.char {
		display: inline-block;
		color: #b4bebf;
		transition: color 0.3s ease;
		white-space: pre;
	}

	.char.active {
		color: #395052;
	}

	.top-concept-lead-en .char {
			color: #b4bebf;
	}

	.top-concept-lead-en .char.active {
			color: #b4bebf;
	}

	.top-concept-splide {
		margin-top: 150px;
	}
}

/*----- room -----*/

.top-room {
	position: relative;
}

.top-room-floor {
	position: absolute;
	top: 160px;
	left: 56px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1em;
	transition: none; /* スムーズな切り替えのため */
  z-index: 10; /* 他の要素より前面に */
}

@media (min-width: 769px) and (max-width: 1350px) {
	.top-room-floor {
		left: 10px;
	}
}

.top-room-section {
	position: relative;
	padding: 328px 0 0;

	&:first-child {
		padding: 290px 0 0;
	}
}

@media (min-width: 769px) and (max-width: 1350px) {
	.top-room-section {
		padding: 328px 0 0 30px;

		&:first-child {
			padding: 290px 0 0 30px;
		}
	}
}

.top-room-item {
	display: flex;
	flex-direction: column;
	row-gap: 30px;

	&:not(:last-child) {
		padding-bottom: 150px;
	}
}

.top-room-item.--other {
	padding: 240px 0;
}

@media (min-width: 769px) and (max-width: 1350px) {
	.top-room-item.--other {
		padding: 240px 0 240px 30px;
	}
}

.top-room-head {
	display: flex;
	column-gap: 10px;
	align-items: center;
	justify-content: space-between;
}

.top-room-title {
	width: calc(600/1200*100%);
	font-family: var(--font-pphatton);
	font-size: 6.4rem;
	font-weight: 200;
	line-height: 1;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.top-room-title {
		font-size: 4.8rem;
	}
}

.top-room-lead {
	flex: 1;
	font-size: 1.6rem;
	line-height: 2;
}

.top-room-photo {
	display: grid;
	row-gap: 35px;
}

.top-room-photo-row {
	display: flex;
	column-gap: 10px;
	padding-bottom: 10px;
}

.top-room-photo-row.--flex-end {
	align-items: flex-end;
}

.top-room-photo-row.--clo2 {
	width: 66.6%;
}

.top-room-photo-scroll {
	width: calc(100vw - ( (100vw - 1200px) /2 ));
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
	cursor: ew-resize;
}

.top-room-splide {
	width: calc(100vw - ((100vw - 1200px) / 2));
	cursor: ew-resize;

	.splide__slide {
		width: fit-content;
		height: auto;

		.top-room-photo-img {
			width: fit-content;
			height: auto;

			img {
				width: auto;
				height: 400px;
			}
		}
	}
}

@media (min-width: 769px) and (max-width: 1200px) {
	.top-room-photo-scroll {
		width: calc(100vw - 20px);
	}
}

.top-room-photo-img {
	display: grid;
	row-gap: 8px;
}

.top-room-photo-scroll .top-room-photo-img {
	width: 600px;
}

.top-room-photo-img figcaption {
	font-size: 1.4rem;
	line-height: 1;
}

@media (max-width: 768px) {
	.top-room .container {
		padding: 0 10px;
	}

	.top-room-floor {
		top: 119px;
		left: 6px;
		font-size: 1.2rem;
	}

	.top-room-section {
		padding: 225px 0 0;

		&:first-child {
			padding: 235px 0 0;
		}
	}

	.top-room-item {
		row-gap: 40px;
		padding-inline: 20px;

		&:not(:last-child) {
			padding-bottom: 110px;
		}
	}

	.top-room-item.--other {
		padding: 153.5px 20px 159px;

		& .top-room-photo {
			gap: 20px;
		}

		& .top-room-photo-row {
			flex-direction: column;
			gap: 20px;
			padding-bottom: 0;

			&.--clo2 {
				width: 100%;
			}
		}
	}

	.top-room-head {
		flex-direction: column;
		gap: 20px;
		align-items: flex-start;
		justify-content: flex-start;
	}

	.top-room-title {
		width: 100%;
		font-size: 4rem;
	}

	.top-room-lead {
		width: 100%;
		font-size: 1.2rem;
		line-height: calc(54/24);
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}

	.top-room-photo-row {
		column-gap: 5px;
		padding-bottom: 10px;
	}

	.top-room-photo-scroll {
		width: calc(100vw - 30px);
	}

	.top-room-splide {
		width: calc(100vw - 30px);

		.splide__slide {
			.top-room-photo-img {
				img {
					height: 210px;
				}
			}
		}
	}

	.top-room-photo-img {
		row-gap: 5px;
	}

	.top-room-photo-scroll .top-room-photo-img {
		width: 315px;
	}

	.top-room-photo-img figcaption {
		font-size: 0.9rem;
	}
}

/*----- access -----*/

.top-access {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.top-access-ph {
	position: relative;
}

.top-access-ph img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.top-access-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 96px calc(96/700*100%);
	color: #fff;
	background: #395052;
}

.top-access-title {
	font-family: var(--font-pphatton);
	font-size: 6.4rem;
	font-weight: 200;
	line-height: 1;
	margin-bottom: 30px;
}

.top-access-address {
	padding-left: 30px;
	font-size: 1.6rem;
	font-weight: 500;
	margin-bottom: 30px;
	background: url(../images/common/icon-flag.svg) left center no-repeat;
	background-size: 17px auto;
}

.top-access-text {
	margin-bottom: 25px;
	font-size: 1.6rem;
	line-height: 2;
}

.top-access-use {
	margin-bottom: 40px;
	padding: 30px calc(40/508*100%) 36px;
	border: 1px solid #fff;
	font-size: 1.4rem;
	letter-spacing: 0.7px;
}

.top-access-use-title {
	margin-bottom: 10px;
}

.top-access-use-list {
	list-style: disc;
	margin-left: 16px;
	margin-bottom: 8px;
}

.top-access-use-list-item {
	margin-bottom: 0.8px;
	font-size: 1.4rem;
	line-height: calc(32/14);
}

.top-access-use-list-item-highlight {
	color: #fff44c;
}

.top-access-use-note {
	position: relative;
	padding-left: 16px;
	font-size: 1.2rem;
	line-height: calc(23/12);
	letter-spacing: 0.05em;
	&:before {
		content: '※';
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.2rem;
		line-height: calc(23/12);
	}
}

.top-access-more {
	margin-top: 40px;
}

@media (max-width: 768px) {
	.top-access {
		display: block;
	}

	.top-access-ph {
		width: 100%;
		height: auto;
	}

	.top-access-ph img {
		width: 100%;
		height: auto;
	}

	.top-access-info {
		padding: 77.5px 30px 80px;
	}

	.top-access-title {
		font-size: 4rem;
		margin-bottom: 27.5px;
	}

	.top-access-address {
		padding-left: 22px;
		font-size: 1.2rem;
		margin-bottom: 27px;
		background-size: 13px auto;
	}

	.top-access-text {
		margin-bottom: 32px;
		font-size: 1.2rem;
		line-height: calc(54/24);
		text-box: trim-both cap alphabetic;
	}

	.top-access-use {
		margin-bottom: 30px;
		padding: 20px calc(23/335*100%) 20px;
		border: 1px solid #fff;
		font-size: 1.2rem;
		letter-spacing: 0.05em;
	}

	.top-access-use-title {
		margin-bottom: 16px;
	}

	.top-access-use-list {
		margin-bottom: 18px;
	}

	.top-access-use-list-item {
		margin-bottom: 14px;
		font-size: 1.2rem;
		line-height: calc(34/24);
	}

	.top-access-use-note {
		position: relative;
		padding-left: 12px;
		font-size: 1rem;
		line-height: calc(32/20);
		&:before {
			font-size: 1rem;
			line-height: calc(32/20);
		}
	}

	.top-access-more {
		margin: 30px auto 0;
	}
}

/* ========================================
 GUIDEページ
========================================= */

.guide-wrapper {
	position: relative;
	padding-top: 300px;

	.sub_section {
		padding-block: 240px;
	}

	>.container{
		max-width: 1280px;
		padding: 0 40px;
	}
}

.guide-logo {
	position: absolute;
	top: 85px;
	right: 17px;
	width: 334px;
}

.guide-lead {
	font-size: 2rem;
	line-height: calc(44/20);
	letter-spacing: 0.025em;
	text-box: trim-both cap alphabetic;
}

.guide-lead-highlights {
	display: inline-block;
	margin-inline: 4px;
	padding-bottom: 2px;
	padding-inline: 3px;
	background: #395052;
	color: #fff;
	line-height: 1.1;
}

.guide-floors {
	display: flex;
	flex-direction: column;
	gap: 120px;
	margin-top: 92px;
}

.guide-floor {
	position: relative;
	display: flex;
	align-items: flex-start;

	&:before {
		position: absolute;
		top: 0;
		left: -20px;
		transform: translateX(-100%);
		font-size: 1.6rem;
		font-family: var(--font-bevietnam);
		line-height: 1;
		letter-spacing: 0.1em;
		text-box: trim-both cap alphabetic;
	}

	&:nth-child(1) {
		&:before {
			content: '1F';
		}

		.guide-floor-imagebox-btn {
			&:nth-child(1) {
				top: calc(98/752*100%);
				right: calc(204/800*100%);
			}
			&:nth-child(2) {
				top: calc(336/752*100%);
				right: calc(275/800*100%);
			}
			&:nth-child(3) {
				bottom: calc(132/752*100%);
				left: calc(150/800*100%);
			}
			&:nth-child(4) {
				top: calc(352/752*100%);
				left: calc(65/800*100%);
			}
			&:nth-child(5) {
				top: calc(98/752*100%);
				left: calc(387/800*100%);
			}
			&:nth-child(6) {
				bottom: calc(109/752*100%);
				right: calc(304/800*100%);
			}
		}
	}

	&:nth-child(2) {
		&:before {
			content: '2F';
		}

		.guide-floor-imagebox-btn {
			&:nth-child(1) {
				bottom: calc(287/706*100%);
				left: calc(230/800*100%);
			}
			&:nth-child(2) {
				top: calc(175/706*100%);
				right: calc(352/800*100%);
			}
			&:nth-child(3) {
				top: calc(223/706*100%);
				left: calc(100/800*100%);
			}
			&:nth-child(4) {
				top: calc(78/706*100%);
				left: calc(67/800*100%);
			}
			&:nth-child(5) {
				top: calc(248/706*100%);
				right: calc(153/800*100%);
			}
		}
	}
}

.guide-floor-item {
	width: calc(400/1200*100%);
	padding-right: calc(20/1200*100%);
}

.guide-floor-description {
	width: calc(330/380*100%);
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.guide-floor-info {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 36px;
}

.guide-floor-info-list {
	display: flex;
	gap: 12px;
}

.guide-floor-info-list-title {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 58px;
	height: 25px;
	border: 1px solid #395052;
	font-size: 1.2rem;
	line-height: 1;
	letter-spacing: 0.05em;
}

.guide-floor-info-list-text {
	font-size: 1.6rem;
	line-height: calc(25/15);
	letter-spacing: 0.05em;

	span {
		display: block;
		margin-top: 4px;
		font-size: 1.4rem;
		line-height: calc(23/14);
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
}

.guide-floor-detail {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin-top: 40px;
}

.guide-floor-detail-text {
	font-size: 1.6rem;
	line-height: calc(24/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.guide-floor-detail-list {
	flex-direction: column;
	gap: 25px;
	counter-reset: item;
}

.guide-floor-detail-listitem {
	position: relative;
	padding-left: 30px;
	button {
		padding: 0;
		font-size: 1.6rem;
		color: #395052;
		line-height: 1;
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
	&:before {
		counter-increment: item;
		content: counter(item)'.';
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.6rem;
		line-height: 1;
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
}

.guide-floor-imagebox {
	position: relative;
	flex: 1;
}

.guide-floor-image {
	position: relative;
	z-index: 1;
	width: 100%;
}

.guide-floor-imagebox-btn {
	position: absolute;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(54/800*100%);
	height: auto;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #395052;
	font-size: 1.8rem;
	font-weight: 300;
	font-family: var(--font-bevietnam);
	color: #fff;
	line-height: 1;
	letter-spacing: 0.1em;

	&:hover {
		background: #476466;
	}
}

.guide-pdf {
	display: flex;
	justify-content: center;
	gap: 44px;
	margin-top: 120px;

}

.guide-pdf-button {
	gap: 11px;
	height: 70px;
	border: 1px solid #9fb2b5;
	border-radius: 35px;
	padding-inline: 50px;
	font-size: 2rem;
	font-weight: 500;
	color: #395052;
	line-height: 1;
	letter-spacing: 0.05em;

	&:before {
		content: '';
		display: block;
		width: 40px;
		height: 20px;
		background: url(../images/common/icon-pdf.svg) center center no-repeat;
		background-size: cover;
	}
}

.guide-modal {
	top: 0;
	left: 0;
	width: 100%;
	height: 100dvh;
	background: #395052;
}

.guide-modal-close {
	position: absolute;
	top: 9px;
	right: 9px;
	z-index: 11000;
	display: block;
	width: 52px;
	height: 52px;
	border: 1px solid #fff;
	border-radius: 50%;

	span {
		position: absolute;
		top: 50%;
		left: 50%;
		width: 13px;
		height: 1px;
		background: #fff;
		transform: translate(-50%, -50%) rotate(-45deg);
		&::before{
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			transform: rotate(90deg);
			width: 13px;
			height: 1px;
			background: #fff;
		}
	}
}

.guide-modal-imgbox {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: calc(1000/1400*100%);
	max-width: 980px;
	height: 100%;
	overflow-y: scroll;
	-ms-overflow-style: none;
  scrollbar-width: none;

  &::-webkit-scrollbar {
    display: none;
  }
}

.guide-modal-close-bottom {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 25px;
	width: 100%;
	height: auto;
	background: #213c3e;
	font-size: 3.2rem;
	font-weight: 300;
	color: #fff;
	font-family: var(--font-bevietnam);
	line-height: 64px;
	letter-spacing: 0.1em;

	&:hover {
		opacity: .8;
	}

	span {
		position: relative;
		transform: rotate(-45deg);
		width: 26px;
		height: 1px;
		background: #fff;
		&:after {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			transform: rotate(90deg);
			width: 26px;
			height: 1px;
			background: #fff;
		}
	}
}

.guide-modal-textbox {
	position: absolute;
	top: 0;
	right: 0;
	width: calc(340/1400*100%);
	height: 100%;
	padding-top: 80px;
	color: #fff;
}

.guide-modal-floor {
	font-size: 1.6rem;
	font-family: var(--font-bevietnam);
	line-height: 1;
	letter-spacing: 0.1em;
}

.guide-modal-title {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 40px;

	.en {
		font-size: 3.2rem;
		font-family: var(--font-pphatton);
		font-weight: 100;
		line-height: 1;
		letter-spacing: 0;
		text-box: trim-both cap alphabetic;
	}

	.jp {
		font-size: 1.2rem;
		line-height: 1;
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
}

.guide-modal-text {
	width: calc(100% - 20px);
	max-width: 300px;
	margin-top: 40px;
	font-size: 1.4rem;
	line-height: calc(28/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.guide-modal-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 40px;
}

.guide-modal-listitem {
	dl {
		display: flex;
		column-gap: 10px;
	}
	dt {
		flex-shrink: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 58px;
		height: 25px;
		border: 1px solid #fff;
		font-size: 1.2rem;
		line-height: 1;
		letter-spacing: 0.05em;
	}
	dd {
		flex: 1;
		font-size: 1.6rem;
		line-height: calc(25/14);
		letter-spacing: 0.05em;
	}
}

@media (min-width: 769px) and (max-width: 1300px) {
	.guide-floor {
		&:before {
			left: -10px;
		}
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.guide-lead {
		font-size: 1.4rem;
		line-height: calc(60/28);
		letter-spacing: 0.03em
	}
	.guide-floor-item  {
		width: calc(500/1024*100%);
	}
	.guide-floor-imagebox-btn {
		font-size: 1.2rem;
	}
	.guide-pdf-button {
		padding-inline: 40px;
		font-size: 1.6rem;
	}
	.guide-modal-textbox {
		padding-top: 60px;
	}
	.guide-modal-floor {
		font-size: 1.4rem;
	}
	.guide-modal-title {
		margin-top: 30px;

		.en {
			font-size: 2.4rem;
		}
	}
	.guide-modal-text {
		margin-top: 30px;
		font-size: 1.2rem;
	}
	.guide-modal-list {
		margin-top: 30px;
	}
	.guide-modal-listitem {
		dt {
			font-size: 1rem;
		}
		dd {
			font-size: 1.2rem;
		}
	}
}

@media (max-width: 768px) {
	.guide-wrapper {
		padding-top: 170px;

		.sub_section {
			padding-block: 120px;
		}

		>.container{
			max-width: 560px;
			padding: 0 30px;
		}
	}

	.guide-logo {
		top: 56px;
		right: 10px;
		width: 134px;
	}

	.guide-lead {
		font-size: 1.6rem;
		line-height: calc(72/32);
	}

	.guide-lead-highlights {
		margin-inline: 0 4px;
	}

	.guide-floors {
		gap: 120px;
		margin-top: 120px;
	}

	.guide-floor {
		display: block;

		&:before {
			left: -10px;
			font-size: 0.8rem;
		}

		&:nth-child(1) {
			.guide-floor-imagebox-btn {
				&:nth-child(1) {
					right: calc(72/375*100%);
				}
				&:nth-child(2) {
					right: calc(106/375*100%);
				}
				&:nth-child(3) {
					left: calc(84/375*100%);
				}
				&:nth-child(4) {
					left: calc(39.5/375*100%);
				}
				&:nth-child(5) {
					left: initial;
					right: calc(150/375*100%);
				}
				&:nth-child(6) {
					right: calc(124/375*100%);
				}
			}
		}

		&:nth-child(2) {
			.guide-floor-imagebox-btn {
				&:nth-child(1) {
					left: calc(120/375*100%);
				}
				&:nth-child(2) {
					right: calc(140/375*100%);
				}
				&:nth-child(3) {
					left: calc(62/375*100%);
				}
				&:nth-child(4) {
					left: calc(42/375*100%);
				}
				&:nth-child(5) {
					right: calc(50/375*100%);
				}
			}
		}
	}

	.guide-floor-item {
		width: 100%;
		padding-right: 0;
	}

	.guide-floor-description {
		width: 100%;
		font-size: 1.2rem;
		line-height: calc(54/24);
	}

	.guide-floor-info {
		margin-top: 32px;
	}

	.guide-floor-info-list {
		gap: 7px;
	}

	.guide-floor-info-list-title {
		width: 39px;
		height: 16px;
		font-size: 0.9rem;
	}

	.guide-floor-info-list-text {
		display: flex;
		align-items: center;
		gap: 8px;
		font-size: 1.2rem;
		line-height: calc(16/12);

		span {
			margin-top: 0;
			font-size: 0.9rem;
			line-height: calc(23/18);
		}
	}

	.guide-floor-detail {
		gap: 0x;
		margin-top: 29px;
	}

	.guide-floor-detail-text {
		font-size: 1.2rem;
		line-height: calc(32/24);
	}

	.guide-floor-detail-list {
		display: flex;
		flex-wrap: wrap;
		flex-direction: initial;
		gap: 24px 0;
		margin-top: 37.5px;
	}

	.guide-floor-detail-listitem {
		width: 50%;
		padding-left: 22px;
		button {
			font-size: 1.3rem;
		}
		&:before {
			top: 2px;
			left: 2px;
			font-size: 1.3rem;
		}
		&:nth-child(1) {
			order: 1;
		}
		&:nth-child(2) {
			order: 3;
		}
		&:nth-child(3) {
			order: 5;
		}
		&:nth-child(4) {
			order: 2;
			width: calc(50% - 10px);
			margin-left: 10px;
		}
		&:nth-child(5) {
			order: 4;
			width: calc(50% - 10px);
			margin-left: 10px;
		}
		&:nth-child(6) {
			order: 6;
			width: calc(50% - 10px);
			margin-left: 10px;
		}
	}

	.guide-floor-imagebox {
		width: calc(100% + 60px);
		margin: 32px auto 0 -30px;
	}

	.guide-floor-image {
		position: relative;
		z-index: 1;
		width: 100%;
	}

	.guide-floor-imagebox-btn {
		width: calc(25/375*100%);
		font-size: 0.9rem;
	}

	.guide-pdf {
		flex-direction: column;
		align-items: center;
		gap: 20px;
		margin-top: 120px;
	}

	.guide-pdf-button {
		gap: 6.5px;
		width: 240px;
		height: 48px;
		border-radius: 24px;
		padding-inline: 0;
		font-size: 1.3rem;

		&:before {
			width: 22.5px;
			height: 12.5px;
		}
	}

	.guide-modal {
		overflow-y: auto;
		-ms-overflow-style: none;
		scrollbar-width: none;

		&::-webkit-scrollbar {
			display: none;
		}
	}

	.guide-modal-close {
		position: fixed;
		width: 41px;
		height: 41px;
	}

	.guide-modal-imgbox {
		width: 100%;
		height: auto;
		overflow-y: initial;
	}

	.guide-modal-close-bottom {
		gap: 12px;
		font-size: 1.6rem;
		line-height: 64px;
		letter-spacing: 0.1em;

		span {
			width: 13px;
			&:after {
				width: 13px;
			}
		}
	}

	.guide-modal-textbox {
		position: relative;
		width: 100%;
		height: auto;
		padding: 80px 30px;
	}

	.guide-modal-floor {
		font-size: 0.8rem;
	}

	.guide-modal-title {
		.en {
			font-size: 2.8rem;
		}

		.jp {
			font-size: 1.2rem;
		}
	}

	.guide-modal-text {
		width: 100%;
		max-width: initial;
		font-size: 1.2rem;
		line-height: calc(54/24);
	}

	.guide-modal-listitem {
		dl {
			column-gap: 8px;
		}
		dt {
			width: 39px;
			height: 15px;
			font-size: 0.9rem;
		}
		dd {
			font-size: 1.2rem;
			line-height: calc(15/12);
		}
	}
}

/* ========================================
 PRICEページ
========================================= */

.price-wrapper {
	position: relative;
	padding-top: 300px;
}

.price-logo {
	position: absolute;
	top: 87px;
	right: 17px;
	width: 300px;
}

.price-parallax-container {
	position: relative;
}

.price-bg-splide {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100vw;
	height: auto;

	.splide__slide {
		width: 100%;
		height: auto;

		figure {
			position: relative;
			width: 100%;
			height: 100vh;
			img {
				position: absolute;
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
}

.price-price-parallax-content {
	width: calc(100% - 40px);
	max-width: 642px;
	margin: calc(-100vh + 455px) auto 0;
	padding-bottom: 320px; /* 下に350pxの余白 */
}

.price-sections {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 160px;
	width: 100%;
	padding: 160px 20px 240px;
	background: #fff;
}

.price-section {
	position: relative;
	width: 100%;
	max-width: 420px;
	margin: 0 auto ;

	&:last-child {
		.price-list {
			margin-top: 60px;
		}
	}

	#cancel {
		position: absolute;
		top: 0;
		left: 0;
		opacity: 0;
	}
}

.price-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.price-info-list {
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin-top: 80px;
}

.price-info {
	display: flex;
	gap: 18px;
}

.price-info-title {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100px;
	height: 24px;
	border: 1px solid #395052;
	font-size: 1.2rem;
	letter-spacing: 0.05em;
}

.price-info-text {
	flex: 1;
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;

	span {
		display: block;
		margin-top: 12px;
		font-size: 1.2rem;
		line-height: calc(22/12);
		letter-spacing: 0.1em;
		text-box: trim-both cap alphabetic;
	}
}

.price-boxes {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-top: 80px;
}

.price-box {
	width: 100%;
	padding: 36px calc(42/420*100%) 46px;
	background: #395052;
	color: #fff;
}

.price-box-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	border-bottom: 1px solid #fff;
	padding-bottom: 18px;
}

.price-box-title-en {
	font-size: 2.2rem;
	font-family: var(--font-bevietnam);
	line-height: 1;
	letter-spacing: 0.1em;
	text-box: trim-both cap alphabetic;
}

.price-box-title-jp {
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0.075em;
	text-box: trim-both cap alphabetic;
}

.price-box-contents {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-top: 32px;
}

.price-box-price {
	display: flex;
	align-items: flex-end;
}

.price-box-mark {
	margin-right: 2px;
	font-size: 3.8rem;
	font-family: var(--font-mincho);
	line-height: 1;
	letter-spacing: 0.125em;
	text-box: trim-both cap alphabetic;
}

.price-box-int {
	font-size: 4rem;
	font-family: var(--font-cardo);
	line-height: 1;
	letter-spacing: 0.025em;
	text-box: trim-both cap alphabetic;
}

.price-box-tax {
	margin-left: 10px;
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0.075em;
	text-box: trim-both cap alphabetic;
}

.price-box-note {
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0.1em;
	text-box: trim-both cap alphabetic;
}

.price-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 75px;
}

.price-listitem {
	position: relative;
	padding-left: 16px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	&:before {
		content: '・';
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.4rem;
		line-height: calc(24/14);
	}
}

.price-table {
	margin-top: 80px;
	border: 1px solid #a5b6b8;
}

.price-tableitem {
	display: flex;
	&:not(:last-child) {
		border-bottom: 1px solid #d9dbdb;
	}
}

.price-table-title {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 50%;
	height: 79px;
	padding-right: calc(65/418*100%);
	background: #e6eded;
	font-size: 1.6rem;
	letter-spacing: 0.05em;
}

.price-table-text {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 50%;
	height: 79px;
	padding-right: calc(80/418*100%);
	font-size: 1.6rem;
	letter-spacing: 0.05em;
}

@media (max-width: 768px) {
	.price-wrapper {
		padding-top: 170px;
	}

	.price-logo {
		top: 56px;
		right: 10px;
		width: 118px;
	}

	.price-parallax-container {
		position: relative;
	}

	.price-bg-splide {
		position: relative;
		width: 100vw;

		.splide__slide {
			figure {
				position: relative;
				width: 100%;
				height: auto;
				aspect-ratio: 375/205;
			}
		}
	}

	.price-price-parallax-content {
		width: 100%;
		max-width: initial;
		margin: 0 auto;
		padding-bottom: 0;
	}

	.price-sections {
		gap: 120px;
		padding: 76px 30px 120px;
	}

	.price-section {
		max-width: 500px;
		&:last-child {
			.price-list {
				margin-top: 42px;
			}
		}
	}

	.price-title {
		font-size: 1.6rem;
	}

	.price-info-list {
		margin-top: 40px;
	}

	.price-info {
		gap: 9px;
	}

	.price-info-title {
		width: 70px;
		height: 16px;
		font-size: 0.9rem;
	}

	.price-info-text {
		font-size: 1.6rem;

		span {
			margin-top: 8px;
			font-size: 0.9rem;
			line-height: calc(22/18);
		}
	}

	.price-boxes {
		gap: 30px;
		margin-top: 40px;
	}

	.price-box {
		width: 100%;
		padding: 28px calc(28.5/315*100%) 39px;
	}

	.price-box-header {
		padding-bottom: 10px;
	}

	.price-box-title-en {
		font-size: 1.4rem;
	}

	.price-box-title-jp {
		font-size: 0.9rem;
	}

	.price-box-contents {
		gap: 14px;
		margin-top: 28.5px;
	}

	.price-box-mark {
		font-size: 2.95rem;
	}

	.price-box-int {
		font-size: 3.2rem;
	}

	.price-box-tax {
		margin-left: 7.5px;
		font-size: 1.3rem;
	}

	.price-box-note {
		font-size: 1.2rem;
	}

	.price-list {
		margin-top: 39px;
	}

	.price-listitem {
		position: relative;
		padding-left: 16px;
		font-size: 1.2rem;
		line-height: calc(34/24);
		&:before {
			left: 3px;
			font-size: 1.2rem;
			line-height: calc(34/24);
		}
	}

	.price-table {
		margin-top: 42px;
	}

	.price-table-title {
		height: 44px;
		padding-right: calc(47/315*100%);
		font-size: 1.3rem;
	}

	.price-table-text {
		height: 44px;
		padding-right: calc(61/315*100%);
		font-size: 1.3rem;
	}
}

/* ========================================
 ACCESSページ
========================================= */

.access-wrapper {
	position: relative;
	padding-top: 200px;
}

.access-logo {
	position: absolute;
	top: 82px;
	right: 17px;
	width: 430px;
}

.access-content {
	.container {
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.access-sections {
	display: flex;
	flex-direction: column;
	gap: 160px;
	width: 50%;
}

.access-section {
	padding-right: calc(80/600*100%);
}

.access-title {
	display: flex;
	flex-direction: column;
	gap: 30px;
	.en {
		font-family: var(--font-bevietnam);
		font-size: 1.6rem;
		font-weight: 300;
		line-height: 1;
		letter-spacing: 0.1em;
		text-box: trim-both cap alphabetic;
	}
	.jp {
		font-size: 2.4rem;
		line-height: 1;
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
}

.access-info {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 65px;
	margin-top: 86px;
}

.access-info-row {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.access-info-text {
	font-size: 2.4rem;
	line-height: calc(44/24);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.access-info-text-small {
	position: relative;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.access-info-gmap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 118px;
	height: 25px;
	border: 1px solid #395052;
	border-radius: 20px;
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	&:hover {
		text-decoration: none;
		opacity: 0.8;
	}
	&:before {
		content: '';
		display: block;
		width: 10px;
		height: 15px;
		background: url(../images/common/icon-flag-green.png) center center no-repeat;
		background-size: cover;
	}
}

.access-text {
	margin-top: 40px;
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.access-note {
	position: relative;
	margin-top: 30px;
	padding-left: 16px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	&:before {
		content: '※';
		position: absolute;
		top: -2px;
		left: 0;
		font-size: 1.4rem;
		line-height: 1;
	}
}

.access-flow {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 80px;
}

.access-flow-item {
	display: flex;
	flex-direction: column;
	gap: 19px;

	&:not(:last-child) {
		&:after {
			content: '';
			display: block;
			width: 96px;
			height: 23px;
			margin: 0 auto;
			background: #395052;
			clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
		}
	}
}

.access-flow-text {
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	span {
		position: relative;
		display: block;
		margin-top: 8px;
		padding-left: 16px;
		font-size: 1.4rem;
		line-height: calc(24/14);
		text-box: trim-both cap alphabetic;

		&::before {
			content: '※';
			position: absolute;
			top: -3px;
			left: 0;
			font-size: 1.4rem;
			line-height: 1;
		}
	}
}

.access-map {
  position: sticky;
  top: 100px;
  right: 0;
  flex: 1;
  height: auto;
  aspect-ratio: 600/497;
  filter: grayscale(100%);

  iframe {
    width: 100%;
    height: 100%;
  }
}

.access-caution {
	margin-top: 160px;
	padding-block: 160px;
	background: #395052;
	color: #fff;
}

.accesss-caution-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
}

.accesss-caution-lists {
	display: flex;
	justify-content: space-between;
	margin-top: 31px;
}

.accesss-caution-list {
	display: flex;
	flex-direction: column;
	gap: 28px;
	width: calc(560/1200*100%);
}

.accesss-caution-listitem {
	position: relative;
	padding-left: 16px;
	font-size: 1.6rem;
	line-height: calc(24/16);
	letter-spacing: 0.05em;

	strong {
		color: #fff44c;
	}

	&:before {
		content: '･';
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.6rem;
		line-height: calc(24/16);
	}
}

.accesss-caution-smallsection {
	&:not(:first-child) {
		margin-top: 55px;
	}
}

.accesss-caution-smalltitle {
	margin-bottom: 20px;
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.accesss-caution-boxes {
	display: flex;
	justify-content: space-between;
	margin-top: 93px !important;
}

.accesss-caution-box {
	width: calc(560/1200*100%);
}

@media (min-width: 769px) and (max-width: 1024px) {
	.access-info-text {
		font-size: 1.8rem;
	}

	.access-info-text-small {
		font-size: 1.2rem;
	}
}

@media (max-width: 768px) {
	.access-wrapper {
		padding-top: 170px;

		.container {
			max-width: 520px;
			padding: 0 10px;
		}
	}

	.access-logo {
		position: absolute;
		top: 56px;
		right: 10px;
		width: 168px;
	}

	.access-content {
		.container {
			flex-direction: column;
			padding-top: 0;
		}
	}

	.access-sections {
		gap: 118px;
		width: 100%;
	}

	.access-section {
		padding-inline: 20px;
	}

	.access-title {
		gap: 21px;
		.en {
			font-size: 1.2rem;
		}
		.jp {
			font-size: 1.6rem;
		}
	}

	.access-info {
		margin-top: 60px;
	}

	.access-info-row {
		gap: 15px;
	}

	.access-info-text {
		font-size: 1.6rem;
	}

	.access-info-text-small {
		font-size: 0.9rem;
	}

	.access-info-gmap {
		position: relative;
		top: 0;
		right: 0;
		gap: 8px;
		width: 240px;
		height: 48px;
		margin: 19px auto 0;
		border: 1px solid #9fb2b5;
		border-radius: 24px;
		font-size: 1.3rem;
		&:before {
			width: 10px;
			height: 13px;
		}
	}

	.access-text {
		margin-top: 38px;
		font-size: 1.2rem;
		line-height: calc(54/24);
	}

	.access-note {
		padding-left: 14px;
		font-size: 0.9rem;
		line-height: calc(38/18);

		&:before {
			font-size: 0.9rem;
		}
	}

	.access-flow {
		gap: 10px;
		margin-top: 70px;
	}

	.access-flow-item {
		gap: 12px;

		&:not(:last-child) {
			&:after {
				width: 48px;
				height: 12px;
			}
		}
	}

	.access-flow-text {
		font-size: 1.2rem;
		line-height: calc(32/24);

		span {
			margin-top: 8px;
			padding-left: 10px;
			font-size: 0.9rem;
			line-height: calc(28/18);

			&::before {
				top: -2px;
				font-size: 0.9rem;
			}
		}
	}

	.access-map {
		position: relative;
		top: 0;
		width: calc(100% + 20px);
		margin-left: -10px;
		aspect-ratio: 1;
	}

	.access-caution {
		margin-top: 120px;
		padding-block: 120px 80px;
	}

	.accesss-caution-title {
		font-size: 1.6rem;
	}

	.accesss-caution-lists {
		flex-direction: column;
		gap: 24px;
		margin-top: 32px;
	}

	.accesss-caution-list {
		gap: 24px;
		width: 100%;
	}

	.accesss-caution-listitem {
		padding-left: 14px;
		font-size: 1.2rem;
		line-height: calc(34/24);

		&:before {
			top: -2px;
			font-size: 1.2rem;
		}
	}

	.accesss-caution-smallsection {
		&:not(:first-child) {
			margin-top: 59px;
		}
	}

	.accesss-caution-smalltitle {
		margin-bottom: 18px;
		font-size: 1.2rem;
		line-height: calc(34/24);
		letter-spacing: 0.01em;
	}

	.accesss-caution-btn {
		width: 240px;
		height: 47px;
		margin-inline: auto;
	}

	.accesss-caution-boxes {
		display: flex;
		justify-content: initial;
		gap: 40px;
		flex-direction: column;
		margin-top: 60px !important;
	}

	.accesss-caution-box {
		width: 100%;
	}
}

/* ========================================
 FAQページ
========================================= */

.faq-wrapper {
	position: relative;
	margin-bottom: 160px;
	padding-top: 200px;
}

.faq-logo {
	position: absolute;
	top: 82px;
	right: 17px;
	width: 200px;
}

.faq-container {
	.container {
		position: relative;
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.faq-header {
	position: sticky;
	top: 100px;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 34px;
	width: calc(400/1200*100%);
}

.faq-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.faq-lead {
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	& a {
		text-decoration: underline;
	}
}

.faq-contents {
	flex: 1;
}

.faq-list {
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.faq-listitem {
	dl {
		display: flex;
		flex-direction: column;
		gap: 22px;
	}
	dt {
		position: relative;
		border-bottom: 1px solid #dfe6e7;
		padding-bottom: 31px;
		padding-left: 24px;
		font-size: 1.8rem;
		font-weight: 500;
		line-height: calc(44/18);
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;

		&:before {
			content: 'Q.';
			position: absolute;
			top: 0;
			left: 0;
			font-size: 1.8rem;
			font-weight: 500;
			line-height: calc(44/18);
			letter-spacing: 0.05em;
			text-box: trim-both cap alphabetic;
		}
	}

	dd {
		font-size: 1.6rem;
		line-height: calc(32/16);
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;

		& a {
			position: relative;
			transition: .3s;
			&:hover {
				text-decoration: none;
				opacity: 0.8;
			}
			&:after {
				content: '';
				position: absolute;
				bottom: -6px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #aeb5b5;
			}
		}
	}
}

@media (min-width: 769px) {
	.faq-listitem {
		dd {
			& a {
				&.tel {
					pointer-events: none;
					&::after {
						display: none;
					}
				}
			}
		}
	}
}

@media (max-width: 768px) {
	.faq-wrapper {
		margin-bottom: 0;
		padding-top: 170px;
	}

	.faq-logo {
		position: absolute;
		top: 54px;
		right: 10px;
		width: 78px;
	}

	.faq-container {
		.container {
			display: flex;
			flex-direction: column;
			max-width: 560px;
			gap: 122px;
			padding: 0 30px;
		}
	}

	.faq-header {
		position: relative;
		top: initial;
		gap: 23px;
		width: 100%;
	}

	.faq-title {
		font-size: 1.6rem;
	}

	.faq-lead {
		font-size: 1.2rem;
		line-height: calc(34/24);

		br {
			display: none;
		}
	}

	.faq-contents {
		width: 100%;
	}

	.faq-list {
		gap: 60px;
	}

	.faq-listitem {
		dl {
			gap: 16px;
		}
		dt {
			padding-bottom: 19.5px;
			padding-left: 18px;
			font-size: 1.3rem;
			line-height: calc(46/26);

			&:before {
				margin-right: 3px;
				font-size: 1.3rem;
				line-height: calc(46/26);
			}
		}

		dd {
			font-size: 1.2rem;
			line-height: calc(54/24);

			& a {
				&:after {
					bottom: -4px;
				}
			}
		}
	}
}

/* ========================================
 Termsページ
========================================= */

.terms-wrapper {
	position: relative;
	padding-top: 200px;
}

.terms-logo {
	position: absolute;
	top: 82px;
	right: 17px;
	width: 358px;
}

.precautions-container {
	margin-bottom: 160px;
	.container {
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.precautions-header {
	position: sticky;
	top: 100px;
	left: 0;
	width: calc(400/1200*100%);
	padding-right: 20px;
}

.precautions-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.precautions-lead {
	margin-top: 32px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.precautions-link {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 164px;
	height: 24px;
	margin-top: 20px;
	border: 1px solid #395052;
	border-radius: 12px;
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.precautions-contents {
	flex: 1;
}

.precautions-listitem {
	border-top: 1px solid #dfe6e7;
	padding-block: 40px;
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	&.strong {
		color: #b81313;
	}

	&:last-child {
		border-bottom: 1px solid #dfe6e7;
	}

	& a {
			position: relative;
			transition: .3s;
			&:hover {
				text-decoration: none;
				opacity: 0.8;
			}
			&:after {
				content: '';
				position: absolute;
				bottom: -6px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #aeb5b5;
			}
		}
}

.terms-container {
	padding-block: 60px 160px;
	background: #445b5e;
	color: #fff;

	.container {
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.terms-header {
	position: sticky;
	top: 100px;
	left: 0;
	width: calc(400/1200*100%);
}

.terms-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.terms-contents {
	flex: 1;
}

.terms-listitem {
	border-top: 1px solid #fff;
	padding-block: 40px;

	&:last-child {
		border-bottom: 1px solid #fff;
	}

	& a {
			position: relative;
			transition: .3s;
			&:hover {
				text-decoration: none;
				opacity: 0.8;
			}
			&:after {
				content: '';
				position: absolute;
				bottom: -6px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #fff;
			}
		}
}

.terms-listitem-title {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: calc(44/18);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.terms-listitem-text {
	margin-top: 20px;
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.terms-numlist {
	display: flex;
	flex-direction: column;
	gap: 50px;
	margin-top: 40px;
	counter-reset: item;
}

.terms-numlistitem {
	position: relative;
	padding-left: 26px;
	font-size: 1.6rem;
	line-height: calc(32/16);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	&:before {
		position: absolute;
		top: 0;
		left: 0;
		counter-increment: item;
  	content: counter(item);
		font-size: 1.6rem;
		line-height: calc(32/16);
		letter-spacing: 0.05em;
		text-box: trim-both cap alphabetic;
	}
}

@media screen and (min-width: 769px) and (max-width: 1024px) {
	.precautions-lead {
		br {
			display: none;
		}
	}
}

@media (max-width: 768px) {
	.terms-wrapper {
		padding-top: 170px;
	}

	.terms-logo {
		top: 55px;
		right: 10px;
		width: 142px;
	}

	.precautions-container {
		margin-bottom: 120px;
		.container {
			flex-direction: column;
			max-width: 560px;
			gap: 115px;
			padding: 0 30px;
		}
	}

	.precautions-header {
		position: relative;
		top: 0;
		width: 100%;
		padding-right: 0
	}

	.precautions-title {
		font-size: 1.6rem;
	}

	.precautions-lead {
		margin-top: 20px;
		font-size: 1.2rem;
		line-height: calc(34/24);
	}

	.precautions-link {
		width: 240px;
		height: 48px;
		margin: 20px auto 0;
		border: 1px solid #9fb2b5;
		border-radius: 24px;
		font-size: 1.3rem;
	}

	.precautions-contents {
		width: 100%;
	}

	.precautions-listitem {
		padding-block: 30px;
		font-size: 1.2rem;
		line-height: calc(54/24);

		& a {
			&:after {
				bottom: -4px;
			}
		}
	}

	.terms-container {
		padding-block: 120px 115px;

		.container {
			flex-direction: column;
			max-width: 560px;
			gap: 40px;
			padding: 0 30px;
		}
	}

	.terms-header {
		position: relative;
		top: 0;
		width: 100%;
	}

	.terms-title {
		font-size: 1.6rem;
	}

	.terms-contents {
		width: 100%;
	}

	.terms-listitem {
		padding-block: 30px;

		& a {
			&:after {
				bottom: -4px;
			}
		}
	}

	.terms-listitem-title {
		font-size: 1.2rem;
		line-height: calc(54/24);
	}

	.terms-listitem-text {
		margin-top: 24px;
		font-size: 1.2rem;
		line-height: calc(54/24);
	}

	.terms-numlist {
		gap: 42px;
		margin-top: 25px;
	}

	.terms-numlistitem {
		padding-left: 23px;
		font-size: 1.2rem;
		line-height: calc(54/24);

		&:before {
			font-size: 1.2rem;
			line-height: calc(54/24);
		}
	}
}

/* ========================================
 Contactページ
========================================= */

.contact-wrapper {
	position: relative;
	padding-top: 200px;

	.sub_section {
		padding-block: 160px;
	}
}

.contact-logo {
	position: absolute;
	top: 89px;
	right: 13px;
	width: 546px;
}

.contact-content {
	.container {
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.contact-header {
	position: sticky;
	top: 100px;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 30px;
	width: calc(400/1200*100%);
	padding-right: 20px;
}

.contact-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.contact-text {
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.contact-formbox {
	flex: 1;
}

.contact-formlist {
	display: flex;
	flex-direction: column;
	gap: 39px;
}

.contact-formlistitem {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.contact-formlistitem-title {
	font-size: 1.4rem;
	line-height: 1.5;
	letter-spacing: 0.1em;
	text-box: trim-both cap alphabetic;

	sup {
		font-size: 0.8rem;
		line-height: 1;
		vertical-align: super;
	}
}

.contact-formlistitem-input {
	width: 100%;

	&.u-long {
		input {
			max-width: initial;
		}
	}

	span {
		width: 100%;
	}

	input {
		width: 100%;
		max-width: 400px;
		height: 45px;
		padding-inline: 16px;
		border: 1px solid #c7cccd;
		font-size: 1.6rem;
		font-family: "Noto Sans JP", YuGothic, "Yu Gothic", "Yu Gothic UI", "ＭＳ ゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
		color: #395052;
		line-height: 43px;
		letter-spacing: 0.075em;

		&::placeholder {
			font-size: 1.4rem;
			color: #a7b1b2;
			letter-spacing: 0.075em;
		}
	}
}

.contact-formlistitem-textarea {
	width: 100%;

	span {
		width: 100%;
	}

	textarea {
		width: 100%;
		height: 160px;
		padding: 12px 16px;
		border: 1px solid #c7cccd;
		font-size: 1.6rem;
		font-family: "Noto Sans JP", YuGothic, "Yu Gothic", "Yu Gothic UI", "ＭＳ ゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
		color: #395052;
		line-height: calc(24/16);
		letter-spacing: 0.075em;
		resize: vertical;

		&::placeholder {
			font-size: 1.4rem;
			color: #a7b1b2;
			letter-spacing: 0.075em;
		}
	}
}

.contact-form-acceptance {
	margin-top: 40px;

	.wpcf7-list-item {
		margin-left: 0;
	}

	label {
		position: relative;
		display: flex;
		align-items: center;
		gap: 13px;
		cursor: pointer;
	}

	.contact-form-acceptance-check {
		position: relative;
		z-index: 1;
		width: 21px;
		height: 21px;
		border: 1px solid #9c9a97;
		cursor: pointer;
		&:checked {
      background-color: #395052;
      border-color: 395052;

      &::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -60%) rotate(45deg);
        width: 5px;
        height: 10px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
      }
    }
	}

	.wpcf7-list-item-label {
		font-size: 1.4rem;
		line-height: 1.5;
		letter-spacing: 0.1em;

		& a {
			position: relative;

			&:after {
				content: '';
				position: absolute;
				bottom: -5px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #395052;
			}
		}
	}
}

.contact-form-submit {
	position: relative;
	width: fit-content;
	margin-top: 42px;

	input {
		width: 300px;
		height: 70px;
		border-radius: 40px;
		background: #395052;
		font-size: 1.6rem;
		color: #fff;
		letter-spacing: 0.075em;
		cursor: pointer;
		&:hover {
			transition: .3s;
			opacity: .8;
		}
		&:disabled {
			opacity: 0.8;
			cursor: not-allowed;
		}
	}

	&:after {
		content: '';
		position: absolute;
		top: 50%;
		right: 30px;
		translate: 0 -50%;
		rotate: 45deg;
		width: 13px;
		height: 13px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		pointer-events: none;
	}

	.wpcf7-spinner {
		display: none;
	}
}

.wpcf7-not-valid-tip {
	margin-top: 8px;
	font-size: 1.2rem;
	color: #b81313;
}

.wpcf7-response-output {
	padding: 20px !important;
	font-size: 1.6rem;
	line-height: 1.5;
	color: #395052;
}

/* 送信成功時にフォームの内容を非表示 */
.wpcf7-form.sent > *:not(.wpcf7-response-output) {
  display: none;
}

/* 送信完了メッセージは表示 */
.wpcf7-form.sent .wpcf7-response-output {
  display: block !important;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.contact-logo {
			top: 100px;
			width: 450px;
		}
}

@media (max-width: 768px) {
	.contact-wrapper {
		padding-top: 172px;

		.container {
			max-width: 560px;
			padding: 0 30px;
		}

		.sub_section {
			padding-block: 120px;
		}
	}

	.contact-logo {
		top: 55px;
		right: 10px;
		width: 220px;
	}

	.contact-content {
		.container {
			flex-direction: column;
			gap: 77px;
			padding-top: 0;
		}
	}

	.contact-header {
		position: relative;
		top: 0;
		left: 0;
		gap: 20px;
		width: 100%;
		padding-right: 0;
	}

	.contact-title {
		font-size: 1.6rem;
	}

	.contact-text {
		font-size: 1.2rem;
		line-height: calc(34/24);
	}

	.contact-formbox {
		width: 100%;
	}

	.contact-formlistitem {
		gap: 10px;
	}

	.contact-formlistitem-title {
		line-height: calc(36/28);
		small {
			font-size: 1.2rem;
		}
	}

	.contact-formlistitem-input {
		input {
			height: 40px;
			padding-inline: 12px;
			line-height: 38px;
			letter-spacing: 0.05em;

			&::placeholder {
				font-size: 1.3rem;
				letter-spacing: 0.05em;
			}
		}
	}

	.contact-formlistitem-textarea {
		textarea {
			height: 120px;
			padding: 12px;
			letter-spacing: 0.05em;

			&::placeholder {
				font-size: 1.3rem;
				letter-spacing: 0.05em;
			}
		}
	}

	.contact-form-acceptance {
		.wpcf7-list-item-label {
			letter-spacing: 0.05em;
		}
	}

	.contact-form-submit {
		margin: 42px auto 0;

		input {
			width: 240px;
			height: 48px;
			font-size: 1.3rem;
			letter-spacing: 0.05em;
		}

		&:after {
			right: 18px;
			width: 10px;
			height: 10px;
		}

	}

	.wpcf7-response-output {
		font-size: 1.4rem;
	}

}

/* ========================================
 Reserveページ
========================================= */

/* ========================================
 GUIDEページ
========================================= */

.reserve-wrapper {
	position: relative;
	padding-top: 300px;

	.sub_section {
		padding-block: 160px 247px;
	}
}

.reserve-logo {
	position: absolute;
	top: 84px;
	right: 13px;
	width: 422px;
}

.reserve-parallax-container {
	position: relative;
}

.reserve-bg-splide {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100vw;
	height: auto;

	.splide__slide {
		width: 100%;
		height: auto;

		figure {
			position: relative;
			width: 100%;
			height: 100vh;
			img {
				position: absolute;
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
}

.reserve-parallax-content {
	width: calc(100% - 40px);
	max-width: 640px;
	margin: calc(-100vh + 455px) auto 0;
	padding-bottom: 240px;
}

.reserve-sections {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 160px;
	width: 100%;
	padding: 160px 20px 240px;
	background: #fff;
}

.reserve-section-btn {
	width: 340px;
	height: 70px;
	margin-inline: auto;
	border: 1px solid #9fb2b5;
	border-radius: 35px;
	font-size: 1.8rem;
	color: #395052;
}

.reserve-section {
	width: 100%;
	max-width: 420px;
	margin: 0 auto ;
}

.reserve-title {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.reserve-flowlist {
	margin-top: 40px;
}

.reserve-flowlistitem {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 30px;
	padding: 50px calc(35/420*100%) 32px;
	color: #fff;
	background: #395052;

	&:first-child {
		padding-top: 40px;
	}

	&:last-child {
		padding-bottom: 44px;
	}

	&:after {
		content: '';
		position: absolute;
		top: calc(100% - 1px);
		left: 0;
		width: 100%;
		height: 20px;
		clip-path: polygon(0% 0%, 100% 0%, 100% 1px, 50% 100%, 0% 1px);
	}

	&:nth-child(1) {
		z-index: 4;
		background: #6d8486;
		&:after {
			background: #6d8486;
		}
	}

	&:nth-child(2) {
		z-index: 3;
		background: #5c7173;
		&:after {
			background: #5c7173;
		}
	}

	&:nth-child(3) {
		z-index: 2;
		background: #455d5f;
		&:after {
			background: #455d5f;
		}
	}

	&:nth-child(4) {
		z-index: 1;
		background: #395052;
		&:after {
			display: none;
		}
	}
}

.reserve-flowlistitem-title {
	font-size: 1.8rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.reserve-flowlistitem-text {
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	a {
		text-decoration: underline;
	}

	sup {
		font-size: 0.6em;
		vertical-align: super;
	}
}

.reserve-list {
	display: flex;
	flex-direction: column;
	gap: 36px;
	margin-top: 40px;
}

.reserve-listitem {
	position: relative;
	padding-left: 18px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
	&:before {
		content: '※';
		position: absolute;
		top: -3px;
		left: 0;
		font-size: 1.4rem;
		line-height: 1;
	}
}

.reserve-text {
	margin-top: 36px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	a {
		text-decoration: underline;
	}
}

.reserve-formarea {
	padding-top: 140px;

	.container {
		display: flex;
		align-items: flex-start;
		padding-top: 100px;
	}
}

.reserve-formheader {
	position: sticky;
	top: 100px;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 30px;
	width: calc(400/1200*100%);
	padding-right: 20px;
}

.reserve-formtitle {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.reserve-formtext {
	max-width: 294px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;

	&.strong {
		color: #b81313;
	}

	a {
		position: relative;
		text-decoration: none;
		color: #b81313;
		&:hover {
			opacity: 0.8;
		}
		&::after {
			content: '';
			position: absolute;
			bottom: -6px;
			left: 0;
			width: 100%;
			height: 1px;
			background: #b81313;
		}
	}
}

.reserve-formbox {
	flex: 1;
}

.reserve-form-progresslist {
	display: flex;
	gap: 98px;
}

.reserve-form-progresslistitem {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 150px;
	height: 62px;
	border: 1px solid #395052;
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0.075em;
	&:first-child {
		background: #395052;
		color: #fff;
		&:before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			width: calc(100% - 2px);
			height: calc(100% - 2px);
			border: 1px solid #fff;
		}
	}
	&:not(:last-child) {
		&:after {
			content: '';
			position: absolute;
			top: 50%;
			right: -30px;
			translate: 100% -50%;
			width: 40px;
			height: auto;
			aspect-ratio: 40 / 20;
			background: url(../images/reserve/icon-progress_arrow.png) center center / cover no-repeat;
		}
	}
}

.wpcf7-form.sent .reserve-form-progresslistitem {
	&:first-child {
		background: none;
		color: #395052;
		&:before {
			display: none;
		}
	}
  &:last-child {
		background: #395052;
		color: #fff;
		&:before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			width: calc(100% - 2px);
			height: calc(100% - 2px);
			border: 1px solid #fff;
		}
	}
}

.p-reserve__formlist {
	margin-top: 42px;
}

.p-reserve__form__label {
	margin-bottom: 16px;
  font-size: 1.4rem;
	line-height: calc(21/14);
  letter-spacing: .1em;
	text-box: trim-both cap alphabetic;

	&:not(:first-child) {
		margin-top: 30px;
	}

	sup {
		font-size: 0.7rem;
		vertical-align: super;
	}

  & .u-red {
    color: #b81313;
  }

	&.u-margin_top_adjust {
		margin-top: 20px;
	}
}

.p-reserve__form__label a {
  position: relative;
  text-decoration: none;
	color: #395052;

	&.u-red {
		text-decoration: underline;

		&:after {
			display: none;
		}
	}
}

.p-reserve__form__label a::after {
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 1px;
  content: '';
  background-color: #395052;;
}

.p-reserve__form__label-comment {
  font-size: 85%;
  display: block;
  padding-bottom: 10px;
}

.p-reserve__form__date-checkbox {
  line-height: 1;
  margin-bottom: 1.25rem;
}

.js-reserve__form-disabled.disabled {
  opacity: .3;
}

.mw_wp_form_confirm .js-reserve__form-disabled.disabled {
  opacity: 1;
}

.p-reserve__form__text,
.p-reserve__form__email,
.p-reserve__form__textarea,
.p-reserve__form__select,
.p-reserve__form__select-short,
.p-reserve__form__date {
  font-size: 1.6rem;
  width: 100%;
  height: 4.4rem;
  padding: 0 16px;
  border: 1px solid #c7cccd;
	line-height: calc(100% - 2px);

	&.u-small {
		max-width: 220px;
	}

	&.u-half {
		max-width: 400px;
	}
}

.p-reserve__form__text::placeholder,
.p-reserve__form__email::placeholder,
.p-reserve__form__textarea::placeholder,
.p-reserve__form__select::placeholder,
.p-reserve__form__select-short::placeholder,
.p-reserve__form__date::placeholder {
	font-size: 1.4rem;
  color: #a7b1b2;
}

.p-reserve__form__email {
  width: 100%;
}

.p-reserve__form__textarea {
  width: 100%;
  height: 80px;
  padding: 8px 16px;
	line-height: 1.4;
  resize: vertical;
}

.js-parking_content {
	display: none;
	margin-top: 40px;

	&.js-show {
		display: block;
	}
}

.p-reserve__form__usage__textarea {
  margin-top: 16px;
}

.p-reserve__form__radio {
	display: flex;
	gap: 60px;

	&.js-parking {
		gap: 17px;
		margin-top: 26px;
	}

	.wpcf7-list-item {
		margin-left: 0;
	}

	label {
		position: relative;
		display: flex;
		align-items: center;
		gap: 10px;
		cursor: pointer;

		input {
			width: 16px;
			height: 16px;
			margin: 0;
			appearance: none;
			border: 1px solid #9e9c99;
			border-radius: 50%;
			cursor: pointer;
			&:checked {
				&::before {
					content: '';
					position: absolute;
					top: 50%;
					left: 3.2px;
					transform: translate(0, -50%);
					width: 10px;
					height: 10px;
					border-radius: 50%;
					background-color: #395052;
				}
			}
		}
	}

	.wpcf7-list-item-label {
		font-size: 1.4rem;
		line-height: calc(16/14);
		letter-spacing: .1em;
	}
}

.p-reserve__form__select__cover {
  position: relative;
  width: 100%;
	max-width: 400px;
  background: no-repeat url(../images/common/icon-chevron_below.svg) top 18px right 12px/20px;
  background-color: #fff;
	cursor: pointer;
}

.p-reserve__form__select__cover .error {
  position: absolute;
}

.p-reserve__form__select__cover-short {
  width: 80px;
  background: no-repeat url(../images/common/icon-time_chevron.svg) top 12px right 12px/14px;
  background-color: #fff;
  background-size: 14px auto;
}

.p-reserve__form__select,
.p-reserve__form__select-short {
  color: #395052;
  background-color: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.p-reserve__form__select option {
  color: #333;
}

.p-reserve__form__date__cover {
  position: relative;
  width: 220px;
  margin-bottom: 20px;

	span {
		width: 100%;
	}

	input {
		width: 100%;
	}

	.wpcf7-form-control::-webkit-calendar-picker-indicator {
			width: 100%;
			height: 100%;
			padding: 0;
			margin: 0;
			opacity: 0;
			position: absolute;
			top: 0;
			left: 0;
	}

	/* 日付入力のプレースホルダー色を変更 */
	input[type="date"]::-webkit-input-placeholder {
		color: #a7b1b2;
	}

	input[type="date"]::-moz-placeholder {
		color: #a7b1b2;
		opacity: 1;
	}

	input[type="date"]:-ms-input-placeholder {
		color: #a7b1b2;
	}

	input[type="date"]::placeholder {
		color: #a7b1b2;
	}

	/* 日付の表示部分にスペースを追加 */
	input[type="date"]::-webkit-datetime-edit-year-field {
		margin-left: 5px;
	}

	input[type="date"]::-webkit-datetime-edit-month-field {
		margin-left: 6px; /* 月の前にマージン */
		margin-right: 5px;
	}

	input[type="date"]::-webkit-datetime-edit-day-field {
		margin-left: 6px; /* 日の前にマージン */
	}
}

.p-reserve__form__date__cover:after {
  position: absolute;
  top: 14px;
  right: 14px;
  display: block;
  width: 18px;
  height: 16px;
  content: '';
  pointer-events: none;
  background: url(../images/common/icon-calendar.svg) 50% 50% / contain no-repeat;
}

.p-reserve__form__usage__checkbox {
	display: flex;
	align-items: center;
	gap: 30px;

	.wpcf7-list-item {
		margin-left: 0;
	}

	label {
		position: relative;
		display: flex;
		align-items: center;
		gap: 13px;
		cursor: pointer;
	}

	input {
		position: relative;
		z-index: 1;
		width: 21px;
		height: 21px;
		border: 1px solid #9c9a97;
		cursor: pointer;
		&:checked {
      background-color: #395052;
      border-color: 395052;

      &::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -60%) rotate(45deg);
        width: 5px;
        height: 10px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
      }
    }
	}

	.wpcf7-list-item-label {
		font-size: 1.4rem;
		line-height: 1.5;
		letter-spacing: 0.1em;

		& a {
			position: relative;

			&:after {
				content: '';
				position: absolute;
				bottom: -5px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #395052;
			}
		}
	}
}

.p-reserve__form__confirm__cover {
	margin-top: 40px;

	.wpcf7-list-item {
		margin-left: 0;
	}

	label {
		position: relative;
		display: flex;
		align-items: center;
		gap: 13px;
		cursor: pointer;
	}

	.p-reserve__form__confirm {
		position: relative;
		z-index: 1;
		width: 21px;
		height: 21px;
		border: 1px solid #9c9a97;
		cursor: pointer;
		&:checked {
      background-color: #395052;
      border-color: 395052;

      &::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -60%) rotate(45deg);
        width: 5px;
        height: 10px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
      }
    }
	}

	.wpcf7-list-item-label {
		font-size: 1.4rem;
		line-height: 1.5;
		letter-spacing: 0.1em;

		& a {
			position: relative;

			&:after {
				content: '';
				position: absolute;
				bottom: -5px;
				left: 0;
				width: 100%;
				height: 1px;
				background: #395052;
			}
		}
	}
}

.p-reserve__form__submit__cover {
	position: relative;
	width: fit-content;
	margin-top: 42px;

	input {
		width: 300px;
		height: 70px;
		border-radius: 40px;
		background: #395052;
		font-size: 1.6rem;
		color: #fff;
		letter-spacing: 0.075em;
		cursor: pointer;
		&:hover {
			transition: .3s;
			opacity: .8;
		}
		&:disabled {
			opacity: 0.8;
			cursor: not-allowed;
		}
	}

	&:after {
		content: '';
		position: absolute;
		top: 50%;
		right: 30px;
		translate: 0 -50%;
		rotate: 45deg;
		width: 13px;
		height: 13px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		pointer-events: none;
	}

	.wpcf7-spinner {
		display: none;
	}
}

.p-reserve__form__date {
  color: #395052;
	text-align: left;
}

.p-reserve__form__number__cover {
  display: flex;
	align-items: center;
	gap: 28px;
	font-size: 14px;
}

.p-reserve__form__number__start {
  display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
}

.p-reserve__form__number__end {
  display: flex;
  align-items: center;
	gap: 12px;
	font-size: 14px;
}

.p-reserve__form__number__item {
  position: relative;
	margin-left: 0;
}

.p-reserve__form__number {
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  margin: 0;
  margin-right: .9375rem;
  padding: 0;
  padding-left: 1.25rem;
  border: 1px solid #b5b3b0;
  -moz-appearance: textfield;
}

.mwform-checkbox-field-text {
  font-size: .875rem;
}

.p-reserve__form__number::-webkit-inner-spin-button,
.p-reserve__form__number::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.p-reserve__form__number__nav {
  position: absolute;
  top: 0;
  right: .875rem;
  bottom: 0;
}

.p-reserve__form__number__up,
.p-reserve__form__number__down {
  font-family: 'Trebuchet MS', Helvetica, sans-serif !important;
  font-size: 13px;
  line-height: 1.7;
  position: absolute;
  width: 20px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  user-select: none;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  text-align: center;
  color: #333;
  -o-user-select: none;
}

.p-reserve__form__number__up {
  position: absolute;
  top: 0;
  height: 50%;
  background: url(../images/common/icon-linearrow_up.svg) 50% 80% no-repeat;
}

.p-reserve__form__number__down {
  position: absolute;
  bottom: 0;
  height: 50%;
  background: url(../images/common/icon-linearrow_below.svg) 50% 20% no-repeat;
}

#l-reserve__rokehan {
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 7.5rem 0 0;
}

#l-reserve__rokehan .c-container {
  max-width: 800px;
  padding: 0 2.5rem;
}

.p-reserve__rokehan__text {
  font-size: .875rem;
  font-weight: 500;
  line-height: calc(30 / 14);
  margin: .9375rem auto 0;
  letter-spacing: .05em;
}

.p-reserve__rokehan__text a {
  position: relative;
  text-decoration: none;
  color: #333;
}

.p-reserve__rokehan__text a::after {
  position: absolute;
  bottom: 2px;
  left: 0;
  width: 100%;
  height: 1px;
  content: '';
  background-color: #afafaf;
}

#l-reserve__phone {
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 6.875rem 0 0;
}

#l-reserve__phone .c-container {
  max-width: 800px;
  padding: 0 2.5rem;
}

.p-reserve__phone__text {
  font-size: .875rem;
  font-weight: 500;
  line-height: calc(30 / 14);
  margin: .9375rem auto 0;
  letter-spacing: .05em;
}

.p-reserve__phone__text:last-child {
  margin: 1.5rem auto 0;
}

.p-reserve__phone__infobox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 1.375rem auto 0;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.p-reserve__phone__infobox dt {
  font-size: .75rem;
  font-weight: 500;
  line-height: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 5.0625rem;
  height: 1.1875rem;
  letter-spacing: .075em;
  border: 1px solid #999;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.p-reserve__phone__infobox dd {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-left: 1rem;
  letter-spacing: .075em;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
}

.p-reserve__phone__infobox dd .u-small {
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  margin-left: 1.75rem;
  letter-spacing: .075em;
}

#l-reserve__linkarea {
  width: 100%;
  height: auto;
  padding: 21.0625rem 0 20.625rem;
}

.p-reserve__linkarea__linkbox {
  display: block;
  width: 36.25rem;
  max-width: 80%;
  height: auto;
  margin: 0 auto;
}

.p-reserve__linkarea__linkbox.js-sclollslide {
  -webkit-transition: opacity .5s;
  transition: opacity .5s;
  opacity: 0;
}

.p-reserve__linkarea__linkbox.js-sclollslide.js-active {
  opacity: 1;
}

.p-reserve__linkarea__linkbox.js-sclollslide.js-active::before {
  -webkit-transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
  transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
  transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, transform .3s cubic-bezier(0, 0, 0, 1) .55s;
  transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, transform .3s cubic-bezier(0, 0, 0, 1) .55s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
  opacity: 1;
}

.p-reserve__linkarea__linkbox::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: '';
  -webkit-transition: -webkit-transform .6s ease-in-out;
  transition: -webkit-transform .6s ease-in-out;
  transition: transform .6s ease-in-out;
  transition: transform .6s ease-in-out, -webkit-transform .6s ease-in-out;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  pointer-events: none;
  opacity: 0;
  background-color: #000;
}

.p-reserve__linkarea__linkbox:hover::after {
  -webkit-transform: translateX(110%);
  transform: translateX(110%);
  opacity: 1;
}

.p-reserve__thanks {
  font-size: .875rem;
  font-weight: 500;
  line-height: calc(30 / 14);
  letter-spacing: .1em;
}

.reserve-modal {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 90%;
	max-width: 840px;
	height: auto;
}

.reserve-modal-content {
	position: relative;
	width: 100%;
	height: auto;
	max-height: calc(90dvh - 130px);
	padding: 40px min(calc(40/840*100%),40px) 40px;
	background: #395052;
	color: #fff;
	overflow-y: auto;
}

.reserve-modal-title {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
	text-box: trim-both cap alphabetic;
}

.reserve-modal-img {
	position: absolute;
	top: 40px;
	right: min(calc(40/840*100%),40px);
	width: calc(240/840*100%);
	height: auto;

	figcaption {
		margin-top: 8px;
		font-size: 1.4rem;
		font-family: var(--font-bevietnam);
		font-weight: 300;
		line-height: 1;
		letter-spacing: 0;
		text-box: trim-both cap alphabetic;
	}
}

.reserve-modal-list {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-top: 15px;
}

.reserve-modal-listitem {
	position: relative;
	padding-left: 10px;
	font-size: 1.4rem;
	line-height: calc(24/14);
	letter-spacing: 0.05em;

	&:nth-child(-n+5) {
		width: calc(480/760*100%);
	}

	&.u-strong {
		color: #fff44c;

		&:before {
			color: #fff44c;
		}
	}

	strong {
		color: #fff44c;
	}

	&:before {
		content: '・';
		position: absolute;
		top: 0;
		left: 0;
		font-size: 1.4rem;
		line-height: calc(24/14);
		letter-spacing: 0.05em;
	}
}

.reserve-modal-close {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 300px;
	height: 70px;
	margin: 30px auto 0;
	border-radius: 40px;
	border: none;
	background: #395052;
	font-size: 1.6rem;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.075em;

	&:after {
		content: '';
		position: absolute;
		top: 50%;
		right: 30px;
		translate: 0 -50%;
		rotate: 45deg;
		width: 13px;
		height: 13px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		pointer-events: none;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.reserve-form-progresslist {
		display: flex;
		gap: 60px;
	}

	.reserve-form-progresslistitem {
		width: 120px;
		height: 45px;
		font-size: 1.2rem;
		&:not(:last-child) {
			&:after {
				right: -15px;
				width: 30px;
			}
		}
	}
}

@media (max-width: 768px) {
	.reserve-wrapper {
		padding-top: 172px;

		.sub_section {
			padding-block: 120px 160px;
		}
	}

	.reserve-logo {
		top: 57px;
		right: 10px;
		width: 167px;
	}

	.reserve-bg-splide {
		position: relative;

		.splide__slide {
			figure {
				height: auto;
				img {
					position: relative;
					height: auto;
					object-fit: initial;
				}
			}
		}
	}

	.reserve-parallax-content {
		width: calc(100% - 60px);
		max-width: 500px;
		margin: 80px auto 0;
		padding-bottom: 0;
	}

	.reserve-sections {
		gap: 120px;
		padding: 0;
	}

	.reserve-section-btn {
		width: 240px;
		height: 48px;
		margin-bottom: -40px;
		padding: 0;
		font-size: 1.3rem;
	}

	.reserve-section {
		max-width: initial;
	}

	.reserve-title {
		font-size: 1.6rem;
	}

	.reserve-flowlist {
		margin-top: 40px;
	}

	.reserve-flowlistitem {
		gap: 20px;
		padding: 33px calc(35/420*100%) 26px;

		&:first-child {
			padding-top: 24px;
		}

		&:last-child {
			padding-bottom: 30px;
		}

		&:after {
			height: 16px;
		}
	}

	.reserve-flowlistitem-title {
		font-size: 1.4rem;
	}

	.reserve-flowlistitem-text {
		font-size: 1.2rem;
		line-height: calc(34/24);
	}

	.reserve-list {
		gap: 24px;
		margin-top: 30px;
	}

	.reserve-listitem {
		padding-left: 21px;
		font-size: 1.2rem;
		line-height: calc(34/24);

		&:before {
			top: -3px;
			left: 2px;
			font-size: 1.2rem;
		}
	}

	.reserve-text {
		margin-top: 21px;
		font-size: 1.2rem;
		line-height: calc(34/24);
	}

	.reserve-formarea {
		padding-top: 190px;

		.container {
			flex-direction: column;
			gap: 40px;
			max-width: 560px;
			padding: 0 30px;
		}
	}

	.reserve-formheader {
		position: relative;
		top: 0;
		gap: 22px;
		width: 100%;
		padding-right: 0;
	}

	.reserve-formtitle {
		font-size: 1.5rem;
	}

	.reserve-formtext {
		max-width: initial;
		font-size: 1.2rem;
		line-height: calc(34/24);

		a {
			&::after {
				bottom: -4px;
			}
		}
	}

	.reserve-formbox {
		width: 100%;
	}

	.reserve-form-progresslist {
		gap: 52px;
	}

	.reserve-form-progresslistitem {
		width: calc(100% / 3 - 104px / 3);
		max-width: 180px;
		height: 38px;
		font-size: 1rem;

		&:not(:last-child) {
			&:after {
				right: -13px;
				width: 25px;
			}
		}
	}

	.p-reserve__formlist {
		margin-top: 40px;
	}

	.p-reserve__form__label {
		margin-bottom: 10px;
		letter-spacing: .05em;

		&:not(:first-child) {
			margin-top: 40px;
		}

		&.u-margin_top_adjust {
			margin-top: 40px;
		}

		.u-small {
			font-size: 1.2rem;
		}

		.u-smallest {
			display: block;
			margin-bottom: 20px;
			font-size: 0.9rem;
			letter-spacing: 0.02em;
		}

		.js-dialog_open {
			display: block;
			margin-top: 12px;
		}
	}

	.p-reserve__form__date-checkbox {
		margin-bottom: 10px;
	}

	.p-reserve__form__text,
	.p-reserve__form__email,
	.p-reserve__form__textarea,
	.p-reserve__form__select,
	.p-reserve__form__select-short,
	.p-reserve__form__date {
		height: 4rem;
		padding: 0 12px;

		&.u-small {
			max-width: initial;
		}
	}

	.p-reserve__form__text::placeholder,
	.p-reserve__form__email::placeholder,
	.p-reserve__form__textarea::placeholder,
	.p-reserve__form__select::placeholder,
	.p-reserve__form__select-short::placeholder,
	.p-reserve__form__date::placeholder {
		font-size: 1.3rem;
	}

	.p-reserve__form__textarea {
		height: 70px;
		padding: 8px 12px;

		&.u-large {
			height: 120px;
		}
	}

	.js-parking_content {
		display: none;
		margin-top: 40px;

		&.js-show {
			display: block;
		}
	}

	.p-reserve__form__usage__textarea {
		margin-top: 16px;
	}

	.p-reserve__form__radio {
		gap: 87px;

		&.js-parking {
			gap: 16px;
			margin-top: 20px;

			label {
				gap: 6.5px;
			}

			.wpcf7-list-item-label {
				letter-spacing: .05em;
			}
		}

		label {
			gap: 8.5px;

			input {
				width: 21px;
				height: 21px;
				&:checked {
					&::before {
						left: 3.2px;
						width: 15px;
						height: 15px;
					}
				}
			}
		}

		.wpcf7-list-item-label {
			letter-spacing: .075em;
		}
	}

	.p-reserve__form__select__cover {
		background: no-repeat url(../images/common/icon-chevron_below.svg) top 18px right 10px/15px;
	}

	.p-reserve__form__select__cover .error {
		position: absolute;
	}

	.p-reserve__form__select__cover-short {
		width: 55px;
		background: no-repeat url(../images/common/icon-time_chevron.svg) top 13px right 8px;
		background-size: 7.5px auto;
	}

	.p-reserve__form__date__cover {
		margin-bottom: 10px;
	}

	.p-reserve__form__date__cover:after {
		top: 14px;
		width: 12.5px;
		height: 12px;
	}

	.p-reserve__form__usage__checkbox {
		display: flex;
		align-items: center;
		gap: 30px;

		.wpcf7-list-item {
			margin-left: 0;
		}

		label {
			position: relative;
			display: flex;
			align-items: center;
			gap: 13px;
			cursor: pointer;
		}

		input {
			position: relative;
			z-index: 1;
			width: 21px;
			height: 21px;
			border: 1px solid #9c9a97;
			cursor: pointer;
			&:checked {
				background-color: #395052;
				border-color: 395052;

				&::before {
					content: '';
					position: absolute;
					top: 50%;
					left: 50%;
					transform: translate(-50%, -60%) rotate(45deg);
					width: 5px;
					height: 10px;
					border-right: 2px solid #fff;
					border-bottom: 2px solid #fff;
				}
			}
		}

		.wpcf7-list-item-label {
			font-size: 1.4rem;
			line-height: 1.5;
			letter-spacing: 0.1em;

			& a {
				position: relative;

				&:after {
					content: '';
					position: absolute;
					bottom: -5px;
					left: 0;
					width: 100%;
					height: 1px;
					background: #395052;
				}
			}
		}

		&.js-usage_check {
			gap: 0;

			.wpcf7-list-item {
				width: 50%;
			}
		}
	}

	.p-reserve__form__confirm__cover {
		margin-top: 40px;

		.wpcf7-list-item {
			margin-left: 0;
		}

		label {
			position: relative;
			display: flex;
			align-items: center;
			gap: 13px;
			cursor: pointer;
		}

		.p-reserve__form__confirm {
			position: relative;
			z-index: 1;
			width: 21px;
			height: 21px;
			border: 1px solid #9c9a97;
			cursor: pointer;
			&:checked {
				background-color: #395052;
				border-color: 395052;

				&::before {
					content: '';
					position: absolute;
					top: 50%;
					left: 50%;
					transform: translate(-50%, -60%) rotate(45deg);
					width: 5px;
					height: 10px;
					border-right: 2px solid #fff;
					border-bottom: 2px solid #fff;
				}
			}
		}

		.wpcf7-list-item-label {
			font-size: 1.4rem;
			line-height: 1.5;
			letter-spacing: 0.1em;

			& a {
				position: relative;

				&:after {
					content: '';
					position: absolute;
					bottom: -5px;
					left: 0;
					width: 100%;
					height: 1px;
					background: #395052;
				}
			}
		}
	}

	.p-reserve__form__submit__cover {
		margin: 40px auto 0;

		input {
			width: 240px;
			height: 48px;
			font-size: 1.3rem;
			letter-spacing: 0.05em;
		}

		&:after {
			right: 22px;
			width: 11px;
			height: 11px;
		}
	}

	.p-reserve__form__date {
		width: 13.75rem;
	}

	.p-reserve__form__number__cover {
		flex-wrap: wrap;
		gap: 10px 5px;
		font-size: 12px;
	}

	.p-reserve__form__number__start {
		font-size: 12px;
	}

	.p-reserve__form__number__end {
		font-size: 12px;
	}

	.p-reserve__form__number__item {
		position: relative;
		margin-left: 0;
	}

	.p-reserve__form__number {
		display: block;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		width: 100%;
		height: 100%;
		margin: 0;
		margin-right: .9375rem;
		padding: 0;
		padding-left: 1.25rem;
		border: 1px solid #b5b3b0;
		-moz-appearance: textfield;
	}

	.mwform-checkbox-field-text {
		font-size: .875rem;
	}

	.p-reserve__form__number::-webkit-inner-spin-button,
	.p-reserve__form__number::-webkit-outer-spin-button {
		margin: 0;
		-webkit-appearance: none;
	}

	.p-reserve__form__number__nav {
		position: absolute;
		top: 0;
		right: .875rem;
		bottom: 0;
	}

	.p-reserve__form__number__up,
	.p-reserve__form__number__down {
		font-family: 'Trebuchet MS', Helvetica, sans-serif !important;
		font-size: 13px;
		line-height: 1.7;
		position: absolute;
		width: 20px;
		cursor: pointer;
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		user-select: none;
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
		text-align: center;
		color: #333;
		-o-user-select: none;
	}

	.p-reserve__form__number__up {
		position: absolute;
		top: 0;
		height: 50%;
		background: url(../images/common/icon-linearrow_up.svg) 50% 80% no-repeat;
	}

	.p-reserve__form__number__down {
		position: absolute;
		bottom: 0;
		height: 50%;
		background: url(../images/common/icon-linearrow_below.svg) 50% 20% no-repeat;
	}

	#l-reserve__rokehan {
		width: 100%;
		height: auto;
		margin: 0 auto;
		padding: 7.5rem 0 0;
	}

	#l-reserve__rokehan .c-container {
		max-width: 800px;
		padding: 0 2.5rem;
	}

	.p-reserve__rokehan__text {
		font-size: .875rem;
		font-weight: 500;
		line-height: calc(30 / 14);
		margin: .9375rem auto 0;
		letter-spacing: .05em;
	}

	.p-reserve__rokehan__text a {
		position: relative;
		text-decoration: none;
		color: #333;
	}

	.p-reserve__rokehan__text a::after {
		position: absolute;
		bottom: 2px;
		left: 0;
		width: 100%;
		height: 1px;
		content: '';
		background-color: #afafaf;
	}

	#l-reserve__phone {
		width: 100%;
		height: auto;
		margin: 0 auto;
		padding: 6.875rem 0 0;
	}

	#l-reserve__phone .c-container {
		max-width: 800px;
		padding: 0 2.5rem;
	}

	.p-reserve__phone__text {
		font-size: .875rem;
		font-weight: 500;
		line-height: calc(30 / 14);
		margin: .9375rem auto 0;
		letter-spacing: .05em;
	}

	.p-reserve__phone__text:last-child {
		margin: 1.5rem auto 0;
	}

	.p-reserve__phone__infobox {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		margin: 1.375rem auto 0;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}

	.p-reserve__phone__infobox dt {
		font-size: .75rem;
		font-weight: 500;
		line-height: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		width: 5.0625rem;
		height: 1.1875rem;
		letter-spacing: .075em;
		border: 1px solid #999;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}

	.p-reserve__phone__infobox dd {
		font-size: 1.25rem;
		font-weight: 500;
		line-height: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		margin-left: 1rem;
		letter-spacing: .075em;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
	}

	.p-reserve__phone__infobox dd .u-small {
		font-size: .875rem;
		font-weight: 500;
		line-height: 1;
		margin-left: 1.75rem;
		letter-spacing: .075em;
	}

	#l-reserve__linkarea {
		width: 100%;
		height: auto;
		padding: 21.0625rem 0 20.625rem;
	}

	.p-reserve__linkarea__linkbox {
		display: block;
		width: 36.25rem;
		max-width: 80%;
		height: auto;
		margin: 0 auto;
	}

	.p-reserve__linkarea__linkbox.js-sclollslide {
		-webkit-transition: opacity .5s;
		transition: opacity .5s;
		opacity: 0;
	}

	.p-reserve__linkarea__linkbox.js-sclollslide.js-active {
		opacity: 1;
	}

	.p-reserve__linkarea__linkbox.js-sclollslide.js-active::before {
		-webkit-transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
		transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
		transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, transform .3s cubic-bezier(0, 0, 0, 1) .55s;
		transition: right .3s cubic-bezier(1, 0, 1, 1) 0s, transform .3s cubic-bezier(0, 0, 0, 1) .55s, -webkit-transform .3s cubic-bezier(0, 0, 0, 1) .55s;
		opacity: 1;
	}

	.p-reserve__linkarea__linkbox::after {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		content: '';
		-webkit-transition: -webkit-transform .6s ease-in-out;
		transition: -webkit-transform .6s ease-in-out;
		transition: transform .6s ease-in-out;
		transition: transform .6s ease-in-out, -webkit-transform .6s ease-in-out;
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
		pointer-events: none;
		opacity: 0;
		background-color: #000;
	}

	.p-reserve__linkarea__linkbox:hover::after {
		-webkit-transform: translateX(110%);
		transform: translateX(110%);
		opacity: 1;
	}

	.p-reserve__thanks {
		font-size: .875rem;
		font-weight: 500;
		line-height: calc(30 / 14);
		letter-spacing: .1em;
	}

	.reserve-modal {
		width: calc(100% - 60px);
		max-width: 550px;
	}

	.reserve-modal-content {
		max-height: calc(90dvh - 100px);
		padding: 30px min(calc(22/375*100%),40px) 40px;
	}

	.reserve-modal-title {
		font-size: 1.2rem;
	}

	.reserve-modal-img {
		position: relative;
		top: 0;
		right: 0;
		width: 100%;

		figcaption {
			margin-top: 10px;
			font-size: 0.8rem;
		}
	}

	.reserve-modal-list {
		gap: 23px;
		margin-top: 25px;
	}

	.reserve-modal-listitem {
		padding-left: 15px;
		font-size: 1.2rem;
		line-height: calc(34/24);

		&:nth-child(-n+5) {
			width: 100%;
		}

		&:before {
			left: 2px;
			font-size: 1.2rem;
			line-height: calc(34/24);
		}
	}

	.reserve-modal-close {
		width: 240px;
		height: 48px;
		margin: 20px auto 0;
		font-size: 1.3rem;

		&:after {
			right: 22px;
			width: 11px;
			height: 11px;
		}
	}
}